第57章 Camel CDI
Camel CDI コンポーネントは、convention-over-configuration に基づく依存性注入フレームワークとして CDI を使用して、Apache Camel の自動設定を提供します。アプリケーションで使用可能な Camel ルートを自動検出し、Endpoint
、FluentProducerTemplate
、ProducerTemplate
、TypeConverter
などの一般的な Camel プリミティブの Bean を提供します。@Consume
、@Produce
、@PropertyInject
などの Camel アノテーションを CDI Bean でシームレスに使用できるように、標準の Camel Bean 統合を実装します。さらに、Camel イベント (RouteAddedEvent
、CamelContextStartedEvent
、ExchangeCompletedEvent
など) を 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 を使用します。
57.1. 自動設定された Camel コンテキスト
Camel CDI は、CamelContext
Bean を自動的にデプロイおよび設定します。その CamelContext
Bean は、CDI コンテナーの初期化 (またはシャットダウン) 時に、自動的にインスタンス化、設定、および開始 (または停止) されます。アプリケーションに注入できます。たとえば、次のようになります。
@Inject CamelContext context;
そのデフォルトの CamelContext
Bean は、ビルトインの @Default
修飾子で修飾され、スコープが @ApplicationScoped
であり、タイプ DefaultCamelContext
です。
この Bean はプログラムでカスタマイズでき、他の Camel コンテキスト Bean もアプリケーションにデプロイできることに注意してください。