You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ru...@apache.org on 2010/09/21 10:36:43 UTC

svn commit: r999271 - in /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse: SynapseConstants.java endpoints/AbstractEndpoint.java

Author: ruwan
Date: Tue Sep 21 08:36:43 2010
New Revision: 999271

URL: http://svn.apache.org/viewvc?rev=999271&view=rev
Log:
Fixing the issue SYNAPSE-357

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/endpoints/AbstractEndpoint.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=999271&r1=999270&r2=999271&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 Tue Sep 21 08:36:43 2010
@@ -359,6 +359,8 @@ public final class SynapseConstants {
 
     // Property name. If this property is false synapse will not remove the processed headers
     public static final String PRESERVE_PROCESSED_HEADERS = "preserveProcessedHeaders";
+    // Property name for preserving the envelope before sending
+    public static final String PRESERVE_ENVELOPE = "PRESERVE_ENVELOPE";
 
     // Known transport error codes
     public static final int RCV_IO_ERROR_SENDING     = 101000;

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java?rev=999271&r1=999270&r2=999271&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java Tue Sep 21 08:36:43 2010
@@ -23,6 +23,7 @@ import org.apache.axis2.clustering.Clust
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.transport.base.BaseConstants;
 import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.util.JavaUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.*;
@@ -226,6 +227,18 @@ public abstract class AbstractEndpoint e
         // set message level metrics collector
         ((Axis2MessageContext) synCtx).getAxis2MessageContext().setProperty(
             BaseConstants.METRICS_COLLECTOR, metricsMBean);
+
+        // if the envelope preserving set build the envelope
+        MediatorProperty preserveEnv = getProperty(SynapseConstants.PRESERVE_ENVELOPE);
+        if (JavaUtils.isTrueExplicitly(preserveEnv.getValue() != null ?
+                preserveEnv.getValue() : preserveEnv.getEvaluatedExpression(synCtx))) {
+            if (traceOrDebugOn) {
+                traceOrDebug(traceOn, "Preserving the envelope by building it before " +
+                        "sending, since it is explicitly set");
+            }
+            synCtx.getEnvelope().build();
+        }
+
         // Send the message through this endpoint
         synCtx.getEnvironment().send(definition, synCtx);
     }