OSGi片段:修补Eclipse插件中的错误

时间:2010-12-22 08:31:02

标签: osgi patch osgi-fragment

在听说过OSGi片段后,我想知道:

我可以使用片段注入补丁,即替换现有的签名捆绑包中的现有类吗?

是否有文档如何做到这一点?

2 个答案:

答案 0 :(得分:2)

我没有使用过已签名的bundle,但是它们是一种获取片段来覆盖宿主束中的类的方法。但是你需要提前做好计划。

在你的Host Bundle中定义一个Bundle-Classpath:

Bundle-Classpath:jar-not-in-host.jar;。

此jar文件不应存在于主机中。然后你的片段可以包含一个名为jar-not-in-host.jar的jar。附加片段后,jar-not-in-host.jar中的类将在主机包的根目录中的类之前加载。

我知道不是很好,但它确实有用。

答案 1 :(得分:1)

答案是

OSGi片段没有自己的类加载器,它们被视为主机的一部分。他们无法注入新代码来替换现有的类。片段的常见用法是为不同的主机提供不同的实现。另一个需要其功能的捆绑包(由主机捆绑包导出)将不依赖于具体实现。

Bundle已经是OSGi的原子概念,如果你想补丁,你应该提供它的更新版本。