第43章 Exchange インターフェイス
概要
本章では、Exchange インターフェイスについて説明します。Apache Camel 2.0 で実行される camel-core モジュールのリファクタリングにより、カスタムエクスチェンジタイプを定義する必要がなくなりました。DefaultExchange
実装をすべてのケースで使用できるようになりました。
43.1. Exchange インターフェイス リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.Exchange 型のインスタンスは、エクスチェンジプロパティーとしてエンコードされた追加のメタデータと共に、ルートを通過する現在のメッセージをカプセル化します。
図43.1「エクスチェンジ継承階層」 エクスチェンジタイプの継承階層を表示します。デフォルトの実装は常に DefaultExchange
が使用されます。
図43.1 エクスチェンジ継承階層
Exchange インターフェイス リンクのコピーリンクがクリップボードにコピーされました!
例43.1「Exchange インターフェイス」 は、org.apache.camel.Exchange インターフェースの定義を示しています。
例43.1 Exchange インターフェイス
エクスチェンジのメソッド リンクのコピーリンクがクリップボードにコピーされました!
Exchange インターフェイスは以下のメソッドを定義します。
getPattern()
、setPattern()
− エクスチェンジパターンは、org.apache.camel.ExchangePattern
に列挙される値のいずれかになります。以下の交換パターンの値がサポートされます。-
InOnly
-
RobustInOnly
-
InOut
-
InOptionalOut
-
OutOnly
-
RobustOutOnly
-
OutIn
-
OutOptionalIn
-
-
setProperty()
、getProperty()
、getProperties()
、removeProperty()
、hasProperties()
− プロパティー setter および getter メソッドを使用して、名前付きプロパティーをエクスチェンジのインスタンスに関連付けます。プロパティーは、コンポーネントの実装に必要なその他のメタデータで設定されます。 In メッセージの setter および getter メソッド
setIn()
、getIn()
。DefaultExchange
クラスが提供するgetIn()
実装は Lazy Creation セマンティクスを実装します。In メッセージが null の場合にgetIn()
が呼ばれると、DefaultExchange
クラスはデフォルトの In メッセージを作成します。setOut()
、getOut()
、hasOut()
: Out メッセージの setter メソッドおよび getter メソッド。この
getOut()
メソッドは、Out メッセージの Lazy Creation を暗黙的にサポートします。つまり、現在の Out メッセージがnull
の場合は、新しいメッセージインスタンスが自動的に作成されます。-
setException()
,getException()
− (Throwable
型の) 例外オブジェクトの getter および setter メソッド。 -
isFailed()
: エクスチェンジが例外または障害におり失敗した場合にtrue
を返します。 -
isTransacted()
− エクスチェンジが処理された場合に、true
を返します。 -
isRollback()
: エクスチェンジがロールバック用にマークされている場合にtrue
を返します。 -
getContext()
− 関連付けられたCamelContext
インスタンスへの参照を返します。 -
copy()
: 現在のカスタムエクスチェンジオブジェクトのコピーを (エクスチェンジ ID は異なります) 新たに作成します。In メッセージのボディーおよびヘッダー、Out メッセージ (存在する場合)、および Fault メッセージ (存在する場合) もこの操作によってコピーされます。 -
setFromEndpoint()
、getFromEndpoint()
: このメッセージを初期化したコンシューマーエンドポイントの getter メソッドおよび setter メソッド (通常は、ルートの開始時にfrom()
DSL コマンドに表示されるエンドポイント)。 -
setFromRouteId()
、getFromRouteId()
: このエクスチェンジを初期化したルート ID の getter および setter メソッド。getFromRouteId()
メソッドは内部でのみ呼び出す必要があります。 -
setUnitOfWork()
、getUnitOfWork()
−org.apache.camel.spi.UnitOfWork
Bean プロパティーの getter および setter メソッド。このプロパティーは、トランザクションに参加できるエクスチェンジにのみ必要です。 -
setExchangeId()
、getExchangeId()
: エクスチェンジ ID の getter メソッドおよび setter メソッド。カスタムコンポーネントがエクスチェンジ ID を使用するかどうかは実装の詳細です。 -
addOnCompletion()
− エクスチェンジの処理が完了したときに呼び出されるorg.apache.camel.spi.Synchronization
コールバックオブジェクトを追加します。 -
handoverCompletions()
: すべての OnCompletion コールバックオブジェクトを、指定されたエクスチェンジオブジェクトに渡します。