[jboss-svn-commits] JBL Code SVN: r31406 - labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/actions/cbr.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Feb 4 13:43:39 EST 2010
Author: kevin.conner at jboss.com
Date: 2010-02-04 13:43:39 -0500 (Thu, 04 Feb 2010)
New Revision: 31406
Modified:
labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/actions/cbr/XPathRouter.java
Log:
Parse source using StAX: JBESB-3171
Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/actions/cbr/XPathRouter.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/actions/cbr/XPathRouter.java 2010-02-04 18:32:21 UTC (rev 31405)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/actions/cbr/XPathRouter.java 2010-02-04 18:43:39 UTC (rev 31406)
@@ -19,14 +19,19 @@
*/
package org.jboss.soa.esb.actions.cbr;
+import org.jboss.internal.soa.esb.util.XMLHelper;
import org.jboss.soa.esb.services.routing.MessageRouterException;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.util.XPathNamespaceContext;
import org.jboss.soa.esb.ConfigurationException;
+import org.milyn.payload.StringSource;
+import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.stream.XMLEventReader;
+import javax.xml.stream.XMLStreamException;
import javax.xml.xpath.*;
import java.util.*;
import java.io.*;
@@ -86,18 +91,25 @@
public boolean evaluate(Object objectToTest) throws MessageRouterException {
try {
if(objectToTest instanceof String) {
- return (Boolean) xpathExpression.evaluate(new InputSource(new StringReader((String) objectToTest)), XPathConstants.BOOLEAN);
+ final XMLEventReader reader = XMLHelper.getXMLEventReader(new StringSource((String)objectToTest)) ;
+ final Document doc = XMLHelper.createDocument(reader) ;
+ return (Boolean) xpathExpression.evaluate(doc, XPathConstants.BOOLEAN);
} else if(objectToTest instanceof byte[]) {
- return (Boolean) xpathExpression.evaluate(new InputSource(new ByteArrayInputStream((byte[]) objectToTest)), XPathConstants.BOOLEAN);
+ final XMLEventReader reader = XMLHelper.getXMLEventReader(new ByteArrayInputStream((byte[])objectToTest)) ;
+ final Document doc = XMLHelper.createDocument(reader) ;
+ return (Boolean) xpathExpression.evaluate(doc, XPathConstants.BOOLEAN);
} else if(objectToTest instanceof Node || objectToTest instanceof NodeList) {
return (Boolean) xpathExpression.evaluate(objectToTest, XPathConstants.BOOLEAN);
- } else {
+ } else if (logger.isDebugEnabled()) {
logger.debug("Unsupported XPath evaluation type '" + objectToTest.getClass().getName() + "'.");
}
+ } catch (ParserConfigurationException e) {
+ logger.debug("Error evaluating xpath expression.", e);
+ } catch (XMLStreamException e) {
+ logger.debug("Error evaluating xpath expression.", e);
} catch (XPathExpressionException e) {
logger.debug("Error evaluating xpath expression.", e);
}
-
return false;
}
}
More information about the jboss-svn-commits
mailing list