必要に応じて Wso2 CEP 製品を拡張し、この公式の wso2 cep リンクに示されているようにカスタム条件を作成したいと考えています。
「org.wso2.siddhi.core.executor.conditon.AbstractGenericConditionExecutor」を拡張する拡張クラスを作成し、以下に示すようにその抽象メソッドを実装できます。
@SiddhiExtension(namespace = "myext", function = "startswithA")
public class StringUtils extends
org.wso2.siddhi.core.executor.conditon.AbstractGenericConditionExecutor {
static Log log = LogFactory.getLog(StringUtils.class);
@Override
public boolean execute(AtomicEvent atomicEvent) {
log.error("Entered the execute method");
log.error("Atomic event to string: " + atomicEvent.toString());
return true;
}
}
この拡張メソッドを次のように使用すると:
from allEventsStream[myext:startswithA(name)]
insert into selectedEventsStream *;
この状況では、名前フィールドの先頭に「A」がある場合、startswithA メソッドが true を返すようにしたいと考えています。ただし、CEPでこのクエリを実行すると、イベント全体が実行関数にドロップされます。つまり、「名前」フィールドを引数としてstartswithAメソッドに送信したことを示す兆候はありません。
ストリームのどのフィールドが引数として拡張メソッドに送信されるかを理解するにはどうすればよいですか?
また、次のような条件を書きたい
from allEventsStream[myext:startswith('A', name)]
insert into selectedEventsStream *;
どうすればこれを達成できますか?