我正在尝试在我的 OSGi 容器中添加一个 BundleWatcher 挂钩,以便我可以在加载捆绑包时对其进行监控。我在 config.ini 中做了以下更改,
在 osgi.bundles 属性中添加了对我的 jar 的引用,如下所示, osgi.bundles = ,reference\:file\:../lib/my.jar@2:start
设置属性 osgi.framework.extensions = mybundle
在 osgi.hook.configurators.include 中添加 MyBundleWatcher 作为钩子
此外,我的 jar 文件与 OSGi 包位于同一目录中。
当我运行我的应用程序时,我的 BundleWatcher 会出现 ClassNotFoundException。
但是,我可以确认我的包(其中包含 BundleWatcher)确实已启动,因为我的包中的 Activator 的 start 方法被调用。
我究竟做错了什么?
作为背景,这里有几篇我关注的文章,
http://wiki.eclipse.org/index.php/Adaptor_Hooks
http://eclipsesource.com/blogs/2013/01/23/how-to-track-lifecycle-changes-of-osgi-bundles/