Author: davsclaus
Date: Fri Apr 6 16:00:38 2012
New Revision: 1310427
URL: http://svn.apache.org/viewvc?rev=1310427&view=rev
Log:
CAMEL-5146: Java DSL improved to support more of the out of the box predicates
from the built-in DSL. This was already done for the expressions.
Added:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FilterNotTest.java
- copied, changed from r1310193,
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FilterTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java?rev=1310427&r1=1310426&r2=1310427&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
Fri Apr 6 16:00:38 2012
@@ -30,7 +30,7 @@ import org.apache.camel.util.ExpressionT
*
* @version
*/
-public class ValueBuilder implements Expression {
+public class ValueBuilder implements Expression, Predicate {
private Expression expression;
private boolean not;
@@ -38,10 +38,16 @@ public class ValueBuilder implements Exp
this.expression = expression;
}
+ @Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
return expression.evaluate(exchange, type);
}
+ @Override
+ public boolean matches(Exchange exchange) {
+ return PredicateBuilder.toPredicate(getExpression()).matches(exchange);
+ }
+
public Expression getExpression() {
return expression;
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java?rev=1310427&r1=1310426&r2=1310427&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
Fri Apr 6 16:00:38 2012
@@ -352,19 +352,6 @@ public class OnExceptionDefinition exten
}
/**
- * Sets the retry while expression.
- * <p/>
- * Will continue retrying until expression evaluates to <tt>false</tt>.
- *
- * @param retryWhile expression that determines when to stop retrying
- * @return the builder
- */
- public OnExceptionDefinition retryWhile(Expression retryWhile) {
-
setRetryWhilePolicy(ExpressionToPredicateAdapter.toPredicate(retryWhile));
- return this;
- }
-
- /**
* Sets the initial redelivery delay
*
* @param delay the initial redelivery delay
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java?rev=1310427&r1=1310426&r2=1310427&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java
Fri Apr 6 16:00:38 2012
@@ -18,7 +18,6 @@ package org.apache.camel.model;
import java.util.Collections;
import java.util.List;
-
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
@@ -26,7 +25,7 @@ import javax.xml.bind.annotation.XmlRoot
import org.apache.camel.Expression;
import org.apache.camel.Processor;
-import org.apache.camel.builder.Builder;
+import org.apache.camel.model.language.HeaderExpression;
import org.apache.camel.processor.RoutingSlip;
import org.apache.camel.spi.RouteContext;
@@ -52,7 +51,7 @@ public class RoutingSlipDefinition<Type
}
public RoutingSlipDefinition(String headerName, String uriDelimiter) {
- super(Builder.header(headerName));
+ super(new HeaderExpression(headerName));
setUriDelimiter(uriDelimiter);
}
Copied:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FilterNotTest.java
(from r1310193,
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FilterTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FilterNotTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FilterNotTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FilterTest.java&r1=1310193&r2=1310427&rev=1310427&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FilterTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FilterNotTest.java
Fri Apr 6 16:00:38 2012
@@ -21,15 +21,16 @@ import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
+import static org.apache.camel.builder.PredicateBuilder.not;
+
/**
* @version
*/
-public class FilterTest extends ContextTestSupport {
+public class FilterNotTest extends ContextTestSupport {
public void testSendMatchingMessage() throws Exception {
MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result",
MockEndpoint.class);
- resultEndpoint.expectedMessageCount(1);
-
resultEndpoint.message(0).property(Exchange.FILTER_MATCHED).isEqualTo(true);
+ resultEndpoint.expectedMessageCount(0);
template.sendBodyAndHeader("direct:start", "<matched/>", "foo", "bar");
@@ -38,9 +39,10 @@ public class FilterTest extends ContextT
public void testSendNotMatchingMessage() throws Exception {
MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result",
MockEndpoint.class);
- resultEndpoint.expectedMessageCount(0);
+ resultEndpoint.expectedMessageCount(1);
+
resultEndpoint.message(0).property(Exchange.FILTER_MATCHED).isEqualTo(true);
- template.sendBodyAndHeader("direct:start", "<notMatched/>", "foo",
"notMatchedHeaderValue");
+ template.sendBody("direct:start", "<notMatched/>");
resultEndpoint.assertIsSatisfied();
}
@@ -48,7 +50,10 @@ public class FilterTest extends ContextT
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
-
from("direct:start").filter(header("foo").isEqualTo("bar")).to("mock:result");
+ from("direct:start")
+ .filter(not(header("foo")))
+ .to("mock:result");
+
}
};
}