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);
         }
 


Reply via email to