动态设置OSGi导入版本限制?

动态设置OSGi导入版本限制?,osgi,bundle,equinox,Osgi,Bundle,Equinox,目前,我正在构建一个基于OSGi的web应用程序,它只包含两个包。在其中一个示例中,我从流程引擎加载流程实例。每个流程实例都应该与最初分配给它的另一个包的特定版本相对应 例如,我想在Bundle A中加载一个流程实例,并使用版本1.0中Bundle B中的包处理它。之后,我将获得另一个流程实例,并使用版本2.0中bundle B中的包处理它 你认为有什么方法可以实现这个功能吗 提前非常感谢! Johannes捆绑包A在任何给定点只能暴露于包的单个版本。因此,除了可能仅使用反射之外,捆绑包A不能使

目前,我正在构建一个基于OSGi的web应用程序,它只包含两个包。在其中一个示例中,我从流程引擎加载流程实例。每个流程实例都应该与最初分配给它的另一个包的特定版本相对应

例如,我想在Bundle A中加载一个流程实例,并使用版本1.0中Bundle B中的包处理它。之后,我将获得另一个流程实例,并使用版本2.0中bundle B中的包处理它

你认为有什么方法可以实现这个功能吗

提前非常感谢!
Johannes

捆绑包A在任何给定点只能暴露于包的单个版本。因此,除了可能仅使用反射之外,捆绑包A不能使用由不同版本的捆绑包B导出的相同包的两个版本


或者,您的意思是捆绑包B的两个版本以不同的方式实现相同的包吗。然后Bundle A可以从Bundle B的两个版本中看到不同的实现对象,因为它们似乎与Bundle A的接口类型相同。如果是这种情况,那么OSGi服务是Bundle B发布这些对象以供Bundle A使用的最佳方式。

感谢您对导入的说明和建议。对于Bundle B的每个新版本,都应该有新的服务任务实现,因此我将尝试使用OSGi服务为Bundle A提供这些任务。谢谢