[转]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插件的活动状态,也可以用控制台来控制插件的开始和停止。
最新文章
- Docker私有仓库搭建
- 用libcurl 登录网站
- Windows Live Writer体验
- linux下防火墙开启某个端口号及防火墙常用命令使用
- 127 Word Ladder
- ASP.Net 验证控件 RangeValidator
- Android Touch事件原理加实例分析
- Java-Web监听器
- Installing the .NET Framework 4.5, 4.5.1
- 对于crontab定时任务不能自动执行的总结
- 斑马ZPL指令加入如换行、回车等控制符的方法
- angr进阶(2)C++程序的处理
- Net-Snmp工具(学习SNMP的工具,开源项目)简单使用
- 简单ATM机功能实现及感想
- 提升HTML5的性能体验系列之四 使用原生UI
- update from用法
- DOS批处理高级教程
- java的一些命名规范吧
- serv-u ftp服务器搭建
- linux系统编程-进程
热门文章
- System.InvalidOperationException:This.NpgsqlTransaction has completed;it is no longer usable. at Npgsql.NpgsqlTransaction.CheckCompleted() in ...
- echarts 柱状图
- 简单sql注入学到的延时盲注新式攻击
- redis5.0.4安装配置
- How To Determine The Cause Of Lots Of Redo Generation Using LogMiner (Doc ID 300395.1)
- 002.SQLServer数据库镜像高可用简介
- Jenkins实现单一安卓项目打包多个module填坑实录
- Dom对象与jQuery对象的互转
- Vue中的导航守卫(路由守卫)
- 图解JVM垃圾内存回收算法