OSGi 系列(三)之 bundle 事件监听
OSGi 系列(三)之 bundle 事件监听
bundle 的事件监听是在 bundle 生命周期的不同状态相互转换时,OSGi 框架会发出各种不同的事件供事先注册好的事件监听器处理。
1. 事件监听器
事件名称 | 描述 | 事件值 |
---|---|---|
INSTALLED | Bundle 被成功安装 | 1 |
STARTED | Bundle 被成功启动 | 2 |
STOPED | Bundle 被成功停止 | 4 |
UPDATED | Bundle 被成功更新 | 8 |
UNINSTALLED | Bundle 被成功卸载 | 16 |
RESOLVED | Bundle 被成功解析 | 32 |
UNRESOLVED | Bundle 被转变为未解析状态 | 64 |
STARTING | Bundle 正在启动 | 128 |
STOPPING | Bundle 正在停止 | 256 |
LAZY_ACTIVATION | Bundle 进入延迟启动状态 | 512 |
2. 案例
(1) 编写 bundle-listener-1.0.1.jar ,启动类 BundleActivator 如下:
public class HelloBundleActivator implements BundleActivator {
@Override
public void start(BundleContext context) throws Exception {
System.out.println("bundle start...");
context.addBundleListener(new BundleListener() {
@Override
public void bundleChanged(BundleEvent event) {
System.out.println(event.getBundle().getSymbolicName());
System.out.println(event.getType());
}
});
}
@Override
public void stop(BundleContext context) throws Exception {
System.out.println("bundle stop...");
}
}
(2) 编写 osgi-bundle2-1.0.1.jar ,这是一个空的 bundle,什么与没有。
查看 osgi-bundle2 启动、停止、更新、卸载时的状态变化:
posted on 2018-03-10 08:54 binarylei 阅读(1901) 评论(0) 编辑 收藏 举报
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步