70.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 などの他の言語も使用できます。