Javaでトランスフォーマーなどを記述する方法の例はたくさんありますが、フィルターについては何もありません(スクリプトタイプのフィルターを除くが、Javaメソッドを使用したい)。
ソースからシンクへのメッセージのペイロードをフィルター処理するカスタム Java フィルターを作成したいと考えています。
フィルタの例はすべて式を参照しています。
(どのように) 式として指定されたクラスで Java メソッドを実行するようにコンテキストに指示できますか?
さて、カスタム プロセッサ モジュールを実装するために必要なもの。Spring XD Guildeの Custom Transformer サンプルに従ってください
Selector
フィルターのカスタム:
public class MySelector implements MessageSelector {
boolean accept(Message<?> message) {
...
}
}
モジュール ctx myfilter.xml
:
<channel id="input"/>
<filter input-channel="input" output-channel="output">
<beans:bean class="custom.MySelector" />
</filter>
<channel id="output"/>
クラスをjarにパッケージ化し、すべてを次の${xd.home}/modules/processors/myfilter
構造のディレクトリに配置します。
/myfilter
/config
myfilter.xml
/lib
myfilter.jar
次のようにテストします。
xd:> stream create --name filtertest --definition "http | myfilter | log"