第59章 Camel CDI

Camel CDI コンポーネントは、convention-over-configuration に基づく依存性注入フレームワークとして CDI を使用して、Apache Camel の自動設定を提供します。アプリケーションで使用可能な Camel ルートを自動検出し、EndpointFluentProducerTemplateProducerTemplateTypeConverter などの一般的な Camel プリミティブの Bean を提供します。@Consume@Produce@PropertyInject などの Camel アノテーションを CDI Bean でシームレスに使用できるように、標準の Camel Bean 統合を実装します。さらに、Camel イベント (RouteAddedEventCamelContextStartedEventExchangeCompletedEvent など) を CDI イベントとしてブリッジし、Camel ルートから/への CDI イベントを消費/生成するために使用できる CDI イベントエンドポイントを提供します。

Camel CDI コンポーネントは Camel 2.10 で利用できますが、CDI プログラミングモデルにより適合するように Camel 2.17 で書き直されました。したがって、Camel イベントから CDI イベントへのブリッジや CDI イベントエンドポイントなどの一部の機能は、Camel 2.17 以降にのみ適用されます。

Camel CDI アプリケーションをテストする方法の詳細については、Camel CDI テストを参照してください。

注意

camel-cdi は OSGi では推奨されておらず、サポートされていません。OSGi で Camel を使用する場合は、OSGi Blueprint を使用します。

59.1. 自動設定された Camel コンテキスト

Camel CDI は、CamelContext Bean を自動的にデプロイおよび設定します。その CamelContext Bean は、CDI コンテナーの初期化 (またはシャットダウン) 時に、自動的にインスタンス化、設定、および開始 (または停止) されます。アプリケーションに注入できます。たとえば、次のようになります。

@Inject
CamelContext context;

そのデフォルトの CamelContext Bean は、ビルトインの @Default 修飾子で修飾され、スコープが @ApplicationScoped であり、タイプ DefaultCamelContext です。

この Bean はプログラムでカスタマイズでき、他の Camel コンテキスト Bean もアプリケーションにデプロイできることに注意してください。