1

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

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

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

非常感谢您!约翰内斯

4

1 回答 1

2

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

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

于 2012-05-08T22:17:32.220 回答