为什么基于OSGi模型的Eclipse需要在安装新插件后重新启动?

时间:2013-10-18 02:36:19

标签: java eclipse plugins osgi equinox

Eclipse基于OSGi模型设计。 OSGi模型声明它支持热安装和卸载捆绑包。所以我很困惑为什么Eclipse总是需要重新启动以获取新的安装插件工作。 OSGi模型不是那么好,或者Eclipse没有实现整个模型吗?

1 个答案:

答案 0 :(得分:1)

OSGi模型非常有效,但动态不是免费的。捆绑代码需要以处理即将到来的服务的方式编写。

Eclipse有两个问题。首先,有大量遗留插件不是动态感知的,并且由坦率的平庸开发人员编写。其次,Eclipse总是回避OSGi的服务部分,而是偏向于“扩展注册表”,其更加静态和笨重的生命周期(实际上它可能是可能来处理扩展注册表的动态更新,但更难比使用OSGi服务时。)

实际上,在许多情况下,Eclipse可以动态地处理插件的添加,这就是安装对话框为您提供执行此操作的选项的原因。但由于第三方插件的质量不稳定,它可以安全地播放并建议重新启动。