You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cs...@apache.org on 2011/09/19 14:41:10 UTC

svn commit: r1172594 - in /camel/trunk/camel-core/src/main/java/org/apache/camel: builder/ language/bean/ language/constant/ language/header/ language/property/ language/ref/ language/simple/ language/simple/ast/ language/tokenizer/ model/ model/langua...

Author: cschneider
Date: Mon Sep 19 12:41:10 2011
New Revision: 1172594

URL: http://svn.apache.org/viewvc?rev=1172594&view=rev
Log:
Avoid accessing PredicateBuilder.toExpression from other packages by offering this method in a util class

Added:
    camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExpressionToPredicateAdapter.java
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/PredicateBuilder.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/BeanLanguage.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/language/constant/ConstantLanguage.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/language/header/HeaderLanguage.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/language/property/PropertyLanguage.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/language/ref/RefLanguage.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleBackwardsCompatibleParser.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/CatchDefinition.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/TryDefinition.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java Mon Sep 19 12:41:10 2011
@@ -27,10 +27,9 @@ import org.apache.camel.processor.Redeli
 import org.apache.camel.spi.Language;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelLogger;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.builder.PredicateBuilder.toPredicate;
-
 /**
  * The default error handler builder.
  *
@@ -249,7 +248,7 @@ public class DefaultErrorHandlerBuilder 
      * @return the builder
      */
     public DefaultErrorHandlerBuilder retryWhile(Expression retryWhile) {
-        setRetryWhile(toPredicate(retryWhile));
+        setRetryWhile(ExpressionToPredicateAdapter.toPredicate(retryWhile));
         return this;
     }
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/PredicateBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/PredicateBuilder.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/PredicateBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/PredicateBuilder.java Mon Sep 19 12:41:10 2011
@@ -24,6 +24,7 @@ import java.util.regex.Pattern;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 import org.apache.camel.util.ObjectHelper;
 
 import static org.apache.camel.util.ObjectHelper.notNull;
