38.2. コンポーネントの実装方法
概要
このセクションでは、カスタム Apache Camel コンポーネントを実装するのに必要な手順の概要を説明します。
実装する必要のあるインターフェイス。
コンポーネントを実装する場合は通常、以下の Java インターフェイスを実装する必要があります。
- org.apache.camel.Component
- org.apache.camel.Endpoint
- org.apache.camel.Consumer
- org.apache.camel.Producer
さらに、以下の Java インターフェイスを実装する必要もあります。
- org.apache.camel.Exchange
- org.apache.camel.Message
実装手順
Component インターフェイスを実装する: コンポーネントオブジェクトはエンドポイントファクトリーとして機能します。
DefaultComponent
クラスを拡張し、createEndpoint()
メソッドを実装します。39章Component インターフェイス を参照してください。
Endpoint インターフェイスを実装する: エンドポイントは、特定の URI で識別されるリソースを表します。エンドポイントを実装する際の方法は、コンシューマーが イベント駆動型 のパターン、スケジュールされたポーリング パターン、または ポーリング パターンに従うかによって異なります。 イベント駆動型のパターンでは、
DefaultEndpoint
クラスを拡張し、以下のメソッドを実装してエンドポイントを実装します。-
createProducer()
createConsumer()
スケジュールされたポーリングパターンの場合、
ScheduledPollEndpoint
クラスを拡張し、以下のメソッドを実装してエンドポイントを実装します。-
createProducer()
createConsumer()
ポーリングパターンの場合、
DefaultPollingEndpoint
クラスを拡張し、以下のメソッドを実装してエンドポイントを実装します。-
createProducer()
createPollConsumer()
40章Endpoint インターフェイス を参照してください。
-
Consumer インターフェイスを実装する: 実装する必要があるパターン (イベント駆動、スケジュールされたポーリング、ポーリング) に応じて、コンシューマーを実装する方法が複数あります。また、メッセージ交換の処理に使用されるスレッドモデルを決定する際には、コンシューマーの実装も重要です。
「Consumer インターフェイスの実装」 を参照してください。
Producer インターフェイスを実装- Producer インターフェイス を実装するには、
DefaultProducer
クラスを拡張し、process()
メソッドを実装します。42章Producer インターフェイス を参照してください。
任意で Exchange または Message インターフェイスを実装する: エクスチェンジとメッセージのデフォルト実装を直接使用できますが、場合によってはこれらのタイプをカスタマイズする必要がある場合があります。
43章Exchange インターフェイス および 44章Message インターフェイス を参照してください。
コンポーネントのインストールおよび設定
カスタムコンポーネントは、以下のいずれかの方法でインストールできます。
-
コンポーネントを CamelContext に直接追加する: この
CamelContext.addComponent()
メソッドは、プログラム的にコンポーネントを追加します。 -
Spring 設定を使用してコンポーネントを追加する: 標準の Spring
bean
要素はコンポーネントインスタンスを作成します。Bean のid
属性は、コンポーネント接頭辞を暗黙的に定義します。詳細は、「コンポーネントの設定」 を参照してください。 - Apache Camel をコンポーネント自動検出するように設定する: Apache Camel が必要に応じてコンポーネントを自動的に読み込みます。詳細は、「自動検出の設定」 を参照してください。