我对OSGI片段有一些误解,
假设我已经使用两个类“com.company.C1”和“com.company.C2”部署了一个包“B”,其中C1使用C2。 然后,我为主机包“B”部署了一个片段“F”,其中F只包含一个类“com.company.C2”(第一类代码稍有变化)
现在,如果正在执行“com.company.C1”类,将使用哪个类(文件)“com.company.C2”,从“B”还是从“F”?
在相同的类加载器中是否存在相同类C2两次会导致运行时错误(相同的版本和不同版本)?
答案 0 :(得分:5)
阅读" 3.9.4 OSGi核心规范的总体搜索顺序" ,一切都将清晰。
简而言之:首先检查bundle中的类而不是片段bundle。如果在bundle和fragment bundle中有一个类,那么片段bundle中的类将永远不会被使用。