@@ -41,26 +42,12 @@ public final class PredicateBuilder {
      */
     private PredicateBuilder() {
     }
-
+    
     /**
      * Converts the given expression into an {@link Predicate}
      */
     public static Predicate toPredicate(final Expression expression) {
-        return new Predicate() {
-            public boolean matches(Exchange exchange) {
-                if (expression instanceof Predicate) {
-                    return ((Predicate) expression).matches(exchange);
-                } else {
-                    Object value = expression.evaluate(exchange, Object.class);
-                    return ObjectHelper.evaluateValuePredicate(value);
-                }
-            }
-
-            @Override
-            public String toString() {
-                return expression.toString();
-            }
-        };
+        return ExpressionToPredicateAdapter.toPredicate(expression);
     }
 
     /**

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=1172594&r1=1172593&r2=1172594&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 Mon Sep 19 12:41:10 2011
@@ -23,6 +23,7 @@ import java.util.List;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 
 /**
  * A builder of expressions or predicates based on values.
@@ -54,11 +55,11 @@ public class ValueBuilder implements Exp
     // -------------------------------------------------------------------------
 
     public Predicate matches(Expression expression) {
-        return onNewPredicate(PredicateBuilder.toPredicate(expression));
+        return onNewPredicate(ExpressionToPredicateAdapter.toPredicate(expression));
     }
 
     public ExpressionClause<Predicate> matches() {
-        return new ExpressionClause<Predicate>(onNewPredicate(PredicateBuilder.toPredicate(expression))); 
+        return new ExpressionClause<Predicate>(onNewPredicate(ExpressionToPredicateAdapter.toPredicate(expression))); 
     }
 
     public Predicate isNotEqualTo(Object value) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/BeanLanguage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/BeanLanguage.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/BeanLanguage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/bean/BeanLanguage.java Mon Sep 19 12:41:10 2011
@@ -19,8 +19,8 @@ package org.apache.camel.language.bean;
 import org.apache.camel.Expression;
 import org.apache.camel.IsSingleton;
 import org.apache.camel.Predicate;
-import org.apache.camel.builder.PredicateBuilder;
 import org.apache.camel.spi.Language;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 import org.apache.camel.util.ObjectHelper;
 
 /**
@@ -77,7 +77,7 @@ public class BeanLanguage implements Lan
     }
 
     public Predicate createPredicate(String expression) {
-        return PredicateBuilder.toPredicate(createExpression(expression));
+        return ExpressionToPredicateAdapter.toPredicate(createExpression(expression));
     }
 
     public Expression createExpression(String expression) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/constant/ConstantLanguage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/constant/ConstantLanguage.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/constant/ConstantLanguage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/constant/ConstantLanguage.java Mon Sep 19 12:41:10 2011
@@ -20,8 +20,8 @@ import org.apache.camel.Expression;
 import org.apache.camel.IsSingleton;
 import org.apache.camel.Predicate;
 import org.apache.camel.builder.ExpressionBuilder;
-import org.apache.camel.builder.PredicateBuilder;
 import org.apache.camel.spi.Language;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 
 /**
  * A language for constant expressions.
@@ -33,7 +33,7 @@ public class ConstantLanguage implements
     }
 
     public Predicate createPredicate(String expression) {
-        return PredicateBuilder.toPredicate(createExpression(expression));
+        return ExpressionToPredicateAdapter.toPredicate(createExpression(expression));
     }
 
     public Expression createExpression(String expression) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/header/HeaderLanguage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/header/HeaderLanguage.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/header/HeaderLanguage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/header/HeaderLanguage.java Mon Sep 19 12:41:10 2011
@@ -20,8 +20,8 @@ import org.apache.camel.Expression;
 import org.apache.camel.IsSingleton;
 import org.apache.camel.Predicate;
 import org.apache.camel.builder.ExpressionBuilder;
-import org.apache.camel.builder.PredicateBuilder;
 import org.apache.camel.spi.Language;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 
 /**
  * A language for header expressions.
@@ -33,7 +33,7 @@ public class HeaderLanguage implements L
     }
 
     public Predicate createPredicate(String expression) {
-        return PredicateBuilder.toPredicate(createExpression(expression));
+        return ExpressionToPredicateAdapter.toPredicate(createExpression(expression));
     }
 
     public Expression createExpression(String expression) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/property/PropertyLanguage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/property/PropertyLanguage.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/property/PropertyLanguage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/property/PropertyLanguage.java Mon Sep 19 12:41:10 2011
@@ -20,8 +20,8 @@ import org.apache.camel.Expression;
 import org.apache.camel.IsSingleton;
 import org.apache.camel.Predicate;
 import org.apache.camel.builder.ExpressionBuilder;
-import org.apache.camel.builder.PredicateBuilder;
 import org.apache.camel.spi.Language;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 
 /**
  * A language for property expressions.
@@ -33,7 +33,7 @@ public class PropertyLanguage implements
     }
 
     public Predicate createPredicate(String expression) {
-        return PredicateBuilder.toPredicate(createExpression(expression));
+        return ExpressionToPredicateAdapter.toPredicate(createExpression(expression));
     }
 
     public Expression createExpression(String expression) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/ref/RefLanguage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/ref/RefLanguage.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/ref/RefLanguage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/ref/RefLanguage.java Mon Sep 19 12:41:10 2011
@@ -21,9 +21,9 @@ import org.apache.camel.Expression;
 import org.apache.camel.IsSingleton;
 import org.apache.camel.Predicate;
 import org.apache.camel.builder.ExpressionBuilder;
-import org.apache.camel.builder.PredicateBuilder;
 import org.apache.camel.spi.Language;
 import org.apache.camel.support.ExpressionAdapter;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 
 /**
  * A language for referred expressions.
@@ -36,7 +36,7 @@ public class RefLanguage implements Lang
     }
 
     public Predicate createPredicate(String expression) {
-        return PredicateBuilder.toPredicate(createExpression(expression));
+        return ExpressionToPredicateAdapter.toPredicate(createExpression(expression));
     }
 
     public Expression createExpression(final String expression) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleBackwardsCompatibleParser.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleBackwardsCompatibleParser.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleBackwardsCompatibleParser.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleBackwardsCompatibleParser.java Mon Sep 19 12:41:10 2011
@@ -18,11 +18,11 @@ package org.apache.camel.language.simple
 
 import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
-import org.apache.camel.builder.PredicateBuilder;
 import org.apache.camel.language.simple.ast.SimpleFunctionExpression;
 import org.apache.camel.language.simple.types.SimpleToken;
 import org.apache.camel.language.simple.types.SimpleTokenType;
 import org.apache.camel.language.simple.types.TokenType;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 
 /**
  * A backwards compatible parser, which supports the old simple language
@@ -50,7 +50,7 @@ public final class SimpleBackwardsCompat
     public static Predicate parsePredicate(String expression) {
         Expression answer = doParseExpression(expression);
         if (answer != null) {
-            return PredicateBuilder.toPredicate(answer);
+            return ExpressionToPredicateAdapter.toPredicate(answer);
         } else {
             return null;
         }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java Mon Sep 19 12:41:10 2011
@@ -44,6 +44,7 @@ import org.apache.camel.language.simple.
 import org.apache.camel.language.simple.types.SimpleParserException;
 import org.apache.camel.language.simple.types.SimpleToken;
 import org.apache.camel.language.simple.types.TokenType;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 
 /**
  * A parser to parse simple language as a Camel {@link Predicate}
@@ -422,7 +423,7 @@ public class SimplePredicateParser exten
         for (SimpleNode node : nodes) {
             Expression exp = node.createExpression(expression);
             if (exp != null) {
-                Predicate predicate = PredicateBuilder.toPredicate(exp);
+                Predicate predicate = ExpressionToPredicateAdapter.toPredicate(exp);
                 answer.add(predicate);
             }
         }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java Mon Sep 19 12:41:10 2011
@@ -23,6 +23,7 @@ import org.apache.camel.builder.Predicat
 import org.apache.camel.language.simple.types.LogicalOperatorType;
 import org.apache.camel.language.simple.types.SimpleParserException;
 import org.apache.camel.language.simple.types.SimpleToken;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 import org.apache.camel.util.ObjectHelper;
 
 /**
@@ -79,8 +80,8 @@ public class LogicalExpression extends B
         return new Expression() {
             @Override
             public <T> T evaluate(Exchange exchange, Class<T> type) {
-                Predicate predicate = PredicateBuilder.toPredicate(leftExp);
-                predicate = PredicateBuilder.and(predicate, PredicateBuilder.toPredicate(rightExp));
+                Predicate predicate = ExpressionToPredicateAdapter.toPredicate(leftExp);
+                predicate = PredicateBuilder.and(predicate, ExpressionToPredicateAdapter.toPredicate(rightExp));
 
                 boolean answer = predicate.matches(exchange);
                 return exchange.getContext().getTypeConverter().convertTo(type, answer);
@@ -97,8 +98,8 @@ public class LogicalExpression extends B
         return new Expression() {
             @Override
             public <T> T evaluate(Exchange exchange, Class<T> type) {
-                Predicate predicate = PredicateBuilder.toPredicate(leftExp);
-                predicate = PredicateBuilder.or(predicate, PredicateBuilder.toPredicate(rightExp));
+                Predicate predicate = ExpressionToPredicateAdapter.toPredicate(leftExp);
+                predicate = PredicateBuilder.or(predicate, ExpressionToPredicateAdapter.toPredicate(rightExp));
 
                 boolean answer = predicate.matches(exchange);
                 return exchange.getContext().getTypeConverter().convertTo(type, answer);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java Mon Sep 19 12:41:10 2011
@@ -20,8 +20,8 @@ import org.apache.camel.Expression;
 import org.apache.camel.IsSingleton;
 import org.apache.camel.Predicate;
 import org.apache.camel.builder.ExpressionBuilder;
-import org.apache.camel.builder.PredicateBuilder;
 import org.apache.camel.spi.Language;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 import org.apache.camel.util.ObjectHelper;
 
 /**
@@ -57,7 +57,7 @@ public class TokenizeLanguage implements
     }
 
     public Predicate createPredicate(String expression) {
-        return PredicateBuilder.toPredicate(createExpression(expression));
+        return ExpressionToPredicateAdapter.toPredicate(createExpression(expression));
     }
 
     /**

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/CatchDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/CatchDefinition.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/CatchDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/CatchDefinition.java Mon Sep 19 12:41:10 2011
@@ -34,7 +34,7 @@ import org.apache.camel.builder.Expressi
 import org.apache.camel.processor.CatchProcessor;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CastUtils;
-import static org.apache.camel.builder.PredicateBuilder.toPredicate;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 
 /**
  * Represents an XML &lt;catch/&gt; element
@@ -197,7 +197,7 @@ public class CatchDefinition extends Pro
      */
     @Deprecated
     public CatchDefinition handled(Expression handled) {
-        setHandledPolicy(toPredicate(handled));
+        setHandledPolicy(ExpressionToPredicateAdapter.toPredicate(handled));
         return this;
     }
 

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=1172594&r1=1172593&r2=1172594&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 Mon Sep 19 12:41:10 2011
@@ -42,10 +42,9 @@ import org.apache.camel.spi.ClassResolve
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.CastUtils;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 import org.apache.camel.util.ObjectHelper;
 
-import static org.apache.camel.builder.PredicateBuilder.toPredicate;
-
 /**
  * Represents an XML &lt;onException/&gt; element
  *
@@ -281,7 +280,7 @@ public class OnExceptionDefinition exten
      * @return the builder
      */
     public OnExceptionDefinition handled(Expression handled) {
-        setHandledPolicy(toPredicate(handled));
+        setHandledPolicy(ExpressionToPredicateAdapter.toPredicate(handled));
         return this;
     }
 
@@ -320,7 +319,7 @@ public class OnExceptionDefinition exten
      * @return the builder
      */
     public OnExceptionDefinition continued(Expression continued) {
-        setContinuedPolicy(toPredicate(continued));
+        setContinuedPolicy(ExpressionToPredicateAdapter.toPredicate(continued));
         return this;
     }
 
@@ -360,7 +359,7 @@ public class OnExceptionDefinition exten
      * @return the builder
      */
     public OnExceptionDefinition retryWhile(Expression retryWhile) {
-        setRetryWhilePolicy(toPredicate(retryWhile));
+        setRetryWhilePolicy(ExpressionToPredicateAdapter.toPredicate(retryWhile));
         return this;
     }
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/TryDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/TryDefinition.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/TryDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/TryDefinition.java Mon Sep 19 12:41:10 2011
@@ -34,8 +34,7 @@ import org.apache.camel.processor.CatchP
 import org.apache.camel.processor.TryProcessor;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CastUtils;
-
-import static org.apache.camel.builder.PredicateBuilder.toPredicate;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 
 /**
  * Represents an XML &lt;try/&gt; element
@@ -191,7 +190,7 @@ public class TryDefinition extends Outpu
      */
     @Deprecated
     public TryDefinition handled(Expression handled) {
-        return handled(toPredicate(handled));
+        return handled(ExpressionToPredicateAdapter.toPredicate(handled));
     }
 
     // Properties

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java Mon Sep 19 12:41:10 2011
@@ -38,6 +38,7 @@ import org.apache.camel.spi.Language;
 import org.apache.camel.spi.Required;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CollectionStringBuffer;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
 
@@ -146,7 +147,7 @@ public class ExpressionDefinition implem
             if (getExpressionType() != null) {
                 predicate = getExpressionType().createPredicate(camelContext);
             } else if (getExpressionValue() != null) {
-                predicate = PredicateBuilder.toPredicate(getExpressionValue());
+                predicate = new ExpressionToPredicateAdapter(getExpressionValue());
             } else if (getExpression() != null) {
                 ObjectHelper.notNull("language", getLanguage());
                 Language language = camelContext.resolveLanguage(getLanguage());

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java?rev=1172594&r1=1172593&r2=1172594&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java Mon Sep 19 12:41:10 2011
@@ -21,9 +21,9 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.ExpressionBuilder;
-import org.apache.camel.builder.PredicateBuilder;
 import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;
 import org.apache.camel.util.CamelLogger;
+import org.apache.camel.util.ExpressionToPredicateAdapter;
 
 /**
  * Implements a <a
@@ -74,6 +74,6 @@ public class DeadLetterChannel extends R
     @Override
     protected Predicate getDefaultHandledPredicate() {
         // DeadLetterChannel handles errors before sending to DLQ
-        return PredicateBuilder.toPredicate(ExpressionBuilder.constantExpression(true));
+        return ExpressionToPredicateAdapter.toPredicate(ExpressionBuilder.constantExpression(true));
     }
 }

Added: camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExpressionToPredicateAdapter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExpressionToPredicateAdapter.java?rev=1172594&view=auto
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExpressionToPredicateAdapter.java (added)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/ExpressionToPredicateAdapter.java Mon Sep 19 12:41:10 2011
@@ -0,0 +1,51 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.util;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Expression;
+import org.apache.camel.Predicate;
+
+public final class ExpressionToPredicateAdapter implements Predicate {
+    private final Expression expression;
+
+    public ExpressionToPredicateAdapter(Expression expression) {
+        this.expression = expression;
+    }
+
+    public boolean matches(Exchange exchange) {
+        if (expression instanceof Predicate) {
+            return ((Predicate) expression).matches(exchange);
+        } else {
+            Object value = expression.evaluate(exchange, Object.class);
+            return ObjectHelper.evaluateValuePredicate(value);
+        }
+    }
+
+    @Override
+    public String toString() {
+        return expression.toString();
+    }
+
+    /**
+     * Converts the given expression into an {@link Predicate}
+     */
+    public static Predicate toPredicate(final Expression expression) {
+        return new ExpressionToPredicateAdapter(expression);
+    }
+    
+}
\ No newline at end of file