[转]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 Bundle78 RESOLVED org.eclipse.epp.mpc.help.ui_1.0.0.v20100611-0430136 ACTIVE org.eclipse.help_3.5.0.v20100524137 <<LAZY>> org.eclipse.help.appserver_3.1.400.v20100427138 <<LAZY>> org.eclipse.help.base_3.5.0.v201006080911139 <<LAZY>> org.eclipse.help.ui_3.5.0.v20100517140 <<LAZY>> org.eclipse.help.webapp_3.5.0.v20100507178 <<LAZY>> org.eclipse.mylyn.help.ui_3.4.0.v20100608-0100-e3x196 RESOLVED org.eclipse.mylyn.wikitext.help.ui_1.3.0.v20100608-0100-e3x228 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 Bundle78 RESOLVED org.eclipse.epp.mpc.help.ui_1.0.0.v20100611-0430136 ACTIVE org.eclipse.help_3.5.0.v20100524137 <<LAZY>> org.eclipse.help.appserver_3.1.400.v20100427138 ACTIVE org.eclipse.help.base_3.5.0.v201006080911139 ACTIVE org.eclipse.help.ui_3.5.0.v20100517140 <<LAZY>> org.eclipse.help.webapp_3.5.0.v20100507178 <<LAZY>> org.eclipse.mylyn.help.ui_3.4.0.v20100608-0100-e3x196 RESOLVED org.eclipse.mylyn.wikitext.help.ui_1.3.0.v20100608-0100-e3x228 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插件的活动状态,也可以用控制台来控制插件的开始和停止。
[转]Eclipse插件开发之基础篇(4) OSGi框架的更多相关文章
- Eclipse插件开发之基础篇(4) OSGi框架
转载出处:http://www.cnblogs.com/liuzhuo. 1. 什么是OSGi框架 OSGi(Open Service Gateway Initiative)框架是运行在JavaVM环 ...
- [转]Eclipse插件开发之基础篇(5) 制作OSGi Bundle
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/18/eclipse_plugin_1_2_2.html 1. 生成OSGi工程 首先打开新工程 ...
- [转]Eclipse插件开发之基础篇(2) 第一个Eclipse插件
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/15/eclipse_plugin_1_1_1.html 在Eclipse中使用PDE(Plug ...
- [转]Eclipse插件开发之基础篇(1) 插件开发的基础知识
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/13/eclipse_plugin_1_0_2.html 名词翻译 有一些名词在翻译的过程中可能 ...
- [转]Eclipse插件开发之基础篇(6) SWT简介
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/09/01/eclipse_plugin_1_3_1.html SWT(Standard Widget ...
- [转]Eclipse插件开发之基础篇(3) 插件的测试与调试
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/17/eclipse_plugin_1_1_2.html 1. 使用JUnit对插件进行测试 E ...
- 关于Eclipse使用Git基础篇
一:Git的下载与安装与基本使用 1.打开eclipse->help->Eclipse Markplace->search->fiind输入Egit 你会看到如下截图(我的为已 ...
- HTML基础篇之内嵌框架和表单
内嵌框架: <iframe src="http://www.baidu.com" name="d"></iframe> 网页会显示一个这 ...
- C#基础篇之语言和框架介绍
1.如何描述C#和.NET的关系? .Net的是平台,C#是为了微软公司为了.NET平台开发的面向对象语言. 2.C#能做什么? (1)C#.NET做窗体应用开发,Web开发中可以通过WCF编写Web ...
随机推荐
- C# 利用itextsharp、Spire配合使用为pdf文档每页添加水印
下载类库: 直接下载 引入类库 功能实现 using iTextSharp.text.pdf; using Spire.Pdf; using Spire.Pdf.Graphics; using Sys ...
- Linux-shell学习笔记2
1.命令的运行顺序 以相对/绝对路径运行命令,例如『 /bin/ls 』或『 ./ls 』: 由 alias 找到该命令来运行: 由 bash 内建的 (builtin) 命令来运行: 通过 $PAT ...
- layui-table-column-select(layui数据表格可搜索下拉框select)
layuiTableColumnSelect 在layui table的基础上对表格列进行扩展:点击单元格显示可搜索下拉列表. 码云地址:https://gitee.com/yangqianlong9 ...
- mysql登陆时出现ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
有4到5天没开mysql,这天晚上打=打开phpstudy,想进去mysql练习练习,结果丢给我这个 ERROR 2013 (HY000): Lost connection to MySQL serv ...
- 2019 DevOps 必备面试题——持续集成篇
原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...
- IDEA使用svn拉取多模块项目
如果没有安装过svn客户端,安装的时候需要选择安装第二个工具,如下图所示 安装小乌龟, 自行搜索, 注意点是需要选择安装第二个工具 因为默认是不安装的, 而这个组件是集成到IDEA ”必须的” . 如 ...
- IOR and mdtest - measure parallel file system I/O performance at both the POSIX and MPI-IO level.
This parallel program performs writes and reads to/from files under several sets of conditions and r ...
- 安装 tensorflow 1.1.0;以及安装其他相似版本tensorflow遇到的问题;tensorflow 1.13.2 cuda-10环境变量配置问题;Tensorflow 指定训练时如何指定使用的GPU;
# 安装 2.7 环境conda create -n python2. python= conda activate python2. # 安装 1.1.0 gpu版本pip # 配置环境变量expo ...
- /dev/random 和 /dev/urandmon的差别
最近使用这两个设备的时候,发现 /dev/random生成随机数很慢:于是就查了查: 这两个设备的差异在于:/dev/random的random pool依赖于系统中断,因此在系统的中断数不足时,/d ...
- python配置yaml
我们在做自动化的过程中无论是接口自动化还是UI自动化都会存在很多数据,我们对于自动化中如何存放这些数据也是很重要一点,如果写在代码里的话,每次更换数据就有点繁琐,我们可以通过一个文件存放这些数据,然后 ...