读《OSGI与Equinox创建高度模块化的Java系统》笔记(一)eclipse环境搭建和简单事例

1 篇文章 0 订阅
1 篇文章 0 订阅

作者:Jeff McAffer等

抛开OSGI理论等等,我们直接从环境搭建和简单事例开始。

1.  环境搭建准备

需要准备的工具或软件有:

 

Eclipse

Jdk

Eclipse必须要有的插件为:plug-in插件、osgi插件、equinox

 

可能遇到的问题:

在Eclipse中无法创建Plug-in Project则需要下载该插件,如图:

通过eclipse执行Help—>Install New Software—>选择work with 为—AllAvailable Sites—然后查下Plug-in将如图工具选中安装后重启便可以。

其他需要安装的插件都可以通过这种方法搜索安装,如osgi


2.  书本中的创建步骤

书本的例子是Toast的例子,在汽车安全气囊弹出时能被gps定位的功能,从这句需求中我们可以了解到需要实现的功能:在弹出时触发gps系统。

Osgi作为模块化的创建依据,书本中分成了两个bundle,分别是gps和airbag(安全气囊),并建立第三个bundle负责对前两个调用。这里以第三个客户端bundle为例说明创建步骤:

1、  File—>New—>Project…. 展开Plug-inDevelopment,选择Plug-in Project,然后点击New打开New Plug-in Project向导,如图:


2、  输入以上信息后点击Next,在下一个界面不要选中【Options】中的选项,然后就保存结束。

3、  建立相应的类等

4、  操作Meta-inf下的MANIFEST.MF文件,在里面建立bundle的信息,主要有:gps和airbag模块是要导出的,这样才能被客户端使用,所以要选中导出,而第三个bundle是要导入这两个模块的,所以第三个bundle不选择导出而要选择导入。

最后的MANIFEST.MF文件的结果是:

Gps的内容为:

Manifest-Version: 1.0

Bundle-ManifestVersion: 2

Bundle-Name: Mytoast Gps

Bundle-SymbolicName: org.equinoxosgi.mytoast.dev.gps

Bundle-Version: 1.0.0.qualifier

Bundle-RequiredExecutionEnvironment: JavaSE-1.7

Export-Package:org.equinoxosgi.toast.gps

而第三个bundle的内容为

Manifest-Version: 1.0

Bundle-ManifestVersion: 2

Bundle-Name: Emergency

Bundle-SymbolicName: org.equinoxosgi.mytoast.client.emergency

Bundle-Version: 1.0.0.qualifier

Bundle-RequiredExecutionEnvironment: JavaSE-1.7

Import-Package: org.equinoxosgi.toast.airbag,

 org.equinoxosgi.toast.gps,

 org.osgi.framework;version="1.7.0"

Bundle-Activator:org.equinoxosgi.toast.client.emergency.Activator

5、  要启动这个项目则需要是先BundleActivator接口,实现该接口并更新到第三个bundle的MF文件中

6、  启动

a)        要通过配置Run—>Run Configurations—>OSGI Framework àNew 创建一个启动配置

b)        在workspace中选择自动的三个bundle,除此之外还要选中org.eclipse.osgi、org.eclipse.equinox.console、felix

如果equinox.console没有选,在控制台运行时报:

Could not findbundle: org.eclipse.equinox.console

如果felix漏选,也将报类似的错误,felix找不到之类的,根据提示选择bundle便搞定。

配置如图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值