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/03/14 07:04:54 UTC
svn commit: r1081266 - in
/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse:
config/xml/CloneMediatorFactory.java config/xml/CloneMediatorSerializer.java
mediators/eip/splitter/CloneMediator.java
Author: supun
Date: Mon Mar 14 06:04:54 2011
New Revision: 1081266
URL: http://svn.apache.org/viewvc?rev=1081266&view=rev
Log:
adding sequential attribute to clone mediator as well
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java?rev=1081266&r1=1081265&r2=1081266&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java Mon Mar 14 06:04:54 2011
@@ -23,6 +23,7 @@ import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
import org.apache.axis2.util.JavaUtils;
import org.apache.synapse.Mediator;
+import org.apache.synapse.mediators.eip.Target;
import org.apache.synapse.mediators.eip.splitter.CloneMediator;
import javax.xml.namespace.QName;
@@ -60,6 +61,7 @@ public class CloneMediatorFactory extend
private static final QName ID_Q
= new QName(XMLConfigConstants.NULL_NAMESPACE, "id");
+ private static final QName SEQUENTIAL_Q = new QName("sequential");
/**
* This method implements the createMediator method of the MediatorFactory interface
@@ -70,8 +72,10 @@ public class CloneMediatorFactory extend
* @return Mediator of the type CloneMediator built from the config element
*/
public Mediator createSpecificMediator(OMElement elem, Properties properties) {
-
- CloneMediator mediator = new CloneMediator();
+
+ boolean asynchronousExe = true;
+
+ CloneMediator mediator = new CloneMediator();
processAuditStatus(mediator, elem);
OMAttribute id = elem.getAttribute(ID_Q);
@@ -86,12 +90,20 @@ public class CloneMediatorFactory extend
continueParent.getAttributeValue()));
}
+ OMAttribute synchronousExeAttr= elem.getAttribute(SEQUENTIAL_Q);
+ if (synchronousExeAttr != null && synchronousExeAttr.getAttributeValue().equals("true")) {
+ asynchronousExe = false;
+ }
+
+ mediator.setSequential(!asynchronousExe);
+
Iterator targetElements = elem.getChildrenWithName(TARGET_Q);
while (targetElements.hasNext()) {
- mediator.addTarget(TargetFactory.createTarget(
- (OMElement) targetElements.next(), properties));
+ Target target = TargetFactory.createTarget((OMElement)targetElements.next(), properties);
+ target.setAsynchronous(asynchronousExe);
+ mediator.addTarget(target);
}
-
+
return mediator;
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorSerializer.java?rev=1081266&r1=1081265&r2=1081266&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorSerializer.java Mon Mar 14 06:04:54 2011
@@ -66,13 +66,15 @@ public class CloneMediatorSerializer ext
cloneElem.addAttribute("id", clone.getId(), nullNS);
}
- for (Iterator itr = clone.getTargets().iterator(); itr.hasNext();) {
- Object o = itr.next();
+ if (clone.isSequential()) {
+ cloneElem.addAttribute("sequential", "true", nullNS);
+ }
+
+ for (Object o : clone.getTargets()) {
if (o instanceof Target) {
cloneElem.addChild(TargetSerializer.serializeTarget((Target) o));
}
}
-
return cloneElem;
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java?rev=1081266&r1=1081265&r2=1081266&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java Mon Mar 14 06:04:54 2011
@@ -56,6 +56,8 @@ public class CloneMediator extends Abstr
private String id = null;
+ private boolean sequential = false;
+
/**
* This will implement the mediate method of the Mediator interface and will provide the
* functionality of cloning message into the specified targets and mediation
@@ -174,6 +176,14 @@ public class CloneMediator extends Abstr
this.id = id;
}
+ public boolean isSequential() {
+ return sequential;
+ }
+
+ public void setSequential(boolean sequential) {
+ this.sequential = sequential;
+ }
+
public void init(SynapseEnvironment se) {
for (Target target : targets) {