第15章 EL

概要

Unified Expression Language (EL) は当初 JSP 2.1 標準 (JSR-245) の一部として策定されました。現在は、スタンドアロン言語としても利用できるようになりました。Apache Camel は EL 言語のオープンソース実装である JUEL (http://juel.sourceforge.net/) と統合しています。

JUEL パッケージの追加

ルートで EL を使用するには、例15.1「camel-juel 依存関係の追加」 で示すように、camel-juel の依存関係をプロジェクトに追加する必要があります。

例15.1 camel-juel 依存関係の追加

<!-- Maven POM File -->
<properties>
  <camel-version>2.23.2.fuse-7_10_0-00018-redhat-00001</camel-version>
  ...
</properties>

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

静的インポート

アプリケーションコードで el() static メソッドを使用するには、以下の import ステートメントを Java ソースファイルに追加します。

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

変数

表15.1「EL 変数」 は、EL を使用する際にアクセス可能な変数の一覧を示しています。

表15.1 EL 変数

変数

exchange

org.apache.camel.Exchange

現在のエクスチェンジ

in

org.apache.camel.Message

IN メッセージ

out

org.apache.camel.Message

OUT メッセージ

例15.2「EL を使用したルート」 は、EL を使用する 2 つのルートを示しています。

例15.2 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>