欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-28 09:58:42
...

上篇文章介绍了如何在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企业应用开发(三)Eclipse中搭建Equinox运行环境

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

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

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

OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
勾选完成后,单击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> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

如果我们自己开发一个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/
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
我们可以选择一个相对稳定的版本,例如笔者选择equinox-SDK-Luna版,下载后解压目录结构如下:
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
其中plugins目录下为Equinox框架所有的Bundle。

2、搭建Equinox运行环境

获取到Equinox框架的发行包后,接下来我们就开始搭建Equinox运行环境。
首先新建一个Java工程,名称为DynamicRuntime,接着新建一个core目录,將Equinox框架发行包plugins目录下的所有bundle拷贝到core目录下,如下图所示:
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
接着单击Window=>Preferences菜单,在弹出窗口中单击Plug-in Development=>Target Platform选项,如下图所示:
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
单击Add按钮,新建一个目标平台,如下图所示:
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
直接单击Next按钮,进入如下界面:
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
如上图所示,修改名称为DynamicRuntime,单击Add按钮,进入如下界面:
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
选择Directory条目,单击Next按钮,进入如下界面:
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
如上图所示输入Location为${workspace_loc}\DynamicRuntime\core,单击Finish按钮,即可显示加载的Bundle,如下图:
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
单击Finish按钮,接下来选择我们新建的Target Platform,单击OK按钮即可完成操作。
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境

3、启动Equinox框架

接下来我们就可以启动上面搭建的Equinox运行环境了,单击Run=>Debug Configurations…菜单,会发现Eclipse Bundle管理工具中会显示DynamicRuntime/core目录下的所有Bundle,如下图:
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
勾选如下几个核心的Bundle,单击Debug按钮即可启动Equinox框架。
OSGI企业应用开发(三)Eclipse中搭建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> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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

转自:
http://blog.csdn.net/rongbo_j/article/details/53725708

相关标签: OSGI