borinquenkid opened a new pull request, #16577:
URL: https://github.com/apache/grails-core/pull/16577

   ## What
   
   Converts the remaining Java sources of `grails-common`, `grails-beans-dsl`, 
`grails-async-core` to Groovy: 10 `.java` files removed, 12 `.groovy` files 
added (12 files changed, 1915 insertions(+), 1780 deletions(-)).
   
   ## Why
   
   The maintainers asked on #16351 for the Java-to-Groovy migration to land one 
Gradle project at a time as a stack of PRs, bottom-up in dependency order. 
#16572 did `grails-data-hibernate7`; this PR is 2 of 30 in the next stack 
(base: `refactor/java-to-groovy-build-tooling`). The end state of every file is 
taken from the `9.0.x-java-to-groovy` branch, which already carries the 
regression fixes found by CI.
   
   Commits:
   - fa16eae2fb refactor: convert grails-async-core to Groovy
   - 46244a713b refactor: convert grails-beans-dsl to Groovy
   - a3f34e4a1c refactor: convert grails-common to Groovy
   
   ## Changed outside the converted sources
   
   - nothing
   
   ## Java-facing API sweep
   
   Every deleted `.java` was compared with its Groovy twin via `javap -v 
-protected` (class declaration, public/protected fields, constructors, methods 
incl. modifiers/throws/generics, interface default methods, nested class 
modifiers, and the annotations callers see). Result:
   
   - not applicable: these are separate Gradle builds (build-logic, 
grails-gradle) with no Java-facing consumers outside their own build; the 
consuming plugins compile
   
   See also the notes below. 
   
   ## Verification
   
   - `classes` and `testClasses` (plus `ast`/`cli`/`testFixtures` source sets 
where present) of the converted project(s) and of their direct dependents 
compile: ['grails-async', 'grails-async-gpars', 'grails-async-rxjava', 
'grails-async-rxjava2', 'grails-async-rxjava3', 'grails-core', 
'grails-data-mongodb-core', 'grails-databinding-core', 
'grails-datamapping-async', 'grails-datastore-async', 'grails-datastore-core', 
'grails-domain-class', 'grails-redis', 'grails-rest-transforms', 
'grails-views-core', 'grails-views-gson', 'grails-web-databinding']
   - No test suites were run locally (the umbrella branch was verified; CI runs 
them). `codeStyle`, `rat` and a whole-repo `build -PskipTests` are run once on 
the tip of the stack.
   
   ## Notes
   
   - Informational sweep entries that are not regressions: Groovy enums gain 
`MIN_VALUE`/`MAX_VALUE`/`next()`/`previous()`, property accessors appear for 
formerly package-private members, nested static classes with implicit 
constructors become public (they were `protected`), and generic type parameters 
that Groovy erases in constructors/methods (descriptors identical).
   - Groovy gotchas that applied (see #16351): `static final` without `public` 
creates a property; `==` calls `equals()`; Closure/SAM coercions; 
`@CompileStatic` with nested classes. All CI regression fixes found on the 
umbrella branch are included in the end state.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to