67.6. Simple 言語の使用
Simple 言語をコントロールバスと共に使用して、特定のルートを停止するなどして、以下のメッセージを含む 「controlbus:language:simple」 エンドポイントにメッセージを送信できます。
template.sendBody("controlbus:language:simple", "${camelContext.stopRoute('myRoute')}");
これは void 操作であるため、結果が返されません。ただし、ルートのステータスが必要な場合は、以下を行うことができます。
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 などの他の言語を使用することもできます。