现在利用所有这些插件并将其包装到受控的运行时,插件可在其中动态进出,并且您可以获得OSGi(基本上来说)。
OSGi容器现在已经为一些分布式服务部署做好了准备。
ML:OSGi存在的时间不短了,但似乎是最近才引起人们比较多的注意。
尽管这些内容超出了本文的范围,但是在一个OSGi系统中,一个bundle同时有两个版本也是可能的。
他表示OSGi已经是IBM策略的一部分,但它主要用于内部项目(例如WebSphere和Eclipse)。
清单10中展示的应用程序清单文件需要表明这个服务应该在OSGi应用程序外部可见。
这允许以无序的方式调出基于OSGi的系统,能够让捆绑包独立于彼此而运行。
正如您所看到的,交换服务的地方(在一个OSGi环境中)是OSGi服务注册表。
好在OSGi为你管理起这种依赖传递,确保不再出现不兼容类引发的问题。
OSGI-INF目录(与XML文件一起)需要被包含进bundle中,否则DS看不到它。
RAP是一个专注于服务器端的AJAX框架并与OSGi,Equinox和Eclipse平台有着紧密的关系。
当我们从KnopflerfishOSGi桌面加载Hamletbundle时,它会显示在bundle视图中,如图6所示。
这些方法允许您挂接到附加组件的生命周期,这通过底层RooOSGi容器管理。
版本跟踪——人们常常会有这样的疑问,“我可以集成这个库吗?”
作为一种OSGi解决方案,Nuxeo组件可以通过添加带有Nuxeo-Component头声明的OSGibundle使用。
InfoQ:说到新技术,OSGi似乎也正成为一项重要技术,你如何定位SCA和OSGi?
可以使用与对持久性模块所做的类似的更改来将EAR中的Web模块转化成一个OSGi包。
此规范由两部分组成:OSGi框架和一组标准的服务定义。
Equinox是OSGi的参考实现,在组建Eclipse的构建块时可以考虑使用它。
它的目的是处理OSGi的动态特性,即服务可以在任何时间变得可用和不可用。
由于持久性单元不再由JavaEE定义,因此这样的名称不会由OSGiJPA运行时填充。
后者的目标是实现一个标准的shell以控制任意的OSGi引擎而不是针对特定系统的特定shell。
他的介绍是从OSGi架构概览及其框架层开始的。
OSGi规范以更为动态的方式定义和传播Java应用程序的模块化。
Eclipse有一个有用的OSGi控制台,允许通过安装和运行OSGi模块来测试它们。
OSGi并没有与Java语言集成,相反,它构建在JavaSE平台之上而不是其中。
“我认为OSGi是一项伟大的技术。我并不认为它是唯一的解决方案”,他说。
你也知道,Equinox这个支撑Eclipse的OSGi实现如今在服务器上使用得相当广泛。
这样,从一个架构的角度来,OSGi只是一个特殊的封装打包技术。