上篇文章介绍了如何在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中。

OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境的更多相关文章

  1. OSGI企业应用开发(二)Eclipse中搭建Felix运行环境

    上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Fe ...

  2. 在Eclipse中搭建C/C++环境

    在Eclipse中搭建C/C++环境 本文地址:http://blog.csdn.net/you_and_me12/article/details/7389934 习惯了使用eclipse编程后,现在 ...

  3. Ubuntu使用日志2(在Eclipse中搭建C++交叉编译环境)

    Release用交叉编译:arm-none-linux-gnueabi-gcc. 搭建步骤: 1).在Project->Properties->C/C++ Build->Settin ...

  4. Tomcat源码分析----eclipse中搭建源码环境

    前提:JDK,至少1.7,ant,要设置ANT_HOME环境变量,需要再classpath中增加ant的lib目录,在path变量中增加ant的bin目录 1.官网下载tomcat源码包:apache ...

  5. Windows 8 IIS中配置PHP运行环境的方法

    在Windows 8 的IIS(8.0)中搭建PHP运行环境: 一:安装IIS服务器 1.进入控制面板>>程序和功能>>打开或关闭Windows 功能,找到Internet信息 ...

  6. Windows2016的 IIS中配置PHP7运行环境

    Windows2016的 IIS中配置PHP7运行环境 在Windows 的IIS(8.0)中搭建PHP运行环境: 一:安装IIS服务器 .进入控制面板>>程序和功能>>打开或 ...

  7. eclipse中SSH三大框架环境搭建<三>

    相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的 ...

  8. [转]在Eclipse中搭建Python开发环境

    在Eclipse中搭建Python开发环境 来自: http://hi.baidu.com/hqwfreefly/blog/item/2543181d0afd9604314e150e.html 前言 ...

  9. 在Eclipse中搭建Python开发环境

    在Eclipse中搭建Python开发环境 来自: http://hi.baidu.com/hqwfreefly/blog/item/2543181d0afd9604314e150e.html 前言 ...

随机推荐

  1. Python-doc rst文件打开

    Python rst文件打开 RST与Python类似Javadoc与Java. 如果下载了别人的Python源码,里面有rst文件夹,我们可以转为html后用浏览器打开 某个开源项目的index.r ...

  2. Eclipse连接MuMu模拟器 方便 测试 查日志

    Eclipse连接MuMu模拟器 方便 测试 查日志 问题由来 真机测试麻烦(首先你得拿一部手机,然后在用数据线连接电脑和手机...) 解决流程 确保打开MuMu模拟器和Eclipse的DDMS功能 ...

  3. Fiddler抓包连接失败502的解决方法

    本篇用户记录,在用Fiddler遇到过的坑,首先, 先上图,遇到的问题,提示主机连接失败.只是打开Fiddler,不会报这个问题,只有当Fiddler和火狐浏览器一起启动的时候,才会报这个错. 尝试去 ...

  4. WebForm - cookie赋值乱码问题

    cookie的值为中文时候,取cookie的值会出现乱码 解决办法:存取cookie时候先解码和编码 存cookie,进行编码: cookie.Value = HttpUtility.UrlEncod ...

  5. Xamarin 绑定安卓第三方库恢复原始参数问题

    大家都知道在绑定xamarin android 第三方库的时候 参数名是乱码的 变成了p1  p2  p3 之类的 这样在实际使用的时候非常不方便. 其实xamarin是提供了三种方式帮助大家恢复ja ...

  6. Centos 7 快速搭建IOS可用IPsec

    安装 strongswan yum install -y http://ftp.nluug.nl/pub/os/Linux/distr/fedora-epel/7/x86_64/Packages/e/ ...

  7. linux 备忘记录

    杂项记录 Ubuntu 通过/etc/network/interfaces修改IP,重启网络服务貌似也不会生效.可以重启电脑使其生效,或执行: ip addr flush dev ens33 & ...

  8. (转)Python: super 没那么简单

    原文:https://mozillazg.com/2016/12/python-super-is-not-as-simple-as-you-thought.html python 约定¶ 单继承¶ 多 ...

  9. puppeteer(headless chrome)实现网站登录

    puppeteer简介 puppeteer是Chrome团队开发的一个node库,可以通过api来控制浏览器的行为,比如点击,跳转,刷新,在控制台执行js脚本等等.有了这个神器,写个爬虫,自动签到,网 ...

  10. vue导出excel数据表格功能

    前端工作量最多的就是需求,需求就是一直在变,比如当前端数据写完之后,需要用Excel把数据下载出来. 第一步安装依赖包,需要把代码下载你的项目当中 cnpm install  file-saver c ...