You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by da...@apache.org on 2025/10/02 00:12:30 UTC

(grails-core) branch 7.0.x updated: 15100 - remove previous optimization for older JDKs & larger projects (#15104)

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

davydotcom pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git


The following commit(s) were added to refs/heads/7.0.x by this push:
     new d99039ae4f 15100 - remove previous optimization for older JDKs & larger projects (#15104)
d99039ae4f is described below

commit d99039ae4f1957bc0d0ed80b5b22193e2ef9ed94
Author: James Daugherty <jd...@jdresources.net>
AuthorDate: Wed Oct 1 20:12:26 2025 -0400

    15100 - remove previous optimization for older JDKs & larger projects (#15104)
---
 grails-doc/src/en/guide/upgrading/upgrading60x.adoc       | 15 +++++++++++++++
 .../grails/gradle/plugin/core/GrailsGradlePlugin.groovy   | 11 +++++------
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/grails-doc/src/en/guide/upgrading/upgrading60x.adoc b/grails-doc/src/en/guide/upgrading/upgrading60x.adoc
index f4431dd1b6..d7841ce255 100644
--- a/grails-doc/src/en/guide/upgrading/upgrading60x.adoc
+++ b/grails-doc/src/en/guide/upgrading/upgrading60x.adoc
@@ -540,4 +540,19 @@ sourceSets {
         }
     }
 }
+----
+
+===== 12.23 Test & JavaExec JVM Args no longer set by default
+
+Previously tasks of type `Test` & `JavaExec` had several JVM args set by default to facilitate faster startup times in larger projects.
+These settings are removed by default in Grails 7. To restore the old behavior, configure the `Test` & `JavaExec` tasks as follows:
+
+[source,groovy]
+----
+tasks.withType(Test).configureEach {
+   jvmArgs('-XX:+TieredCompilation', '-XX:TieredStopAtLevel=1', '-XX:CICompilerCount=3')
+}
+tasks.withType(JavaExec).configureEach {
+   jvmArgs('-XX:+TieredCompilation', '-XX:TieredStopAtLevel=1', '-XX:CICompilerCount=3')
+}
 ----
\ No newline at end of file
diff --git a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy
index 8d740d22f3..2d831789e9 100644
--- a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy
+++ b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy
@@ -23,6 +23,7 @@ import javax.inject.Inject
 import groovy.transform.CompileDynamic
 import groovy.transform.CompileStatic
 
+import org.gradle.api.DefaultTask
 import org.gradle.api.attributes.AttributeMatchingStrategy
 
 import io.spring.gradle.dependencymanagement.DependencyManagementPlugin
@@ -525,9 +526,8 @@ class GrailsGradlePlugin extends GroovyPlugin {
         }
     }
 
-    protected void configureForkSettings(Project project, String grailsVersion) {
-
-        def systemPropertyConfigurer = { String defaultGrailsEnv, JavaForkOptions task ->
+    protected <T extends JavaForkOptions & DefaultTask> void configureForkSettings(Project project, String grailsVersion) {
+        def systemPropertyConfigurer = { String defaultGrailsEnv, T task ->
             def map = System.properties.findAll { entry ->
                 entry.key?.toString()?.startsWith('grails.')
             }
@@ -550,7 +550,6 @@ class GrailsGradlePlugin extends GroovyPlugin {
             if (task.maxHeapSize == null) {
                 task.maxHeapSize = '768m'
             }
-            task.jvmArgs('-XX:+TieredCompilation', '-XX:TieredStopAtLevel=1', '-XX:CICompilerCount=3')
 
             // Copy GRAILS_FORK_OPTS into the fork. Or use GRAILS_OPTS if no fork options provided
             // This allows run-app etc. to run using appropriate settings and allows users to provided
@@ -565,8 +564,8 @@ class GrailsGradlePlugin extends GroovyPlugin {
         TaskContainer tasks = project.tasks
 
         String grailsEnvSystemProperty = System.getProperty(Environment.KEY)
-        tasks.withType(Test).each(systemPropertyConfigurer.curry(grailsEnvSystemProperty ?: Environment.TEST.getName()))
-        tasks.withType(JavaExec).each(systemPropertyConfigurer.curry(grailsEnvSystemProperty ?: Environment.DEVELOPMENT.getName()))
+        tasks.withType(Test).configureEach(systemPropertyConfigurer.curry(grailsEnvSystemProperty ?: Environment.TEST.getName()))
+        tasks.withType(JavaExec).configureEach(systemPropertyConfigurer.curry(grailsEnvSystemProperty ?: Environment.DEVELOPMENT.getName()))
     }
 
     protected void configureConsoleTask(Project project) {