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
         }

Reply via email to