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 操作を使用する必要があります。以下の操作をサポートします。
*
*
*
*
*
| ClaimCheckOperation | |
| key | Claim Check ID に特定のキーを使用します。 | String | |
| filter | Claim Check リポジトリーからマージするデータを制御するフィルターを指定します。 | String | |
| strategyRef |
デフォルトの実装の代わりにカスタム | String |
フィルターオプション リンクのコピーリンクがクリップボードにコピーされました!
Filter オプションを使用して、Get または Pop の操作を使用する場合にマージして戻すデータを定義します。AggregationStrategy を使用してデータをマージして戻します。デフォルトのストラテジーでは、filter オプションを使用して、マージするデータを簡単に指定します。
filter オプションは、以下の構文を持つ String 値を取ります。
-
body: メッセージボディーを集約します。 -
attachments: すべてのメッセージ添付を集約します。 -
headers: すべてのメッセージヘッダーを集約します。 -
header:pattern: パターンに一致するすべてのメッセージヘッダーを集約します。
パターンルールはワイルドカードおよび正規表現をサポートします。
-
ワイルドカードの一致 (パターンが
*で終わり、名前がパターンで始まります) - 正規表現の一致
複数のルールを指定するには、commas (,) で区切ります。
以下は、メッセージボディーおよび foo で始まるすべてのヘッダーを含む基本的なフィルターの例です。
body, header:foo*
body, header:foo*
-
メッセージのボディーのみをマージする場合:
body -
メッセージの添付のみをマージする場合:
attachments -
ヘッダーのみをマージする場合:
headers -
ヘッダー名
fooのみをマージする場合:header:foo
フィルタールールを空またはワイルドカードとして指定すると、すべてをマージできます。詳細は、Filter what data to merge back を参照してください。
データをマージすると、システムは既存のデータを上書きします。また、既存のデータを格納します。
10.4.2. Include および Exclude パターンを使用したフィルターオプション リンクのコピーリンクがクリップボードにコピーされました!
以下は、オプションを包含、除外、または削除オプションを指定するために使用できる接頭辞をサポートする構文です。
- + : 包含します (デフォルトのモード)。
- -: 除外します (除外は包含よりも優先されます)
- -- : 削除します (削除が優先されます)
以下に例を示します。
-
メッセージのボディーをスキップしてその他をすべてマージするには、
-bodyを使用します。 -
メッセージヘッダー
fooを省略してその他をすべてマージするには、-header:fooを使用します。
また、データをマージする際にヘッダーを削除するようにシステムに指示することもできます。たとえば、bar で始まるすべてのヘッダーを削除するには、--headers:bar* を使用します。
header:pattern で包含 (+) と除外 (-) の両方を同時に使用しないでください。
10.4.3. Java の例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、実際の Push および Pop 操作を示しています。
以下は、Get および Set 操作の使用例です。この例では、foo キーを使用しています。
データを削除しないため、Get 操作を使用して同じデータを 2 度取得できます。ただし、データを 1 度だけ取得する場合は、GetAndRemove 操作を使用します。
以下の例は、foo または bar としてヘッダーのみを取得する場合に filter オプションを使用する方法を示しています。
10.4.4. XML の例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、実際の Push および Pop 操作を示しています。
以下は、Get および Set 操作の使用例です。この例では、foo キーを使用しています。
データを削除しないため、Get 操作を使用して同じデータを 2 度取得できます。ただし、データを 1 度だけ取得する場合は、GetAndRemove 操作を使用します。
以下の例は、filter オプションを使用して、ヘッダーを foo または bar として取得する方法を示しています。