EL

Overview

The Unified Expression Language (EL) was originally specified as part of the JSP 2.1 standard (JSR-245), but it is now available as a standalone language. Apache Camel integrates with JUEL (http://juel.sourceforge.net/), which is an open source implementation of the EL language.

Adding JUEL package

To use EL in your routes you need to add a dependency on camel-juel to your project as shown in Example 5, “Adding the camel-juel dependency”.

Example 5. Adding the camel-juel dependency

<!-- Maven POM File -->
<properties>
  <camel-version>2.17.0.redhat-630187</camel-version>
  ...
</properties>

<dependencies>
  ...
  <dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-juel</artifactId>
    <version>${camel-version}</version>
  </dependency>
  ...
</dependencies>

Static import

To use the el() static method in your application code, include the following import statement in your Java source files:

import static org.apache.camel.language.juel.JuelExpression.el;

Variables

Table 4, “EL variables” lists the variables that are accessible when using EL.

Table 4. EL variables

VariableTypeValue

exchange

org.apache.camel.Exchange

The current Exchange

in

org.apache.camel.Message

The IN message

out

org.apache.camel.Message

The OUT message


Example

Example 6, “Routes using EL” shows two routes that use EL.

Example 6. Routes using EL

<camelContext>
  <route>
    <from uri="seda:foo"/>
    <filter>
      <language language="el">${in.headers.foo == 'bar'}</language>
      <to uri="seda:bar"/>
    </filter>
  </route>
  <route>
    <from uri="seda:foo2"/>
    <filter>
      <language language="el">${in.headers['My Header'] == 'bar'}</language>
      <to uri="seda:bar"/>
    </filter>
  </route>
</camelContext>