首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Eclipse RCP中使用plugin_customization.ini使org.eclipse.equinox.p2.ui.sdk.scheduler/enabled成为真?

如何在Eclipse RCP中使用plugin_customization.ini使org.eclipse.equinox.p2.ui.sdk.scheduler/enabled成为真?
EN

Stack Overflow用户
提问于 2010-08-10 07:57:18
回答 1查看 1K关注 0票数 2

我正在尝试构建一个Eclipse RCP应用程序,在此过程中,我们尝试将应用程序设置为自动更新。我们正在尝试让它在preferences -> Install/Update -> Automatic Updates页面中自动设置正确的首选项。

我已经在plugin_customization.ini文件中为我们的.product设置了所有我想要的首选项(比如org.eclipse.equinox.p2.ui.sdk.scheduler/download=true),),几乎所有的首选项都可以工作。但是,有一个首选项似乎不是自动设置的:这就是org.eclipse.equinox.p2.ui.sdk.scheduler/enabled首选项( AutomaticUpdatesPreferencePage上的“自动查找新更新并通知我”复选框所指的首选项。深入研究源代码,我理解为什么它不能正确设置,但我不确定如何绕过它。

这就是它不能工作的本质原因:在AutomaticUpdatePlugin.start方法的最后一行,它调用

代码语言:javascript
复制
PreferenceInitializer.migratePreferences();

因为它是插件的启动方法,所以这发生在从plugin_customization.ini读取任何首选项之前。migratePreferences尝试迁移此首选项,它在3.4和3.3中处于不同的位置。在AutomaticUpdatePlugin内部,有一个隐藏的"migrated34Prefs“首选项,用于检查它是否执行了此迁移:此迁移将enabled首选项的值设置为false,因此如果我能以某种方式阻止它执行此迁移(因为我知道将不会从3.3或3.4迁移,因为我们只是构建在3.5之上),一切都会正常工作。默认值已通过plugin_customization.ini正确设置,但实际值仍为false (即,如果我在第一次打开RCP后点击该首选项页面上的restore defaults,则该框将从未选中变为选中)。

因为所有这些都发生在start方法中,所以我不能简单地在plugin_customization中将migrated34Prefs的值设置为true,因为这甚至在迁移发生后才会被读入。我知道问题是什么,但我看不到最后一步,以便在默认情况下启用它。还有没有其他我可以设置的东西,或者我找不到的其他解决方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-07 19:33:25

一种解决方法是直接从您自己的插件访问AutomaticUpdatePlugin的首选项,例如在首选项初始化器中:

代码语言:javascript
复制
Preferences node = new DefaultScope().getNode(AutomaticUpdatePlugin.PLUGIN_ID);
node.putBoolean(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED, true);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3445056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档