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