zoukankan      html  css  js  c++  java
  • 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监听

  • 相关阅读:
    Python的数据类型--数字--字符串
    python基本--数据类型
    系统分区 ,硬盘格式化,
    linux 用户创建,权限,分组
    协程
    进程
    线程与进程--线程三把锁
    线程
    socket网络编程-字典
    socket网络编程
  • 原文地址:https://www.cnblogs.com/binarylei/p/8537329.html
Copyright © 2011-2022 走看看