OGNL has been edited by Claus Ibsen (Sep 20, 2008).

Change summary:

CAMEL-907

(View changes)

Content:

OGNL

Camel allows OGNL to be used as an _expression_ or Predicate the DSL or Xml Configuration.

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>

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

Syntax

_expression_ 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

You can use OGNL 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:

"request.body.familyName"
   // or 
"getRequest().getBody().getFamilyName()"

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>1.4.0</version>
</dependency>

Reply via email to