我试图了解Fabric8容器管理的功能。 我只想澄清天气,通过在JBossFuse中使用Fabric8可以实现以下场景。
我创建了简单的2个包(tick,tock包,灵感来自:http://kevinboone.net/osgitest.html)。 Simply Tick bundle正在导出一个包,而Tock包正在导入它。换句话说,Tock Bundle取决于Tick Bundle。
当在一个容器中部署时(例如在JBoossFuse中的一个子容器中),这两个捆绑包可以正常工作。
然后我使用fabric8创建了一个集群,并将其容器添加到Fabric Ensemble中。
我创建了2个配置文件。 TickProfile包含Tick包,Tock配置文件包含Tock包。
我已经在2个不同的容器中部署了2个配置文件,如下所示,
然后它无法正常工作,因为Tock bundle无法解析Tick Bundle暴露的Tick Bundle的依赖关系(因为这些bundle在两个不同的容器中)。
我认为这可以通过fabric8实现,但似乎不可能。
如果有人能告诉我是否有任何方法可以实现这一点,我们将非常感激。
感谢。
答案 0 :(得分:1)
不,这是不可能的。 OSGi级别的包导出和导入与JVM绑定。这意味着不同JVM中的bundle将无法导入彼此的类。
唯一支持群集的OSGi概念是服务。 OSGi规范称之为远程服务。
请参阅:https://wiki.eclipse.org/Tutorial:_Building_your_first_OSGi_Remote_Service