【问题标题】:Fuse ESB Fabric Feature bundle load orderFuse ESB Fabric 功能包加载顺序
【发布时间】:2013-07-03 08:45:58
【问题描述】:

有没有办法控制 fuse esb 结构特性中的 OSGi 包的加载顺序,以便以后的包依赖于早期包的完整加载?例如,在以下功能中,我希望 simple-client 模块仅在之前的包完全加载后启动:

  <features name="simple-service-features">
    <feature>
       <bundle>mvn:com.company/simple-datasource/0.0.0</bundle>
       <bundle>mvn:com.company/simple-model/0.0.0</bundle>
       <bundle>mvn:com.company/simple-service/0.0.0</bundle
       <bundle>mvn:com.company/simple-client/0.0.0</bundle>
    </feature>
  </features>

【问题讨论】:

  • 我不知道 Fuse ESB 如何管理它的包加载,但是从 OSGi 的角度来看,正确的方法是总是在启动 ANY 之前安装 ALL 的包 其中。如果你这样做,那么安装顺序就无关紧要了。
  • 是否有一些钩子可以告诉我们何时初始化所有捆绑包?
  • OSGi 无法告诉您这一点,因为它不知道您打算安装多少包。您的启动器或管理代理会知道它何时完成安装。

标签: osgi esb fuseesb fusefabric


【解决方案1】:

您可以使用 features.xml 中 bundle 标记的属性 start-level 来排序 OSGI 包的启动。

起始级别与每个捆绑包相关联。启动级别是一个正整数值,用于控制激活/启动捆绑包的顺序。具有低启动级别的捆绑包在具有高启动级别的捆绑包之前启动。因此,启动级别为 1 的包首先启动,属于内核的包往往具有较低的启动级别,因为它们为运行大多数其他包提供了先决条件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 2012-03-30
    • 1970-01-01
    相关资源
    最近更新 更多