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