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

来源:互联网 发布:迪拜购物 知乎 编辑:程序博客网 时间:2024/04/29 21:55

上篇文章介绍了如何在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       Bundle0   ACTIVE      org.eclipse.osgi_3.10.0.v20140606-14451   ACTIVE      org.apache.felix.gogo.shell_0.10.0.v2012121016052   ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v2012093010363   ACTIVE      org.apache.felix.gogo.command_0.10.0.v2012093012154   ACTIVE      org.eclipse.equinox.console_1.1.0.v20140131-1639osgi> 

如果我们自己开发一个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       Bundle0   ACTIVE      org.eclipse.osgi_3.10.0.v20140606-14455   ACTIVE      org.apache.felix.gogo.command_0.10.0.v2012093012156   ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v2012093010367   ACTIVE      org.apache.felix.gogo.shell_0.10.0.v2012121016058   ACTIVE      org.eclipse.equinox.console_1.1.0.v20140131-1639osgi> 

本篇文章就介绍这么多内容,下篇文章介绍如何开发一个自定义的Bundle,并使用Blueprint將Spring框架整合到OSGI中。

0 0
原创粉丝点击