You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by sa...@apache.org on 2006/07/25 12:32:16 UTC
svn commit: r425363 - in
/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse:
Constants.java core/axis2/Axis2Sender.java
core/axis2/EmptyRMMessageReceiver.java mediators/builtin/RMMediator.java
Author: saminda
Date: Tue Jul 25 03:32:14 2006
New Revision: 425363
URL: http://svn.apache.org/viewvc?rev=425363&view=rev
Log:
More updates to <enableRM/>.
Modified:
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/Constants.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/Axis2Sender.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/EmptyRMMessageReceiver.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/mediators/builtin/RMMediator.java
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/Constants.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/Constants.java?rev=425363&r1=425362&r2=425363&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/Constants.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/Constants.java Tue Jul 25 03:32:14 2006
@@ -79,4 +79,6 @@
String PROCESSED_MUST_UNDERSTAND = "__PROCESSED_MUST_UNDERSTAND__";
+ String RESPONSE_SOAP_ENVELOPE = "_RESPONSE_SOAP_ENVELOPE_";
+
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/Axis2Sender.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/Axis2Sender.java?rev=425363&r1=425362&r2=425363&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/Axis2Sender.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/Axis2Sender.java Tue Jul 25 03:32:14 2006
@@ -73,6 +73,10 @@
((Axis2MessageContext) synapseInMessageContext).
getAxis2MessageContext());
+ //set the response Envelop as a property in Original axisMsgCtx
+ synapseInMessageContext.setProperty(org.apache.synapse.Constants.RESPONSE_SOAP_ENVELOPE,
+ axisOutMsgContext.getEnvelope());
+
// create the synapse message context for the response
org.apache.synapse.MessageContext synapseOutMessageContext =
new Axis2MessageContext(
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/EmptyRMMessageReceiver.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/EmptyRMMessageReceiver.java?rev=425363&r1=425362&r2=425363&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/EmptyRMMessageReceiver.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/EmptyRMMessageReceiver.java Tue Jul 25 03:32:14 2006
@@ -16,10 +16,13 @@
package org.apache.synapse.core.axis2;
import org.apache.axis2.engine.MessageReceiver;
+import org.apache.axis2.engine.AxisEngine;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.util.Utils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.axiom.soap.SOAPEnvelope;
/*
*
*/
@@ -32,20 +35,35 @@
/*
Message Recieved with RM
*/
-
- log.info("EmptyRMMessageReceiver#receive() and inject the Message into Synapse Environment");
+
+ log.info(
+ "EmptyRMMessageReceiver#receive() and inject the Message into Synapse Environment");
log.debug("Application Message : " + messageContext.getEnvelope().toString());
+ MessageContext outMsgContext = Utils.createOutMessageContext(messageContext);
+ outMsgContext.getOperationContext().addMessageContext(outMsgContext);
+
org.apache.synapse.MessageContext synCtx =
Axis2MessageContextFinder.getSynapseMessageContext(messageContext);
+
+ //setting the property that Application Message in RM Need not to hit RM Mediators anymore
+ messageContext.setProperty(org.apache.synapse.Constants.MESSAGE_RECEIVED_RM_ENGAGED,
+ Boolean.TRUE);
+
synCtx.getEnvironment().injectMessage(synCtx);
- log.debug("Executed EmptyRMMessageReceiver#receive() and Java Return for RMMediator");
+ Object obj = messageContext.getProperty(org.apache.synapse.Constants.RESPONSE_SOAP_ENVELOPE);
+ if (obj != null) {
+ outMsgContext.setEnvelope((SOAPEnvelope)obj);
+ } else {
+ outMsgContext.setEnvelope(messageContext.getEnvelope());
+ }
+ log.debug("Executed EmptyRMMessageReceiver#receive() and Java Return for RMMediator");
- messageContext.setProperty(
- org.apache.synapse.Constants.MESSAGE_RECEIVED_RM_ENGAGED,
- Boolean.TRUE);
+ AxisEngine engine = new AxisEngine(
+ messageContext.getOperationContext().getServiceContext().getConfigurationContext());
+ engine.send(outMsgContext);
}
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/mediators/builtin/RMMediator.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/mediators/builtin/RMMediator.java?rev=425363&r1=425362&r2=425363&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/mediators/builtin/RMMediator.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/mediators/builtin/RMMediator.java Tue Jul 25 03:32:14 2006
@@ -54,6 +54,11 @@
log.debug("RM Mediator :: mediate() ");
org.apache.axis2.context.MessageContext msgCtx =
((Axis2MessageContext) synCtx).getAxis2MessageContext();
+ Object obj = msgCtx.getProperty(org.apache.synapse.Constants.MESSAGE_RECEIVED_RM_ENGAGED);
+ if (obj != null && ((Boolean)obj).booleanValue()) {
+ log.debug("RM Mediator works only for the First Chain");
+ return true;
+ }
ConfigurationContext cc = msgCtx.getConfigurationContext();
AxisConfiguration ac = cc.getAxisConfiguration();
@@ -65,19 +70,11 @@
ae.receive(msgCtx);
- if (msgCtx.getProperty(
- org.apache.synapse.Constants.MESSAGE_RECEIVED_RM_ENGAGED) !=
- null)
- {
- return ((Boolean) msgCtx.getProperty(
- org.apache.synapse.Constants.MESSAGE_RECEIVED_RM_ENGAGED))
- .booleanValue();
- }
-
} catch (AxisFault axisFault) {
throw new SynapseException(axisFault);
}
return false;
+
}
private void rmEnabledService(ConfigurationContext cc, AxisConfiguration ac,
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org