This is an automated email from the ASF dual-hosted git repository.

jdaugherty pushed a commit to branch feature/gradle9
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 7d6210b919c2a181659f277434b5d48cd510a5eb
Author: James Daugherty <[email protected]>
AuthorDate: Thu Sep 18 14:43:40 2025 -0400

    WIP - does not compile due to task isolation (forge also needs upgraded)
---
 .sdkmanrc                                          |  2 +-
 dependencies.gradle                                |  4 ++--
 gradle.properties                                  |  2 +-
 gradle/wrapper/gradle-wrapper.properties           |  2 +-
 grails-bootstrap/build.gradle                      |  2 +-
 grails-data-graphql/build.gradle                   |  2 +-
 grails-data-graphql/core/build.gradle              |  2 +-
 grails-data-graphql/docs/build.gradle              |  2 +-
 grails-data-hibernate5/core/build.gradle           |  2 +-
 grails-data-hibernate5/dbmigration/build.gradle    |  2 +-
 grails-data-hibernate5/grails-plugin/build.gradle  |  4 ++--
 grails-data-neo4j/boot-plugin/build.gradle         |  8 +++----
 grails-data-neo4j/build.gradle                     |  8 +++----
 grails-data-neo4j/docs/build.gradle                |  6 +++---
 .../examples/grails3-neo4j-hibernate/build.gradle  |  2 +-
 .../examples/grails3-neo4j/build.gradle            |  2 +-
 grails-data-neo4j/grails-plugin/build.gradle       |  6 +++---
 grails-events/gpars/build.gradle                   |  2 +-
 grails-forge/gradle/doc-config.gradle              |  4 ++--
 .../gradle/wrapper/gradle-wrapper.properties       |  2 +-
 grails-forge/grails-forge-api/build.gradle         |  8 +++----
 grails-forge/grails-forge-cli/build.gradle         |  8 +++----
 grails-forge/grails-forge-core/build.gradle        | 10 ++++-----
 .../templates/gradleWrapperProperties.rocker.raw   |  2 +-
 grails-forge/test-core/build.gradle                |  6 +++---
 grails-gradle/bom/build.gradle                     |  4 ++--
 grails-gradle/common/build.gradle                  |  6 +++---
 grails-gradle/docs-core/build.gradle               |  8 +++----
 .../gradle/wrapper/gradle-wrapper.properties       |  2 +-
 grails-gradle/model/build.gradle                   | 12 +++++------
 grails-gradle/plugins/build.gradle                 |  4 ++--
 .../commands/ApplicationContextCommandTask.groovy  | 22 +++++++++++++++++++
 .../commands/ApplicationContextScriptTask.groovy   | 22 +++++++++++++++++++
 .../profiles/tasks/ProfileCompilerTask.groovy      |  4 ++++
 .../grails/gradle/plugin/run/GrailsRunTask.groovy  | 25 +++++++++++++++++++++-
 .../plugin/views/json/GsonViewCompilerTask.groovy  |  4 ++++
 .../views/markup/MarkupViewCompilerTask.groovy     |  4 ++++
 .../gradle/wrapper/gradle-wrapper.properties       |  2 +-
 .../gradle/wrapper/gradle-wrapper.properties       |  2 +-
 .../grails-hibernate-groovy-proxy/build.gradle     |  2 +-
 40 files changed, 150 insertions(+), 73 deletions(-)

diff --git a/.sdkmanrc b/.sdkmanrc
index 10f27b0be6..9fe0d8daf4 100644
--- a/.sdkmanrc
+++ b/.sdkmanrc
@@ -1,3 +1,3 @@
 java=17.0.14-librca
-gradle=8.14.3
+gradle=9.1.0
 
