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);
         }