第19章 JavaScript
概要
ECMAScript としても知られる JavaScript は、オブジェクトを素早く解析できる Java ベースのスクリプト言語です。JavaScript サポートは camel-script モジュールに含まれます。
スクリプトモジュールの追加
ルートで JavaScript を使用するには、例19.1「camel-script 依存関係の追加」 で示したたように、camel-script の依存関係をプロジェクトに追加する必要があります。
例19.1 camel-script 依存関係の追加
<!-- Maven POM File -->
<properties>
<camel-version>2.21.0.fuse-770013-redhat-00001</camel-version>
...
</properties>
<dependencies>
...
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-script</artifactId>
<version>${camel-version}</version>
</dependency>
...
</dependencies>静的インポート
アプリケーションコードで javaScript() static メソッドを使用するには、以下の import ステートメントを Java ソースファイルに追加します。
import static org.apache.camel.builder.script.ScriptBuilder.*;
組み込み属性
表19.1「JavaScript 属性」 に、JavaScript を使用する際にアクセス可能な組み込み属性の一覧を示します。
表19.1 JavaScript 属性
| 属性 | タイプ | 値 |
|---|---|---|
|
|
| Camel コンテキスト |
|
|
| 現在のエクスチェンジ |
|
|
| IN メッセージ |
|
|
| OUT メッセージ |
|
|
|
スクリプト内でプロパティーコンポーネントを簡単に使用できるようにする |
属性はすべて ENGINE_SCOPE に設定されます。
例
例19.2「JavaScript を使用したルート」 は、JavaScript を使用したルートを示しています。
例19.2 JavaScript を使用したルート
<camelContext>
<route>
<from uri="direct:start"/>
<choice>
<when>
<langauge langauge="javaScript">request.headers.get('user') == 'admin'</langauge>
<to uri="seda:adminQueue"/>
</when>
<otherwise>
<to uri="seda:regularQueue"/>
</otherwise>
</choice>
</route>
</camelContext>プロパティーコンポーネントの使用
プロパティーコンポーネントからプロパティー値にアクセスするには、以下のように組み込み properties 属性で resolve メソッドを呼び出します。
.setHeader("myHeader").javaScript("properties.resolve(PropKey)")
PropKey は、解決するプロパティーのキーで、キーの値は String タイプになります。
プロパティーコンポーネントの詳細は、Apache Camel コンポーネントリファレンスガイド の プロパティー を参照してください。