1616
1717package org .springframework .boot .build ;
1818
19+ import java .net .URI ;
20+ import java .util .function .BiFunction ;
21+
1922import javax .inject .Inject ;
2023
2124import org .gradle .api .Project ;
2932 */
3033public 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 }
0 commit comments