MVEL (http://mvel.codehaus.org/) is a Java-based dynamic language
that is similar to OGNL, but is reported to be much faster. The MVEL support is in the
camel-mvel module.
To use MVEL in your routes you need to add a dependency on
camel-mvel to your project as shown in
Example 9, “Adding the camel-mvel dependency”.
Example 9. Adding the camel-mvel dependency
<!-- Maven POM File -->
<properties>
<camel-version>2.11.0-fuse-00-xx</camel-version>
...
</properties>
<dependencies>
...
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-mvel</artifactId>
<version>${camel-version}</version>
</dependency>
...
</dependencies>Table 5, “MVEL variables” lists the built-in variables that are accessible when using MVEL.
Table 5. MVEL variables
| Name | Type | Description |
|---|---|---|
this | org.apache.camel.Exchange | The current Exchange |
exchange | org.apache.camel.Exchange | The current Exchange |
exception | Throwable | the Exchange exception (if any) |
exchangeID | String | the Exchange ID |
fault | org.apache.camel.Message | The Fault message(if any) |
request | org.apache.camel.Message | The IN message |
response | org.apache.camel.Message | The OUT message |
properties | Map | The Exchange properties |
property( | Object | The value of the named Exchange property |
property( | | The typed value of the named Exchange property |
Example 10, “Route using MVEL” shows a route that uses MVEL.
Example 10. Route using MVEL
<camelContext>
<route>
<from uri="seda:foo"/>
<filter>
<language langauge="mvel">request.headers.foo == 'bar'</language>
<to uri="seda:bar"/>
</filter>
</route>
</camelContext>