【发布时间】:2014-01-20 11:12:30
【问题描述】:
我们希望通过添加 OSGi 片段来替换主机 OSGi 包中的某些资源。
据我了解,OSGi 片段中包含的资源只是添加到主机包的类路径中。 无法保证如果片段正在添加主机包中已经存在的资源, 片段中的资源将被加载:它也可能是主机版本。
为了确保加载资源的片段版本而不是宿主版本, http://wiki.osgi.org/wiki/Fragment 提到可以使用 Bundle-ClassPath 标头将资源指定为“第一”(首选)。
以patch.jar为例:
Bundle-ClassPath: patch.jar,.
如上所述:“因为 patch.jar 领先于 '.'它将允许优先从片段而不是宿主加载类。”
我可以使用这种技术,但这意味着我首先必须将我的片段资源捆绑在一个单独的 jar 中,然后将这个 jar 包含在片段包中。
有没有办法优先从片段而不是主机加载类/资源,而不必在片段中包含 jar?
【问题讨论】:
标签: osgi osgi-fragment