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