mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
plugin advertiser: load plugins from custom repositories too
This commit is contained in:
@@ -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<IdeaPluginDescriptor> loadPluginsFromAllRepositories(@Nullable ProgressIndicator indicator) throws IOException {
|
||||
List<IdeaPluginDescriptor> result = new ArrayList<IdeaPluginDescriptor>();
|
||||
Set<String> addedPluginIds = new HashSet<String>();
|
||||
for (String host : getPluginHosts()) {
|
||||
List<IdeaPluginDescriptor> 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.
|
||||
*/
|
||||
|
||||
+1
-1
@@ -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));
|
||||
|
||||
+1
-3
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user