in core/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/MessageExchangeImpl.java [340:383]
public void setMessage(NormalizedMessage message, String name) throws MessagingException {
if (!can(CAN_OWNER)) {
throw new IllegalStateException("component is not owner");
}
if (message == null) {
throw new IllegalArgumentException("message should not be null");
}
if (name == null) {
throw new IllegalArgumentException("name should not be null");
}
if (IN.equalsIgnoreCase(name)) {
if (!can(CAN_SET_IN_MSG)) {
throw new MessagingException("In not supported");
}
if (packet.getIn() != null) {
throw new MessagingException("In message is already set");
}
((NormalizedMessageImpl) message).exchange = this;
packet.setIn((NormalizedMessageImpl) message);
} else if (OUT.equalsIgnoreCase(name)) {
if (!can(CAN_SET_OUT_MSG)) {
throw new MessagingException("Out not supported");
}
if (packet.getOut() != null) {
throw new MessagingException("Out message is already set");
}
((NormalizedMessageImpl) message).exchange = this;
packet.setOut((NormalizedMessageImpl) message);
} else if (FAULT.equalsIgnoreCase(name)) {
if (!can(CAN_SET_FAULT_MSG)) {
throw new MessagingException("Fault not supported");
}
if (!(message instanceof Fault)) {
throw new MessagingException("Setting fault, but message is not a fault");
}
if (packet.getFault() != null) {
throw new MessagingException("Fault message is already set");
}
((NormalizedMessageImpl) message).exchange = this;
packet.setFault((FaultImpl) message);
} else {
throw new MessagingException("Message name must be in, out or fault");
}
}