【问题标题】:Exporting and importing same package from an osgi bundle从 osgi 包中导出和导入相同的包
【发布时间】:2017-11-16 09:37:51
【问题描述】:

我有一个类 org.foo.Customer 在一个 osgi 包 Bundle1 和另一个类 org.foo.Subscriber 在另一个 osgi 包中 Bundle2 在同一 osgi 环境中。 Bundle1 出口包 org.foo 。

是否可以通过Bundle1Bundle2 打包成import org.foo。在 Bundle1 的 manifest 文件中 export 和 import 指定同一个包,运行时会不会有冲突。

【问题讨论】:

    标签: java maven osgi


    【解决方案1】:

    在 OSGi 中拆分包为 strongly discouraged。如果您拥有这些包,您应该重命名一个或两个包,或者将拆分的包合并为一个包。

    Bundle2 可以导入拆分包,但是 Bundle2 的类加载器只能看到 Bundle1 中的类,而看不到 Bundle2 内部的类。

    您可以将其中一个捆绑包设置为另一个捆绑包的fragment,这样它们将使用相同的类加载器。这只需要更改片段包的清单,如果您由于某种原因无法加入包或更改包名称,则可以选择。

    【讨论】:

    • 片段页面的链接不再可用。请对此有任何更新/
    • 用指向 OSGi 规范中有关片段的部分的链接替换了无效的“片段”链接。
    猜你喜欢
    • 2012-12-12
    • 2023-03-12
    • 1970-01-01
    • 2011-11-25
    • 2020-07-15
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    相关资源
    最近更新 更多