}
public JMSPersistentMessage createPersistentMessage(MessageContext synCtx) {
JMSPersistentMessage jmsMsg = new JMSPersistentMessage();
JMSPersistentAxis2Message jmsAxis2MessageContext = new JMSPersistentAxis2Message();
JMSPersistentSynapseMessage jmsSynpaseMessageContext = new JMSPersistentSynapseMessage();
Axis2MessageContext axis2MessageContext = null;
if (synCtx instanceof Axis2MessageContext) {
/**
* Serializing the Axis2 Message Context
*/
axis2MessageContext = (Axis2MessageContext) synCtx;
org.apache.axis2.context.MessageContext msgCtx =
axis2MessageContext.getAxis2MessageContext();
jmsAxis2MessageContext.setMessageID(UUIDGenerator.getUUID());
jmsAxis2MessageContext.setOperationAction(msgCtx.getAxisOperation().getSoapAction());
jmsAxis2MessageContext.setOperationName(msgCtx.getAxisOperation().getName());
jmsAxis2MessageContext.setAction(msgCtx.getOptions().getAction());
jmsAxis2MessageContext.setService(msgCtx.getAxisService().getName());
if (msgCtx.getRelatesTo() != null) {
jmsAxis2MessageContext.setRelatesToMessageId(msgCtx.getRelatesTo().getValue());
}
if (msgCtx.getReplyTo() != null) {
jmsAxis2MessageContext.setReplyToAddress(msgCtx.getReplyTo().getAddress());
}
if (msgCtx.getFaultTo() != null) {
jmsAxis2MessageContext.setFaultToAddress(msgCtx.getFaultTo().getAddress());
}
if (msgCtx.getTo() != null) {
jmsAxis2MessageContext.setToAddress(msgCtx.getTo().getAddress());
}
jmsAxis2MessageContext.setDoingPOX(msgCtx.isDoingREST());
jmsAxis2MessageContext.setDoingMTOM(msgCtx.isDoingMTOM());
jmsAxis2MessageContext.setDoingSWA(msgCtx.isDoingSwA());
String soapEnvelope = msgCtx.getEnvelope().toString();
jmsAxis2MessageContext.setSoapEnvelope(soapEnvelope);
jmsAxis2MessageContext.setFLOW(msgCtx.getFLOW());
jmsAxis2MessageContext.setTransportInName(msgCtx.getTransportIn().getName());
jmsAxis2MessageContext.setTransportOutName(msgCtx.getTransportOut().getName());
Iterator<String> it = msgCtx.getProperties().keySet().iterator();
while (it.hasNext()) {
String key = it.next();
String value = msgCtx.getProperty(key).toString();
jmsAxis2MessageContext.addProperty(key, value);
}
jmsMsg.setJmsPersistentAxis2Message(jmsAxis2MessageContext);
jmsSynpaseMessageContext.setFaultResponse(synCtx.isFaultResponse());
jmsSynpaseMessageContext.setTracingState(synCtx.getTracingState());
jmsSynpaseMessageContext.setResponse(synCtx.isResponse());
Iterator<String> its = synCtx.getPropertyKeySet().iterator();
while (its.hasNext()) {
String key = its.next();
String value = synCtx.getProperty(key).toString();
jmsSynpaseMessageContext.addPropertie(key, value);
}
jmsMsg.setJmsPersistentSynapseMessage(jmsSynpaseMessageContext);
} else {
throw new SynapseException("Only Axis2 Messages are supported with JMSMessage store");
}