This is an automated email from the ASF dual-hosted git repository. jdaugherty pushed a commit to branch grails-geb in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 8a3cf63ae27721be12c62840d0a692010c515d1c Author: James Daugherty <[email protected]> AuthorDate: Sun Apr 20 16:02:24 2025 -0400 Make gson, markup, & gsp tasks cacheable --- .../grails/gradle/tasks/bom/ExtractDependenciesTask.groovy | 1 + .../plugin/views/AbstractGroovyTemplateCompileTask.groovy | 2 ++ .../gradle/plugin/views/gsp/GroovyPageForkCompileTask.groovy | 6 ++++-- .../gradle/plugin/views/json/GsonViewCompilerTask.groovy | 2 ++ .../gradle/plugin/views/markup/MarkupViewCompilerTask.groovy | 2 ++ ...CompilerForkTask.groovy => GroovyPageForkedCompiler.groovy} | 10 +++++----- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/grails-gradle/docs-core/src/main/groovy/org/apache/grails/gradle/tasks/bom/ExtractDependenciesTask.groovy b/grails-gradle/docs-core/src/main/groovy/org/apache/grails/gradle/tasks/bom/ExtractDependenciesTask.groovy index 14e0e5cb67..f7ee823050 100644 --- a/grails-gradle/docs-core/src/main/groovy/org/apache/grails/gradle/tasks/bom/ExtractDependenciesTask.groovy +++ b/grails-gradle/docs-core/src/main/groovy/org/apache/grails/gradle/tasks/bom/ExtractDependenciesTask.groovy @@ -21,6 +21,7 @@ import java.util.regex.Pattern * Grails Bom files define their dependencies in a series of maps, this task takes those maps and generates an * asciidoc file containing all of the resolve dependencies and their versions in the bom. */ +@CacheableTask abstract class ExtractDependenciesTask extends DefaultTask { @InputFiles @Classpath diff --git a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/AbstractGroovyTemplateCompileTask.groovy b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/AbstractGroovyTemplateCompileTask.groovy index dbaf7ed797..67057b4049 100644 --- a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/AbstractGroovyTemplateCompileTask.groovy +++ b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/AbstractGroovyTemplateCompileTask.groovy @@ -23,6 +23,7 @@ import javax.inject.Inject * @since 1.0 */ @CompileStatic +@CacheableTask abstract class AbstractGroovyTemplateCompileTask extends AbstractCompile { @Input @@ -34,6 +35,7 @@ abstract class AbstractGroovyTemplateCompileTask extends AbstractCompile { final ConfigurableFileCollection grailsConfigurationPaths @InputDirectory + @PathSensitive(PathSensitivity.RELATIVE) final DirectoryProperty srcDir @Nested diff --git a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPageForkCompileTask.groovy b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPageForkCompileTask.groovy index 77dd94ec2c..f8d0004ecc 100644 --- a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPageForkCompileTask.groovy +++ b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPageForkCompileTask.groovy @@ -37,7 +37,7 @@ import java.nio.file.Path import java.nio.file.Paths /** - * Abstract Gradle task for compiling templates, using GroovyPageCompilerForkTask + * Abstract Gradle task for compiling templates, using GroovyPageForkedCompiler * This Task is a Forked Java Task that is configurable with fork options provided * by {@link ViewCompileOptions} * @@ -45,6 +45,7 @@ import java.nio.file.Paths * @since 4.0 */ @CompileStatic +@CacheableTask abstract class GroovyPageForkCompileTask extends AbstractCompile { @Input @@ -56,6 +57,7 @@ abstract class GroovyPageForkCompileTask extends AbstractCompile { final ConfigurableFileCollection grailsConfigurationPaths @InputDirectory + @PathSensitive(PathSensitivity.RELATIVE) final DirectoryProperty srcDir @Nested @@ -163,7 +165,7 @@ abstract class GroovyPageForkCompileTask extends AbstractCompile { @Input protected String getCompilerName() { - "org.grails.web.pages.GroovyPageCompilerForkTask" + "org.grails.web.pages.GroovyPageForkedCompiler" } @Input diff --git a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/json/GsonViewCompilerTask.groovy b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/json/GsonViewCompilerTask.groovy index b6d9cceb61..896512e984 100644 --- a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/json/GsonViewCompilerTask.groovy +++ b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/json/GsonViewCompilerTask.groovy @@ -2,6 +2,7 @@ package org.grails.gradle.plugin.views.json import groovy.transform.CompileStatic import org.gradle.api.model.ObjectFactory +import org.gradle.api.tasks.CacheableTask import org.gradle.process.ExecOperations import org.grails.gradle.plugin.views.AbstractGroovyTemplateCompileTask @@ -13,6 +14,7 @@ import javax.inject.Inject * @author Graeme Rocher */ @CompileStatic +@CacheableTask class GsonViewCompilerTask extends AbstractGroovyTemplateCompileTask { @Inject diff --git a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/markup/MarkupViewCompilerTask.groovy b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/markup/MarkupViewCompilerTask.groovy index acaf06e850..4461dab955 100644 --- a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/markup/MarkupViewCompilerTask.groovy +++ b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/markup/MarkupViewCompilerTask.groovy @@ -3,6 +3,7 @@ package org.grails.gradle.plugin.views.markup import groovy.transform.CompileStatic import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Property +import org.gradle.api.tasks.CacheableTask import org.gradle.api.tasks.Input import org.gradle.process.ExecOperations import org.grails.gradle.plugin.views.AbstractGroovyTemplateCompileTask @@ -16,6 +17,7 @@ import javax.inject.Inject * @since 1.0 */ @CompileStatic +@CacheableTask class MarkupViewCompilerTask extends AbstractGroovyTemplateCompileTask { @Input diff --git a/grails-gsp/grails-web-gsp/src/main/groovy/org/grails/web/pages/GroovyPageCompilerForkTask.groovy b/grails-gsp/grails-web-gsp/src/main/groovy/org/grails/web/pages/GroovyPageForkedCompiler.groovy similarity index 90% rename from grails-gsp/grails-web-gsp/src/main/groovy/org/grails/web/pages/GroovyPageCompilerForkTask.groovy rename to grails-gsp/grails-web-gsp/src/main/groovy/org/grails/web/pages/GroovyPageForkedCompiler.groovy index cca4668846..77a668cebf 100644 --- a/grails-gsp/grails-web-gsp/src/main/groovy/org/grails/web/pages/GroovyPageCompilerForkTask.groovy +++ b/grails-gsp/grails-web-gsp/src/main/groovy/org/grails/web/pages/GroovyPageForkedCompiler.groovy @@ -21,13 +21,13 @@ import org.codehaus.groovy.control.CompilerConfiguration import org.grails.gsp.compiler.GroovyPageCompiler /** - * A Forked Compiler Task for use (typically by Gradle) + * A Forked Compiler for use (typically by Gradle) * * @author David Estes */ @CompileStatic -class GroovyPageCompilerForkTask { +class GroovyPageForkedCompiler { private static final String fileExtension = '.gsp' @@ -43,7 +43,7 @@ class GroovyPageCompilerForkTask { String targetCompatibility String[] configs - GroovyPageCompilerForkTask(File sourceDir, File destDir, File tmpdir) { + GroovyPageForkedCompiler(File sourceDir, File destDir, File tmpdir) { this.tmpdir = tmpdir this.destDir = destDir this.sourceDir = sourceDir @@ -106,7 +106,7 @@ class GroovyPageCompilerForkTask { if (args.length != 8) { System.err.println("Invalid arguments: [${args.join(',')}]") System.err.println(""" -Usage: java -cp CLASSPATH GroovyPageCompilerForkTask [srcDir] [destDir] [tmpDir] [targetCompatibility] [packageName] [serverPath] [configFile] [encoding] +Usage: java -cp CLASSPATH GroovyPageForkedCompiler [srcDir] [destDir] [tmpDir] [targetCompatibility] [packageName] [serverPath] [configFile] [encoding] """) System.exit(1) } @@ -120,7 +120,7 @@ Usage: java -cp CLASSPATH GroovyPageCompilerForkTask [srcDir] [destDir] [tmpDir] File configFile = new File(args[6]) String encoding = args[7] ?: 'UTF-8' - GroovyPageCompilerForkTask compiler = new GroovyPageCompilerForkTask(srcDir, destinationDir, tmpDir) + GroovyPageForkedCompiler compiler = new GroovyPageForkedCompiler(srcDir, destinationDir, tmpDir) if (configFiles) { compiler.configs = configFiles }
