• 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...");
        }
    }
    

    图4.1 bundle-listener启动

    (2) 编写 osgi-bundle2-1.0.1.jar ,这是一个空的 bundle,什么与没有。

    查看 osgi-bundle2 启动、停止、更新、卸载时的状态变化:

    图4.2 osgi-bundle监听

  • 相关阅读:
    Java Web总结一反射、单例模式
    Android中Log的管理
    改进边的导航
    当前效果
    understand一些功能
    maya 专家模式
    改进的共轭梯度法
    selenium TestNG 依赖和忽略测试
    selenium TestNG基本注释和属性
    JAVA 批量执行测试用例
  • 原文地址:https://www.cnblogs.com/binarylei/p/8537329.html
Copyright © 2020-2023  润新知