Red Hat Training

A Red Hat training course is available for Red Hat Fuse

67.6. シンプルな言語を使用する

コントロールバスで Simple 言語を使用できます。たとえば、特定のルートを停止するには、次のメッセージを含む "controlbus:language:simple" エンドポイントにメッセージを送信できます。

template.sendBody("controlbus:language:simple", "${camelContext.stopRoute('myRoute')}");

これは無効な操作であるため、結果は返されません。ただし、ルートステータスが必要な場合は、次のことができます。

String status = template.requestBody("controlbus:language:simple", "${camelContext.getRouteStatus('myRoute')}", String.class);

route コマンドを使用してルートのライフサイクルを制御する方が簡単です。language コマンドを使用すると、Groovy などのより強力な言語スクリプトを実行したり、Simple 言語を拡張したりできます。

たとえば、Camel 自体をシャットダウンするには、次のようにします。

template.sendBody("controlbus:language:simple?async=true", "${camelContext.stop()}");

async=true を使用して Camel を非同期的に停止します。そうしないと、制御バスコンポーネントに送信したメッセージを処理中に Camel を停止しようとすることになります。

ヒント

Groovy などの他の言語も使用できます。