gpt4 book ai didi

java - 一旦解决了 bundle 的 OSGI bundle 的依赖关系,会发生什么情况

转载 作者:行者123 更新时间:2023-11-30 06:42:47 25 4
gpt4 key购买 nike

我有一个 OSGI bundle A 和 bundle B。 bundle B 依赖于 bundle A。

bundle B 和 bundle A 均处于 Activity 状态。

现在我需要了解以下场景对 Bundle B 的影响

1) 我已经停止了 bundle A, bundle B 会发生什么。

2) 我已经卸载了 bundle A。 bundle B 会发生什么情况。

3) 我已经停止了 bundle A,然后停止了 bundle B,现在我正在尝试从安装状态解析 B。

4) 我已经卸载了 bundle A,然后停止了 bundle B,现在我正在尝试从安装状态解析 B。

有人可以回答一下吗?

我已经使用 apache Felix 控制台尝试过此操作,并且在上述任何场景中我都没有看到对 B 的任何影响。

谁能帮我解决这个问题吗?

最佳答案

影响应该如下:

  1. 没什么(停止与解决问题无关)
  2. 什么都不做(B 仍然使用 A 导出的包,直到您进行刷新)
  3. 没什么(停止与解决问题无关)
  4. B 不应解析 - 除非另一个包能够提供 B 所依赖的包。

更新

在评论中,@Ngupta 询问“请分享一些解释,解释为什么 B 总是能被解析,即使它需要的包已经不存在了”。

我的回答:即使您卸载了 B 的依赖项,B 仍将保持处于已解决状态。但是,如果 B 缺少依赖项,则不会转换到已解决的状态。

您可以通过执行刷新来强制 B 重新解析(并且此重新解析应该失败),这是一个可以从 Gogo shell 执行的操作。事实上,在执行一系列安装、更新或删除操作后,您应该始终执行刷新

关于java - 一旦解决了 bundle 的 OSGI bundle 的依赖关系,会发生什么情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44148308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com