57.2. Camel ルートの自動検出
Camel CDI は、アプリケーション内のすべての RoutesBuilder
Bean を自動的に収集し、CDI コンテナーの初期化時に CamelContext
Bean インスタンスにインスタンス化し、追加します。たとえば、Camel ルートを追加するのは、以下のようにクラスを宣言するのと同じくらい簡単です。
class MyRouteBean extends RouteBuilder { @Override public void configure() { from("jms:invoices").to("file:/invoices"); } }
RoutesBuilder
Bean は必要なだけ宣言できることに注意してください。さらに、 RouteContainer
Bean も自動的に収集され、インスタンス化され、コンテナーの初期化時に Camel CDI によって管理される CamelContext
Bean インスタンスに追加されます。
Camel 2.19 から利用可能
場合によっては、RouteBuilder
Bean および RouteContainer
Bean の自動設定を無効にする必要がある場合があります。これは、CdiCamelConfiguration
イベントで確認できます。以下に例を示します。
static void configuration(@Observes CdiCamelConfiguration configuration) { configuration.autoConfigureRoutes(false); }
同様に、設定された CamelContext
Bean の自動開始を非アクティブにできます。以下に例を示します。
static void configuration(@Observes CdiCamelConfiguration configuration) { configuration.autoStartContexts(false); }