手順
-
Sourceという名前のcFileコンポーネントをダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
-
[Path] (パス)フィールドでメッセージソースへのファイルパスを指定します。
[Encoding] (エンコーディング)リストからソースファイルのエンコーディングタイプを選択し、その他すべてのパラメーターはそのままにします。
-
Deduplicatorという名前のcIdempotentComsumerコンポーネントをダブルクリックして、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
-
[Repository Type] (リポジトリータイプ)リストから[Memory] (メモリ)と[File] (ファイル)のどちらかを選択して、重複除去処理の前にメッセージ識別子の保管場所を指定します。このシナリオでは[File] (ファイル)を選択します。
[File store] (ファイル保存先)フィールドで、メッセージ識別子を保管するファイルのロケーションを指定します。[Expression] (式)フィールドに、メッセージをフィルタリングする式を入力します。このシナリオでは、次の式を入力して、XMLファイルのpersonノードに従ってメッセージをフィルタリングします: xpath("/people/person")。その他すべてのパラメーターはそのままにします。または、[Use language] (言語の使用)チェックボックスをオンにし、[Language] (言語)リストからXPathを選択し、[Predicate] (述語)フィールドに"/people/person"と入力します。
-
Uniqueという名前のcProcessorコンポーネントをダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
-
[Code] (コード)エリアでコードをカスタマイズして、重複除去を渡すメッセージのファイル名を表示します。
System.out.println("Message consumed on Unique: "+ exchange.getIn().getHeader("CamelFileName"));
-
これらのステップを繰り返して、Allという名前のその他のcProcessorコンポーネントを設定し、ソースから送信されるすべてのメッセージのファイル名を表示します。
System.out.println("Message consumed on All: "+ exchange.getIn().getHeader("CamelFileName"));
- Ctrl + Sを押してジョブを保存します。