Eclipse RCP - 以编程方式更改plugin.xml?刷新?

时间:2012-06-21 15:41:35

标签: java eclipse-plugin eclipse-rcp reload

修改
我想要做的是,以编程方式在Rclipse-RCP 3.7应用程序中将首选项页面添加到首选项菜单中。 不幸的是,如上所述,这似乎不能以编程方式工作 in this post

作为一种解决方案,我考虑创建一个特殊的插件,它将保持首选项。此插件应在其plugin.xml中声明所有首选项页面并卸载/安装自身以在首选项菜单中应用更改。

问题:

是否有可能

  1. 以编程方式更改插件自己的plugin.xml?
  2. 是否有可能以编程方式更新插件,从plugin.xml重新加载新设置?

1 个答案:

答案 0 :(得分:3)

理解你想要解决的问题,而不是你正在做的事情会有所帮助。

一般来说,没有简单的方法可以做你想做的事。

您可以使用OSGi卸载并重新安装捆绑包,强制重新加载plugin.xml。见org.osgi.framework.Bundle.uninstall()。但是,根据plugin.xml提供的扩展,不会将扩展点消费者编写为动态识别。

RCP应用的另一个选项是使用org.eclipse.core.runtime.IExtensionRegistry.addContribution(InputStream, IContributor, boolean, String, ResourceBundle, Object)提供扩展程序。这对于动态添加非常有用,它对于删除扩展的可靠性较低,同样需要注意(动态感知是扩展点的使用者)。您可以通过将用户标记设置为null来在RCP应用程序中使用它。