From fd5180645e0eb88f61009e76079f15ff0c1e2547 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 3 Feb 2025 16:51:01 -0800 Subject: [PATCH] Polish --- .../RepositoryTransformersExtension.java | 58 ++++++++++--------- 1 file changed, 31 insertions(+), 27 deletions(-) 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()); }