如何在 Fabri8 的不同容器中使用依赖包?
How to use dependent bundles in different container in Fabri8?
我正在尝试了解 Fabric8 的容器管理功能。
我只是想澄清以下情况可以通过在 JBossFuse 中使用 Fabric8 来实现。
我创建了 2 个简单的包(tick、tock 包的灵感来自:http://kevinboone.net/osgitest.html)。
Simply Tick bundle 正在导出一个包,而 Tock bundle 正在导入它。换句话说,Tock Bundle 依赖于 Tick Bundle。
这 2 个包在部署在单个容器中时运行良好(比如在 JBoossFuse 中的一个子容器中)。
然后我使用 fabric8 创建了一个集群,并将其容器也添加到 Fabric Ensemble。
而且我已经创建了 2 个配置文件。 TickProfile 包含 Tick 包,Tock 配置文件包含 Tock 包。
我已将以上 2 个配置文件部署到 2 个不同的容器中,如下所示,
然后它无法正常工作,因为 Tock bundle 无法解析其对 Tick Bundle 公开的 Tick Bundle 的依赖性(因为这些 bundle 在两个不同的容器中)。
我认为 fabric8 可以做到这一点,但似乎不能。
如果有人能告诉我是否有任何方法可以实现这一点,我将不胜感激。
谢谢。
不,这是不可能的。 OSGi 级别的包导出和导入受限于 JVM。这意味着不同 JVM 中的包将无法相互导入 类.
唯一支持集群的 OSGi 概念是服务。 OSGi 规范调用远程服务。
参见:https://wiki.eclipse.org/Tutorial:_Building_your_first_OSGi_Remote_Service
我正在尝试了解 Fabric8 的容器管理功能。 我只是想澄清以下情况可以通过在 JBossFuse 中使用 Fabric8 来实现。
我创建了 2 个简单的包(tick、tock 包的灵感来自:http://kevinboone.net/osgitest.html)。 Simply Tick bundle 正在导出一个包,而 Tock bundle 正在导入它。换句话说,Tock Bundle 依赖于 Tick Bundle。
这 2 个包在部署在单个容器中时运行良好(比如在 JBoossFuse 中的一个子容器中)。
然后我使用 fabric8 创建了一个集群,并将其容器也添加到 Fabric Ensemble。
而且我已经创建了 2 个配置文件。 TickProfile 包含 Tick 包,Tock 配置文件包含 Tock 包。
我已将以上 2 个配置文件部署到 2 个不同的容器中,如下所示,
然后它无法正常工作,因为 Tock bundle 无法解析其对 Tick Bundle 公开的 Tick Bundle 的依赖性(因为这些 bundle 在两个不同的容器中)。
我认为 fabric8 可以做到这一点,但似乎不能。
如果有人能告诉我是否有任何方法可以实现这一点,我将不胜感激。
谢谢。
不,这是不可能的。 OSGi 级别的包导出和导入受限于 JVM。这意味着不同 JVM 中的包将无法相互导入 类.
唯一支持集群的 OSGi 概念是服务。 OSGi 规范调用远程服务。
参见:https://wiki.eclipse.org/Tutorial:_Building_your_first_OSGi_Remote_Service