【问题标题】:What happens when i install bundle at runtime in OSGi bundle context当我在 OSGi 包上下文中运行时安装包时会发生什么
【发布时间】:2016-01-02 13:13:19
【问题描述】:

在运行时,我正在安装一个捆绑包,该捆绑包的 Bundle-ActivationPolicy 是急切的。捆绑包状态解析或安装或活动将是什么?。运行时安装后捆绑包的确切状态是什么? 我正在使用 bundleContext.installBundle(URL) 安装;

【问题讨论】:

    标签: osgi equinox


    【解决方案1】:

    当您安装一个包时,它首先进入 INSTALLED 状态。

    OSGi 包的生命周期可在OSGi R6 Core Specification 的第 4.4 节中找到。请特别参考第 107 页的图 4.4,它显示了状态转换图。

    您几乎可以肯定不需要使用 Bundle-ActivationPolicy eager。它不会做你认为它会做的事情,而且它实际上做的事情几乎没有用处。我强烈建议你忽略它。

    【讨论】:

    • 安装后会启动捆绑包吗?还是我们需要开始?
    • 不,它不会启动,这就是我给出我给出的答案的原因。如果您想启动它,请致电Bundle.start
    • 我在运行时安装了 A、B、C 捆绑包,A 和 C 依赖于 B,所以我想先启动 B,因为我想在运行时给出启动级别,这可能吗?
    • 为什么您认为这些捆绑包需要按特定顺序启动?
    • 如果我在 B 之前启动 A,则会给出错误服务不可用异常,该服务在 B 中实现,所以我想先启动 B
    猜你喜欢
    • 2014-08-20
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多