You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by as...@apache.org on 2009/03/27 17:32:12 UTC

svn commit: r759202 - in /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse: SynapseConstants.java core/axis2/Axis2FlexibleMEPClient.java

Author: asankha
Date: Fri Mar 27 16:32:11 2009
New Revision: 759202

URL: http://svn.apache.org/viewvc?rev=759202&view=rev
Log:
fix SYNAPSE-525 and correct error made in the fix of SYNAPSE-422

Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java?rev=759202&r1=759201&r2=759202&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java Fri Mar 27 16:32:11 2009
@@ -139,6 +139,9 @@
         public static final String RESPONSE = "RESPONSE";
         /** The Synapse MC property that marks the message as a OUT_ONLY message */
         public static final String OUT_ONLY = "OUT_ONLY";
+        /** The Synapse MC property that states that existing WS-A headers in the envelope should
+        * be preserved */
+        public static final String PRESERVE_WS_ADDRESSING = "PRESERVE_WS_ADDRESSING";
 
         //-- error handling --
         /** An Axis2 message context property indicating a transport send failure */

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java?rev=759202&r1=759201&r2=759202&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java Fri Mar 27 16:32:11 2009
@@ -113,7 +113,8 @@
 
         // create a new MessageContext to be sent out as this should not corrupt the original
         // we need to create the response to the original message later on
-        MessageContext axisOutMsgCtx = cloneForSend(originalInMsgCtx, wsAddressingEnabled);
+        MessageContext axisOutMsgCtx = cloneForSend(originalInMsgCtx,
+            (String) synapseOutMessageContext.getProperty(SynapseConstants.PRESERVE_WS_ADDRESSING));
 
         if (log.isDebugEnabled()) {
             log.debug("Message [Original Request Message ID : " + synapseOutMessageContext.getMessageID()
@@ -317,12 +318,14 @@
         mepClient.execute(true);        
    }
 
-    private static MessageContext cloneForSend(MessageContext ori, boolean wsAddressingEnabled) throws AxisFault {
+    private static MessageContext cloneForSend(MessageContext ori, String preserveWSAdd) throws AxisFault {
 
         MessageContext newMC = MessageHelper.clonePartially(ori);
 
         newMC.setEnvelope(ori.getEnvelope());
-        if (wsAddressingEnabled) {
+        if (preserveWSAdd != null && Boolean.parseBoolean(preserveWSAdd)) {
+            newMC.setMessageID(ori.getMessageID());
+        } else {
             MessageHelper.removeAddressingHeaders(newMC);
         }