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

   ## Summary
   
   - generate Spring Boot configuration metadata from compiled Groovy and Java 
configuration classes
   - preserve curated metadata through standard additional metadata overlays
   - migrate Cache, Data Binding, JSON Views, Markup Views, and URL 
Mappings/CORS metadata generation
   - include generated module metadata in the configuration report 
documentation pipeline
   
   ## Implementation
   
   The Groovy path uses a semantic-analysis AST transformation that stores 
deterministic metadata on each compiled configuration class. The Gradle plugin 
scans those independent class outputs after compilation, reads Java bytecode 
without classloading, merges curated overlays, and publishes one standard 
`META-INF/spring-configuration-metadata.json` resource. This avoids the shared 
annotation-processor output that caused incremental Groovy compilation problems 
in #15566.
   
   The scanner supports mutable bean properties, inherited local accessors, 
selected constructor-bound immutable properties, generic constructor types, 
records, nested groups, constant defaults, source deletion, and deterministic 
cacheable output. Dynamic Groovy defaults remain omitted unless an overlay 
supplies an authoritative value.
   
   ## Compatibility
   
   - preserved all 14 existing groups and all 53 existing properties with no 
changed names, types, descriptions, defaults, or extension fields
   - retained curated boxed types and legacy defaults where source inference 
differs
   - moved CORS metadata to the URL Mappings module that owns 
`GrailsCorsConfiguration`
   - produced nine additional inferred JSON Views properties and new Markup 
Views metadata
   - kept exactly one standard metadata resource in each migrated JAR
   
   ## Verification
   
   - `:grails-configuration-metadata:test` and 
`:grails-configuration-metadata:codeStyle`
   - complete `ConfigurationMetadataPluginSpec` TestKit suite, including clean, 
incremental, edit, deletion, overlay, duplicate, immutable, record/signature, 
and no-overlay paths
   - all tests in Cache, Data Binding, JSON Views, Markup Views, URL Mappings, 
and affected Web Core modules
   - `ConfigReportCommandSpec` and `:grails-doc:publishGuide -x 
aggregateGroovydoc`
   - clean Checkstyle, CodeNarc, PMD, and SpotBugs aggregate reports
   - semantic zero-loss comparison and generated JAR resource inspection
   - dual pre-commit and full-branch review gates plus five-lane 
post-implementation review
   
   The repository-wide Windows run also exposed one unrelated pre-existing mail 
example assertion that compares LF text with CRLF output. All process-level 
worker failures from that run passed when rerun serially.
   
   Closes #15469
   


-- 
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