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

时间: 2024-08-02 21:11:08

[转]Eclipse插件开发之基础篇(4) OSGi框架的相关文章

Eclipse插件开发之基础篇(5) 制作OSGi Bundle

转载出处:http://www.cnblogs.com/liuzhuo 1. 生成OSGi工程 首先打开新工程向导,选择创建Eclipse插件工程.在[目标平台(Target Platform)]选项中选择[OSGi 框架(OSGi framework)]. 图5-1 创建插件工程 在选择模板的时候选择,Hello OSGi Bundle后点击完成. 图5-2 选择OSGi模板 生成工程后,在Manifest编辑器中点击[启动框架(Launch the framework)]运行新生成的OSGi

Eclipse插件开发之基础篇(2) 第一个Eclipse插件

转载出处:http://www.cnblogs.com/liuzhuo. 在Eclipse中使用PDE(Plugin Development Environment)进行插件开发.在PDE中为大家准备了几个模板供大家参考.第一步咱们先利用模板制作一个简单的插件作为和PDE的第一次接触. 1.生成插件工程 通过选择[文件]->[新建]->[工程...]启动[新工程(New Project)]向导.在插件开发的时候我们就不能选择通常的java工程了,要选择新建一个插件工程. 选择[插件工程(Plu

[转]Eclipse插件开发之基础篇(2) 第一个Eclipse插件

原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/15/eclipse_plugin_1_1_1.html 在Eclipse中使用PDE(Plugin Development Environment)进行插件开发.在PDE中为大家准备了几个模板供大家参考.第一步咱们先利用模板制作一个简单的插件作为和PDE的第一次接触. 1.生成插件工程 通过选择[文件]->[新建]->[工程...]启动[新工程(New Project)]向导.在插件开发的

Eclipse插件开发之基础篇(1) 插件开发的基础知识

转载出处http://www.cnblogs.com/liuzhuo 名词翻译 有一些名词在翻译的过程中可能会出现歧义,在这里统一一下. アーキテクチャ=architecture=架构 プラットフォーム=platform=平台 コンポーネント=component=组件 其余的随时补充. 1.Eclipse的架构 Eclipse被作为java的IDE(集成开发环境)被广泛的应用,但是从本质上看Eclipse是一个整合了各种开发工具的平台.因此,它采用了可以自由的增加各种功能的插件架构技术.Ecli

[转]Eclipse插件开发之基础篇(1) 插件开发的基础知识

原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/13/eclipse_plugin_1_0_2.html 名词翻译 有一些名词在翻译的过程中可能会出现歧义,在这里统一一下. アーキテクチャ=architecture=架构 プラットフォーム=platform=平台 コンポーネント=component=组件 其余的随时补充. 1.Eclipse的架构 Eclipse被作为java的IDE(集成开发环境)被广泛的应用,但是从本质上看Eclipse

[转]Eclipse插件开发之基础篇(3) 插件的测试与调试

原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/17/eclipse_plugin_1_1_2.html 1. 使用JUnit对插件进行测试 Eclipse中已经嵌入了JUnit,我们可以使用JUnit为插件进行单体测试.一般的JUnit是不可以对插件部分(对Eclipse的API依赖的部分)进行测试的,但是在PDE环境中使利用JUnit对插件进行单元测试成为可能. 要想进行测试首先要添加插件的依赖关系,在插件设定页面的[依赖关系(Depe

Android插件开发初探——基础篇

Android插件开发初探 对于Android的插件化其实已经讨论已久了,但是市面上还没有非常靠谱成熟的插件框架供我们使用.这里我们就尝试性的对比一下Java中,我们使用插件化该是一个怎么样的流程,且我们如何将此流程移植到Android框架上去使用.很多代码都是内部资料,不喜勿喷,谢谢~ 为什么要插件化? 功能越来越多 代码.安装包越来越大 小的更新也需要重新发布 更新频繁,安装成本太大 用户无法选择性加载需要的模块 -- 插件化的好处 主安装包较小 强制模块化,降低耦合度 减少整体更新的次数

C#基础篇之语言和框架介绍

1.如何描述C#和.NET的关系? .Net的是平台,C#是为了微软公司为了.NET平台开发的面向对象语言. 2.C#能做什么? (1)C#.NET做窗体应用开发,Web开发中可以通过WCF编写Web  Service接口,Windows开发中可以制作GUI桌面应用程序. (2)C#.XNA  Unity可以做游戏开发. 快速开发软件和窗体应用程序 3..NET框架介绍 原文地址:https://www.cnblogs.com/dyshk/p/10980947.html

学习Eclipse插件开发需要循序渐进看的书籍列表?

因为工作需要,需要用Eclipse插件进行开发.而笔者在以前的工作经验中根本就没有接触过,而且这类的技术和视频资料非常少.通过摸打滚爬将近2年,终于小有成就.刚好趁着圣诞节公司放了一个礼拜的假期,和大家分享一下学习Eclipse插件开发需要循序渐进看的书籍列表,以节约大家的宝贵时间. 1.  OSGI是Eclipse插件开发的基础,因此在进行Eclipse Plugin开发的时候,一定要先了解OSGI是什么?已经OSGI bundle相关的概念,因此,一定要找一本OSGI相关的书籍来阅读. 1.