I'm trying to do custom transaction correlation for WSO2 ESB. The exit point (producer) of WSO2 ESB is the send() method of Axis2FlexibleMEPClient class [1].
send() method is as below.
public static void send(
EndpointDefinition endpoint,
org.apache.synapse.MessageContext synapseOutMessageContext) throws AxisFault {
boolean separateListener = false;
boolean wsSecurityEnabled = false;
String wsSecPolicyKey = null;
String inboundWsSecPolicyKey = null;
String outboundWsSecPolicyKey = null;
boolean wsRMEnabled = false;
boolean wsAddressingEnabled = false;
String wsAddressingVersion = null;
Can someone please help me how can inject correlation data in this case? org.apache.synapse.MessageContext doesn't have a class field to hold the correlation key.
If I want to add a custom HTTP header to the outgoing call in WSO2 ESB (using org.apache.synapse.MessageContext object in the send() method), I would do like below.
org.apache.axis2.context.MessageContext axisMC = ((org.apache.synapse.core.axis2.Axis2MessageContext) synapseOutMessageContext).getAxis2MessageContext();
Map headers = (Map) axisMC.getProperty(org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS);
headers.put("correlationKey", value");
axisMC.setProperty(org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS, headers);
How do I the same thing in appd to inject a custom HTTP header?
Can someone please help me on how we can cast objects in custom-activity-correlation.xml when configuring <payload-pointer/> section?