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

最新文章

  1. Docker私有仓库搭建
  2. 用libcurl 登录网站
  3. Windows Live Writer体验
  4. linux下防火墙开启某个端口号及防火墙常用命令使用
  5. 127 Word Ladder
  6. ASP.Net 验证控件 RangeValidator
  7. Android Touch事件原理加实例分析
  8. Java-Web监听器
  9. Installing the .NET Framework 4.5, 4.5.1
  10. 对于crontab定时任务不能自动执行的总结
  11. 斑马ZPL指令加入如换行、回车等控制符的方法
  12. angr进阶(2)C++程序的处理
  13. Net-Snmp工具(学习SNMP的工具,开源项目)简单使用
  14. 简单ATM机功能实现及感想
  15. 提升HTML5的性能体验系列之四 使用原生UI
  16. update from用法
  17. DOS批处理高级教程
  18. java的一些命名规范吧
  19. serv-u ftp服务器搭建
  20. linux系统编程-进程

热门文章

  1. System.InvalidOperationException:This.NpgsqlTransaction has completed;it is no longer usable. at Npgsql.NpgsqlTransaction.CheckCompleted() in ...
  2. echarts 柱状图
  3. 简单sql注入学到的延时盲注新式攻击
  4. redis5.0.4安装配置
  5. How To Determine The Cause Of Lots Of Redo Generation Using LogMiner (Doc ID 300395.1)
  6. 002.SQLServer数据库镜像高可用简介
  7. Jenkins实现单一安卓项目打包多个module填坑实录
  8. Dom对象与jQuery对象的互转
  9. Vue中的导航守卫(路由守卫)
  10. 图解JVM垃圾内存回收算法