Since we're on a major migration process of this website, some component documents here are out of sync right now. In the meantime you may want to look at the early version of the new website
We would very much like to receive any feedback on the new site, please join the discussion on the Camel user mailing list.


Expressions and Predicates can then be used to create the various Enterprise Integration Patterns in the DSL or Xml Configuration like the Recipient List.
To support dynamic rules Camel supports pluggable Expression strategies using a variety of different Languages.


If you are outside of the DSL and want to create your own expressions you can either implement the Expression interface, reuse one of the other builders or try the ExpressionBuilder class.


The API for a Camel Expression is defined in the org.apache.camel.Expression interface as shown:

public interface Expression {

     * Returns the value of the expression on the given exchange
     * @param exchange the message exchange on which to evaluate the expression
     * @param type the expected type of the evaluation result
     * @return the value of the expression
    <T> T evaluate(Exchange exchange, Class<T> type);


The API for a Camel Predicate is defined in the org.apache.camel.Predicate interface as shown:

public interface Predicate {

     * Evaluates the predicate on the message exchange and returns true if this
     * exchange matches the predicate
     * @param exchange the message exchange
     * @return true if the predicate matches
    boolean matches(Exchange exchange);


Expression Languages

The following languages are supported out of the box

Using Expressions in your IDE

To use different expression and predicates in your IDE you need to perform a static import of the builder class for the language(s) you wish to use.

See Also

© 2004-2015 The Apache Software Foundation.
Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
Graphic Design By Hiram