You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by at...@apache.org on 2014/10/28 01:58:37 UTC
svn commit: r1634758 -
/commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml2/env/xpath/XPathEvaluator.java
Author: ate
Date: Tue Oct 28 00:58:37 2014
New Revision: 1634758
URL: http://svn.apache.org/r1634758
Log:
SCXML-214: Replace JAXP xpath expression evaluation with Commons JXPath
- drop not used/needed Data() function support for xpath language
Modified:
commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml2/env/xpath/XPathEvaluator.java
Modified: commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml2/env/xpath/XPathEvaluator.java
URL: http://svn.apache.org/viewvc/commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml2/env/xpath/XPathEvaluator.java?rev=1634758&r1=1634757&r2=1634758&view=diff
==============================================================================
--- commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml2/env/xpath/XPathEvaluator.java (original)
+++ commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml2/env/xpath/XPathEvaluator.java Tue Oct 28 00:58:37 2014
@@ -18,7 +18,6 @@ package org.apache.commons.scxml2.env.xp
import java.io.Serializable;
import java.util.Map;
-import java.util.regex.Pattern;
import org.apache.commons.jxpath.ClassFunctions;
import org.apache.commons.jxpath.FunctionLibrary;
@@ -65,17 +64,12 @@ public class XPathEvaluator implements E
}
}
-
- /** Pattern for recognizing the Commons SCXML Data() builtin function. */
- private static final Pattern dataFct = Pattern.compile("Data\\(");
-
private static final JXPathContext jxpathRootContext = JXPathContext.newContext(null);
static {
FunctionLibrary xpathFunctions = new FunctionLibrary();
- xpathFunctions.addFunctions(new ClassFunctions(XPathFunctions.class, "cs"));
xpathFunctions.addFunctions(new ClassFunctions(XPathFunctions.class, null));
- // default generic JXPath functions
+ // also restore default generic JXPath functions
xpathFunctions.addFunctions(new PackageFunctions("", null));
jxpathRootContext.setFunctions(xpathFunctions);
}
@@ -111,9 +105,8 @@ public class XPathEvaluator implements E
public Object eval(final Context ctx, final String expr)
throws SCXMLExpressionException {
JXPathContext context = getContext(ctx);
- String evalExpr = dataFct.matcher(expr).replaceFirst("DataNode(");
try {
- return context.getValue(evalExpr, String.class);
+ return context.getValue(expr, String.class);
} catch (JXPathException xee) {
throw new SCXMLExpressionException(xee.getMessage(), xee);
}
@@ -139,11 +132,9 @@ public class XPathEvaluator implements E
@Override
public Node evalLocation(final Context ctx, final String expr)
throws SCXMLExpressionException {
- String evalExpr = dataFct.matcher(expr).
- replaceFirst("DataNode(");
JXPathContext context = getContext(ctx);
try {
- return (Node)context.selectSingleNode(evalExpr);
+ return (Node)context.selectSingleNode(expr);
} catch (JXPathException xee) {
throw new SCXMLExpressionException(xee.getMessage(), xee);
}