diff --git a/buildSrc/src/main/java/org/springframework/boot/build/RepositoryTransformersExtension.java b/buildSrc/src/main/java/org/springframework/boot/build/RepositoryTransformersExtension.java
index 982594f426..e24d5b71c2 100644
--- a/buildSrc/src/main/java/org/springframework/boot/build/RepositoryTransformersExtension.java
+++ b/buildSrc/src/main/java/org/springframework/boot/build/RepositoryTransformersExtension.java
@@ -16,6 +16,9 @@
package org.springframework.boot.build;
+import java.net.URI;
+import java.util.function.BiFunction;
+
import javax.inject.Inject;
import org.gradle.api.Project;
@@ -29,9 +32,9 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
*/
public class RepositoryTransformersExtension {
- private static final String MARKER = "{spring.mavenRepositories}";
+ private static final String REPOSITORIES_MARKER = "{spring.mavenRepositories}";
- private static final String MARKER_PLUGIN = "{spring.mavenPluginRepositories}";
+ private static final String PLUGIN_REPOSITORIES_MARKER = "{spring.mavenPluginRepositories}";
private final Project project;
@@ -45,18 +48,12 @@ public class RepositoryTransformersExtension {
}
private String transformAnt(String line) {
- if (line.contains(MARKER)) {
- StringBuilder result = new StringBuilder();
- String indent = getIndent(line);
- this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> {
+ if (line.contains(REPOSITORIES_MARKER)) {
+ return transform(line, (repository, indent) -> {
String name = repository.getName();
- if (name.startsWith("spring-")) {
- result.append(!result.isEmpty() ? "\n" : "");
- result.append("%s".formatted(indent, name,
- repository.getUrl()));
- }
+ URI url = repository.getUrl();
+ return "%s".formatted(indent, name, url);
});
- return result.toString();
}
return line;
}
@@ -66,26 +63,17 @@ public class RepositoryTransformersExtension {
}
private String transformMavenSettings(String line) {
- if (line.contains(MARKER)) {
- return transformMarker(line, false);
+ if (line.contains(REPOSITORIES_MARKER)) {
+ return transformMavenRepositories(line, false);
}
- if (line.contains(MARKER_PLUGIN)) {
- return transformMarker(line, true);
+ if (line.contains(PLUGIN_REPOSITORIES_MARKER)) {
+ return transformMavenRepositories(line, true);
}
return line;
}
- private String transformMarker(String line, boolean pluginRepository) {
- StringBuilder result = new StringBuilder();
- String indent = getIndent(line);
- this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> {
- String name = repository.getName();
- if (name.startsWith("spring-")) {
- result.append(!result.isEmpty() ? "\n" : "");
- result.append(mavenRepositoryXml(indent, repository, pluginRepository));
- }
- });
- return result.toString();
+ private String transformMavenRepositories(String line, boolean pluginRepository) {
+ return transform(line, (repository, indent) -> mavenRepositoryXml(indent, repository, pluginRepository));
}
private String mavenRepositoryXml(String indent, MavenArtifactRepository repository, boolean pluginRepository) {
@@ -105,6 +93,22 @@ public class RepositoryTransformersExtension {
return xml.toString();
}
+ private String transform(String line, BiFunction generator) {
+ StringBuilder result = new StringBuilder();
+ String indent = getIndent(line);
+ this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> {
+ String name = repository.getName();
+ if (name.startsWith("spring-")) {
+ String fragment = generator.apply(repository, indent);
+ if (fragment != null) {
+ result.append(!result.isEmpty() ? "\n" : "");
+ result.append(fragment);
+ }
+ }
+ });
+ return result.toString();
+ }
+
private String getIndent(String line) {
return line.substring(0, line.length() - line.stripLeading().length());
}