10.2. Content Filter
概要
Content Filter パターンは、メッセージから余分なコンテンツをフィルタリングしてから目的の受信者に配信する必要があるシナリオを説明します。たとえば、コンテンツフィルターを使用して、メッセージから機密情報を削除します。
図10.2 Content Filter パターン
メッセージをフィルターする一般的な方法は、サポートされているスクリプト言語 (たとえば、XQuery、JQuery、JSQL など) で記述された DSL で式を使用することです。
コンテンツフィルターの実装
コンテンツフィルターは、基本的に特定の目的のためのメッセージ処理手法のアプリケーションです。コンテンツフィルターを実装するには、以下のメッセージ処理技術を使用できます。
- メッセージトランスレーター: 「メッセージトランスレーター」 を参照してください 。
- プロセッサー: 35章プロセッサーの実装 を参照してください。
- Bean インテグレーション
XML 設定の例
以下の例は、XML で同じルートを設定する方法を示しています。
<camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:My.Queue"/> <to uri="xslt:classpath:com/acme/content_filter.xsl"/> <to uri="activemq:Another.Queue"/> </route> </camelContext>
XPath フィルターの使用
XPath を用いて対象のメッセージの一部をフィルタリングすることもできます。
<route> <from uri="activemq:Input"/> <setBody><xpath resultType="org.w3c.dom.Document">//foo:bar</xpath></setBody> <to uri="activemq:Output"/> </route>