第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.UnitOfWorkBean プロパティーの getter および setter メソッド。このプロパティーは、トランザクションに参加できるエクスチェンジにのみ必要です。 -
setExchangeId()、getExchangeId(): エクスチェンジ ID の getter メソッドおよび setter メソッド。カスタムコンポーネントがエクスチェンジ ID を使用するかどうかは実装の詳細です。 -
addOnCompletion()− エクスチェンジの処理が完了したときに呼び出されるorg.apache.camel.spi.Synchronizationコールバックオブジェクトを追加します。 -
handoverCompletions(): すべての OnCompletion コールバックオブジェクトを、指定されたエクスチェンジオブジェクトに渡します。