mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
plugin advertiser: ensure that older plugins won't be ever suggested
(cherry picked from commit 3bd2a55d4272f3154be73a93155cc6c512a7dcaa)
This commit is contained in:
+9
-5
@@ -105,9 +105,9 @@ public class PluginsAdvertiser implements StartupActivity {
|
||||
}
|
||||
|
||||
private static Map<String, Set<Plugin>> loadSupportedExtensions(@NotNull List<IdeaPluginDescriptor> allPlugins) {
|
||||
final Set<String> availableIds = new HashSet<String>();
|
||||
final Map<String, IdeaPluginDescriptor> availableIds = new HashMap<String, IdeaPluginDescriptor>();
|
||||
for (IdeaPluginDescriptor plugin : allPlugins) {
|
||||
availableIds.add(plugin.getPluginId().getIdString());
|
||||
availableIds.put(plugin.getPluginId().getIdString(), plugin);
|
||||
}
|
||||
final String pluginRepositoryUrl = FEATURE_IMPLEMENTATIONS_URL + "featureType=" + FileTypeFactory.FILE_TYPE_FACTORY_EP.getName();
|
||||
try {
|
||||
@@ -125,10 +125,14 @@ public class PluginsAdvertiser implements StartupActivity {
|
||||
final String pluginId = StringUtil.unquoteString(jsonObject.get("pluginId").toString());
|
||||
final JsonElement bundledExt = jsonObject.get("bundled");
|
||||
boolean isBundled = Boolean.parseBoolean(bundledExt.toString());
|
||||
if (!availableIds.contains(pluginId) && !isBundled) continue;
|
||||
final IdeaPluginDescriptor fromServerPluginDescription = availableIds.get(pluginId);
|
||||
if (fromServerPluginDescription == null && !isBundled) continue;
|
||||
|
||||
final IdeaPluginDescriptor plugin = PluginManager.getPlugin(PluginId.getId(pluginId));
|
||||
if (plugin != null && plugin.isEnabled()) continue;
|
||||
final IdeaPluginDescriptor loadedPlugin = PluginManager.getPlugin(PluginId.getId(pluginId));
|
||||
if (loadedPlugin != null && loadedPlugin.isEnabled()) continue;
|
||||
|
||||
if (loadedPlugin != null && fromServerPluginDescription != null &&
|
||||
StringUtil.compareVersionNumbers(loadedPlugin.getVersion(), fromServerPluginDescription.getVersion()) >= 0) continue;
|
||||
|
||||
final JsonElement ext = jsonObject.get("implementationName");
|
||||
final String extension = StringUtil.unquoteString(ext.toString());
|
||||
|
||||
Reference in New Issue
Block a user