Eclipse rcp Eclipse RCP中的OSGi BundleListener和BundleTracker

Eclipse rcp Eclipse RCP中的OSGi BundleListener和BundleTracker,eclipse-rcp,osgi,equinox,Eclipse Rcp,Osgi,Equinox,在EclipseRCP中,我很难监听OSGi捆绑包是否进入已解析状态。BundleListener或BundleTracker似乎都没有注意到捆绑包进入已解析状态 但是,侦听器不会注意到已解析为活动的事件。是否有可能在侦听器捆绑包有机会注册自己之前,启动配置的捆绑包部分进入已解决状态 还有一件事,我认为一旦其他bundle(例如)尝试访问它们的服务/类,bundle就会延迟/自动地从解析变为活动 干杯 在激活任何捆绑包之前,很可能所有捆绑包都已解析。必须激活bundle才能获得控制权,以便is可

在EclipseRCP中,我很难监听OSGi捆绑包是否进入已解析状态。BundleListener或BundleTracker似乎都没有注意到捆绑包进入已解析状态

但是,侦听器不会注意到已解析为活动的事件。是否有可能在侦听器捆绑包有机会注册自己之前,启动配置的捆绑包部分进入已解决状态

还有一件事,我认为一旦其他bundle(例如)尝试访问它们的服务/类,bundle就会延迟/自动地从解析变为活动


干杯

在激活任何捆绑包之前,很可能所有捆绑包都已解析。必须激活bundle才能获得控制权,以便is可以注册BundleListener或打开BundleTracker


已解析的捆绑包可以在不处于活动状态的情况下加载类。如果捆绑包被标记为延迟激活,那么来自捆绑包的第一类加载可以触发激活。

在激活任何捆绑包之前,很可能所有捆绑包都已解决。必须激活bundle才能获得控制权,以便is可以注册BundleListener或打开BundleTracker


已解析的捆绑包可以在不处于活动状态的情况下加载类。如果捆绑包被标记为延迟激活,那么来自捆绑包的第一类加载可以触发激活。

谢谢您的回答。您知道是否有一种方法可以在其他bundle进入解析之前强制某些bundle处于活动状态吗?通常情况下,这是不可能的。使用ResolveRook,您可以在即将解析捆绑包时收到通知。钩子可以尝试启动其他捆绑。但这可能并不奏效。例如,如果两个包都是同一个解析操作的一部分。我认为您应该重新考虑为什么要这样做,因为这似乎是一个具有脆弱依赖性的糟糕设计。谢谢您的回答。您知道是否有一种方法可以在其他bundle进入解析之前强制某些bundle处于活动状态吗?通常情况下,这是不可能的。使用ResolveRook,您可以在即将解析捆绑包时收到通知。钩子可以尝试启动其他捆绑。但这可能并不奏效。例如,如果两个包都是同一个解析操作的一部分。我认为您应该重新考虑为什么要这样做,因为这似乎是一个具有脆弱依赖性的糟糕设计。