To support dynamic rules Camel supports pluggable Expression strategies using a variety of different Languages.

Expressions and Predicates can then be used to create the various Enterprise Integration Patterns in the DSL or Xml Configuration like the Recipient List.

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.

Expression Languages

The following languages are supported out of the box

Most of these languages is also supported used as Annotation Based Expression Language.

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.

Language(s) Builder class to import
Scripting Languages such as BeanShell, JavaScript, Groovy, PHP, Python and Ruby org.apache.camel.builder.script.ScriptBuilder
SQL org.apache.camel.builder.josql.SqlBuilder
XPath org.apache.camel.builder.xml.XPathBuilder
XQuery org.apache.camel.builder.saxon.XQueryBuilder

See Also