我们在 Equinox OSGi 运行时中运行我们的应用程序。有一个与 OSGi 本身一起使用的扩展机制来加载来自 2nd/3rd 方的插件。问题是这些插件可能会引入干扰“核心”应用程序或其他插件的包。
这就是为什么我正在尝试使用 Aries 子系统 2.0.10 来在混合中引入一些捆绑范围,并避免干扰“核心”应用程序和其他插件,还允许插件开发人员使用通用库的版本(例如 Spring ) 他们想要的。
目前,我从一组插件包中生成一个 ESA,并在 OSGi 框架中安装 Application 类型的子系统。问题从启动子系统时开始,我们的扩展机制(在内核区域内)依赖于为子系统内的一组启动包触发的 BundleEvents,但子系统部署在其自己的区域中,因此包事件被过滤,并且永远不会到达内核区域中的侦听器。
有没有办法从内核区域中的子系统区域接收 BundleEvents,而不使用子系统内部的“人工”包,在某些全局事件总线上重新传输所述事件?