Skip to content

Commit

Permalink
Only resolve experimental update center if required (#679)
Browse files Browse the repository at this point in the history
  • Loading branch information
timja committed May 7, 2024
1 parent b745bdf commit 3895fa8
Showing 1 changed file with 22 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -493,8 +493,11 @@ public List<Plugin> getLatestVersionsOfPlugins(List<Plugin> plugins) {
throw new IllegalStateException("List of plugins is not available. Likely Update Center data has not been downloaded yet");
}

if (isBeta(pluginVersion) && experimentalPlugins.has(plugin.getName())) {
return getUpdatedPlugin(plugin, experimentalPlugins);
if (isBeta(pluginVersion)) {
resolveExperimentalUcIfRequired();
if (experimentalPlugins.has(plugin.getName())) {
return getUpdatedPlugin(plugin, experimentalPlugins);
}
}

if (latestPlugins.has(plugin.getName())) {
Expand Down Expand Up @@ -848,7 +851,7 @@ public void getUCJson(VersionNumber jenkinsVersion) {
logVerbose("\nRetrieving update center information");
cm.createCache();

String cacheSuffix = jenkinsVersion != null ? "-" + jenkinsVersion : "";
String cacheSuffix = getCacheSuffix(jenkinsVersion);
try {
URIBuilder uriBuilder = new URIBuilder(cfg.getJenkinsUc().toURI());
if (jenkinsVersion != null) {
Expand All @@ -866,11 +869,13 @@ public void getUCJson(VersionNumber jenkinsVersion) {
throw new RuntimeException(e);
}
latestPlugins = latestUcJson.getJSONObject("plugins");
experimentalUcJson = getJson(cfg.getJenkinsUcExperimental(), "experimental-update-center" + cacheSuffix);
experimentalPlugins = experimentalUcJson.getJSONObject("plugins");
pluginInfoJson = getJson(cfg.getJenkinsPluginInfo(), "plugin-versions");
}

private static String getCacheSuffix(VersionNumber jenkinsVersion) {
return jenkinsVersion != null ? "-" + jenkinsVersion : "";
}

/**
* Gets the JSONArray containing plugin a
*
Expand Down Expand Up @@ -1059,6 +1064,8 @@ public List<Plugin> resolveDirectDependencies(Plugin plugin) {
} else if (version.equals(Plugin.LATEST)) {
dependentPlugins = resolveDependenciesFromJson(plugin, latestUcJson);
} else if (version.equals(Plugin.EXPERIMENTAL)) {
resolveExperimentalUcIfRequired();

dependentPlugins = resolveDependenciesFromJson(plugin, experimentalUcJson);
} else {
dependentPlugins = resolveDependenciesFromJson(plugin, pluginInfoJson);
Expand All @@ -1070,6 +1077,16 @@ public List<Plugin> resolveDirectDependencies(Plugin plugin) {
return dependentPlugins;
}

private void resolveExperimentalUcIfRequired() {
if (experimentalPlugins == null) {
experimentalUcJson = getJson(
cfg.getJenkinsUcExperimental(),
"experimental-update-center" + getCacheSuffix(getJenkinsVersion())
);
experimentalPlugins = experimentalUcJson.getJSONObject("plugins");
}
}

/**
* Finds all recursive dependencies for a given plugin. If the same plugin is required by different plugins, the
* highest required version will be taken.
Expand Down

0 comments on commit 3895fa8

Please sign in to comment.