【问题标题】:How to control start level of bundles deployed from pickup directory?如何控制从拾取目录部署的捆绑包的启动级别?
【发布时间】:2013-08-15 10:29:20
【问题描述】:

是否可以控制放在pickup 文件夹中的捆绑包的开始级别?有没有办法让捆绑包要求在某个其他服务可用之前不激活它?

我们有许多完全由启动级别管理的相互依赖关系的捆绑包;即如果 Bundle Y 在其启动时需要 Bundle X,则 Y 具有更高的启动级别。

如果捆绑包被放在拾取目录中,这将无法正常工作。似乎这些捆绑包先于任何其他捆绑包开始,并且它们之间的顺序是任意的,也许是同时的。

有没有办法控制拾取文件夹中捆绑包的起始级别?

更好的是,有没有办法让包声明它对其他服务的依赖关系?在这种情况下,我什至可以将它与多个捆绑包一起使用,其中一个依赖于另一个。

【问题讨论】:

    标签: equinox p2 osgi-bundle


    【解决方案1】:

    您只能将捆绑包的解析限制为功能的可用性,而不是激活。激活肯定会在解析之后发生,但解析的捆绑包可以按任何顺序激活。所以捆绑级别的激活依赖不能很好地工作。

    相反,您应该使用“组件”(即声明式服务),它们可以选择将其生命周期绑定到其他组件的可用性。使用此选项,bundle 可以以任意顺序启动,但服务仍然只有在其所有服务依赖项都被激活后才会被激活/公开。

    【讨论】:

      猜你喜欢
      • 2014-01-20
      • 2011-11-19
      • 1970-01-01
      • 2015-12-04
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-14
      相关资源
      最近更新 更多