You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2007/03/13 10:38:41 UTC

svn commit: r517611 - /incubator/servicemix/trunk/deployables/serviceengines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/XPathSplitter.java

Author: gnodet
Date: Tue Mar 13 02:38:40 2007
New Revision: 517611

URL: http://svn.apache.org/viewvc?view=rev&rev=517611
Log:
SM-879: EIP XPath Splitter and Drools3.1 used together cause problems in xpath evaluation

Modified:
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/XPathSplitter.java

Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/XPathSplitter.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/XPathSplitter.java?view=diff&rev=517611&r1=517610&r2=517611
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/XPathSplitter.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/XPathSplitter.java Tue Mar 13 02:38:40 2007
@@ -27,6 +27,7 @@
 import org.apache.servicemix.expression.JAXPNodeSetXPathExpression;
 import org.apache.servicemix.expression.MessageVariableResolver;
 import org.apache.servicemix.jbi.jaxp.SourceTransformer;
+import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -46,6 +47,8 @@
      * The xpath expression to use to split 
      */
     private JAXPNodeSetXPathExpression xpathExpression = new JAXPNodeSetXPathExpression();
+    
+    private SourceTransformer sourceTransformer = new SourceTransformer();
 
     /* (non-Javadoc)
      * @see org.apache.servicemix.eip.EIPEndpoint#validate()
@@ -64,11 +67,12 @@
      * @see org.apache.servicemix.components.eip.AbstractSplitter#split(javax.xml.transform.Source)
      */
     protected Source[] split(Source main) throws Exception {
-        Node doc = new SourceTransformer().toDOMNode(main);
+        Node doc = sourceTransformer.toDOMNode(main);
         NodeList nodes = (NodeList) xpathExpression.evaluateXPath(doc);
         Source[] parts = new Source[nodes.getLength()];
         for (int i = 0; i < parts.length; i++) {
-            parts[i] = new DOMSource(nodes.item(i));
+            Document part = sourceTransformer.toDOMDocument(nodes.item(i));
+            parts[i] = new DOMSource(part);
         }
         return parts;
     }