Skip to content

Commit 0ec15c8

Browse files
committed
Merge branch '3.3.x' into 3.4.x
Closes gh-44055
2 parents 00f3506 + 80e8ab8 commit 0ec15c8

File tree

5 files changed

+53
-41
lines changed

5 files changed

+53
-41
lines changed

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

+31-27
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package org.springframework.boot.build;
1818

19+
import java.net.URI;
20+
import java.util.function.BiFunction;
21+
1922
import javax.inject.Inject;
2023

2124
import org.gradle.api.Project;
@@ -29,9 +32,9 @@
2932
*/
3033
public class RepositoryTransformersExtension {
3134

32-
private static final String MARKER = "{spring.mavenRepositories}";
35+
private static final String REPOSITORIES_MARKER = "{spring.mavenRepositories}";
3336

34-
private static final String MARKER_PLUGIN = "{spring.mavenPluginRepositories}";
37+
private static final String PLUGIN_REPOSITORIES_MARKER = "{spring.mavenPluginRepositories}";
3538

3639
private final Project project;
3740

@@ -45,18 +48,12 @@ public Transformer<String, String> ant() {
4548
}
4649

4750
private String transformAnt(String line) {
48-
if (line.contains(MARKER)) {
49-
StringBuilder result = new StringBuilder();
50-
String indent = getIndent(line);
51-
this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> {
51+
if (line.contains(REPOSITORIES_MARKER)) {
52+
return transform(line, (repository, indent) -> {
5253
String name = repository.getName();
53-
if (name.startsWith("spring-")) {
54-
result.append(!result.isEmpty() ? "\n" : "");
55-
result.append("%s<ibiblio name=\"%s\" m2compatible=\"true\" root=\"%s\" />".formatted(indent, name,
56-
repository.getUrl()));
57-
}
54+
URI url = repository.getUrl();
55+
return "%s<ibiblio name=\"%s\" m2compatible=\"true\" root=\"%s\" />".formatted(indent, name, url);
5856
});
59-
return result.toString();
6057
}
6158
return line;
6259
}
@@ -66,26 +63,17 @@ public Transformer<String, String> mavenSettings() {
6663
}
6764

6865
private String transformMavenSettings(String line) {
69-
if (line.contains(MARKER)) {
70-
return transformMarker(line, false);
66+
if (line.contains(REPOSITORIES_MARKER)) {
67+
return transformMavenRepositories(line, false);
7168
}
72-
if (line.contains(MARKER_PLUGIN)) {
73-
return transformMarker(line, true);
69+
if (line.contains(PLUGIN_REPOSITORIES_MARKER)) {
70+
return transformMavenRepositories(line, true);
7471
}
7572
return line;
7673
}
7774

78-
private String transformMarker(String line, boolean pluginRepository) {
79-
StringBuilder result = new StringBuilder();
80-
String indent = getIndent(line);
81-
this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> {
82-
String name = repository.getName();
83-
if (name.startsWith("spring-")) {
84-
result.append(!result.isEmpty() ? "\n" : "");
85-
result.append(mavenRepositoryXml(indent, repository, pluginRepository));
86-
}
87-
});
88-
return result.toString();
75+
private String transformMavenRepositories(String line, boolean pluginRepository) {
76+
return transform(line, (repository, indent) -> mavenRepositoryXml(indent, repository, pluginRepository));
8977
}
9078

9179
private String mavenRepositoryXml(String indent, MavenArtifactRepository repository, boolean pluginRepository) {
@@ -105,6 +93,22 @@ private String mavenRepositoryXml(String indent, MavenArtifactRepository reposit
10593
return xml.toString();
10694
}
10795

96+
private String transform(String line, BiFunction<MavenArtifactRepository, String, String> generator) {
97+
StringBuilder result = new StringBuilder();
98+
String indent = getIndent(line);
99+
this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> {
100+
String name = repository.getName();
101+
if (name.startsWith("spring-")) {
102+
String fragment = generator.apply(repository, indent);
103+
if (fragment != null) {
104+
result.append(!result.isEmpty() ? "\n" : "");
105+
result.append(fragment);
106+
}
107+
}
108+
});
109+
return result.toString();
110+
}
111+
108112
private String getIndent(String line) {
109113
return line.substring(0, line.length() - line.stripLeading().length());
110114
}

buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
import org.w3c.dom.NodeList;
6060

6161
import org.springframework.boot.build.DeployedPlugin;
62+
import org.springframework.boot.build.RepositoryTransformersExtension;
6263
import org.springframework.boot.build.bom.Library.Exclusion;
6364
import org.springframework.boot.build.bom.Library.Group;
6465
import org.springframework.boot.build.bom.Library.LibraryVersion;
@@ -132,6 +133,8 @@ public void library(String name, String version, Action<LibraryHandler> action)
132133

133134
public void effectiveBomArtifact() {
134135
Configuration effectiveBomConfiguration = this.project.getConfigurations().create("effectiveBom");
136+
RepositoryTransformersExtension repositoryTransformers = this.project.getExtensions()
137+
.getByType(RepositoryTransformersExtension.class);
135138
this.project.getTasks()
136139
.matching((task) -> task.getName().equals(DeployedPlugin.GENERATE_POM_TASK_NAME))
137140
.all((task) -> {
@@ -144,8 +147,10 @@ public void effectiveBomArtifact() {
144147
sync.dependsOn(task);
145148
sync.setDestinationDir(generatedBomDir);
146149
sync.from(((GenerateMavenPom) task).getDestination(), (pom) -> pom.rename((name) -> "pom.xml"));
147-
sync.from(this.project.getResources().getText().fromString(loadSettingsXml()),
148-
(settingsXml) -> settingsXml.rename((name) -> "settings.xml"));
150+
sync.from(this.project.getResources().getText().fromString(loadSettingsXml()), (settingsXml) -> {
151+
settingsXml.rename((name) -> "settings.xml");
152+
settingsXml.filter(repositoryTransformers.mavenSettings());
153+
});
149154
});
150155
File effectiveBom = this.project.getLayout()
151156
.getBuildDirectory()

buildSrc/src/main/resources/effective-bom-settings.xml

+1-11
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,7 @@
77
<activeByDefault>true</activeByDefault>
88
</activation>
99
<repositories>
10-
<repository>
11-
<id>spring-snapshot</id>
12-
<url>https://repo.spring.io/snapshot</url>
13-
<snapshots>
14-
<enabled>true</enabled>
15-
</snapshots>
16-
</repository>
17-
<repository>
18-
<id>spring-milestone</id>
19-
<url>https://repo.spring.io/milestone</url>
20-
</repository>
10+
<!-- {spring.mavenRepositories} -->
2111
</repositories>
2212
</profile>
2313
</profiles>

spring-boot-project/spring-boot-tools/spring-boot-antlib/src/it/sample/ivysettings.xml

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
<!-- {spring.mavenRepositories} -->
1212
</chain>
1313
</resolvers>
14+
<credentials host="${env.COMMERCIAL_RELEASE_REPO_URL}" username="${env.COMMERCIAL_REPO_USERNAME}" passwd="${env.COMMERCIAL_REPO_PASSWORD}"/>
15+
<credentials host="${env.COMMERCIAL_SNAPSHOT_REPO_URL}" username="${env.COMMERCIAL_REPO_USERNAME}" passwd="${env.COMMERCIAL_REPO_PASSWORD}"/>
1416
</ivysettings>
15-

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

+12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<settings>
33
<localRepository>@localRepositoryPath@</localRepository>
4+
<servers>
5+
<server>
6+
<id>spring-commercial-release</id>
7+
<username>${env.COMMERCIAL_REPO_USERNAME}</username>
8+
<password>${env.COMMERCIAL_REPO_PASSWORD}</password>
9+
</server>
10+
<server>
11+
<id>spring-commercial-snapshot</id>
12+
<username>${env.COMMERCIAL_REPO_USERNAME}</username>
13+
<password>${env.COMMERCIAL_REPO_PASSWORD}</password>
14+
</server>
15+
</servers>
416
<profiles>
517
<profile>
618
<id>it-repo</id>

0 commit comments

Comments
 (0)