// Also set BindingOperationInfo as some operations (SequenceAcknowledgment) have
// neither in nor out messages, and thus the WrappedInInterceptor cannot
// determine the operation name.
BindingInfo bi = rme.getEndpoint().getEndpointInfo().getBinding();
BindingOperationInfo boi = null;
boolean isOneway = true;
if (RMConstants.getCreateSequenceAction().equals(action)) {
if (RMContextUtils.isServerSide(message)) {
boi = bi.getOperation(RMConstants.getCreateSequenceOperationName());
isOneway = false;
} else {
boi = bi.getOperation(RMConstants.getCreateSequenceOnewayOperationName());
}
} else if (RMConstants.getCreateSequenceResponseAction().equals(action)) {
if (RMContextUtils.isServerSide(message)) {
boi = bi.getOperation(RMConstants.getCreateSequenceResponseOnewayOperationName());
} else {
boi = bi.getOperation(RMConstants.getCreateSequenceOperationName());
isOneway = false;
}
} else if (RMConstants.getSequenceAckAction().equals(action)) {
boi = bi.getOperation(RMConstants.getSequenceAckOperationName());
} else if (RMConstants.getTerminateSequenceAction().equals(action)) {
boi = bi.getOperation(RMConstants.getTerminateSequenceOperationName());
} else if (RMConstants.getLastMessageAction().equals(action)) {
boi = bi.getOperation(RMConstants.getLastMessageOperationName());
}
assert boi != null;
exchange.put(BindingOperationInfo.class, boi);
exchange.put(OperationInfo.class, boi.getOperationInfo());
exchange.setOneWay(isOneway);