You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by su...@apache.org on 2011/02/09 11:04:23 UTC

svn commit: r1068825 - in /synapse/trunk/java/modules: core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java

Author: supun
Date: Wed Feb  9 10:04:23 2011
New Revision: 1068825

URL: http://svn.apache.org/viewvc?rev=1068825&view=rev
Log:
adding the support to have a receiving sequence for a send

Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
    synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java?rev=1068825&r1=1068824&r2=1068825&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java Wed Feb  9 10:04:23 2011
@@ -29,6 +29,7 @@ import org.apache.axis2.description.InOu
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.*;
+import org.apache.synapse.config.xml.XMLConfigConstants;
 import org.apache.synapse.task.SynapseTaskManager;
 import org.apache.synapse.aspects.statistics.StatisticsCollector;
 import org.apache.synapse.config.SynapseConfiguration;
@@ -45,6 +46,7 @@ import org.apache.synapse.util.xpath.ext
 import javax.xml.namespace.QName;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ExecutorService;
 
 /**
@@ -144,12 +146,40 @@ public class Axis2SynapseEnvironment imp
             }
         }
 
+        String receivingSequence = (String) synCtx.getProperty(SynapseConstants.RECEIVING_SEQUENCE);
+        // remove the receivingSequence property
+        Set keySet = synCtx.getPropertyKeySet();
+        if (keySet != null) {
+            keySet.remove(SynapseConstants.RECEIVING_SEQUENCE);
+        }
+
         // if this is not a response to a proxy service
         String proxyName = (String) synCtx.getProperty(SynapseConstants.PROXY_SERVICE);
         if (proxyName == null || "".equals(proxyName)) {
             if (log.isDebugEnabled()) {
                 log.debug("Using Main Sequence for injected message");
             }
+
+            if (receivingSequence != null) {
+                if (log.isDebugEnabled()) {
+                    log.debug("Using Sequence with name: " + receivingSequence
+                            + " for injected message");
+                }
+                Mediator seqMediator = synCtx.getSequence(receivingSequence);
+                if (seqMediator != null) {
+                    seqMediator.mediate(synCtx);
+                } else {
+                    log.warn("Cannot find a Sequence with name: " + receivingSequence
+                            + " for injecting the response message");
+                    return false;
+                }
+            } else {
+                if (log.isDebugEnabled()) {
+                    log.debug("Using a Sequence for injected message");
+                }
+                return synCtx.getMainSequence().mediate(synCtx);
+            }
+
             return synCtx.getMainSequence().mediate(synCtx);
         }
 
@@ -176,7 +206,20 @@ public class Axis2SynapseEnvironment imp
             }
 
             Mediator outSequence = getProxyOutSequence(synCtx, proxyService);
-            if (outSequence != null) {
+            if (receivingSequence != null) {
+                if (log.isDebugEnabled()) {
+                    log.debug("Using Sequence with name: " + receivingSequence
+                            + " for injected message");
+                }
+                Mediator seqMediator = synCtx.getSequence(receivingSequence);
+                if (seqMediator != null) {
+                    seqMediator.mediate(synCtx);
+                } else {
+                    log.warn("Cannot find a Sequence with name: " + receivingSequence
+                            + " for injecting the message");
+                    return false;
+                }
+            } else if (outSequence != null) {
                 outSequence.mediate(synCtx);
             } else {
                 if (log.isDebugEnabled()) {

Modified: synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java?rev=1068825&r1=1068824&r2=1068825&view=diff
==============================================================================
--- synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java (original)
+++ synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java Wed Feb  9 10:04:23 2011
@@ -493,7 +493,7 @@ public class ThrottleMediator extends Ab
     /**
      * To set the policy key - The key for which lookup from the registry
      *
-     * @param policyKey Key for picking policy from the registry
+     * @param policyKey Value for picking policy from the registry
      */
     public void setPolicyKey(String policyKey) {
         this.policyKey = policyKey;