diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryHelper.java b/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryHelper.java index 204cbd2ff2cb..437b1d5bd1d2 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryHelper.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryHelper.java @@ -45,8 +45,7 @@ import java.io.*; import java.net.HttpURLConnection; import java.net.URISyntaxException; import java.net.URLConnection; -import java.util.Iterator; -import java.util.List; +import java.util.*; /** * @author stathik @@ -68,6 +67,24 @@ public class RepositoryHelper { return hosts; } + /** + * Loads list of plugins, compatible with a current build, from all configured repositories + */ + @NotNull + public static List loadPluginsFromAllRepositories(@Nullable ProgressIndicator indicator) throws IOException { + List result = new ArrayList(); + Set addedPluginIds = new HashSet(); + for (String host : getPluginHosts()) { + List plugins = loadPlugins(host, null, indicator); + for (IdeaPluginDescriptor plugin : plugins) { + if (addedPluginIds.add(plugin.getPluginId().getIdString())) { + result.add(plugin); + } + } + } + return result; + } + /** * Loads list of plugins, compatible with a current build, from a main plugin repository. */ diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginAdvertiserEditorNotificationProvider.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginAdvertiserEditorNotificationProvider.java index e27eb2bc4298..dbdb7a79cb95 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginAdvertiserEditorNotificationProvider.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginAdvertiserEditorNotificationProvider.java @@ -162,7 +162,7 @@ public class PluginAdvertiserEditorNotificationProvider extends EditorNotificati @Override public void run(@NotNull ProgressIndicator indicator) { try { - myAllPlugins = RepositoryHelper.loadPlugins(indicator); + myAllPlugins = RepositoryHelper.loadPluginsFromAllRepositories(indicator); for (IdeaPluginDescriptor loadedPlugin : myAllPlugins) { if (plugins.contains(new PluginsAdvertiser.Plugin(loadedPlugin.getPluginId(), null, false))) { myPlugins.add(PluginDownloader.createDownloader(loadedPlugin)); diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiser.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiser.java index eaaa9437d668..905049b126f4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiser.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiser.java @@ -41,8 +41,6 @@ import com.intellij.reference.SoftReference; import com.intellij.ui.EditorNotifications; import com.intellij.util.Function; import com.intellij.util.PlatformUtils; -import com.intellij.util.containers.ContainerUtil; -import com.intellij.util.containers.LinkedMultiMap; import com.intellij.util.containers.MultiMap; import com.intellij.util.io.HttpRequests; import com.intellij.util.xmlb.XmlSerializer; @@ -247,7 +245,7 @@ public class PluginsAdvertiser implements StartupActivity { @Override public void run() { try { - myAllPlugins = RepositoryHelper.loadPlugins(null); + myAllPlugins = RepositoryHelper.loadPluginsFromAllRepositories(null); if (project.isDisposed()) return; if (extensions == null) { loadSupportedExtensions(myAllPlugins);