Red Hat Training

A Red Hat training course is available for Red Hat Fuse

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 および RouteContainer Bean の自動設定を無効にする必要がある場合があります。これは、CdiCamelConfiguration イベントを監視することで実現できます。

static void configuration(@Observes CdiCamelConfiguration configuration) {
    configuration.autoConfigureRoutes(false);
}

同様に、設定された CamelContext Bean の自動起動を無効にすることができます。

static void configuration(@Observes CdiCamelConfiguration configuration) {
    configuration.autoStartContexts(false);
}