[JENKINS-64840] Fix searching multiple update sites (#5281)

This commit is contained in:
Robert Sandell authored and GitHub committed 2021-02-12 18:51:53 +00:00
1 parent b49610e29f
commit f47257bdf1
4 files changed
+170 -2

No files matched your search

+3 -2
View File
@@ -1355,7 +1355,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
public HttpResponse doPluginsSearch(@QueryParameter String query, @QueryParameter Integer limit) {
List<JSONObject> plugins = new ArrayList<>();
for (UpdateSite site : Jenkins.get().getUpdateCenter().getSiteList()) {
plugins = site.getAvailables().stream()
List<JSONObject> sitePlugins = site.getAvailables().stream()
.filter(plugin -> {
if (StringUtils.isBlank(query)) {
return true;
@@ -1369,7 +1369,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
.anyMatch(category -> StringUtils.containsIgnoreCase(category, query)) ||
plugin.hasWarnings() && query.equalsIgnoreCase("warning:");
})
.limit(limit)
.limit(Math.max(limit - plugins.size(), 1))
.sorted((o1, o2) -> {
String o1DisplayName = o1.getDisplayName();
if (o1.name.equalsIgnoreCase(query) ||
@@ -1453,6 +1453,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
return jsonObject;
})
.collect(toList());
plugins.addAll(sitePlugins);
if (plugins.size() >= limit) {
break;
}