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/10 12:25:37 UTC

svn commit: r1080187 - in /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml: TemplateMediatorFactory.java TemplateMediatorSerializer.java

Author: supun
Date: Thu Mar 10 11:25:37 2011
New Revision: 1080187

URL: http://svn.apache.org/viewvc?rev=1080187&view=rev
Log:
applying the patch SYNAPSE-738, thanks Udayanga for the contribution

Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java?rev=1080187&r1=1080186&r2=1080187&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java Thu Mar 10 11:25:37 2011
@@ -40,27 +40,29 @@ import java.util.Properties;
 public class TemplateMediatorFactory extends AbstractListMediatorFactory {
     private static final QName TEMPLATE_Q
             = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "template");
-    private TemplateMediator templateTemplateMediator;
-    private OMElement templateElem;
+    private static final QName TEMPLATE_BODY_Q
+            = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "sequence");
+
     /**
      * Element  QName Definitions
      */
-    public static final QName PARAMETER_Q = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
+    public static final QName PARAMETER_Q = new QName(
+            XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
 
 
     protected Mediator createSpecificMediator(OMElement elem, Properties properties) {
-        templateTemplateMediator = new TemplateMediator();
-        templateElem = elem;
-        OMAttribute nameAttr = templateElem.getAttribute(ATT_NAME);
-        OMAttribute errorHandlerAttr = templateElem.getAttribute(ATT_ONERROR);
+        TemplateMediator templateTemplateMediator = new TemplateMediator();
+        OMAttribute nameAttr = elem.getAttribute(ATT_NAME);
+        OMAttribute errorHandlerAttr = elem.getAttribute(ATT_ONERROR);
         if (nameAttr != null) {
             templateTemplateMediator.setName(nameAttr.getAttributeValue());
             if (errorHandlerAttr != null) {
                 templateTemplateMediator.setErrorHandler(errorHandlerAttr.getAttributeValue());
             }
-            processAuditStatus(templateTemplateMediator, templateElem);
-            initParameters();
-            addChildren(templateElem, templateTemplateMediator, properties);
+            processAuditStatus(templateTemplateMediator, elem);
+            initParameters(elem, templateTemplateMediator);
+            OMElement templateBodyElem = elem.getFirstChildWithName(TEMPLATE_BODY_Q);
+            addChildren(templateBodyElem, templateTemplateMediator, properties);
         } else {
             String msg = "A EIP template should be a named mediator .";
             log.error(msg);
@@ -69,7 +71,7 @@ public class TemplateMediatorFactory ext
         return templateTemplateMediator;
     }
 
-    private void initParameters() {
+    private void initParameters(OMElement templateElem, TemplateMediator templateMediator) {
         Iterator subElements = templateElem.getChildElements();
         Collection<String> paramNames = new ArrayList<String>();
         while (subElements.hasNext()) {
@@ -82,7 +84,7 @@ public class TemplateMediatorFactory ext
                 child.detach();
             }
         }
-        templateTemplateMediator.setParameters(paramNames);
+        templateMediator.setParameters(paramNames);
     }
 
     public QName getTagQName() {

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java?rev=1080187&r1=1080186&r2=1080187&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java Thu Mar 10 11:25:37 2011
@@ -24,6 +24,7 @@ import org.apache.synapse.mediators.temp
 
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
 
 /**
  *  Serializer class for Template to serialize into a  configuration as follows
@@ -52,8 +53,8 @@ public class TemplateMediatorSerializer 
                         "onError", nullNS, mediator.getErrorHandler()));
             }
             serializeParams(templateElem,mediator);
+            serializeBody(templateElem, mediator.getList());
             saveTracingState(templateElem, mediator);
-            serializeChildren(templateElem, mediator.getList());
         }
 
         return templateElem;
@@ -61,17 +62,21 @@ public class TemplateMediatorSerializer 
 
     private void serializeParams(OMElement templateElem, TemplateMediator mediator) {
         Collection<String> params = mediator.getParameters();
-        Iterator<String> paramIterator = params.iterator();
-        while (paramIterator.hasNext()){
-            String paramName = paramIterator.next();
-            if(!"".equals(paramName)){
+        for (String param : params) {
+            if (!"".equals(param)) {
                 OMElement paramEl = fac.createOMElement("parameter", synNS);
-                paramEl.addAttribute(fac.createOMAttribute("name",nullNS,paramName));
+                paramEl.addAttribute(fac.createOMAttribute("name", nullNS, param));
                 templateElem.addChild(paramEl);
             }
         }
     }
 
+    private void serializeBody(OMElement templateElem, List<Mediator> childMediatorList){
+        OMElement seqEl = fac.createOMElement("sequence", synNS);
+        templateElem.addChild(seqEl);
+        serializeChildren(seqEl, childMediatorList);
+    }
+
     public String getMediatorClassName() {
         return TemplateMediator.class.getName();
     }