jamesfredley commented on PR #15365:
URL: https://github.com/apache/grails-core/pull/15365#issuecomment-4255953669
## Comprehensive Summary of All Changes
Every item from @jdaugherty's review has been addressed across two commits
(`38620a90` and `49d6418f`). Here's the full mapping:
---
### Inline Review Comments (9/9 resolved)
| Comment | File | Resolution |
|---|---|---|
| Unused imports | ApplicationContextCommandTask.groovy | Already cleaned up
in prior commit |
| junit-platform-launcher version | test-config.gradle | Added explicit
version `1.12.2` |
| .sdkmanrc comment | .sdkmanrc | Updated to reference gradle-bootstrap
project |
| Groovy version consistency | bom/build.gradle + dependencies.gradle |
Extracted to `gradleBomDependencyVersions` map |
| Inputs removed from Sync task | GrailsProfileGradlePlugin.groovy |
Restored 4 `inputs.dir().optional().skipWhenEmpty()` declarations |
| compileJava should be disabled | issue-11767/build.gradle | Disabled
compileJava, removed metadata merge hack |
| CycloneDX 3.0.0 | gradle.properties + SbomPlugin.groovy | Full rewrite for
`CyclonedxDirectTask` API |
| isReproducibleBuild provider | SbomPlugin.groovy | Converted to
`Provider<Boolean>` |
| buildDate provider | SbomPlugin.groovy | Converted to
`Provider<ZonedDateTime>` |
---
### Big Issue 1 - Gradle 9 Blockers in grails-gradle Plugins (all fixed)
**Blockers (removed in Gradle 9):**
- `GrailsExtension.groovy`: Replaced `ConfigureUtil.configure()` with Groovy
closure delegation (`configureClosure.delegate/resolveStrategy/call()`)
- `GrailsGradlePlugin.groovy`: `project.buildDir` was already migrated to
`layout.buildDirectory` in the original PR
- `IntegrationTestGradlePlugin.groovy`: No violations found (already
compliant)
**Config Cache / Project Isolation:**
- `GrailsProfileGradlePlugin.groovy`: Already converted from `project.sync`
in doLast to typed `Sync` task in original PR; restored explicit inputs
- `GrailsGradlePlugin.groovy`: `buildProperties` migrated from
`tasks.create` to `tasks.register`
**Eager Task APIs:**
- `GrailsGradlePlugin.groovy`: `project.tasks.create('buildProperties')` ->
`tasks.register(...)`
- `GrailsPluginGradlePlugin.groovy`: `project.task(type: Copy,
'copyCommands')` -> `tasks.register('copyCommands', Copy)`
- `GrailsPluginGradlePlugin.groovy`: `project.task(type: Copy,
'copyTemplates')` -> `tasks.register('copyTemplates', Copy)`
---
### Big Issue 2 - Configuration Cache (fixed)
Explicitly set `org.gradle.configuration-cache=false` in gradle.properties
with reference to #15497.
---
### Big Issue 3 - ExtractDependenciesTask (fixed for current scope)
- Removed `doFirst` plugin check - moved to configuration time in
grails-bom/build.gradle
- Replaced `project.configurations.named(...)` in `@TaskAction` with
captured `ConfigurationContainer`
- Replaced `project.dependencies.create(...)` and
`project.configurations.detachedConfiguration(...)` with captured
`DependencyHandler`/`ConfigurationContainer` via new `captureProjectServices()`
method
**Note:** The task still creates detached configurations at execution time,
which is incompatible with configuration cache. Since configuration cache is
explicitly disabled, this works correctly. A full redesign (BuildService or
pre-resolve approach per the review) is deferred until configuration cache is
re-enabled.
---
### CI Fix
All CI jobs were failing on `unable to resolve class
org.gradle.api.internal.ClosureBackedAction` - fixed by replacing with plain
Groovy closure delegation.
---
### Dependency Bumps
- byte-buddy 1.17.8 -> 1.18.8
- commons-text 1.14.0 -> 1.15.0
- ant 1.10.15 -> 1.10.17
- commons-codec 1.19.0 -> 1.21.0
- selenium-bom 4.38.0 -> 4.41.0
- mockito-core 5.20.0 -> 5.23.0
---
### Remaining / Deferred
1. **ExtractDependenciesTask full config cache redesign** - Not needed until
`org.gradle.configuration-cache=true` is re-enabled. Will require
BuildService-based or pre-resolve approach per the review.
2. **Spock 2.4, Kotlin 2.3.x, Groovy 5.x** - Available but too risky for
this PR. Should be separate PRs.
--
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]