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");
+
             }
         };
     }


Reply via email to