Author: ningjiang
Date: Mon Jun 28 07:58:48 2010
New Revision: 958494
URL: http://svn.apache.org/viewvc?rev=958494&view=rev
Log:
CAMEL-2865 added xpath DSL for the RouteBuilder
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java?rev=958494&r1=958493&r2=958494&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java
Mon Jun 28 07:58:48 2010
@@ -95,6 +95,14 @@ public final class Builder {
Expression expression = ExpressionBuilder.simpleExpression(value);
return new ValueBuilder(expression);
}
+
+ /**
+ * Returns a xpath expression
+ */
+ public static ValueBuilder xpath(String value) {
+ Expression expression = ExpressionBuilder.xpathExpression(value);
+ return new ValueBuilder(expression);
+ }
/**
* Returns a predicate and value builder for headers on an exchange
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java?rev=958494&r1=958493&r2=958494&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
Mon Jun 28 07:58:48 2010
@@ -134,6 +134,13 @@ public abstract class BuilderSupport {
public ValueBuilder simple(String value) {
return Builder.simple(value);
}
+
+ /**
+ * Returns a xpath expression value builder
+ */
+ public ValueBuilder xpath(String value) {
+ return Builder.xpath(value);
+ }
/**
* Returns a <a href="http://camel.apache.org/bean-language.html">bean
expression</a>
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java?rev=958494&r1=958493&r2=958494&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
Mon Jun 28 07:58:48 2010
@@ -1105,6 +1105,23 @@ public final class ExpressionBuilder {
}
};
}
+
+ public static Expression xpathExpression(final String expression) {
+ return new ExpressionAdapter() {
+ public Object evaluate(Exchange exchange) {
+ // resolve language using context to have a clear separation
of packages
+ // must call evaluate to return the nested language evaluate
when evaluating
+ // stacked expressions
+ Language language =
exchange.getContext().resolveLanguage("xpath");
+ return
language.createExpression(expression).evaluate(exchange, Object.class);
+ }
+
+ @Override
+ public String toString() {
+ return "xpath(" + expression + ")";
+ }
+ };
+ }
public static Expression beanExpression(final String expression) {
return new ExpressionAdapter() {