From 87687bf03f7c2dc9b63843be5be8fc9bd2eecd80 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Fri, 30 Jul 2021 11:29:53 -0300 Subject: [PATCH] Fix Gradle Plugin Fix IncludeCheckRemotePlugin to add the default tasks even without defining the extension properties Issue gh-9846 --- .../convention/IncludeCheckRemotePlugin.groovy | 14 +++++++------- .../convention/IncludeCheckRemotePluginTest.java | 11 +++++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/buildSrc/src/main/groovy/io/spring/gradle/convention/IncludeCheckRemotePlugin.groovy b/buildSrc/src/main/groovy/io/spring/gradle/convention/IncludeCheckRemotePlugin.groovy index 3238bb3498..5ba6e350f4 100644 --- a/buildSrc/src/main/groovy/io/spring/gradle/convention/IncludeCheckRemotePlugin.groovy +++ b/buildSrc/src/main/groovy/io/spring/gradle/convention/IncludeCheckRemotePlugin.groovy @@ -33,8 +33,8 @@ class IncludeCheckRemotePlugin implements Plugin { void apply(Project project) { IncludeCheckRemoteExtension extension = project.extensions.create('includeCheckRemote', IncludeCheckRemoteExtension) TaskProvider includeRepoTask = project.tasks.register('includeRepo', IncludeRepoTask) { IncludeRepoTask it -> - it.repository = extension.repository.get() - it.ref = extension.ref.get() + it.repository = extension.repository + it.ref = extension.ref } project.tasks.register('checkRemote', GradleBuild) { it.dependsOn 'includeRepo' @@ -44,22 +44,22 @@ class IncludeCheckRemotePlugin implements Plugin { } abstract static class IncludeCheckRemoteExtension { + /** * Git repository to clone */ - abstract Property getRepository(); + String repository; + /** * Git ref to checkout */ - abstract Property getRef(); + String ref + /** * Task to run in the repository */ List tasks = ['check'] - void setTask(List tasks) { - this.tasks = tasks - } } } diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/IncludeCheckRemotePluginTest.java b/buildSrc/src/test/java/io/spring/gradle/convention/IncludeCheckRemotePluginTest.java index be15a477bd..e8ad62118e 100644 --- a/buildSrc/src/test/java/io/spring/gradle/convention/IncludeCheckRemotePluginTest.java +++ b/buildSrc/src/test/java/io/spring/gradle/convention/IncludeCheckRemotePluginTest.java @@ -97,4 +97,15 @@ class IncludeCheckRemotePluginTest { GradleBuild checkRemote = (GradleBuild) this.rootProject.getTasks().named("checkRemote").get(); assertThat(checkRemote.getDir()).isEqualTo(includeRepo.getOutputDirectory()); } + + @Test + void applyWhenNoExtensionPropertiesThenRegisterTasks() { + this.rootProject = ProjectBuilder.builder().build(); + this.rootProject.getPluginManager().apply(IncludeCheckRemotePlugin.class); + IncludeRepoTask includeRepo = (IncludeRepoTask) this.rootProject.getTasks().named("includeRepo").get(); + GradleBuild checkRemote = (GradleBuild) this.rootProject.getTasks().named("checkRemote").get(); + assertThat(includeRepo).isNotNull(); + assertThat(checkRemote).isNotNull(); + } + }