我想根据我们的需要扩展 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 *;
我怎样才能做到这一点?