【发布时间】:2012-08-08 09:41:16
【问题描述】:
假设有两个 OSGi 包的 A 和 B 分别导出 x 和 y 包。 如果存在 A 依赖于 B 的导出而 B 依赖于 A 的导出的情况,应该首先启动哪一个。 假设一个人想从不同类(即不在 Activator 类中)的共享注册表中获取 ServiceReference,那么如何使用当前包的上下文初始化 BundleContext 对象。
这可能会解决我上面提到的关于相互依赖的情况。 就像 A 可以在其激活器的 start 方法中使用 B 的导出,而 B 可以在调用时在不同类的方法中使用 A 的导出
【问题讨论】:
-
如果A依赖B,B依赖A,能不能启动这两个bundle?对于 bundlecontext,我认为我们有一个 BundleContextAware 接口
-
BundleContext bundleContext = FrameworkUtil.getBundle(JasperService.class).getBundleContext(); ServiceReference> empServiceReference = bundleContext.getServiceReference(yourclassname.class.getName());
-
这适用于在除激活器之外的类中获取当前包的包上下文。
标签: osgi