zoukankan      html  css  js  c++  java
  • OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境

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

  • 相关阅读:
    reset代码
    将博客搬至CSDN
    超简单的JNI——NDK开发教程
    浅谈Backbone的defaults
    为什么NaN !== NaN
    javascript小技巧[转]
    new function()随笔
    小记js中普通function和arrow function内this的使用区别
    evernote出现“Sync failed due to unexpected problem at server side”的问题
    强迫症和拖延症患者如何应对马桶4(遨游Maxthon)“上次未关闭页面”丢失的问题
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6468188.html
Copyright © 2011-2022 走看看