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

実装手順

通常、以下のようにカスタムコンポーネントを実装します。

  1. Component インターフェイスを実装する: コンポーネントオブジェクトはエンドポイントファクトリーとして機能します。DefaultComponent クラスを拡張し、createEndpoint() メソッドを実装します。

    39章Component インターフェイスを参照してください。

  2. Endpoint インターフェイスを実装する: エンドポイントは、特定の URI で識別されるリソースを表します。エンドポイントを実装する際の方法は、コンシューマーが イベント駆動型 のパターン、スケジュールされたポーリング パターン、または ポーリング パターンに従うかによって異なります。 イベント駆動型のパターンでは、DefaultEndpoint クラスを拡張し、以下のメソッドを実装してエンドポイントを実装します。

    • createProducer()
    • createConsumer()

      スケジュールされたポーリングパターンの場合、ScheduledPollEndpoint クラスを拡張し、以下のメソッドを実装してエンドポイントを実装します。

    • createProducer()
    • createConsumer()

      ポーリングパターンの場合、DefaultPollingEndpoint クラスを拡張し、以下のメソッドを実装してエンドポイントを実装します。

    • createProducer()
    • createPollConsumer()

      40章Endpoint インターフェイスを参照してください。

  3. Consumer インターフェイスを実装する: 実装する必要があるパターン (イベント駆動、スケジュールされたポーリング、ポーリング) に応じて、コンシューマーを実装する方法が複数あります。また、メッセージ交換の処理に使用されるスレッドモデルを決定する際には、コンシューマーの実装も重要です。

    「Consumer インターフェイスの実装」を参照してください。

  4. Producer インターフェイスを実装- Producer インターフェイス を実装するには、DefaultProducer クラスを拡張し、process() メソッドを実装します。

    42章Producer インターフェイスを参照してください。

  5. 任意で Exchange または Message インターフェイスを実装する: エクスチェンジとメッセージのデフォルト実装を直接使用できますが、場合によってはこれらのタイプをカスタマイズする必要がある場合があります。

    43章Exchange インターフェイス および 44章Message インターフェイス を参照してください。

コンポーネントのインストールおよび設定

カスタムコンポーネントは、以下のいずれかの方法でインストールできます。

  • コンポーネントを CamelContext に直接追加する: この CamelContext.addComponent() メソッドは、プログラム的にコンポーネントを追加します。
  • Spring 設定を使用してコンポーネントを追加する: 標準の Spring bean 要素はコンポーネントインスタンスを作成します。Bean の id 属性は、コンポーネント接頭辞を暗黙的に定義します。詳細は、「コンポーネントの設定」 を参照してください。
  • Apache Camel をコンポーネント自動検出するように設定する: Apache Camel が必要に応じてコンポーネントを自動的に読み込みます。詳細は、「自動検出の設定」 を参照してください。