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>