59.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);
}