Author: supun
Date: Wed Jan 19 10:28:39 2011
New Revision: 1060745

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

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Source.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Target.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Source.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Source.java?rev=1060745&r1=1060744&r2=1060745&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Source.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Source.java
 Wed Jan 19 10:28:39 2011
@@ -62,7 +62,6 @@ import java.util.List;
  */
 
 public class Source {
-
     private SynapseXPath xpath = null;
 
     private String property = null;
@@ -71,11 +70,10 @@ public class Source {
 
     private boolean clone = true;
 
-    private OMElement inlineElement = null;
+    private OMNode inlineOMNode = null;
 
     private String inlineKey = null;
 
-
     public ArrayList<OMNode> evaluate(MessageContext synCtx, SynapseLog synLog)
             throws JaxenException {
 
@@ -179,17 +177,20 @@ public class Source {
                 synLog.error("Invalid source property type.");
             }
         } else if (sourceType == EnrichMediator.INLINE) {
-            if (inlineElement != null) {
-                if 
(inlineElement.getQName().getLocalPart().equals("Envelope")) {
-                    SOAPEnvelope soapEnvelope = 
getSOAPEnvFromOM(inlineElement);
+            if (inlineOMNode instanceof OMElement) {
+                OMElement inlineOMElement = (OMElement) inlineOMNode;
+                if 
(inlineOMElement.getQName().getLocalPart().equals("Envelope")) {
+                    SOAPEnvelope soapEnvelope = 
getSOAPEnvFromOM(inlineOMElement);
                     if (soapEnvelope != null) {
                         sourceNodeList.add(soapEnvelope);
                     } else {
                         synLog.error("Inline Source is not a valid 
SOAPEnvelope.");
                     }
                 } else {
-                    sourceNodeList.add(inlineElement.cloneOMElement());
+                    sourceNodeList.add(inlineOMElement.cloneOMElement());
                 }
+            } else if (inlineOMNode instanceof OMText) {
+                sourceNodeList.add(inlineOMNode);
             } else if (inlineKey != null) {
                 Object inlineObj = synCtx.getEntry(inlineKey);
                 if (inlineObj instanceof OMElement) {
@@ -203,7 +204,14 @@ public class Source {
                     } else {
                         sourceNodeList.add((OMElement) inlineObj);
                     }
+                } else if (inlineObj instanceof String) {
+                    sourceNodeList.add(
+                            
OMAbstractFactory.getOMFactory().createOMText(inlineObj.toString()));
+                } else {
+                    synLog.error("Specified Resource as Source is not valid.");
                 }
+            } else {
+                synLog.error("Inline Source Content is not valid.");
             }
         }
         return sourceNodeList;
@@ -211,13 +219,15 @@ public class Source {
 
     private SOAPEnvelope getSOAPEnvFromOM(OMElement inlineElement) {
         SOAPFactory soapFactory;
-        if 
(inlineElement.getQName().getNamespaceURI().equals(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI))
 {
+        if (inlineElement.getQName().getNamespaceURI().equals(
+                SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
             soapFactory = OMAbstractFactory.getSOAP12Factory();
         } else {
             soapFactory = OMAbstractFactory.getSOAP11Factory();
         }
 
-        StAXSOAPModelBuilder builder = new 
StAXSOAPModelBuilder(inlineElement.getXMLStreamReader(), soapFactory, 
inlineElement.getQName().getNamespaceURI());
+        StAXSOAPModelBuilder builder = new 
StAXSOAPModelBuilder(inlineElement.getXMLStreamReader(),
+                soapFactory, inlineElement.getQName().getNamespaceURI());
         return builder.getSOAPEnvelope();
     }
 
@@ -253,12 +263,12 @@ public class Source {
         this.clone = clone;
     }
 
-    public void setInlineElement(OMElement inlineElement) {
-        this.inlineElement = inlineElement;
+    public void setInlineOMNode(OMNode inlineOMNode) {
+        this.inlineOMNode = inlineOMNode;
     }
 
-    public OMElement getInlineElement() {
-        return inlineElement;
+    public OMNode getInlineOMNode() {
+        return inlineOMNode;
     }
 
     public String getInlineKey() {

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Target.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Target.java?rev=1060745&r1=1060744&r2=1060745&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Target.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Target.java
 Wed Jan 19 10:28:39 2011
@@ -123,7 +123,7 @@ public class Target {
                 }
             }
         } else if (targetType == EnrichMediator.ENVELOPE) {
-            OMNode node = sourceNodeList.get(0); /*TODO*/
+            OMNode node = sourceNodeList.get(0);
             if (node instanceof SOAPEnvelope) {
                 try {
                     synContext.setEnvelope((SOAPEnvelope) node);
@@ -148,6 +148,8 @@ public class Target {
                 if (elem instanceof OMElement) {
                     e.insertSiblingAfter(elem);
                     isInserted = true;
+                } else if (elem instanceof OMText) {
+                    e.setText(((OMText) elem).getText());
                 } else {
                     synLog.error("Invalid Source object to be inserted.");
                 }


Reply via email to