Skip to content

Commit 811f3a2

Browse files
committed
Merge branch '4.0.x' into 4.1.x
Closes gh-51164
2 parents ae3788a + 6c19b31 commit 811f3a2

3 files changed

Lines changed: 49 additions & 6 deletions

File tree

build-plugin/spring-boot-maven-plugin/src/intTest/projects/settings.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@
1212
<username>${env.COMMERCIAL_REPO_USERNAME}</username>
1313
<password>${env.COMMERCIAL_REPO_PASSWORD}</password>
1414
</server>
15+
<server>
16+
<id>spring-release-train</id>
17+
<username>${env.RELEASE_TRAIN_MAVEN_REPOSITORY_USERNAME}</username>
18+
<password>${env.RELEASE_TRAIN_MAVEN_REPOSITORY_PASSWORD}</password>
19+
</server>
1520
</servers>
1621
<profiles>
1722
<profile>

buildSrc/SpringRepositorySupport.groovy

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ class SpringRepositoriesExtension {
104104
}
105105

106106
private void addRepositories(version, action) {
107+
addReleaseTrainRepositoryIfNecessary("spring-release-train", action)
107108
addCommercialRepositoryIfNecessary("release", false, "/spring-enterprise-maven-prod-local", action)
108109
if (version.endsWith("-SNAPSHOT")) {
109110
addCommercialRepositoryIfNecessary("snapshot", true, "/spring-enterprise-maven-dev-local", action)
@@ -132,6 +133,21 @@ class SpringRepositoriesExtension {
132133
})
133134
}
134135

136+
private void addReleaseTrainRepositoryIfNecessary(id, action) {
137+
def url = this.environment.apply("RELEASE_TRAIN_MAVEN_REPOSITORY_URL")
138+
if (url != null) {
139+
def username = this.environment.apply("RELEASE_TRAIN_MAVEN_REPOSITORY_USERNAME")
140+
def password = this.environment.apply("RELEASE_TRAIN_MAVEN_REPOSITORY_PASSWORD")
141+
addRepository(id, false, url, { maven ->
142+
maven.credentials { credentials ->
143+
credentials.setUsername(username)
144+
credentials.setPassword(password)
145+
}
146+
action(maven)
147+
})
148+
}
149+
}
150+
135151
private void addRepository(name, snapshot, url, action) {
136152
this.repositories.maven { maven ->
137153
maven.setName(name)

buildSrc/src/main/java/org/springframework/boot/build/RepositoryTransformersExtension.java

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ public class RepositoryTransformersExtension {
4343

4444
private static final String REPOSITORIES_MARKER = "{spring.mavenRepositories}";
4545

46+
private static final String PLUGIN_REPOSITORIES_MARKER = "{spring.mavenPluginRepositories}";
47+
4648
private final Project project;
4749

4850
@Inject
@@ -67,13 +69,33 @@ private String transformAnt(String line) {
6769
getSpringRepositories().forEach((repository) -> {
6870
if (repository.getName().startsWith("spring-commercial-")) {
6971
String host = repository.getUrl().getHost();
70-
hostCredentials.put(host,
71-
new MavenCredential("${env.COMMERCIAL_REPO_USERNAME}", "${env.COMMERCIAL_REPO_PASSWORD}"));
72+
hostCredentials.put(host, new MavenCredential("${env.COMMERCIAL_REPO_USERNAME}",
73+
"${env.COMMERCIAL_REPO_PASSWORD}", "Artifactory Realm"));
74+
}
75+
else if (repository.getName().equals("spring-release-train")) {
76+
String host = repository.getUrl().getHost();
77+
hostCredentials.put(host, new MavenCredential("${env.RELEASE_TRAIN_MAVEN_REPOSITORY_USERNAME}",
78+
"${env.RELEASE_TRAIN_MAVEN_REPOSITORY_PASSWORD}", "GitHub Package Registry"));
7279
}
7380
});
74-
return transform(line, hostCredentials.entrySet(), (entry,
75-
indent) -> "%s<credentials host=\"%s\" realm=\"Artifactory Realm\" username=\"%s\" passwd=\"%s\" />%n"
76-
.formatted(indent, entry.getKey(), entry.getValue().username(), entry.getValue().password()));
81+
return transform(line, hostCredentials.entrySet(),
82+
(entry, indent) -> "%s<credentials host=\"%s\" realm=\"%s\" username=\"%s\" passwd=\"%s\" />%n"
83+
.formatted(indent, entry.getKey(), entry.getValue().realm(), entry.getValue().username(),
84+
entry.getValue().password()));
85+
}
86+
return line;
87+
}
88+
89+
public Transformer<String, String> mavenSettings() {
90+
return this::transformMavenSettings;
91+
}
92+
93+
private String transformMavenSettings(String line) {
94+
if (line.contains(REPOSITORIES_MARKER)) {
95+
return transformMavenRepositories(line, false);
96+
}
97+
if (line.contains(PLUGIN_REPOSITORIES_MARKER)) {
98+
return transformMavenRepositories(line, true);
7799
}
78100
return line;
79101
}
@@ -141,7 +163,7 @@ static void apply(Project project) {
141163
project.getExtensions().create("springRepositoryTransformers", RepositoryTransformersExtension.class, project);
142164
}
143165

144-
record MavenCredential(String username, String password) {
166+
record MavenCredential(String username, String password, String realm) {
145167

146168
}
147169

0 commit comments

Comments
 (0)