diff --git a/dependencies.gradle b/dependencies.gradle
index 14921911a1..03238d02ff 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -29,7 +29,7 @@ ext {
             'byte-buddy.version'            : '1.17.7',
             'commons-text.version'          : '1.13.1',
             'directory-watcher.version'     : '0.19.1',
-            'gradle-spock.version'          : '2.3-groovy-3.0',
+            'gradle-spock.version': '2.3-groovy-4.0',
             'grails-publish-plugin.version' : '0.0.1',
             'grails-gdoc-engine.version'    : '1.0.1',
             'jansi.version'                 : '1.18',
@@ -38,7 +38,7 @@ ext {
             'jna.version'                   : '5.17.0',
             'jquery.version'                : '3.7.1',
             'objenesis.version'             : '3.4',
-            'gradle-spock.version'          : '2.3-groovy-3.0',
+            'gradle-spock.version': '2.3-groovy-4.0',
             'spring-boot.version'           : '3.5.6',
             'springloaded.version'          : '1.2.8.RELEASE',
     ]
diff --git a/gradle.properties b/gradle.properties
index 986a4d5f1e..602454c3af 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -32,7 +32,7 @@ defaultElImplementationVersion=5.0.0
 elApiVersion=5.0.1
 expectitCoreVersion=0.9.0
 gparsVersion=1.2.1
-gradleToolingApiVersion=8.14.3
+gradleToolingApiVersion=9.1.0
 hibernate5Version=5.6.15.Final
 javassistVersion=3.30.2-GA
 jnrPosixVersion=3.1.20
diff --git a/gradle/wrapper/gradle-wrapper.properties 
b/gradle/wrapper/gradle-wrapper.properties
index d4081da476..2e1113280e 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME
diff --git a/grails-bootstrap/build.gradle b/grails-bootstrap/build.gradle
index 15017ca16b..e73bc6658a 100644
--- a/grails-bootstrap/build.gradle
+++ b/grails-bootstrap/build.gradle
@@ -35,7 +35,7 @@ dependencies {
     implementation 'org.springframework.boot:spring-boot-autoconfigure'
 
     api 'org.apache.grails.gradle:grails-gradle-model', {
-        exclude group: 'org.codehaus.groovy'
+        exclude group: 'org.apache.groovy'
     }
 
     compileOnly 'org.apache.groovy:groovy'
diff --git a/grails-data-graphql/build.gradle b/grails-data-graphql/build.gradle
index c30aa9d89a..338f78ab92 100644
--- a/grails-data-graphql/build.gradle
+++ b/grails-data-graphql/build.gradle
@@ -92,7 +92,7 @@ subprojects {
 
     dependencies {
         implementation "com.graphql-java:graphql-java:$graphqlJavaVersion"
-        testImplementation "org.codehaus.groovy:groovy-test"
+        testImplementation "org.apache.groovy:groovy-test"
         testImplementation "io.projectreactor:reactor-test:3.6.1"
         testImplementation("org.spockframework:spock-core:$spockVersion")
         implementation 'org.apache.grails.data:grails-datamapping-core:7.3.4'
diff --git a/grails-data-graphql/core/build.gradle 
b/grails-data-graphql/core/build.gradle
index 1aa0e00f70..df01a33b96 100644
--- a/grails-data-graphql/core/build.gradle
+++ b/grails-data-graphql/core/build.gradle
@@ -24,7 +24,7 @@ repositories {
 apply plugin: 'codenarc'
 
 dependencies {
-    documentation "org.codehaus.groovy:groovy-cli-picocli"
+    documentation "org.apache.groovy:groovy-cli-picocli"
 
     api "org.apache.grails.data:grails-datamapping-core:${gormVersion}"
     api "com.graphql-java:graphql-java:$graphqlJavaVersion"
diff --git a/grails-data-graphql/docs/build.gradle 
b/grails-data-graphql/docs/build.gradle
index 7045fa3ec8..17d2f64304 100644
--- a/grails-data-graphql/docs/build.gradle
+++ b/grails-data-graphql/docs/build.gradle
@@ -24,7 +24,7 @@ publishGuide {
 */
 
 dependencies {
-    documentation "org.codehaus.groovy:groovy-groovydoc"
+    documentation "org.apache.groovy:groovy-groovydoc"
 }
 
 
diff --git a/grails-data-hibernate5/core/build.gradle 
b/grails-data-hibernate5/core/build.gradle
index db4d955201..e4e9de3eb6 100644
--- a/grails-data-hibernate5/core/build.gradle
+++ b/grails-data-hibernate5/core/build.gradle
@@ -72,7 +72,7 @@ dependencies {
     testImplementation 'org.spockframework:spock-core'
     testImplementation 
"org.yakworks:hibernate-groovy-proxy:$yakworksHibernateGroovyProxyVersion", {
         // groovy proxy fixes bytebuddy to be a bit smarter when it comes to 
groovy metaClass
-        exclude group: 'org.codehaus.groovy', module: 'groovy'
+        exclude group: 'org.apache.groovy', module: 'groovy'
     }
 
     testRuntimeOnly "org.hibernate:hibernate-ehcache:$hibernate5Version", {
diff --git a/grails-data-hibernate5/dbmigration/build.gradle 
b/grails-data-hibernate5/dbmigration/build.gradle
index 790cc41c23..8abd8c341c 100644
--- a/grails-data-hibernate5/dbmigration/build.gradle
+++ b/grails-data-hibernate5/dbmigration/build.gradle
@@ -56,7 +56,7 @@ dependencies {
         // TODO: the shell cli is exporting groovy 3, while this project is 
expected to use groovy 4
         //       this plugin needs split into commands & the plugin itself so 
that different versions
         //       of groovy can be used
-        exclude group: 'org.codehaus.groovy'
+        exclude group: 'org.apache.groovy'
     }
 
     compileOnly 'org.springframework.boot:spring-boot-starter-logging'
diff --git a/grails-data-hibernate5/grails-plugin/build.gradle 
b/grails-data-hibernate5/grails-plugin/build.gradle
index 892d01db72..ec92742d6a 100644
--- a/grails-data-hibernate5/grails-plugin/build.gradle
+++ b/grails-data-hibernate5/grails-plugin/build.gradle
@@ -52,7 +52,7 @@ dependencies {
         exclude group:'org.springframework', module:'spring-beans'
         exclude group:'org.springframework', module:'spring-tx'
         exclude group:'org.apache.grails', module:'grails-bootstrap'
-        exclude group:'org.codehaus.groovy', module:'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
         exclude group:'org.apache.grails', module:'grails-core'
         exclude group:'javax.transaction', module:'jta'
     }
@@ -62,7 +62,7 @@ dependencies {
 
     compileOnly 'org.spockframework:spock-core', {
         exclude group: 'junit', module: 'junit-dep'
-        exclude group: 'org.codehaus.groovy', module: 'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
         exclude group: 'org.hamcrest', module: 'hamcrest-core'
     }
 
diff --git a/grails-data-neo4j/boot-plugin/build.gradle 
b/grails-data-neo4j/boot-plugin/build.gradle
index 3dc78db251..fd6a2517d5 100644
--- a/grails-data-neo4j/boot-plugin/build.gradle
+++ b/grails-data-neo4j/boot-plugin/build.gradle
@@ -19,23 +19,23 @@
 
 dependencies {
     compileOnly "org.springframework.boot:spring-boot-cli:$springBootVersion", 
{
-        exclude group:'org.codehaus.groovy', module:'groovy'
+        exclude group: 'org.apache.groovy', module: 'groovy'
     }
 
     api "org.springframework.boot:spring-boot-autoconfigure:$springBootVersion"
 
-    api "org.codehaus.groovy:groovy"
+    api "org.apache.groovy:groovy"
     api project(":grails-datastore-gorm-neo4j")
     api "org.springframework:spring-tx:$springVersion"
 
     testRuntimeOnly "org.neo4j.test:neo4j-harness:$neo4jVersion"
     testImplementation ("org.spockframework:spock-core:$spockVersion") {
         exclude group: 'junit', module: 'junit-dep'
-        exclude group: 'org.codehaus.groovy', module: 'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
         exclude group: 'org.hamcrest', module: 'hamcrest-core'
         transitive = false
     }
     testImplementation 
"org.springframework.boot:spring-boot-cli:$springBootVersion", {
-        exclude group:'org.codehaus.groovy', module:'groovy'
+        exclude group: 'org.apache.groovy', module: 'groovy'
     }
 }
diff --git a/grails-data-neo4j/build.gradle b/grails-data-neo4j/build.gradle
index f2bd3608d0..4d1c3284fc 100644
--- a/grails-data-neo4j/build.gradle
+++ b/grails-data-neo4j/build.gradle
@@ -23,7 +23,7 @@ buildscript {
         maven { url "https://plugins.gradle.org/m2/"; }
     }
     dependencies {
-        classpath "org.codehaus.groovy.modules.http-builder:http-builder:0.7.2"
+        classpath "org.apache.groovy.modules.http-builder:http-builder:0.7.2"
         classpath 
"org.apache.grails:grails-gradle-plugins:$grailsGradlePluginVersion"
         classpath "org.asciidoctor:asciidoctor-gradle-jvm:4.0.2"
         classpath "com.github.erdi:webdriver-binaries-gradle-plugin:3.2"
@@ -127,7 +127,7 @@ subprojects { subproject ->
 
         dependencies {
             testImplementation 
"org.hibernate:hibernate-validator:$hibernateValidatorVersion"
-            testImplementation "org.codehaus.groovy:groovy-test-junit5"
+            testImplementation "org.apache.groovy:groovy-test-junit5"
             testImplementation "org.spockframework:spock-core:$spockVersion", 
{ transitive = false }
             testImplementation 
"org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion"
             testImplementation 
"org.junit.platform:junit-platform-runner:$junitPlatformVersion"
@@ -245,8 +245,8 @@ subprojects { subproject ->
 
 
     dependencies {
-        api "org.codehaus.groovy:groovy"
-        testImplementation "org.codehaus.groovy:groovy-test-junit5"
+        api "org.apache.groovy:groovy"
+        testImplementation "org.apache.groovy:groovy-test-junit5"
         testImplementation "org.spockframework:spock-core:$spockVersion", { 
transitive = false }
         testImplementation 
"org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion"
         testImplementation 
"org.junit.platform:junit-platform-runner:$junitPlatformVersion"
diff --git a/grails-data-neo4j/docs/build.gradle 
b/grails-data-neo4j/docs/build.gradle
index 1d420bb7cc..3624d2581d 100644
--- a/grails-data-neo4j/docs/build.gradle
+++ b/grails-data-neo4j/docs/build.gradle
@@ -46,9 +46,9 @@ configurations {
 
 dependencies {
     documentation "org.fusesource.jansi:jansi:$jansiVersion"
-    documentation "org.codehaus.groovy:groovy"
-    documentation "org.codehaus.groovy:groovy-templates"
-    documentation "org.codehaus.groovy:groovy-dateutil"
+    documentation "org.apache.groovy:groovy"
+    documentation "org.apache.groovy:groovy-templates"
+    documentation "org.apache.groovy:groovy-dateutil"
     documentation 
"com.github.javaparser:javaparser-core:$javaParserCoreVersion"
     for (p in coreProjects) {
         documentation "org.apache.grails:grails-datastore-$p:$datastoreVersion"
diff --git a/grails-data-neo4j/examples/grails3-neo4j-hibernate/build.gradle 
b/grails-data-neo4j/examples/grails3-neo4j-hibernate/build.gradle
index 03b536532b..eeb7aeb190 100644
--- a/grails-data-neo4j/examples/grails3-neo4j-hibernate/build.gradle
+++ b/grails-data-neo4j/examples/grails3-neo4j-hibernate/build.gradle
@@ -48,7 +48,7 @@ dependencies {
 
     testImplementation("org.apache.grails:grails-geb") {
         exclude group: 'org.gebish', module: 'geb-spock'
-        exclude group: 'org.codehaus.groovy', module: 'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
     }
     testImplementation "org.gebish:geb-spock:$gebVersion"
 
diff --git a/grails-data-neo4j/examples/grails3-neo4j/build.gradle 
b/grails-data-neo4j/examples/grails3-neo4j/build.gradle
index 5422177ef4..5380dd3214 100644
--- a/grails-data-neo4j/examples/grails3-neo4j/build.gradle
+++ b/grails-data-neo4j/examples/grails3-neo4j/build.gradle
@@ -47,7 +47,7 @@ dependencies {
 
     testImplementation("org.apache.grails:grails-geb") {
         exclude group: 'org.gebish', module: 'geb-spock'
-        exclude group: 'org.codehaus.groovy', module: 'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
     }
     testImplementation ("org.gebish:geb-spock:$gebVersion")
 
diff --git a/grails-data-neo4j/grails-plugin/build.gradle 
b/grails-data-neo4j/grails-plugin/build.gradle
index e13975b674..e8048516e9 100644
--- a/grails-data-neo4j/grails-plugin/build.gradle
+++ b/grails-data-neo4j/grails-plugin/build.gradle
@@ -42,7 +42,7 @@ dependencies {
     compileOnly "org.apache.grails.bootstrap:grails-bootstrap"
     compileOnly "org.spockframework:spock-core:$spockVersion", {
         exclude group: "junit", module: "junit-dep"
-        exclude group: 'org.codehaus.groovy', module: 'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
         exclude group: 'org.hamcrest', module: 'hamcrest-core'
     }
 
@@ -54,7 +54,7 @@ dependencies {
         exclude group:'org.springframework', module:'spring-beans'
         exclude group:'org.springframework', module:'spring-tx'
         exclude group:'org.apache.grails.bootstrap', module:'grails-bootstrap'
-        exclude group:'org.codehaus.groovy', module:'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
         exclude group:'org.apache.grails', module:'grails-core'
         exclude group:'javax.transaction', module:'jta'
     }
@@ -64,7 +64,7 @@ dependencies {
         exclude group:'org.springframework', module:'spring-beans'
         exclude group:'org.springframework', module:'spring-tx'
         exclude group:'org.apache.grails.bootstrap', module:'grails-bootstrap'
-        exclude group:'org.codehaus.groovy', module:'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
         exclude group:'org.apache.grails', module:'grails-core'
         exclude group:'javax.transaction', module:'jta'
     }
diff --git a/grails-events/gpars/build.gradle b/grails-events/gpars/build.gradle
index 6db7a2796b..3f2087c9db 100644
--- a/grails-events/gpars/build.gradle
+++ b/grails-events/gpars/build.gradle
@@ -32,7 +32,7 @@ dependencies {
     api project(':grails-events-core')
     api "org.codehaus.gpars:gpars:$gparsVersion", {
         exclude group: 'org.multiverse', module: 'multiverse-core' // 
Multiverse Software Transactional Memory (STM) Engine not used
-        exclude group: 'org.codehaus.groovy', module: 'groovy-all' // Gpars 
1.2.1 pulls in Groovy 2.1.9
+        exclude group: 'org.apache.groovy', module: 'groovy-all' // Gpars 
1.2.1 pulls in Groovy 2.1.9
     }
 
     implementation 'org.apache.groovy:groovy'
diff --git a/grails-forge/gradle/doc-config.gradle 
b/grails-forge/gradle/doc-config.gradle
index b3f5cfeb89..1d86fc615e 100644
--- a/grails-forge/gradle/doc-config.gradle
+++ b/grails-forge/gradle/doc-config.gradle
@@ -28,8 +28,8 @@ configurations.register('documentation') {
 }
 
 dependencies {
-    documentation "org.codehaus.groovy:groovy-templates:$groovyVersion"
-    documentation "org.codehaus.groovy:groovy-dateutil:$groovyVersion"
+    documentation "org.apache.groovy:groovy-templates:$groovyVersion"
+    documentation "org.apache.groovy:groovy-dateutil:$groovyVersion"
 }
 
 tasks.withType(Groovydoc).configureEach {
diff --git a/grails-forge/gradle/wrapper/gradle-wrapper.properties 
b/grails-forge/gradle/wrapper/gradle-wrapper.properties
index d4081da476..2e1113280e 100644
--- a/grails-forge/gradle/wrapper/gradle-wrapper.properties
+++ b/grails-forge/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME
diff --git a/grails-forge/grails-forge-api/build.gradle 
b/grails-forge/grails-forge-api/build.gradle
index d15ac9b001..dfc078c3b4 100644
--- a/grails-forge/grails-forge-api/build.gradle
+++ b/grails-forge/grails-forge-api/build.gradle
@@ -62,15 +62,15 @@ dependencies {
         testCompileOnly 
"io.micronaut:micronaut-inject-groovy:$micronautVersion"
     }
 
-    testImplementation "org.codehaus.groovy:groovy:$groovyVersion"
+    testImplementation "org.apache.groovy:groovy:$groovyVersion"
     testImplementation "org.spockframework:spock-core:$spockVersion", {
-        exclude group: 'org.codehaus.groovy', module: 'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
     }
 
     testImplementation "cglib:cglib-nodep:$cglibVersion"
     testImplementation "org.objenesis:objenesis:$objenesisVersion"
     testRuntimeOnly "ch.qos.logback:logback-classic:$logbackClassicVersion"
-    testImplementation "org.codehaus.groovy:groovy-test:$groovyVersion"
+    testImplementation "org.apache.groovy:groovy-test:$groovyVersion"
 }
 
 apply {
@@ -84,7 +84,7 @@ apply {
 configurations.configureEach {
     resolutionStrategy {
         eachDependency { DependencyResolveDetails details ->
-            if (details.requested.group == 'org.codehaus.groovy') {
+            if (details.requested.group == 'org.apache.groovy') {
                 details.useVersion(groovyVersion)
             }
             if (details.requested.name == 'spock-core') {
diff --git a/grails-forge/grails-forge-cli/build.gradle 
b/grails-forge/grails-forge-cli/build.gradle
index 2422caec5a..e7aba0d22c 100644
--- a/grails-forge/grails-forge-cli/build.gradle
+++ b/grails-forge/grails-forge-cli/build.gradle
@@ -92,15 +92,15 @@ dependencies {
         testCompileOnly 
"io.micronaut:micronaut-inject-groovy:$micronautVersion"
     }
 
-    testImplementation "org.codehaus.groovy:groovy:$groovyVersion"
+    testImplementation "org.apache.groovy:groovy:$groovyVersion"
     testImplementation "org.spockframework:spock-core:$spockVersion", {
-        exclude group: 'org.codehaus.groovy', module: 'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
     }
 
     testImplementation "cglib:cglib-nodep:$cglibVersion"
     testImplementation "org.objenesis:objenesis:$objenesisVersion"
     testRuntimeOnly "ch.qos.logback:logback-classic:$logbackClassicVersion"
-    testImplementation "org.codehaus.groovy:groovy-test:$groovyVersion"
+    testImplementation "org.apache.groovy:groovy-test:$groovyVersion"
 }
 
 rocker {
@@ -154,7 +154,7 @@ jarTask.configure { Jar it ->
 configurations.configureEach {
     resolutionStrategy {
         eachDependency { DependencyResolveDetails details ->
-            if (details.requested.group == 'org.codehaus.groovy') {
+            if (details.requested.group == 'org.apache.groovy') {
                 details.useVersion(groovyVersion)
             }
             if (details.requested.name == 'spock-core') {
diff --git a/grails-forge/grails-forge-core/build.gradle 
b/grails-forge/grails-forge-core/build.gradle
index ef008f864d..2a4c1bb977 100644
--- a/grails-forge/grails-forge-core/build.gradle
+++ b/grails-forge/grails-forge-core/build.gradle
@@ -57,21 +57,21 @@ dependencies {
 
     compileOnly 'com.google.code.findbugs:jsr305'
 
-    testImplementation 'org.codehaus.groovy:groovy-yaml'
+    testImplementation 'org.apache.groovy:groovy-yaml'
 
     if (project.hasProperty('micronautVersion')) {
         testCompileOnly 
"io.micronaut:micronaut-inject-groovy:$micronautVersion"
     }
 
-    testImplementation "org.codehaus.groovy:groovy:$groovyVersion"
+    testImplementation "org.apache.groovy:groovy:$groovyVersion"
     testImplementation "org.spockframework:spock-core:$spockVersion", {
-        exclude group: 'org.codehaus.groovy', module: 'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
     }
 
     testImplementation "cglib:cglib-nodep:$cglibVersion"
     testImplementation "org.objenesis:objenesis:$objenesisVersion"
     testRuntimeOnly "ch.qos.logback:logback-classic:$logbackClassicVersion"
-    testImplementation "org.codehaus.groovy:groovy-test:$groovyVersion"
+    testImplementation "org.apache.groovy:groovy-test:$groovyVersion"
 }
 
 
@@ -134,7 +134,7 @@ nohttp {
 configurations.configureEach {
     resolutionStrategy {
         eachDependency { DependencyResolveDetails details ->
-            if (details.requested.group == 'org.codehaus.groovy') {
+            if (details.requested.group == 'org.apache.groovy') {
                 details.useVersion(groovyVersion)
             }
             if (details.requested.name == 'spock-core') {
diff --git 
a/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/gradleWrapperProperties.rocker.raw
 
b/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/gradleWrapperProperties.rocker.raw
index 7a435b934d..1039275bfd 100644
--- 
a/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/gradleWrapperProperties.rocker.raw
+++ 
b/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/gradleWrapperProperties.rocker.raw
@@ -37,7 +37,7 @@ distributionPath=wrapper/dists
 # geb-with-webdriver-binaries is limited to Gradle 8.6
 distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
 } else {
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
 }
 networkTimeout=10000
 validateDistributionUrl=true
diff --git a/grails-forge/test-core/build.gradle 
b/grails-forge/test-core/build.gradle
index ccb1ef8fb9..efe976d7ba 100644
--- a/grails-forge/test-core/build.gradle
+++ b/grails-forge/test-core/build.gradle
@@ -57,15 +57,15 @@ dependencies {
         testCompileOnly 
"io.micronaut:micronaut-inject-groovy:$micronautVersion"
     }
 
-    testImplementation "org.codehaus.groovy:groovy:$groovyVersion"
+    testImplementation "org.apache.groovy:groovy:$groovyVersion"
     testImplementation "org.spockframework:spock-core:$spockVersion", {
-        exclude group: 'org.codehaus.groovy', module: 'groovy-all'
+        exclude group: 'org.apache.groovy', module: 'groovy-all'
     }
 
     testImplementation "cglib:cglib-nodep:$cglibVersion"
     testImplementation "org.objenesis:objenesis:$objenesisVersion"
     testRuntimeOnly "ch.qos.logback:logback-classic:$logbackClassicVersion"
-    testImplementation "org.codehaus.groovy:groovy-test:$groovyVersion"
+    testImplementation "org.apache.groovy:groovy-test:$groovyVersion"
 }
 
 apply {
diff --git a/grails-gradle/bom/build.gradle b/grails-gradle/bom/build.gradle
index 6dfe37f740..c049c2a4d9 100644
--- a/grails-gradle/bom/build.gradle
+++ b/grails-gradle/bom/build.gradle
@@ -41,8 +41,8 @@ dependencies {
         exclude group: 'com.fasterxml.jackson'
     }
 
-    // Because gradle uses groovy 3, we must use groovy 3 compatible versions 
for the grails-gradle-bom
-    api platform("org.codehaus.groovy:groovy-bom:${GroovySystem.version}")
+    // Because gradle can use a different version of groovy, we compile with 
the gradle groovy version
+    api platform("org.apache.groovy:groovy-bom:${GroovySystem.version}")
     api platform(gradleBomPlatformDependencies['gradle-spock-bom'])
 
     constraints {
diff --git a/grails-gradle/common/build.gradle 
b/grails-gradle/common/build.gradle
index b6cb6281e4..6c959879fa 100644
--- a/grails-gradle/common/build.gradle
+++ b/grails-gradle/common/build.gradle
@@ -33,14 +33,14 @@ dependencies {
     compileOnly platform(project(':grails-gradle-bom'))
 
     // compile with the Groovy version provided by Gradle
-    // to ensure build compatibility with Gradle, currently Groovy 3.0.x
+    // to ensure build compatibility with Gradle
     // see: https://docs.gradle.org/current/userguide/compatibility.html#groovy
-    compileOnly 'org.codehaus.groovy:groovy'
+    compileOnly 'org.apache.groovy:groovy'
 
     testImplementation platform(project(':grails-gradle-bom'))
     testImplementation 'org.slf4j:slf4j-simple'
     testImplementation('org.spockframework:spock-core') { transitive = false }
-    testImplementation 'org.codehaus.groovy:groovy-test-junit5'
+    testImplementation 'org.apache.groovy:groovy-test-junit5'
     // for easier setting of environment variables in tests
     testImplementation 'uk.org.webcompere:system-stubs-core:2.1.8'
 
diff --git a/grails-gradle/docs-core/build.gradle 
b/grails-gradle/docs-core/build.gradle
index 92d81c72ab..0d378746a9 100644
--- a/grails-gradle/docs-core/build.gradle
+++ b/grails-gradle/docs-core/build.gradle
@@ -40,10 +40,8 @@ dependencies {
 
     gradleConf gradleApi()
 
-    // grails-docs classes are used in Gradle builds,
-    // so we must compile with Groovy 3 until Gradle upgrades to Groovy 4.
-    compileOnly 'org.codehaus.groovy:groovy'
-    compileOnly 'org.codehaus.groovy:groovy-ant'
+    implementation 'org.apache.groovy:groovy'
+    implementation 'org.apache.groovy:groovy-ant'
 
     api 'org.apache.commons:commons-text'
     api 'org.slf4j:jcl-over-slf4j'
@@ -59,7 +57,7 @@ dependencies {
         transitive = false
     }
 
-    testImplementation 'org.codehaus.groovy:groovy-test-junit5'
+    testImplementation 'org.apache.groovy:groovy-test-junit5'
     testImplementation 'org.junit.jupiter:junit-jupiter-api'
     testImplementation 'org.junit.platform:junit-platform-runner'
     testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
diff --git a/grails-gradle/gradle/wrapper/gradle-wrapper.properties 
b/grails-gradle/gradle/wrapper/gradle-wrapper.properties
index d4081da476..2e1113280e 100644
--- a/grails-gradle/gradle/wrapper/gradle-wrapper.properties
+++ b/grails-gradle/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME
diff --git a/grails-gradle/model/build.gradle b/grails-gradle/model/build.gradle
index 5ee6d02e96..e91c6e2ab1 100644
--- a/grails-gradle/model/build.gradle
+++ b/grails-gradle/model/build.gradle
@@ -37,13 +37,13 @@ dependencies {
     implementation platform(project(':grails-gradle-bom'))
 
     // compile grails-gradle-model with the Groovy version provided by Gradle
-    // to ensure build compatibility with Gradle, currently Groovy 3.0.x
+    // to ensure build compatibility with Gradle
     // when used by grails-gradle-plugin
     // see: https://docs.gradle.org/current/userguide/compatibility.html#groovy
-    compileOnly 'org.codehaus.groovy:groovy'
-    compileOnly 'org.codehaus.groovy:groovy-xml'
+    compileOnly 'org.apache.groovy:groovy'
+    compileOnly 'org.apache.groovy:groovy-xml'
 
-    testImplementation 'org.codehaus.groovy:groovy-test-junit5'
+    testImplementation 'org.apache.groovy:groovy-test-junit5'
     testImplementation 'org.junit.jupiter:junit-jupiter-api'
     testImplementation 'org.junit.platform:junit-platform-runner'
 
@@ -63,8 +63,8 @@ dependencies {
     api 'org.slf4j:jcl-over-slf4j'
 
     // Testing
-    testImplementation 'org.codehaus.groovy:groovy'
-    testImplementation 'org.codehaus.groovy:groovy-xml'
+    testImplementation 'org.apache.groovy:groovy'
+    testImplementation 'org.apache.groovy:groovy-xml'
     testImplementation 'org.slf4j:slf4j-simple'
     testImplementation('org.spockframework:spock-core') {
         transitive = false
diff --git a/grails-gradle/plugins/build.gradle 
b/grails-gradle/plugins/build.gradle
index 01b230951e..d8938c91be 100644
--- a/grails-gradle/plugins/build.gradle
+++ b/grails-gradle/plugins/build.gradle
@@ -36,9 +36,9 @@ dependencies {
     implementation platform(project(':grails-gradle-bom'))
 
     // compile grails-gradle-plugin with the Groovy version provided by Gradle
-    // to ensure build compatibility with Gradle, currently Groovy 3.0.x
+    // to ensure build compatibility with Gradle
     // see: https://docs.gradle.org/current/userguide/compatibility.html#groovy
-    compileOnly "org.codehaus.groovy:groovy"
+    compileOnly "org.apache.groovy:groovy"
 
     implementation project(':grails-gradle-common')
     implementation project(':grails-gradle-tasks')
diff --git 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/ApplicationContextCommandTask.groovy
 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/ApplicationContextCommandTask.groovy
index ae1e2a8b01..2e5bb70464 100644
--- 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/ApplicationContextCommandTask.groovy
+++ 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/ApplicationContextCommandTask.groovy
@@ -18,9 +18,16 @@
  */
 package org.grails.gradle.plugin.commands
 
+import javax.inject.Inject
+
 import groovy.transform.CompileStatic
 
+import org.gradle.api.internal.provider.PropertyFactory
+import org.gradle.api.model.ObjectFactory
+import org.gradle.api.provider.ProviderFactory
 import org.gradle.api.tasks.JavaExec
+import org.gradle.jvm.toolchain.JavaToolchainService
+import org.gradle.process.internal.ExecActionFactory
 
 /**
  *
@@ -31,6 +38,21 @@ import org.gradle.api.tasks.JavaExec
 @CompileStatic
 class ApplicationContextCommandTask extends JavaExec {
 
+    @Inject
+    ExecActionFactory execActionFactory
+
+    @Inject
+    ObjectFactory objectFactory
+
+    @Inject
+    ProviderFactory providerFactory
+
+    @Inject
+    JavaToolchainService javaToolchainService
+
+    @Inject
+    PropertyFactory propertyFactory
+
     ApplicationContextCommandTask() {
         
mainClass.set('grails.ui.command.GrailsApplicationContextCommandRunner')
         dependsOn('classes', 'findMainClass')
diff --git 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/ApplicationContextScriptTask.groovy
 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/ApplicationContextScriptTask.groovy
index 5bd5207d8c..ac498aaeff 100644
--- 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/ApplicationContextScriptTask.groovy
+++ 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/ApplicationContextScriptTask.groovy
@@ -18,13 +18,35 @@
  */
 package org.grails.gradle.plugin.commands
 
+import javax.inject.Inject
+
 import groovy.transform.CompileStatic
 
+import org.gradle.api.internal.provider.PropertyFactory
+import org.gradle.api.model.ObjectFactory
+import org.gradle.api.provider.ProviderFactory
 import org.gradle.api.tasks.JavaExec
+import org.gradle.jvm.toolchain.JavaToolchainService
+import org.gradle.process.internal.ExecActionFactory
 
 @CompileStatic
 class ApplicationContextScriptTask extends JavaExec {
 
+    @Inject
+    ExecActionFactory execActionFactory
+
+    @Inject
+    ObjectFactory objectFactory
+
+    @Inject
+    ProviderFactory providerFactory
+
+    @Inject
+    JavaToolchainService javaToolchainService
+
+    @Inject
+    PropertyFactory propertyFactory
+
     ApplicationContextScriptTask() {
         mainClass.set('grails.ui.script.GrailsApplicationScriptRunner')
         dependsOn('classes', 'findMainClass')
diff --git 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/profiles/tasks/ProfileCompilerTask.groovy
 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/profiles/tasks/ProfileCompilerTask.groovy
index 354917d36e..b8914d8887 100644
--- 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/profiles/tasks/ProfileCompilerTask.groovy
+++ 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/profiles/tasks/ProfileCompilerTask.groovy
@@ -50,6 +50,7 @@ import org.gradle.api.tasks.PathSensitive
 import org.gradle.api.tasks.PathSensitivity
 import org.gradle.api.tasks.TaskAction
 import org.gradle.api.tasks.compile.AbstractCompile
+import org.gradle.api.tasks.util.internal.PatternSetFactory
 import org.yaml.snakeyaml.DumperOptions
 import org.yaml.snakeyaml.LoaderOptions
 import org.yaml.snakeyaml.Yaml
@@ -116,6 +117,9 @@ class ProfileCompilerTask extends AbstractCompile {
 
     // commands map to source property
 
+    @Inject
+    PatternSetFactory patternSetFactory
+
     @Inject
     ProfileCompilerTask(ObjectFactory objectFactory, Project project) {
         group = BasePlugin.BUILD_GROUP
diff --git 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/run/GrailsRunTask.groovy
 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/run/GrailsRunTask.groovy
index 19f7d93684..093045bb9c 100644
--- 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/run/GrailsRunTask.groovy
+++ 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/run/GrailsRunTask.groovy
@@ -18,9 +18,16 @@
  */
 package org.grails.gradle.plugin.run
 
+import javax.inject.Inject
+
 import groovy.transform.CompileStatic
 
+import org.gradle.api.internal.provider.PropertyFactory
+import org.gradle.api.model.ObjectFactory
+import org.gradle.api.provider.ProviderFactory
 import org.gradle.api.tasks.JavaExec
+import org.gradle.jvm.toolchain.JavaToolchainService
+import org.gradle.process.internal.ExecActionFactory
 
 /**
  * Extension to the standard JavaExec task to run Grails applications
@@ -29,4 +36,20 @@ import org.gradle.api.tasks.JavaExec
  * @since 3.2
  */
 @CompileStatic
-class GrailsRunTask extends JavaExec {}
+class GrailsRunTask extends JavaExec {
+
+    @Inject
+    ExecActionFactory execActionFactory
+
+    @Inject
+    ObjectFactory objectFactory
+
+    @Inject
+    ProviderFactory providerFactory
+
+    @Inject
+    JavaToolchainService javaToolchainService
+
+    @Inject
+    PropertyFactory propertyFactory
+}
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 fe77a1a3f0..c8d775df50 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
@@ -25,6 +25,7 @@ import groovy.transform.CompileStatic
 
 import org.gradle.api.model.ObjectFactory
 import org.gradle.api.tasks.CacheableTask
+import org.gradle.api.tasks.util.internal.PatternSetFactory
 import org.gradle.process.ExecOperations
 
 import org.grails.gradle.plugin.views.AbstractGroovyTemplateCompileTask
@@ -38,6 +39,9 @@ import 
org.grails.gradle.plugin.views.AbstractGroovyTemplateCompileTask
 @CacheableTask
 class GsonViewCompilerTask extends AbstractGroovyTemplateCompileTask {
 
+    @Inject
+    PatternSetFactory patternSetFactory
+
     @Inject
     GsonViewCompilerTask(ExecOperations execOperations, ObjectFactory 
objectFactory) {
         super(execOperations, objectFactory, 'gson', 
'grails.plugin.json.view.JsonViewTemplate', 
'grails.plugin.json.view.JsonViewCompiler')
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 26d1345807..4ba4d547a1 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
@@ -27,6 +27,7 @@ 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.api.tasks.util.internal.PatternSetFactory
 import org.gradle.process.ExecOperations
 
 import org.grails.gradle.plugin.views.AbstractGroovyTemplateCompileTask
@@ -50,6 +51,9 @@ class MarkupViewCompilerTask extends 
AbstractGroovyTemplateCompileTask {
     @Input
     final Property<String> compilerName
 
+    @Inject
+    PatternSetFactory patternSetFactory
+
     @Inject
     MarkupViewCompilerTask(ExecOperations execOperations, ObjectFactory 
objectFactory) {
         super(execOperations, objectFactory, 'gml', 
'grails.plugin.markup.view.MarkupViewTemplate', 
'grails.plugin.markup.view.MarkupViewCompiler')
diff --git 
a/grails-profiles/base/skeleton/gradle/wrapper/gradle-wrapper.properties 
b/grails-profiles/base/skeleton/gradle/wrapper/gradle-wrapper.properties
index d4081da476..2e1113280e 100644
--- a/grails-profiles/base/skeleton/gradle/wrapper/gradle-wrapper.properties
+++ b/grails-profiles/base/skeleton/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME
diff --git 
a/grails-profiles/profile/skeleton/gradle/wrapper/gradle-wrapper.properties 
b/grails-profiles/profile/skeleton/gradle/wrapper/gradle-wrapper.properties
index d4081da476..2e1113280e 100644
--- a/grails-profiles/profile/skeleton/gradle/wrapper/gradle-wrapper.properties
+++ b/grails-profiles/profile/skeleton/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME
diff --git 
a/grails-test-examples/hibernate5/grails-hibernate-groovy-proxy/build.gradle 
b/grails-test-examples/hibernate5/grails-hibernate-groovy-proxy/build.gradle
index b1fe1b4e11..f3b6b4f9f1 100644
--- a/grails-test-examples/hibernate5/grails-hibernate-groovy-proxy/build.gradle
+++ b/grails-test-examples/hibernate5/grails-hibernate-groovy-proxy/build.gradle
@@ -30,7 +30,7 @@ dependencies {
     implementation 'org.apache.grails:grails-data-hibernate5'
     implementation 'org.apache.grails:grails-core'
     implementation 
"org.yakworks:hibernate-groovy-proxy:$yakworksHibernateGroovyProxyVersion", {
-        exclude group: 'org.codehaus.groovy', module: 'groovy'
+        exclude group: 'org.apache.groovy', module: 'groovy'
     }
 
     runtimeOnly 'com.h2database:h2'


Reply via email to