【问题标题】:OSGi - Is it possible to override a bundle's classes using a fragment?OSGi - 是否可以使用片段覆盖捆绑包的类?
【发布时间】:2014-07-16 10:22:25
【问题描述】:

一个类在片段包中。

这个类可以覆盖或扩展同名类的主机包吗?

Bundle-SymbolicName: example

Bundle-SymbolicName: example.fragment
Fragment-Host: example;

谁能给我一些 Fragment bundle 的例子?

谢谢!

【问题讨论】:

    标签: osgi fragment bundle


    【解决方案1】:

    是的,这是可能的,但前提是主机包通过在其 Bundle-Classpath 的开头放置一个元素来准备自己,以便以后的片段可以填充。

    【讨论】:

    • 废话,这会解决我的严重头痛 - 你有什么方便的参考吗?
    • 参见核心规范中的 3.9.1 Bundle-Classpath。
    • Core 规范中链接到3.9.1 Bundle Class Path
    【解决方案2】:

    不,OSGi 规范中明确规定,资源(包括类文件)将首先在主机包中查找,只有在没有找到时才会查询任何片段包。

    如果您使用声明式服务,您可以通过在优先级高于主机的片段中重新声明服务来覆盖服务。

    【讨论】:

      猜你喜欢
      • 2013-02-03
      • 2012-07-24
      • 2015-02-06
      • 2012-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      相关资源
      最近更新 更多