第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.23.2.fuse-7_10_0-00018-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 を使用する際にアクセス可能な組み込み属性の一覧を示します。
属性 | 型 | 値 |
---|---|---|
|
| 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 Component Reference Guide の Properties を参照してください。