You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by jd...@apache.org on 2026/01/17 19:46:28 UTC
(grails-core) 01/02: #15321 - docs - fix list items in groovy upgrade notes
This is an automated email from the ASF dual-hosted git repository.
jdaugherty pushed a commit to branch invokeDynamicDisable
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit e4663d5753b29d663695be1f407cb627fefdcb23
Author: James Daugherty <jd...@jdresources.net>
AuthorDate: Sat Jan 17 14:42:29 2026 -0500
#15321 - docs - fix list items in groovy upgrade notes
---
grails-doc/src/en/guide/upgrading/upgrading60x.adoc | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/grails-doc/src/en/guide/upgrading/upgrading60x.adoc b/grails-doc/src/en/guide/upgrading/upgrading60x.adoc
index 6d4c91127b..fadd2c44b2 100644
--- a/grails-doc/src/en/guide/upgrading/upgrading60x.adoc
+++ b/grails-doc/src/en/guide/upgrading/upgrading60x.adoc
@@ -36,18 +36,17 @@ Grails {version} adopts Groovy {groovyVersion} as it's baseline requirement.
Several changes in https://groovy-lang.org/releasenotes/groovy-4.0.html[Groovy 4] can affect your application.
Changes that may affect a Grails Application or Plugin include:
-1. https://issues.apache.org/jira/browse/GROOVY-10621[GROOVY-10621] - Primitive booleans will no longer generate the form of isProperty & getProperty.
+* https://issues.apache.org/jira/browse/GROOVY-10621[GROOVY-10621] - Primitive booleans will no longer generate the form of isProperty & getProperty.
They will only generate isProperty().
For Grails Domain objects, grails sometimes generates these properties.
It is advisable to switch to the new form of the property.
-2. https://issues.apache.org/jira/browse/GROOVY-5169[GROOVY-5169] & https://issues.apache.org/jira/browse/GROOVY-10449[GROOVY-10449] - Fields with a public modifier were not returned with MetaClassImpl#getProperties() in groovy 3, but are now.
-3. Closures using the DELEGATE_FIRST strategy now behave differently.
+* https://issues.apache.org/jira/browse/GROOVY-5169[GROOVY-5169] & https://issues.apache.org/jira/browse/GROOVY-10449[GROOVY-10449] - Fields with a public modifier were not returned with MetaClassImpl#getProperties() in groovy 3, but are now.
+* Closures using the DELEGATE_FIRST strategy now behave differently.
The resolution order in Groovy 3 used to be Delegate's invokeMethod, Owner's invokeMethod, Delegate's invokeMissingMethod, Owner's invokeMissingMethod.
In Groovy 4, the order is now Delegate's invokeMethod, Delegate's invokeMissingMethod, Owner's invokeMethod, Owner's invokeMissingMethod.
-4. Closures defined in a parent class that reference its private properties or methods may no longer have access to them in subclasses.
+* Closures defined in a parent class that reference its private properties or methods may no longer have access to them in subclasses.
See https://issues.apache.org/jira/browse/GROOVY-11568[GROOVY-11568] for more details.
-
-Some older libraries may include an older version of groovy, but still be compatible with Groovy 4. One example is GPars.
+* Some older libraries may include an older version of groovy, but still be compatible with Groovy 4. One example is GPars.
In your gradle file, you can force a dependency upgrade via this code:
[source,groovy]
@@ -62,7 +61,7 @@ In your gradle file, you can force a dependency upgrade via this code:
}
----
-5. By default, Groovy 4 switches away from callsite optimizations and uses invokedynamic instead. This can result in performance regressions compared to Grails 6. Groovy 5 will remove the ability to disable invokedynamic, but to disable it for Groovy 4, modify your `build.gradle` to include the following:
+* By default, Groovy 4 switches away from callsite optimizations and uses invokedynamic instead. This can result in performance regressions compared to Grails 6. Groovy 5 will remove the ability to disable invokedynamic, but to disable it for Groovy 4, modify your `build.gradle` to include the following:
[source,groovy]
.build.gradle