OSGI容器识别Equinox / knopflerfish以及equinox osgi jar和核心osgi jar之间的关系

时间:2014-12-29 23:01:54

标签: java osgi equinox osgi-bundle knopflerfish

问题1: -

我正在开发一个大量使用OSGI的项目。我是OSGI的新手。在我的项目中,我看到了JARS的equinox和knopflerfish /和knopflerfish捆绑。

问题2: -

如何在Equinox和Knoplerfish中确定OSGI在我的项目中使用哪个容器?我假设OSGI一次不能同时使用这两个容器。

问题3: -

This link提到Equinox框架需要org.eclipse.osgi_<version>.jar来实现OSGI核心。这是否意味着它不需要来自OSGI website的核心OSGI jar,osgi.core-6.0.0

场景后面的昼夜平分点jar org.eclipse.osgi_<version>.jar是否使用核心OSGI jar osgi.core-6.0.0

equinox jar org.eclipse.osgi_<version>.jar是核心OSGI jar osgi.core-6.0.0的包装器吗?

是否存在任何关系,equinox jar org.eclipse.osgi_<version>.jar与核心OSGI jar osgi.core-6.0.0之间存在依赖关系,或者两个罐子是否相互独立?

问题4: -

假设我正在使用Equinox容器。我需要将我的项目更新为最新的OSGI版本。要将项目更新到最新的OSGI jar,我用哪个JAR替换最新的jar。

我是否从[OSGI网站]将core OSGI jar替换为最新的osgi.core-6.0.0(OSGI的最新版本),还是将equinox jar org.eclipse.osgi_<version>.jar更新为最新版本?

1 个答案:

答案 0 :(得分:1)

osgi.core-6.0.0是一个提供规范接口和类的包,由OSGi联盟发布。 org.eclipse.osgi_.jar是OSGi框架的equinox实现。

在OSGi中,提供API实现的bundle也嵌入相同的API是很常见的。对于equinox框架,情况就是如此。在jar中你也可以找到核心的所有API接口。

这主要是为了方便起见所以人们可以启动jar而不必找到正确的API jar并进行部署。

对于框架的升级,您只需更换equinox jar。通常情况下,equinox jar并不是唯一一个实现OSGi规范的人。您可能还会有配置管理服务的实现,也可能是核心之外的其他OSGi规范。要更新这些,你也必须更换这些罐子。在大多数情况下,您可以单独更新这些内容,因为它们通常可以很好地一起播放。