第30章 Simple 言語
概要
Simple 言語は、特にエクルチェンジオブジェクトのさまざまな部分にアクセスして操作することを目的とし、Apache Camel で開発された言語です。この言語は、初期に開発された時ほどシンプルではなく、現在では論理演算子と接続詞の包括的なセットが備えられています。
30.1. Java DSL リンクのコピーリンクがクリップボードにコピーされました!
Java DSL での Simple 式 リンクのコピーリンクがクリップボードにコピーされました!
Java DSL には、ルートで simple() コマンドを使用するために、2 つのスタイルがあります。以下のように、simple() コマンドを引数としてプロセッサーに渡すこともできます。
from("seda:order")
.filter(simple("${in.header.foo}"))
.to("mock:fooOrders");
from("seda:order")
.filter(simple("${in.header.foo}"))
.to("mock:fooOrders");
または、以下のように、プロセッサーのサブ句として simple() コマンドを実行することもできます。
from("seda:order")
.filter()
.simple("${in.header.foo}")
.to("mock:fooOrders");
from("seda:order")
.filter()
.simple("${in.header.foo}")
.to("mock:fooOrders");
文字列への埋め込み リンクのコピーリンクがクリップボードにコピーされました!
プレーンテキスト文字列内に Simple 式を埋め込む場合は、プレースホルダー構文 ${Expression} を使用する必要があります。たとえば、以下のように式 in.header.name を文字列に埋め込みます。
simple("Hello ${in.header.name}, how are you?")
simple("Hello ${in.header.name}, how are you?")
開始トークンおよび終了トークンのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Java から、SimpleLanguage オブジェクトの changeFunctionStartToken static メソッドと changeFunctionEndToken static メソッドを呼び出すことで、開始トークンおよび終了トークン (デフォルトでは、{ と }) をカスタマイズできます。
たとえば、Java では以下のように、開始トークンおよび終了トークンを [ および ] に変更することができます。
// Java
import org.apache.camel.language.simple.SimpleLanguage;
...
SimpleLanguage.changeFunctionStartToken("[");
SimpleLanguage.changeFunctionEndToken("]");
// Java
import org.apache.camel.language.simple.SimpleLanguage;
...
SimpleLanguage.changeFunctionStartToken("[");
SimpleLanguage.changeFunctionEndToken("]");
開始トークンおよび終了トークンをカスタマイズすると、クラスパス上で同じ camel-core ライブラリーを共有するすべての Apache Camel アプリケーションに影響します。たとえば、OSGi サーバーでは多くのアプリケーションに影響する可能性がありますが、Web アプリケーション (WAR ファイル) では、Web アプリケーション自体にしか影響を与えません。