OSGi 系列(三)之 bundle 事件监听
2024-10-19 21:25:10
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 启动、停止、更新、卸载时的状态变化:
最新文章
- String源码中的";avoid getfield opcode";
- 推荐一个Android开发懒人库 -- ButterKnife
- PHP SQL注入的防范
- 01.WPF中制作无边框窗体
- Maven+Eclipse+Spring MVC简单实例
- redis来共享各个服务器的session,并同时通过redis来缓存一些常用的资源,加快用户获得请求资源的速度(转)
- BZOJ 1003 [ZJOI2006]物流运输trans SPFA+DP
- js点击图片查看大图,并可以拖动,且滚动滑轮放大缩小
- JPA-04
- CMake系列之二:入门案例-单个源文件
- 核心一:DI
- MetaMask/Website
- 通过adb命令在Android设备中执行Java命令, 并调用so文件。
- git拉取远程分支
- Kali linux 试用:dnsenum
- MyBatis各种类型的入参使用方式
- 使用docusaurus 搭建开发&;&;api &;&; 博客站点
- LINUX 实现端口转发 - 安装使用rinetd
- Spring源码分析(十一)bean的加载
- python 发送邮件(收到的邮件要有发送方才能回复)