gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 09:54:13 25 4
gpt4 key购买 nike

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

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

这基本上是它不起作用的原因:在 AutomaticUpdatePlugin.start 方法的最后一行,它调用

PreferenceInitializer.migratePreferences();

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

因为这一切都发生在 start 方法中,所以我不能简单地将 plugin_customization 中的 migrated34Prefs 的值设置为 true,因为在迁移已经发生之前它甚至不会被读入。我知道问题出在哪里,但我不太清楚最后一步是如何默认启用的。是否有其他我可以设置的东西,或者我找不到的其他解决方法?

最佳答案

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

Preferences node = new DefaultScope().getNode(AutomaticUpdatePlugin.PLUGIN_ID);
node.putBoolean(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED, true);

关于java - 如何在 Eclipse RCP 中使用 plugin_customization.ini 使 org.eclipse.equinox.p2.ui.sdk.scheduler/enabled 为真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3445056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com