From 27fc9d40672496c93742f562b13544d9a27cd484 Mon Sep 17 00:00:00 2001 From: Vedran Pavic Date: Thu, 30 Dec 2021 12:59:19 +0100 Subject: [PATCH 1/2] Ensure Gradle tasks are configured lazily At present, generated Gradle build scripts that use Groovy DSL configure tasks eagerly. This is both suboptimal and actually not aligned with the generated build scripts that use Kotlin DSL, which configures tasks lazily. This commit updates `GroovyDslGradleBuildWriter` to ensure tasks are configured lazily. See gh-1292 --- .../GradleProjectGenerationConfigurationTests.java | 5 +++-- .../annotation-processor-dependency-build.gradle.gen | 2 +- .../project/gradle/bom-ordering-build.gradle.gen | 2 +- .../project/gradle/bom-property-build.gradle.gen | 2 +- .../gradle/compile-only-dependency-build.gradle.gen | 2 +- .../project/gradle/kotlin-java11-build.gradle.gen | 2 +- .../project/gradle/repositories-build.gradle.gen | 2 +- .../gradle/repositories-milestone-build.gradle.gen | 2 +- .../project/gradle/version-override-build.gradle.gen | 2 +- .../resources/project/groovy/standard/build.gradle.gen | 2 +- .../project/groovy/standard/war-build.gradle.gen | 2 +- .../resources/project/java/standard/build.gradle.gen | 2 +- .../resources/project/java/standard/war-build.gradle.gen | 2 +- .../resources/project/kotlin/standard/build.gradle.gen | 2 +- .../project/kotlin/standard/war-build.gradle.gen | 2 +- .../buildsystem/gradle/GroovyDslGradleBuildWriter.java | 4 ++-- .../gradle/GroovyDslGradleBuildWriterTests.java | 9 +++++---- 17 files changed, 24 insertions(+), 22 deletions(-) diff --git a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/gradle/GradleProjectGenerationConfigurationTests.java b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/gradle/GradleProjectGenerationConfigurationTests.java index d56de30a..1451734c 100644 --- a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/gradle/GradleProjectGenerationConfigurationTests.java +++ b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/gradle/GradleProjectGenerationConfigurationTests.java @@ -129,7 +129,7 @@ class GradleProjectGenerationConfigurationTests { " testImplementation 'org.springframework.boot:spring-boot-starter-test'", "}", "", - "test {", + "tasks.named('test') {", " useJUnitPlatform()", "}"); // @formatter:on } @@ -150,7 +150,8 @@ class GradleProjectGenerationConfigurationTests { description.setPlatformVersion(Version.parse("2.2.4.RELEASE")); description.setLanguage(new JavaLanguage()); ProjectStructure project = this.projectTester.generate(description); - assertThat(project).textFile("build.gradle").lines().containsSequence("test {", " useJUnitPlatform()", "}"); + assertThat(project).textFile("build.gradle").lines().containsSequence("tasks.named('test') {", + " useJUnitPlatform()", "}"); } @Test diff --git a/initializr-generator-spring/src/test/resources/project/gradle/annotation-processor-dependency-build.gradle.gen b/initializr-generator-spring/src/test/resources/project/gradle/annotation-processor-dependency-build.gradle.gen index f1d22ffe..930dcea3 100644 --- a/initializr-generator-spring/src/test/resources/project/gradle/annotation-processor-dependency-build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/gradle/annotation-processor-dependency-build.gradle.gen @@ -25,6 +25,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/gradle/bom-ordering-build.gradle.gen b/initializr-generator-spring/src/test/resources/project/gradle/bom-ordering-build.gradle.gen index 3ca6e60b..378d482a 100644 --- a/initializr-generator-spring/src/test/resources/project/gradle/bom-ordering-build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/gradle/bom-ordering-build.gradle.gen @@ -25,6 +25,6 @@ dependencyManagement { } } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/gradle/bom-property-build.gradle.gen b/initializr-generator-spring/src/test/resources/project/gradle/bom-property-build.gradle.gen index dd880ede..25d0be1d 100644 --- a/initializr-generator-spring/src/test/resources/project/gradle/bom-property-build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/gradle/bom-property-build.gradle.gen @@ -27,6 +27,6 @@ dependencyManagement { } } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/gradle/compile-only-dependency-build.gradle.gen b/initializr-generator-spring/src/test/resources/project/gradle/compile-only-dependency-build.gradle.gen index 94555ae4..3f0b8d04 100644 --- a/initializr-generator-spring/src/test/resources/project/gradle/compile-only-dependency-build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/gradle/compile-only-dependency-build.gradle.gen @@ -19,6 +19,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/gradle/kotlin-java11-build.gradle.gen b/initializr-generator-spring/src/test/resources/project/gradle/kotlin-java11-build.gradle.gen index fd7d21a0..6d8089d3 100644 --- a/initializr-generator-spring/src/test/resources/project/gradle/kotlin-java11-build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/gradle/kotlin-java11-build.gradle.gen @@ -29,6 +29,6 @@ tasks.withType(KotlinCompile) { } } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/gradle/repositories-build.gradle.gen b/initializr-generator-spring/src/test/resources/project/gradle/repositories-build.gradle.gen index 573024bb..3f9828ea 100644 --- a/initializr-generator-spring/src/test/resources/project/gradle/repositories-build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/gradle/repositories-build.gradle.gen @@ -20,6 +20,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/gradle/repositories-milestone-build.gradle.gen b/initializr-generator-spring/src/test/resources/project/gradle/repositories-milestone-build.gradle.gen index 4c2f0511..4e1cd0d1 100644 --- a/initializr-generator-spring/src/test/resources/project/gradle/repositories-milestone-build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/gradle/repositories-milestone-build.gradle.gen @@ -18,6 +18,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/gradle/version-override-build.gradle.gen b/initializr-generator-spring/src/test/resources/project/gradle/version-override-build.gradle.gen index 98679694..3bba6fcb 100644 --- a/initializr-generator-spring/src/test/resources/project/gradle/version-override-build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/gradle/version-override-build.gradle.gen @@ -22,6 +22,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/groovy/standard/build.gradle.gen b/initializr-generator-spring/src/test/resources/project/groovy/standard/build.gradle.gen index 06cdde19..de4ceb8e 100644 --- a/initializr-generator-spring/src/test/resources/project/groovy/standard/build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/groovy/standard/build.gradle.gen @@ -18,6 +18,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/groovy/standard/war-build.gradle.gen b/initializr-generator-spring/src/test/resources/project/groovy/standard/war-build.gradle.gen index 9acda4d6..aa3af28a 100644 --- a/initializr-generator-spring/src/test/resources/project/groovy/standard/war-build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/groovy/standard/war-build.gradle.gen @@ -20,6 +20,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/java/standard/build.gradle.gen b/initializr-generator-spring/src/test/resources/project/java/standard/build.gradle.gen index baf23b8e..6eecd854 100644 --- a/initializr-generator-spring/src/test/resources/project/java/standard/build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/java/standard/build.gradle.gen @@ -17,6 +17,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/java/standard/war-build.gradle.gen b/initializr-generator-spring/src/test/resources/project/java/standard/war-build.gradle.gen index e4278624..706341ea 100644 --- a/initializr-generator-spring/src/test/resources/project/java/standard/war-build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/java/standard/war-build.gradle.gen @@ -19,6 +19,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/kotlin/standard/build.gradle.gen b/initializr-generator-spring/src/test/resources/project/kotlin/standard/build.gradle.gen index 60401e5d..1ed61a30 100644 --- a/initializr-generator-spring/src/test/resources/project/kotlin/standard/build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/kotlin/standard/build.gradle.gen @@ -29,6 +29,6 @@ tasks.withType(KotlinCompile) { } } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator-spring/src/test/resources/project/kotlin/standard/war-build.gradle.gen b/initializr-generator-spring/src/test/resources/project/kotlin/standard/war-build.gradle.gen index b61dbea5..86837fd3 100644 --- a/initializr-generator-spring/src/test/resources/project/kotlin/standard/war-build.gradle.gen +++ b/initializr-generator-spring/src/test/resources/project/kotlin/standard/war-build.gradle.gen @@ -31,6 +31,6 @@ tasks.withType(KotlinCompile) { } } -test { +tasks.named('test') { useJUnitPlatform() } diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java index 780dbf4b..003fd6dc 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -190,7 +190,7 @@ public class GroovyDslGradleBuildWriter extends GradleBuildWriter { }); tasks.values().filter((candidate) -> candidate.getType() == null).forEach((task) -> { writer.println(); - writer.println(task.getName() + " {"); + writer.println("tasks.named('" + task.getName() + "') {"); writer.indented(() -> writeTaskCustomization(writer, task)); writer.println("}"); }); diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriterTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriterTests.java index ae4f000b..fe7e59da 100644 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriterTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriterTests.java @@ -170,7 +170,8 @@ class GroovyDslGradleBuildWriterTests { task.invoke("dependsOn", "test"); }); List lines = generateBuild(build); - assertThat(lines).containsSequence("asciidoctor {", " inputs.dir snippetsDir", " dependsOn test", "}"); + assertThat(lines).containsSequence("tasks.named('asciidoctor') {", " inputs.dir snippetsDir", + " dependsOn test", "}"); } @Test @@ -178,7 +179,7 @@ class GroovyDslGradleBuildWriterTests { GradleBuild build = new GradleBuild(); build.tasks().customize("test", (task) -> task.invoke("myMethod")); List lines = generateBuild(build); - assertThat(lines).containsSequence("test {", " myMethod()", "}"); + assertThat(lines).containsSequence("tasks.named('test') {", " myMethod()", "}"); } @Test @@ -189,7 +190,7 @@ class GroovyDslGradleBuildWriterTests { task.attribute("kotlinOptions.jvmTarget", "'1.8'"); }); List lines = generateBuild(build); - assertThat(lines).containsSequence("compileKotlin {", + assertThat(lines).containsSequence("tasks.named('compileKotlin') {", " kotlinOptions.freeCompilerArgs = ['-Xjsr305=strict']", " kotlinOptions.jvmTarget = '1.8'", "}"); } @@ -202,7 +203,7 @@ class GroovyDslGradleBuildWriterTests { kotlinOptions.attribute("jvmTarget", "'1.8'"); })); List lines = generateBuild(build); - assertThat(lines).containsSequence("compileKotlin {", " kotlinOptions {", + assertThat(lines).containsSequence("tasks.named('compileKotlin') {", " kotlinOptions {", " freeCompilerArgs = ['-Xjsr305=strict']", " jvmTarget = '1.8'", " }", "}"); } From 5c6a531c0d2b04dff469bef30d70d852406b3b0b Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Sat, 22 Jan 2022 11:55:15 +0100 Subject: [PATCH 2/2] Update copyright year of changed files See gh-1292 --- .../buildsystem/gradle/GroovyDslGradleBuildWriter.java | 2 +- .../buildsystem/gradle/GroovyDslGradleBuildWriterTests.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java index 003fd6dc..68f31716 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriter.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2021 the original author or authors. + * Copyright 2012-2022 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriterTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriterTests.java index fe7e59da..482ead6d 100644 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriterTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/buildsystem/gradle/GroovyDslGradleBuildWriterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2021 the original author or authors. + * Copyright 2012-2022 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.