WSO2中的自定义执行函数
我正在尝试为WS02(4.2.0)编写一个简单的自定义函数扩展。我的函数基本上接受字符串并返回大写。这是实现更高级自定义功能的第一步POC 我实现了一个扩展org.wso2.siddhi.core.executor.function.FunctionExecutor类的类,并创建了一个ams.siddhiext文件。然后,我使用maven bundle插件将类和siddhiext打包到一个JAR文件中 我的函数类是这样的WSO2中的自定义执行函数,wso2,wso2cep,Wso2,Wso2cep,我正在尝试为WS02(4.2.0)编写一个简单的自定义函数扩展。我的函数基本上接受字符串并返回大写。这是实现更高级自定义功能的第一步POC 我实现了一个扩展org.wso2.siddhi.core.executor.function.FunctionExecutor类的类,并创建了一个ams.siddhiext文件。然后,我使用maven bundle插件将类和siddhiext打包到一个JAR文件中 我的函数类是这样的 public class AnomalyDetector extends
public class AnomalyDetector extends FunctionExecutor {
private final static Logger LOG = LoggerFactory.getLogger(AnomalyDetector
.class);
@Override
protected void init(ExpressionExecutor[] expressionExecutors, ExecutionPlanContext executionPlanContext) {
LOG.info("In AD:init()");
}
@Override
protected Object execute(Object[] objects) {
return null;
}
@Override
protected Object execute(Object o) {
LOG.info("In AD:process(" + o.toString() + ")");
String eventData = (String) o;
LOG.info("Event data : " + eventData);
if (eventData != null) {
return eventData.toUpperCase();
} else {
return "Null event data";
}
}
@Override
public void start() {
LOG.info("In AD:start()");
}
@Override
public void stop() {
}
@Override
public Map<String, Object> currentState() {
return null;
}
@Override
public void restoreState(Map<String, Object> map) {
}
@Override
public Attribute.Type getReturnType() {
return Attribute.Type.STRING;
}
公共类异常检测器扩展FunctionExecutor{
私有最终静态记录器日志=LoggerFactory.getLogger(异常检测器
(类别),;
@凌驾
受保护的void init(ExpressionExecutor[]expressionExecutors,ExecutionPlanContext ExecutionPlanContext){
LOG.info(“在AD:init()中”);
}
@凌驾
受保护对象执行(对象[]对象){
返回null;
}
@凌驾
受保护对象执行(对象o){
LOG.info(“在AD:process(“+o.toString()+”);
字符串eventData=(字符串)o;
LOG.info(“事件数据:+eventData”);
if(eventData!=null){
返回eventData.toUpperCase();
}否则{
返回“空事件数据”;
}
}
@凌驾
公开作废开始(){
LOG.info(“在AD:start()中”);
}
@凌驾
公共停车场(){
}
@凌驾
公共映射currentState(){
返回null;
}
@凌驾
公共屋(地图){
}
@凌驾
公共属性。类型getReturnType(){
返回Attribute.Type.STRING;
}
}
然后我将jar放在/repository/components/lib/since/repository/components/dropins/中,但没有拾取它
我目前有两个问题阻碍了我
提前谢谢 你能把jar打包成一个OSGI包然后试试吗?将jar转换为OSGI捆绑包时可能会出现问题。能否将jar打包为OSGI捆绑包并重试?将jar转换为OSGI包时可能会出现问题