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的语句我们就可以进行相应的报警的业务处理了。 阅读更多
近忙于产品的报警功能,采用的是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的语句我们就可以进行相应的报警的业务处理了。 阅读更多
相关文章推荐
- OSGi学习之install bundle
- Eclipse插件开发之基础篇(5) 制作OSGi Bundle
- OSGI bundle in android 开发小工具
- osgi实战学习之路:5.生命周期及利用命令、装饰者模式实现基于socket交互Bundle命令demo
- OSGi之Bundle
- OSGi起步(1):第一个Bundle
- maven-bundle-plugin插件, 用maven构建基于osgi的web应用
- 利用maven创建spring-osgi powered 多bundle工程
- OSGI环境下建立资源bundle
- 在Equinox OSGi shell中使用install命令安装bundle出现的错误
- OSGi 探秘系列 (2)- 开发第一个OSGi Bundle
- OSGI之Require-Bundle与Imported-Package
- Eclipse插件开发之基础篇(5) 制作OSGi Bundle
- 导出osgi报错,无法导出bundle
- 如何解决Maven Tycho编译OSGI bundle过程中的Missing Constraint: Bundle-RequiredExceptionEnvironment 异常?
- 关于confluence出现org.osgi.framework.BundleException的解决办法
- OSGI Bundle元数据常用标记
- OSGI Bundle和Web容器加载类冲突问题的分析和解决
- OSGi 多源码包时加载其他bundle时找不到类问题
- OSGI加载第三方非bundle化jar包的几种方式