OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

转自:http://www.osgi.com.cn/article/7289458

 

1.2 Felix ##

1.2.1 简介

Felix 是 Apache Foundation 关于 OSGi R4 的一个实现。包括了 OSGi 框架和标准的服务,同时也提供并且支持其他的 OSGi 相关技术。Felix 终的目标是要提供和 OSGi 框架和标准服务完全兼容的一个实现。目前 Felix 已经实现了 OSGi R4 规范中的大部分内容。具体的情况可以参考 http://felix.apache.org/site/index.html。

1.2.2 环境搭建

在 Eclipse 中是能够创建 OSGi 标准插件工程的,我们只要在 Eclipse 中创建插件工程的时候选择标准的 OSGi 插件工程即可。而前面在 Equinox 的例子中的工程都是标准的 OSGi 插件工程。所以前面开发的系统都是可以直接在 Felix 上运行的。我们在这节中就不再去开发新的应用了。下面主要介绍有关 Felix 下应用如何部署,以及如何在 Ecilpse 中调试的知识。

1.2.3 应用的部署

Bundle 的打包方式和前面在 Equinox 节介绍的是一样的,我们来看一下如何在 Felix 中启动这些 Bundle。

从 Felix 网站上下载二进制发行版后,把压缩包解开,可以看到如图 1-41 所示的目录结构。

OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

【图 1-41 Felix 包含的内容】

在 conf 目录下有一个 config.properties 的配置文件。可以在这个文件中设置自动启动的 Bundle。在 config.properties 中有 felix.auto.start.1= 这个配置,这个配置中写入的 bundle 就是在 Felix 启动的时候自动启动的 Bundle。

如果我们没有在 config.properties 中设置应用的 Bundle,那也没有关系,我们仍然可以在 Felix 的 命令行窗口通过命令来安装我们应用的 Bundle。

1.2.4 在Eclipse中调试Felix

下面我们来看一下如何在 Eclipse 中启动 Felix 的环境来调试应用。有两个办法可以帮助我们做到这 一点。一个是使用 Pax Cursor 插件。这个插件的 update site 地址是 http://www.ops4j.org/ pax/eclipse/update/,在安装了这个插件后,我们在 Run Configurations 中的 OSGi Framework 配置的 Bundles 页签中,可以发现在 Framework 中除了 Equinox 外还多了其他的选择(见图 1-42)。

OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

【图 1-42 Framework 的选择 】

我们可以选择 Felix,这样我们的 OSGi 框架就是 Felix 而不是 Equinox 了(见图 1-43)。

OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

【图 1-43 启动后的 Bundle 及状态 】

另外一个办法是,可以从 Felix 的网站上下载一个 Felix 的二进制发行版,把这个发行版解压到一个临时目录中,或者从 Felix 的 trunk 上下载新的代码自行编译 Felix。然后启动 Eclipse,按照下面的步骤来进行操作。

**>**第一步,创建一个新的 Java 工程(见图 1-44)。

OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

【图 1-44 创建 Java 工程 】

**>**第二步,工程设置(见图 1-45)。

OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

【图 1-45 工程设置 】

完成后的工程如图 1-46 所示。

OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

【图 1-46 工程显示 】

**>**第三步,修改默认 Output 文件夹(见图 1-47)。

OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

【图 1-47 设置输出文件夹 】

>第四步,复制 Felix 文件。

将刚才解压的 Felix 的发行版文件或自己编译的 Felix 文件复制到新创建的工程目录中。 完成后的工程显示如图 1-48 所示。

OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

【图 1-48 工程显示 】

**>**第五步,将 felix.jar 加入到 Build path 中(见图 1-49)。

OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

【图 1-49 BuildPath 中加入 felix.jar 】

**>**第六步,配置 Run Configurations(见图 1-50)。

OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

【图 1-50 增加运行配置 】

然后就可以启动 Felix 了,运行后的结果见图 1-51。

OSGi原理与最佳实践:第一章 OSGi框架简介(4)Felix

【图 1-51 运行后的显示 】

如果我们要调试 Bundle,可以在 Bundle 的代码上打上断点,然后用 Debug 模式启动 Felix,再把 Bundle 部署到 Felix 中,运行到 Bundle 断点代码的时候,就会打开调试窗口了。