zoukankan      html  css  js  c++  java
  • 【eclipse插件开发实战】Eclipse插件开发3——OSGi、RCP

    Eclipse插件开发实战3——OSGi、RCP


    一、OSGi

    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

    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

    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插件的活动状态,也可以用控制台来控制插件的开始和停止。

    另外关于OSGi Bundle的制作……


    二、RCP

            RCP是eclipse的核心功能,以SWT/JFace作为界面元素组件,提供给用户Workbench的UI平台。如果将Eclipse中关于IDE的内容剥去,剩下的就是一个提供基本工作台功能的核心,即RCP,包括对可移动以及可叠加的窗口组件(编辑器和视图)、菜单、工具栏、按钮、表格、树形结构等等的支持,而这个核心就是Eclipse RCP。Eclipse RCP就是由插件开发转向桌面应用开发,构建最小化的Eclipse平台(8M)运行你的桌面应用,不必再为程序框架烦心,摆脱失败的AWT和Swing。RCP提供了丰富的界面控件,这使得基于 Java 开发桌面应用也变得容易了很多。


  • 相关阅读:
    js显示当前时间
    js平滑循环滚动,广告图片文字…
    记录报错Cannot set property 'innerHTML' of null
    回到顶部的几种方法
    vue表单验证 Vee-Validate 的使用
    Vue @mouseover和@mouseout实现下拉二级导航
    线性代数学习笔记——第四章
    线性代数学习笔记——第三章
    线性代数学习笔记——第二章(下)
    线性代数学习笔记——第二章(上)
  • 原文地址:https://www.cnblogs.com/DianaCody/p/5425686.html
Copyright © 2011-2022 走看看