在Required-Bundle和Imported-Package上加载OSGi

时间:2014-08-07 02:45:13

标签: osgi classloader

对于OSGi包,我们可以使用Required-Bundle或Imported-Package添加依赖项。现在我有以下情况:

捆绑包A和捆绑包B都导出相同的包,但捆绑包B的版本更高,如:

bundle A:
   Exported Packages:
     xxx.a,
     xxx.b,
     xxx.c

bundle B:
   Exported Packages:
     xxx.a; version="5.0.0",
     xxx.b; version="5.0.0",
     xxx.c; version="5.0.0"

bundle C依赖于打包a,b,c,所以它在Required-Bundle列表中添加了A,比如

bundle C:
     Required Bundles:
       A

假设捆绑A和B都在框架中解析。那么在解析bundle C时,哪些包/类是由C加载的,A或B中的类是什么?我想是A.我是对的吗?

1 个答案:

答案 0 :(得分:2)

是的,使用A中的包,因为您需要捆绑包。

请注意,大多数OSGi开发人员都要求使用Require-Bundle considered deprecated