1818public class StagingRepoInjector {
1919
2020 public static void main (String [] args ) throws Exception {
21- new StagingRepoInjector (args [0 ]).appendAfter ();
21+ new StagingRepoInjector (args [0 ]).inject ();
2222 }
2323
2424 private final String stagingRepoUrl ;
2525
26- public StagingRepoInjector (String stagingRepoUrl ) {
26+ private StagingRepoInjector (String stagingRepoUrl ) {
2727 this .stagingRepoUrl = stagingRepoUrl ;
2828 }
2929
30- private void appendAfter () throws Exception {
30+ private void inject () throws Exception {
3131
32- appendAfter ("junit5-jupiter-extensions/build.gradle" , "mavenCentral()" ,
33- "%n\t maven { url = '%s' }" .formatted (stagingRepoUrl ));
32+ var gradleGroovyDslSnippet = """
33+
34+ maven {
35+ url = '%s'
36+ credentials(HttpHeaderCredentials) {
37+ name = 'Authorization'
38+ value = "Bearer ${System.getenv('MAVEN_CENTRAL_USER_TOKEN')}"
39+ }
40+ authentication {
41+ header(HttpHeaderAuthentication)
42+ }
43+ }
44+ """
45+ .formatted (stagingRepoUrl );
46+
47+ var gradleKotlinDslSnippet = """
48+
49+ maven {
50+ url = uri("%s")
51+ credentials(HttpHeaderCredentials::class) {
52+ name = "Authorization"
53+ value = "Bearer ${System.getenv("MAVEN_CENTRAL_USER_TOKEN")}"
54+ }
55+ authentication {
56+ create<HttpHeaderAuthentication>("header")
57+ }
58+ }
59+ """
60+ .formatted (stagingRepoUrl );
3461
35- replace ("junit5-jupiter-starter-ant/build.sh" , "https://repo1.maven.org/maven2" , stagingRepoUrl );
62+ appendAfter ("junit5-jupiter-extensions/build.gradle" , "mavenCentral()" ,
63+ gradleGroovyDslSnippet );
3664
37- appendAfter ("junit5-jupiter-starter-bazel/MODULE.bazel " , "\" https://repo1.maven.org/maven2\" , " ,
38- "%n \" %s\" , " .formatted (stagingRepoUrl ));
65+ replace ("junit5-jupiter-starter-ant/build.sh " , "\" https://repo1.maven.org/maven2" ,
66+ "--header \" Authorization: Bearer $MAVEN_CENTRAL_USER_TOKEN \" \" %s" .formatted (stagingRepoUrl ));
3967
4068 appendAfter ("junit5-jupiter-starter-gradle/build.gradle" , "mavenCentral()" ,
41- "%n \t maven { url = '%s' }" . formatted ( stagingRepoUrl ) );
69+ gradleGroovyDslSnippet );
4270
4371 appendAfter ("junit5-jupiter-starter-gradle-groovy/build.gradle" , "mavenCentral()" ,
44- "%n \t maven { url = '%s' }" . formatted ( stagingRepoUrl ) );
72+ gradleGroovyDslSnippet );
4573
4674 appendAfter ("junit5-jupiter-starter-gradle-kotlin/build.gradle.kts" , "mavenCentral()" ,
47- "%n\t maven(url = \" %s\" )" .formatted (stagingRepoUrl ));
48-
49- var mavenPomRepo = """
50-
51-
52- \t <repositories>
53- \t \t <repository>
54- \t \t \t <id>central-staging</id>
55- \t \t \t <url>%s</url>
56- \t \t </repository>
57- \t </repositories>
58- """ .stripIndent ().stripTrailing ().formatted (stagingRepoUrl );
59-
60- appendAfter ("junit5-jupiter-starter-maven/pom.xml" , "</build>" , mavenPomRepo );
61-
62- appendAfter ("junit5-jupiter-starter-maven-kotlin/pom.xml" , "</build>" , mavenPomRepo );
63-
64- appendAtEnd ("junit5-jupiter-starter-sbt/build.sbt" ,
65- "%nresolvers += \" central-staging\" at \" %s\" %n" .formatted (stagingRepoUrl ));
75+ gradleKotlinDslSnippet );
6676
6777 appendAfter ("junit5-migration-gradle/build.gradle" , "mavenCentral()" ,
68- "%n\t maven { url = '%s' }" .formatted (stagingRepoUrl ));
69-
70- appendAfter ("junit5-migration-maven/pom.xml" , "</build>" , mavenPomRepo );
78+ gradleGroovyDslSnippet );
7179
7280 replace ("junit5-modular-world/BUILDING" , "\" https://repo1.maven.org/maven2\" " ,
7381 "group.startsWith(\" org.junit\" ) ? \" %s\" : \" https://repo1.maven.org/maven2\" " .formatted (stagingRepoUrl ));
7482
7583 appendAfter ("junit5-multiple-engines/build.gradle.kts" , "mavenCentral()" ,
76- "%n \t maven(url = \" %s \" )" . formatted ( stagingRepoUrl ) );
84+ gradleKotlinDslSnippet );
7785 }
7886
7987 void appendAfter (String path , String token , String addedContent ) throws IOException {
@@ -94,10 +102,6 @@ void replace(String path, String token, String replacement) throws IOException {
94102 });
95103 }
96104
97- void appendAtEnd (String path , String addedContent ) throws IOException {
98- process (path , content -> content .append (addedContent ));
99- }
100-
101105 void process (String path , Consumer <StringBuilder > modification ) throws IOException {
102106 System .out .printf ("Processing %s..." , path );
103107 System .out .flush ();
0 commit comments