OGNL
Since Camel 1.1
Camel allows OGNL to be used as an Expression or Predicate the DSL or Xml Configuration.
You could use OGNL to create an Predicate in a Message Filter or as an Expression for a Recipient List
You can use OGNL dot notation to invoke operations. If you for instance
have a body that contains a POJO that has a getFamilyName method then
you can construct the syntax as follows:
"request.body.familyName"
   // or
"getRequest().getBody().getFamilyName()"
OGNL Options
The OGNL language supports 1 options, which are listed below.
| Name | Default | Java Type | Description | 
|---|---|---|---|
trim  | 
  | 
  | 
Whether to trim the value to remove leading and trailing whitespaces and line breaks  | 
Variables
| Variable | Type | Description | 
|---|---|---|
this  | 
Exchange  | 
the Exchange is the root object  | 
exchange  | 
Exchange  | 
the Exchange object  | 
exception  | 
Throwable  | 
the Exchange exception (if any)  | 
exchangeId  | 
String  | 
the exchange id  | 
fault  | 
Message  | 
the Fault message (if any)  | 
request  | 
Message  | 
the exchange.in message  | 
response  | 
Message  | 
the exchange.out message (if any)  | 
properties  | 
Map  | 
the exchange properties  | 
property(name)  | 
Object  | 
the property by the given name  | 
property(name, type)  | 
Type  | 
the property by the given name as the given type  | 
Samples
For example you could use OGNL inside a Message Filter in XML
<route>
  <from uri="seda:foo"/>
  <filter>
    <ognl>request.headers.foo == 'bar'</ognl>
    <to uri="seda:bar"/>
  </filter>
</route>
And the sample using Java DSL:
from("seda:foo").filter().ognl("request.headers.foo == 'bar'").to("seda:bar");
Loading script from external resource
Since Camel 2.11
You can externalize the script and have Camel load it from a resource
such as "classpath:", "file:", or "http:".
 This is done using the following syntax: "resource:scheme:location",
eg to refer to a file on the classpath you can do:
.setHeader("myHeader").ognl("resource:classpath:myognl.txt")
Dependencies
To use OGNL in your camel routes you need to add the a dependency on camel-ognl which implements the OGNL language.
If you use maven you could just add the following to your pom.xml, substituting the version number for the latest & greatest release (see the download page for the latest versions).
<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-ognl</artifactId>
  <version>x.x.x</version>
</dependency>
Otherwise, you’ll also need OGNL
Spring Boot Auto-Configuration
When using ognl with Spring Boot make sure to use the following Maven dependency to have support for auto configuration:
<dependency>
  <groupId>org.apache.camel.springboot</groupId>
  <artifactId>camel-ognl-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>
The component supports 2 options, which are listed below.
| Name | Description | Default | Type | 
|---|---|---|---|
camel.language.ognl.enabled  | 
Whether to enable auto configuration of the ognl language. This is enabled by default.  | 
Boolean  | 
|
camel.language.ognl.trim  | 
Whether to trim the value to remove leading and trailing whitespaces and line breaks  | 
true  | 
Boolean  |