开篇 OSGi运行环境和参考资料:
参考资料:
OSGi联盟的官方站点:http://www.osgi.org/Specifications/HomePage
这儿可以找到OSGi规范的英文版本,以及OSGi规范的API。
OSGi R5中文版:CSDN 不才的专栏正在翻译:
http://blog.csdn.net/wzumath/article/category/1936125
OSGi R4中文版:网上有范里程翻译,曹晓钢审校的版本
OSGi中文社区也是不错的参考:http://osgi.com.cn/
运行框架
可选Equinox,或者Felix。
Equinox是Eclipse的基础。Felix是Apache的实现。
Felix提供了对OSGi 核心框架R5的实现,目前最新版本是4.4
相对而言,我更喜欢Felix,更纯粹一些(外部耦合),开发很活跃(更新比较快),适合对OSGi的仔细梳理和理解。
Felix官方站点:http://felix.apache.org/
开发环境
开发环境可选Maven或者bndtools
关于开发环境的选择,可能各有利弊,考虑到对Maven或bndtools的熟悉程度,初步先选择Maven吧。此外,可能还有以下原因:
- l Maven中央仓库已经积累了大量的第三方JAR包,这些JAR可能是Bundle的、或者非Bundle的库。作为开发期依赖,这些库全部可以利用。而Bndtools开发期的库的依赖只能是Bundle。对于大量的非Bundle的库,需要加以改造。
- l 扩展性:Maven的插件体系方便扩展。
- l 不足1:相对于bndtools的构件自动打包,Maven的打包显得不方便。不过可以借助Eclipse快捷键执行Maven-Install动作,或者制作一个EclipseBuilder,来提供自动打包的功能,以弥补此处不足。
- l 不足2:对于Felix的运行,bndtools提供了一个比较方便的测试运行环境,并且通过对于运行Bundle的依赖分析,自动将依赖项加入运行环境中。对Maven而言,可以自行开发扩展实现可视化的运行环境配置以及依赖分析功能。
此外,作为核心的Manifest元数据生成,使用Maven或者bndtools没有区别,无论Maven-bundle-plugin或者bndtools,底层都是使用BND工具来分析class文件,生成bundle的Export、Import-Package信息。
另外提一下,BND是Peter Kriens写的一个Bundle文件生成库(核心是Manifest元数据的分析和生成,但不只限于此,比如还包括嵌入式资源处理等)。BND有大量的参数,可以参考其官方网站:http://www.aqute.biz/Bnd/Bnd
对于Peter Kriens,有媒体称作是OSGi的推动者之一,甚至称作OSGi之父。总之,是对OSGi发展有相当影响的人。infoQ上有一篇专访可以参考:
http://www.infoq.com/cn/articles/Peter-Kriens-Returns-To-OSGi-Alliance
其他的:
JDK选用1.6;
Eclipse选用4.3以上的JavaEE版本,已自带了Maven。
可选安装Subclipse插件、org.sf.easyexplore插件等。另外,推荐安装bndtools插件,主要使用其中的JARViewer来查看Manifest文件。
相关推荐
4. **动态性**:OSGI环境允许服务单元在运行时动态安装、启动、更新和卸载,无需重启整个系统。这提供了高度的灵活性和适应性,使得应用程序能够根据需求动态扩展或收缩。 5. **服务注册与发现**:OSGI框架提供了一...
8. **felix或equinox实现**:OSGI运行时通常由特定的实现提供,如Apache Felix或Eclipse Equinox。例子可能会用到这些实现的特定API和工具。 通过这些例子,你可以逐步掌握OSGI的基础知识,并能够构建自己的模块化...
它提供了一种动态、可扩展的运行时环境,使得软件组件可以独立地部署、更新和管理。OSGi的核心是其服务导向架构,它将应用程序分解为称为“模块”的独立单元,这些模块之间通过服务进行交互。以下是对每个压缩包文件...
OSGi(Open Services Gateway Initiative)是一种Java模块化系统,它为开发人员提供了一种管理和部署应用程序的方式,使得软件可以被分解成独立的组件,这些组件可以在运行时动态地安装、更新和卸载。这种模块化的...
《OSGi R4服务平台核心规范》详细介绍了OSGi R4版本的核心特性和技术细节,是理解和应用OSGi的关键参考资料。 二、OSGi R4核心规范概览 OSGi R4规范进一步完善了服务定位和模块化管理,强化了动态部署、生命周期...
通过这种方式,OSGi实现了模块化开发,使得软件组件可以独立更新、加载和卸载,而不会影响到系统其他部分的运行。这种灵活性极大地提高了软件的可维护性和可扩展性。 在R4版本中,OSGi规范定义了以下几个关键概念和...
- **学习环境搭建**:可以使用Eclipse Equinox或Apache Felix等开源实现搭建OSGi运行环境。 - **编写第一个Bundle**:创建简单的模块,了解如何定义导出和导入包,以及Bundle的生命周期。 - **服务编程**:学习如何...
标题中的“可运行的OSGI实例”意味着这是一个已经配置好并经过测试的OSGI项目,用户可以下载并直接在本地环境中启动,体验OSGI的动态模块化特性。这通常包括一个基础的OSGI框架,如Equinox或Felix,以及一些示例服务...
OSGi(Open Services Gateway Initiative)是一种在Java平台上进行模块化编程的规范,它为Java应用提供了动态化、服务化和模块化的运行环境。OSGi规范定义了一组核心的Java包和Java类的框架,允许一个应用程序或组件...
为了帮助开发者更好地利用OSGi技术,OSGi联盟推出了多种开发工具和参考实现,如Apache Felix、Equinox等,这些工具和实现提供了丰富的API和开发环境,加速了基于OSGi的应用开发过程。 #### 三、OSGi在家用网关与...
《企业OSGi实战》一书是...综上所述,《企业OSGi实战》是OSGi在企业级应用领域的一本重要著作,它不仅为读者提供了丰富的知识和技能,还是一本实践导向的手册,适合希望掌握企业级应用开发的Java开发者和架构师参考。
其中的jar包可能包括了OSGi运行时环境如Apache Felix或Equinox,Spring框架的核心库,以及可能的Spring DM(Dependency Manager,已被Spring OSGi替代)等组件。 标签"osgi springDM"进一步明确了关键技术和关注点...
1. "Spring-Reference_zh_CN.chm":这是Spring框架的中文参考手册,Spring是Java领域最流行的框架之一,它与OSGi有很好的集成,可以在OSGi环境中运行Spring应用。 2. "Think In Java.chm":这是《Thinking in Java》...
OSGI技术允许应用程序通过动态地安装、启动、更新、卸载和管理软件包的方式来构建、配置和管理它们自己的运行环境。这种模块化设计方式特别适用于复杂应用程序的开发和维护,如企业级应用服务器和桌面应用程序。 ...
3. `lggege.rap.demo.launch` 可能是一个启动脚本或者配置,用于启动这个OSGi应用,可能包含了运行环境的设置和依赖项的管理。 4. `lggege.rap.demo.server.impl` 是服务器端逻辑的具体实现,包含了与数据库交互的...
文档探讨了如何将现有的系统重构为基于OSGi的系统,这是一个复杂的过程,需要对现有系统进行模块化,以及适配OSGi的运行时环境。文档中提到的重构过程对希望提升现有系统可维护性的开发者而言非常有参考价值。 6. ...
由于OSGi最初是为嵌入式领域设计,它的进程间通信需要较为丰富的计算资源,而OSGi规范仅仅为单个虚拟机内的Java应用提供了一个高度动态、面向服务的构件运行环境。因此,研究如何对OSGi进行分布式扩展,使其能够支持...
- 启动Equinox OSGi运行时,部署你的Bundle。然后,你可以通过HTTP客户端或浏览器访问`http://localhost:8080/api/hello`来测试你的REST服务。 通过以上步骤,你已经在Equinox OSGi环境中成功地嵌入了Jersey框架,...