Skip to content

Commit

Permalink
Inject hard coded central definition when using "old" settings
Browse files Browse the repository at this point in the history
  • Loading branch information
gnodet committed Jun 1, 2023
1 parent 4210366 commit 6396f13
Showing 1 changed file with 22 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@

import org.apache.maven.building.FileSource;
import org.apache.maven.building.Source;
import org.apache.maven.settings.Repository;
import org.apache.maven.settings.RepositoryPolicy;
import org.apache.maven.settings.Settings;
import org.apache.maven.settings.TrackableBase;
import org.apache.maven.settings.io.SettingsParseException;
Expand Down Expand Up @@ -97,6 +99,26 @@ public SettingsBuildingResult build(SettingsBuildingRequest request) throws Sett

settingsMerger.merge(userSettings, globalSettings, TrackableBase.GLOBAL_LEVEL);

// If no repository is defined in the user/global settings,
// it means that we have "old" settings (as those are new in 4.0)
// so add central to the computed settings for backward compatibility.
if (userSettings.getRepositories().isEmpty()
&& userSettings.getPluginRepositories().isEmpty()) {
Repository central = new Repository();
central.setId("central");
central.setName("Central Repository");
central.setUrl("https://repo.maven.apache.org/maven2");
RepositoryPolicy disabledPolicy = new RepositoryPolicy();
disabledPolicy.setEnabled(false);
central.setSnapshots(disabledPolicy);
userSettings.getRepositories().add(central);
central = central.clone();
RepositoryPolicy updateNeverPolicy = new RepositoryPolicy();
disabledPolicy.setUpdatePolicy("never");
central.setReleases(updateNeverPolicy);
userSettings.getPluginRepositories().add(central);
}

problems.setSource("");

userSettings = interpolate(userSettings, request, problems);
Expand Down

0 comments on commit 6396f13

Please sign in to comment.