繁体   English   中英

从代码解析OSGi捆绑包

[英]Resolve OSGi bundle from code

我必须以编程方式确保多个OSGi捆绑包的特定启动顺序,因为激活过程与其他捆绑包有一些依赖性。 我从Java代码管理捆绑软件的生命周期,在Java代码中,我尝试确定捆绑软件的接线以计算正确的启动顺序。 所有捆绑软件均已正确安装。

由于将束线接缝初始化为已解决状态,因此我正在寻找一种以编程方式解决束的方法。 我只找到bundle.start()可以解析但也可以启动bundle。 有没有办法解决而不开始? 如果我手动使用OSGi Shell,则可以通过resolve <bundle-id>

您无法以可靠且可靠的方式执行此操作。 OSGi没有开始订购。 期。 出。 克服它。

原因很简单,捆绑包可能会停止,并且引发您在启动时发明的任何巧妙命令。

唯一有效的顺序是服务依赖性。 每个组件应指定其依赖的服务,而不是在注册所需的服务之前启动。 这是唯一可靠的订购方式。

当您可以使用DS时,这当然很简单。

您可以使用FrameworkWiring.resolveBundles解析一组捆绑软件。 但是解决捆绑包只是启动捆绑包的必要先决条件,但与订购无关。 您可以一次解决所有捆绑软件,然后以随机顺序启动捆绑软件。

如Peter所说,如果您需要按特定顺序启动捆绑软件,则系统出了点问题。 它将如何处理更新包?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM