OSGi包可以有两个依赖项,每个依赖项在同一个OSGi包的不同版本上吗?
OSGi包可以有两个依赖项,每个依赖项在同一个OSGi包的不同版本上吗?
(我正在尝试从头开始学习OSGi.这个问题只是为了帮助我理解基本概念.通过阅读有关OSGi服务的在线文章,我认为这样的依赖肯定不会被推荐练习.但它们是否可能在所有?)
(更新:重新提出两个问题.)
不.OSGi为捆绑提供一致的类空间.这意味着它只暴露给给定名称的单个类.因此,捆绑包不能同时看到一个包的多个版本.
这并不意味着ClassCastExceptions不可能,因为bundle直接依赖于它的代码,可以将对象从它们的依赖项暴露给你的bundle.在导出包上正确使用使用约束对于防止这种情况很重要.