• [转]Eclipse插件开发之基础篇(4) OSGi框架


    原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/18/eclipse_plugin_1_2_1.html

      1. 什么是OSGi框架

      OSGi(Open Service Gateway Initiative)框架是运行在JavaVM环境里的服务平台。框架提供的主要功能是对应用和组件的生命周期管理,系统可以在无需重启的情况下,远程操纵组件的安装、启动、停止。

      OSGi框架不仅用于Eclipse,从移动终端到车载系统,各个领域都在应用这个技术。

      2. OSGi和Eclipse的关系

      Eclipse采用OSGi框架来管理插件的安装、开始、停止和生命周期。在Eclipse中采用的OSGi框架称为Equinox。Equinox在Eclipse3.0时被使用,在3.3时,Equinox通过Equinox PDE,不仅可以用来开发插件,也可以用来制作其他OSGi框架上的组件。

      3. OSGi控制台

      在Eclipse提启动的时候加入-console参数,可以在Eclipse启动的同时创建一个OSGi框架控制台。

    图4-1,4-2 启动OSGi控制台

                        

      构建于OSGi之上的各种应用被称为OSGi Bundle。OSGi控制台可以执行下表所示的操作。

    表4-1 OSGi控制台的命令

    命令 说明
    start 开始Bundle
    stop 停止Bundle
    install 安装指定Bundle
    uninstall 卸载指定Bundle
    update 更新指定Bundle
    active 列出被注册并且处于活动状态的Bundle
    ss 列出所有被注册的Bundle

      我们可以看一下执行Eclipse的动作后,Bundle的状态变化。首先执行ss命令。在ss命令后加入一个参数[help],这样可以列出所有名称含有help的bundle。

    代码1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    id      State       Bundle
    78      RESOLVED    org.eclipse.epp.mpc.help.ui_1.0.0.v20100611-0430
    136     ACTIVE      org.eclipse.help_3.5.0.v20100524
    137     <<LAZY>>    org.eclipse.help.appserver_3.1.400.v20100427
    138     <<LAZY>>    org.eclipse.help.base_3.5.0.v201006080911
    139     <<LAZY>>    org.eclipse.help.ui_3.5.0.v20100517
    140     <<LAZY>>    org.eclipse.help.webapp_3.5.0.v20100507
    178     <<LAZY>>    org.eclipse.mylyn.help.ui_3.4.0.v20100608-0100-e3x
    196     RESOLVED    org.eclipse.mylyn.wikitext.help.ui_1.3.0.v20100608-0100-e3x
    228     RESOLVED    org.eclipse.rap.help_1.3.0.20100615-1734

      请注意其中状态为lazy的行,这个状态说明Bundle还没有被加载入内存。在必要时将加载入内存。

      我们先打开Eclipse的帮助。然后再看一下Bundle的状态。

    代码2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    id      State       Bundle
    78      RESOLVED    org.eclipse.epp.mpc.help.ui_1.0.0.v20100611-0430
    136     ACTIVE      org.eclipse.help_3.5.0.v20100524
    137     <<LAZY>>    org.eclipse.help.appserver_3.1.400.v20100427
    138     ACTIVE      org.eclipse.help.base_3.5.0.v201006080911
    139     ACTIVE      org.eclipse.help.ui_3.5.0.v20100517
    140     <<LAZY>>    org.eclipse.help.webapp_3.5.0.v20100507
    178     <<LAZY>>    org.eclipse.mylyn.help.ui_3.4.0.v20100608-0100-e3x
    196     RESOLVED    org.eclipse.mylyn.wikitext.help.ui_1.3.0.v20100608-0100-e3x
    228     RESOLVED    org.eclipse.rap.help_1.3.0.20100615-1734

      我们看到了org.eclipse.help.base_3.5.0.v201006080911和 org.eclipse.help.ui_3.5.0.v20100517两个Bundle从lazy状态变成了活动状态。

      从以上例子我们知道了,使用OSGi控制台可以确认Eclipse插件的活动状态,也可以用控制台来控制插件的开始和停止。

  • 相关阅读:
    Typescript+WebGL+Webpack开发环境搭建
    SVG的动态之美-搜狗地铁图重构散记
    2017年个人总结-程序员的中年焦虑症
    上海2017QCon个人分享总结
    CSS预编译与PostCSS以及Webpack构建CSS综合方案
    前端工程师的基本素养
    不仅仅是复制粘贴
    《微信小程序七日谈》- 第七天:不要捡了芝麻丢了西瓜
    《微信小程序七日谈》- 第六天:小程序devtool隐藏的秘密
    《微信小程序七日谈》- 第五天:你可能要在登录功能上花费大力气
  • 原文地址:https://www.cnblogs.com/wlzjdm/p/6882167.html
Copyright © 2020-2023  润新知