您的位置:首页 > 编程语言 > Java开发

[置顶] OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境

2016-12-18 15:24 459 查看
上篇文章介绍了如何在Eclipse中搭建Felix的运行环境,我们需要將Bundle发布到Felix框架的bundle目录下,Felix框架启动时才会自动加载这些Bundle,否则需要在Felix框架启动后手动安装Bundle,我们可以发现Bundle的管理非常麻烦,而且一旦Bundle启动报错,我们修改代码后,又需要重新发布Bundle进行调试,虽然我们可以使用自动化工具Ant或者Maven进行管理,但是一个项目中如果有几百个自定义的Bundle,这些Bundle管理起来就相当繁琐。

本文开始介绍如何在Eclipse中搭建Equinox的运行环境,由于Equinox是Eclipse组织对OSGI的实现,Eclipse中也集成了Equinox框架的管理工具,而Eclipse也是目前使用非常广泛的集成开发工具,所以使用Equinox开发实际的OSGI项目是非常方便的。

一、Eclipse中的Bundle管理工具

接下来我们就来了解一下Eclipse中内置的Bundle管理工具,首先单击Run=>Debug Configurations…菜单,打开如下界面:



在OSGI Framework条目下,右键=>New,如下图所示:



这里会显示Eclipse开发工具plugins目录下的所有Bundle,由于Eclipse中已经集成了Equinox框架,所以我们只需要勾选Equinox框架的几个核心的Bundle即可启动Equinox框架。下面是启动Equinox框架必须的几个Bundle:



勾选完成后,单击Debug即可完成Equinox框架的启动,接下来可以在控制台中输入ss命令查看所有运行的Bundle,如下:

osgi> ss
"Framework is launched."

id  State       Bundle
0   ACTIVE      org.eclipse.osgi_3.10.0.v20140606-1445
1   ACTIVE      org.apache.felix.gogo.shell_0.10.0.v201212101605
2   ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v201209301036
3   ACTIVE      org.apache.felix.gogo.command_0.10.0.v201209301215
4   ACTIVE      org.eclipse.equinox.console_1.1.0.v20140131-1639
osgi>


如果我们自己开发一个Bundle,该Bundle自动会在Bundle管理工具中显示,我们只需要勾选即可启动我们开发的Bundle,所以Bundle的开发与调试非常方便。

二、搭建Equinox运行环境

上节介绍了Eclipse中集成的Bundle管理工具,由于Eclipse中内置了Equinox框架,所有只需要勾选几个核心的Bundle即可运行Equinox框架,但是这种方式并不能用在项目中,因为不同的Eclipse版本,对应的Equinox框架版本不相同,项目中依赖的Bundle不能和具体的Eclipse版本有关,因为使用不同的Eclipse版本会引起很多未知的问题,而且Eclipse的plugins目录下的大多数Bundle是项目中用不到的,都会显示在Bundle管理工具列表中,所以我们需要自己下载Equinox框架的Release包,使用特定版本的Equinox框架搭建项目。

1、下载Equinox框架

首先我们需要下载Equinox框架Release发行包,读者可以从Eclipse官网下载,下载地址如下:

http://download.eclipse.org/equinox/



我们可以选择一个相对稳定的版本,例如笔者选择equinox-SDK-Luna版,下载后解压目录结构如下:



其中plugins目录下为Equinox框架所有的Bundle。

2、搭建Equinox运行环境

获取到Equinox框架的发行包后,接下来我们就开始搭建Equinox运行环境。

首先新建一个Java工程,名称为DynamicRuntime,接着新建一个core目录,將Equinox框架发行包plugins目录下的所有bundle拷贝到core目录下,如下图所示:



接着单击Window=>Preferences菜单,在弹出窗口中单击Plug-in Development=>Target Platform选项,如下图所示:



单击Add按钮,新建一个目标平台,如下图所示:



直接单击Next按钮,进入如下界面:



如上图所示,修改名称为DynamicRuntime,单击Add按钮,进入如下界面:



选择Directory条目,单击Next按钮,进入如下界面:



如上图所示输入Location为${workspace_loc}\DynamicRuntime\core,单击Finish按钮,即可显示加载的Bundle,如下图:



单击Finish按钮,接下来选择我们新建的Target Platform,单击OK按钮即可完成操作。



3、启动Equinox框架

接下来我们就可以启动上面搭建的Equinox运行环境了,单击Run=>Debug Configurations…菜单,会发现Eclipse Bundle管理工具中会显示DynamicRuntime/core目录下的所有Bundle,如下图:



勾选如下几个核心的Bundle,单击Debug按钮即可启动Equinox框架。



框架启动后,输入ss命令即可查看所有启动的Bundle,如下:

osgi> ss
"Framework is launched."

id  State       Bundle
0   ACTIVE      org.eclipse.osgi_3.10.0.v20140606-1445
5   ACTIVE      org.apache.felix.gogo.command_0.10.0.v201209301215
6   ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v201209301036
7   ACTIVE      org.apache.felix.gogo.shell_0.10.0.v201212101605
8   ACTIVE      org.eclipse.equinox.console_1.1.0.v20140131-1639
osgi>


本篇文章就介绍这么多内容,下篇文章介绍如何开发一个自定义的Bundle,并使用Blueprint將Spring框架整合到OSGI中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