[CONF] Apache Camel: Mvel (page edited)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[CONF] Apache Camel: Mvel (page edited)

Dhiraj Bokde (Confluence)

Mvel has been edited by Claus Ibsen (Jan 20, 2009).

(View changes)



Avialable in Camel 2.0

Camel allows Mvel to be used as an Expression or Predicate the DSL or Xml Configuration.

You could use Mvel to create an Predicate in a Message Filter or as an Expression for a Recipient List

You can use Mvel dot notation to invoke operations. If you for instance have a body that contains a POJO that has a getFamiliyName method then you can construct the syntax as follows:

   // or 


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


For example you could use Mvel inside a Message Filter in XML

  <from uri="seda:foo"/>
    <mvel>request.headers.foo = 'bar'</mvel>
    <to uri="seda:bar"/>

And the sample using Java DSL:

from("seda:foo").filter().mvel("request.headers.foo = 'bar'").to("seda:bar");


To use Mvel in your camel routes you need to add the a dependency on camel-mvel which implements the Mvel 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).