您的位置:首页 > 其它

OSGI的bundle监听类

2015-06-17 09:19 225 查看
http://blog.csdn.net/lfsf802/article/details/19773533

近忙于产品的报警功能,采用的是esper的java事件处理框架来实现的这个功能,关于esper的介绍参照前面对esper介绍的博客。

那么如果利用OSGI的功能和epser框架集成呢?

其实在OSGI中有这样一个BundleLinstener类,就是用这个类来进行集成的,首先在OSGI其实是有两个BundleListener类的一个是同步的一个是异步的,其中BundleListener是异步的,而SynchronousBundleListener是异步的。

两个类都可以监听bundle的installed, resolved, starting, started, stopping, stopped, updated,unresolved, uninstalled时的事件。

这样就可以了,这时候可以自定一个listener接口,并且实现一个changeBundle方法,就可以监听到bundle的各个状态,通过getType方法来获得bundle的状态,如果是2就是bundle启动的状态。

具体代码为,

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
public class AlarmBundleListener implements BundleListener {

@Override
public void bundleChanged(BundleEvent event) {

System.out.println(event.getType());
System.out.println("-------------------------------"+event.getBundle().getSymbolicName());
}

}

这时候就可以在bundle开启的时候进行报警引擎的开启,也就是在之前epser博客中介绍的引擎开启的代码。并且将所有的报警的EPL语句进行监听,如果报警信息进入esper引擎并且符合EPL的语句我们就可以进行相应的报警的业务处理了。 阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: