我已经编写了一个 Eclipse 插件,它将一个BundleListener注册到它启动的BundleContext中。注册的侦听器将记录所有BundleEvents。我注意到只记录了STARTED类型的事件。
我已将捆绑包注册为在config.ini
eclipse 中的级别 2 开始,默认捆绑包启动级别为 4。
例如,有什么方法可以让我收听 RESOLVED 类型的事件?我是否为接收该类型的事件而启动捆绑包太晚了?是否使用了多个捆绑上下文?
我已经编写了一个 Eclipse 插件,它将一个BundleListener注册到它启动的BundleContext中。注册的侦听器将记录所有BundleEvents。我注意到只记录了STARTED类型的事件。
我已将捆绑包注册为在config.ini
eclipse 中的级别 2 开始,默认捆绑包启动级别为 4。
例如,有什么方法可以让我收听 RESOLVED 类型的事件?我是否为接收该类型的事件而启动捆绑包太晚了?是否使用了多个捆绑上下文?
由于动态,强制排序通常是一个坏主意,在 OSGi 中更糟。你可以得到一些看起来像开始级别排序的东西,但它肯定是非常脆弱的,并且很快就会变得非常复杂。因为通常您需要事件来发现状态,所以我想知道您的用例是什么。在 OSGi 中,查找 Bundle 状态是微不足道的。对于需要状态发现事件的应用程序,BundleTracker 提供了一个非常好的 API 来发现处于一组状态的捆绑包。根据我的经验,BundleTracker 非常适合 99% 的 BundleListener 用例。
如果您只是记录,所有框架事件都会记录到日志服务,并且日志服务通常会很早就启动。使用日志阅读器服务,您可以访问在您开始之前发生的事件。