You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/08/29 18:05:44 UTC

svn commit: r1378628 - in /camel/trunk/camel-core/src/main: java/org/apache/camel/builder/ java/org/apache/camel/builder/xml/ java/org/apache/camel/model/language/ resources/org/apache/camel/model/language/

Author: davsclaus
Date: Wed Aug 29 16:05:44 2012
New Revision: 1378628

URL: http://svn.apache.org/viewvc?rev=1378628&view=rev
Log:
CAMEL-5549: Added vtdxml language to Camel DSL to support camel-vtdxml component.

Added:
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/VtdXmlExpression.java
      - copied, changed from r1378605, camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/XQueryExpression.java
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/Namespaces.java
    camel/trunk/camel-core/src/main/resources/org/apache/camel/model/language/jaxb.index

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java?rev=1378628&r1=1378627&r2=1378628&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java Wed Aug 29 16:05:44 2012
@@ -534,6 +534,43 @@ public class ExpressionClause<T> extends
     }
 
     /**
+     * Evaluates an <a href="http://camel.apache.org/vtdxml.html">XPath
+     * expression using the VTD-XML library</a>
+     *
+     * @param text the expression to be evaluated
+     * @return the builder to continue processing the DSL
+     */
+    public T vtdxml(String text) {
+        return delegate.vtdxml(text);
+    }
+
+    /**
+     * Evaluates an <a href="http://camel.apache.org/vtdxml.html">XPath
+     * expression using the VTD-XML library</a>
+     * with the specified set of namespace prefixes and URIs
+     *
+     * @param text the expression to be evaluated
+     * @param namespaces the namespace prefix and URIs to use
+     * @return the builder to continue processing the DSL
+     */
+    public T vtdxml(String text, Namespaces namespaces) {
+        return delegate.vtdxml(text, namespaces);
+    }
+
+    /**
+     * Evaluates an <a href="http://camel.apache.org/vtdxml.html">XPath
+     * expression using the VTD-XML library</a>
+     * with the specified set of namespace prefixes and URIs
+     *
+     * @param text the expression to be evaluated
+     * @param namespaces the namespace prefix and URIs to use
+     * @return the builder to continue processing the DSL
+     */
+    public T vtdxml(String text, Map<String, String> namespaces) {
+        return delegate.vtdxml(text, namespaces);
+    }
+
+    /**
      * Evaluates an <a href="http://camel.apache.org/xpath.html">XPath
      * expression</a>
      * 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java?rev=1378628&r1=1378627&r2=1378628&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java Wed Aug 29 16:05:44 2012
@@ -41,6 +41,7 @@ import org.apache.camel.model.language.S
 import org.apache.camel.model.language.SpELExpression;
 import org.apache.camel.model.language.SqlExpression;
 import org.apache.camel.model.language.TokenizerExpression;
+import org.apache.camel.model.language.VtdXmlExpression;
 import org.apache.camel.model.language.XPathExpression;
 import org.apache.camel.model.language.XQueryExpression;
 
@@ -563,6 +564,46 @@ public class ExpressionClauseSupport<T> 
     }
 
     /**
+     * Evaluates an <a href="http://camel.apache.org/vtdxml.html">XPath
+     * expression using the VTD-XML library</a>
+     *
+     * @param text the expression to be evaluated
+     * @return the builder to continue processing the DSL
+     */
+    public T vtdxml(String text) {
+        return expression(new VtdXmlExpression(text));
+    }
+
+    /**
+     * Evaluates an <a href="http://camel.apache.org/vtdxml.html">XPath
+     * expression using the VTD-XML library</a>
+     * with the specified set of namespace prefixes and URIs
+     *
+     * @param text the expression to be evaluated
+     * @param namespaces the namespace prefix and URIs to use
+     * @return the builder to continue processing the DSL
+     */
+    public T vtdxml(String text, Namespaces namespaces) {
+        return vtdxml(text, namespaces.getNamespaces());
+    }
+
+    /**
+     * Evaluates an <a href="http://camel.apache.org/vtdxml.html">XPath
+     * expression using the VTD-XML library</a>
+     * with the specified set of namespace prefixes and URIs
+     *
+     * @param text the expression to be evaluated
+     * @param namespaces the namespace prefix and URIs to use
+     * @return the builder to continue processing the DSL
+     */
+    public T vtdxml(String text, Map<String, String> namespaces) {
+        VtdXmlExpression expression = new VtdXmlExpression(text);
+        expression.setNamespaces(namespaces);
+        setExpressionType(expression);
+        return result;
+    }
+
+    /**
      * Evaluates an <a href="http://camel.apache.org/xpath.html">XPath
      * expression</a>
      *

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/Namespaces.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/Namespaces.java?rev=1378628&r1=1378627&r2=1378628&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/Namespaces.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/Namespaces.java Wed Aug 29 16:05:44 2012
@@ -24,6 +24,7 @@ import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 
+import org.apache.camel.model.language.VtdXmlExpression;
 import org.apache.camel.model.language.XPathExpression;
 import org.apache.camel.model.language.XQueryExpression;
 import org.apache.camel.spi.NamespaceAware;
@@ -95,6 +96,15 @@ public class Namespaces {
     }
 
     /**
+     * Creates the XPath expression using the VTD-XML library using the current namespace context
+     */
+    public VtdXmlExpression vtdxml(String expression) {
+        VtdXmlExpression answer = new VtdXmlExpression(expression);
+        configure(answer);
+        return answer;
+    }
+
+    /**
      * Creates the XPath expression using the current namespace context
      */
     public XPathExpression xpath(String expression) {

Copied: camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/VtdXmlExpression.java (from r1378605, camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/XQueryExpression.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/VtdXmlExpression.java?p2=camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/VtdXmlExpression.java&p1=camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/XQueryExpression.java&r1=1378605&r2=1378628&rev=1378628&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/XQueryExpression.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/VtdXmlExpression.java Wed Aug 29 16:05:44 2012
@@ -18,82 +18,26 @@ package org.apache.camel.model.language;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.Expression;
-import org.apache.camel.Predicate;
-import org.apache.camel.util.ObjectHelper;
 
 /**
- * For XQuery expressions and predicates
+ * For VTD-XML (fast and efficient XPath) expressions and predicates
  *
  * @version 
  */
-@XmlRootElement(name = "xquery")
+@XmlRootElement(name = "vtdxml")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class XQueryExpression extends NamespaceAwareExpression {
-    @XmlAttribute
-    private String type;
-    @XmlTransient
-    private Class<?> resultType;
+public class VtdXmlExpression extends NamespaceAwareExpression {
 
-    public XQueryExpression() {
+    public VtdXmlExpression() {
     }
 
-    public XQueryExpression(String expression) {
+    public VtdXmlExpression(String expression) {
         super(expression);
     }
 
     public String getLanguage() {
-        return "xquery";
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public Class<?> getResultType() {
-        return resultType;
-    }
-
-    public void setResultType(Class<?> resultType) {
-        this.resultType = resultType;
-    }
-
-    @Override
-    public Expression createExpression(CamelContext camelContext) {
-        if (resultType == null && type != null) {
-            try {
-                resultType = camelContext.getClassResolver().resolveMandatoryClass(type);
-            } catch (ClassNotFoundException e) {
-                throw ObjectHelper.wrapRuntimeCamelException(e);
-            }
-        }
-
-        return super.createExpression(camelContext);
-    }
-
-    @Override
-    protected void configureExpression(CamelContext camelContext, Expression expression) {
-        super.configureExpression(camelContext, expression);
-        if (resultType != null) {
-            setProperty(expression, "resultType", resultType);
-        }
-    }
-
-    @Override
-    protected void configurePredicate(CamelContext camelContext, Predicate predicate) {
-        super.configurePredicate(camelContext, predicate);
-        if (resultType != null) {
-            setProperty(predicate, "resultType", resultType);
-        }
+        return "vtdxml";
     }
 
 }

Modified: camel/trunk/camel-core/src/main/resources/org/apache/camel/model/language/jaxb.index
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/resources/org/apache/camel/model/language/jaxb.index?rev=1378628&r1=1378627&r2=1378628&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/resources/org/apache/camel/model/language/jaxb.index (original)
+++ camel/trunk/camel-core/src/main/resources/org/apache/camel/model/language/jaxb.index Wed Aug 29 16:05:44 2012
@@ -34,5 +34,6 @@ SimpleExpression
 SpELExpression
 SqlExpression
 TokenizerExpression
+VtdXmlExpression
 XPathExpression
 XQueryExpression