10.4. Claim Check EIP

Claim Check EIP

図10.4「Claim Check パターン」 に記載されている Claim Check EIP パターンでは 、メッセージコンテンツをクレームチェック (一意の鍵) に置き換えることができます。Claim Check EIP パターンを使用して、後でメッセージコンテンツを取得します。メッセージコンテンツは、一時的にデータベースやファイルシステムなどの永続ストアに格納できます。このパターンは、メッセージコンテンツが非常に大きく (送信するに高価)、すべてのコンポーネントにすべての情報が必要でない場合に役立ちます。

また、外部の情報で信頼できない場合にも便利です。この場合、Claim Check を使用してデータの機密部分を非表示にします。

EIP パターンの Camel 実装は、メッセージコンテンツを内部メモリーストアに一時的に格納します。

図10.4 Claim Check パターン

ライブラリーに格納

10.4.1. Claim Check EIP オプション

Claim Check EIP は、以下の表に記載されているオプションをサポートしています。

名前

説明

デフォルト

operation

Claim Check 操作を使用する必要があります。以下の操作をサポートします。

* Get - 指定のキーによる Claim Check を取得します (削除しません)。

* GetAndRemove - 指定のキーによる Claim Check を取得して削除します。

* Set - 指定のキーで新規の Claim Check を設定します。キーがすでに存在する場合は上書きされます。

* Push - スタックに新しい Claim Check を設定します (キーは使用しません)。

* Pop - スタックから最新の Claim Check を取得します (キーは使用しません)。

GetGetAndRemove、または Set 操作を使用する場合は、キーを指定する必要があります。これらの操作はキーを使用してデータを保存し、取得します。これらの操作を使用して、複数のデータを異なるキーに保存します。ただし、push および pop 操作はキーを使用しませんが、データをスタック構造体に保存します。

 

ClaimCheckOperation

key

Claim Check ID に特定のキーを使用します。

 

String

filter

Claim Check リポジトリーからマージするデータを制御するフィルターを指定します。

 

String

strategyRef

デフォルトの実装の代わりにカスタム AggregationStrategy を使用します。カスタム集約ストラテジーと同時にデータを設定することはできません。

 

String

フィルターオプション

Filter オプションを使用して、Get または Pop の操作を使用する場合にマージして戻すデータを定義します。AggregationStrategy を使用してデータをマージして戻します。デフォルトのストラテジーでは、filter オプションを使用して、マージするデータを簡単に指定します。

filter オプションは、以下の構文を持つ String 値を取ります。

  • body: メッセージボディーを集約します。
  • attachments: すべてのメッセージ添付を集約します。
  • headers: すべてのメッセージヘッダーを集約します。
  • header:pattern: パターンに一致するすべてのメッセージヘッダーを集約します。

パターンルールはワイルドカードおよび正規表現をサポートします。

  • ワイルドカードの一致 (パターンが * で終わり、名前がパターンで始まります)
  • 正規表現の一致

複数のルールを指定するには、commas (,) で区切ります。

以下は、メッセージボディーおよび foo で始まるすべてのヘッダーを含む基本的なフィルターの例です。

body, header:foo*
  • メッセージのボディーのみをマージする場合: body
  • メッセージの添付のみをマージする場合: attachments
  • ヘッダーのみをマージする場合: headers
  • ヘッダー名 foo のみをマージする場合: header:foo

フィルタールールを空またはワイルドカードとして指定すると、すべてをマージできます。詳細は、Filter what data to merge back を参照してください。

注記

データをマージすると、システムは既存のデータを上書きします。また、既存のデータを格納します。