我正在开发OSGi应用程序。大多数地方我发现Eclipse基于Equinox的内容/引用,这是OSGi Release规范4的实现.OSGi提供了一个功能,即无需重新启动应用程序即可激活更新版本的bundle即动态。但是当我在eclipse中安装插件时,它要求我重新启动eclipse以激活插件。由于在OSGi技术中不需要重启,在eclipse中重启的目的是什么?任何人都可以解释这背后的原因吗?
答案 0 :(得分:1)
虽然OSGi完全支持动态更新,但并非所有在OSGi上运行的代码都完全支持动态更新它们的依赖项。如果一个bundle假定它发现并使用的某些服务永远不会消失,那么当提供服务的bundle停止时,该bundle将会严重失败。
因此,Eclipse的某些部分在动态方面表现不佳。这通常是安装人员的原因,例如p2,请求在更新捆绑包后重新启动Eclipse。
答案 1 :(得分:0)
Eclipse插件不仅仅是OSGi代码。还有Eclipse的“扩展点”(在“plugin.xml”中定义)。 Eclipse可能需要重新启动才能重建扩展点注册表。
我不确定,但Eclipse安装程序(称为'p2')可能还想在重启期间进行一些清理。