jamesfredley commented on PR #15541: URL: https://github.com/apache/grails-core/pull/15541#issuecomment-4199891954
## Review Feedback Addressed - Summary of Latest Commits ### 1. `95f902f9` - Remove jackson.version override from BOM, let Spring Boot manage Jackson - Removed `jackson.version: 2.21.2` property override from `dependencies.gradle` - Removed `jackson-bom` platform dependency from `bomPlatformDependencies` - Removed `exclude group: 'com.fasterxml.jackson'` from Spring Boot BOM import in `grails-bom/build.gradle` - Spring Boot 4.0.5 manages both `jackson-2-bom` (2.x) and `jackson-bom` (3.x); Grails code uses only `com.fasterxml.jackson` (2.x), so letting Boot own the version avoids conflicting version management - The `groovy.version` POM override was also removed (in this same BOM cleanup scope) - the generated BOM still publishes `groovy.version=4.0.31` correctly via the Groovy BOM import ### 2. `8d23e8ab` - Fix Spring Boot 4 class relocations in tests, docs, and config - **AbstractGrailsTagTests** (grails-gsp + gsp-layout): Restored `AnnotationConfigServletWebServerApplicationContext` at new SB4 package (`o.s.b.web.server.servlet.context`) instead of the downgrade to `GenericWebApplicationContext` - **Hibernate docs**: Updated `HibernateJpaAutoConfiguration` import from `o.s.b.autoconfigure.orm.jpa` to `o.s.b.hibernate.autoconfigure` - **MongoDB test config**: Updated `MongoAutoConfiguration` exclusion from `o.s.b.autoconfigure.mongo` to `o.s.b.mongodb.autoconfigure` ### 3. `6a090102` - Add NOTICE file to vendored spring-orm subproject - Created `META-INF/NOTICE` in `grails-data-hibernate5/spring-orm` for Spring Framework attribution - Follows the same pattern as `grails-events/compat` and `grails-core` subproject NOTICE files - Gets packaged into the published jar; build logic confirms no duplicate NOTICE in the artifact ### 4. `588d935d` - Add comprehensive Grails 8 upgrade guide for Spring Boot 4 12-section upgrade guide (`upgrading80x.adoc`) covering: 1. Spring Boot 4.0.x overview with links to release notes 2. Autoconfigure modularization (`spring-boot-webmvc`, `spring-boot-servlet`, `spring-boot-mongodb`) 3. MongoDB config property namespace changes (`spring.data.mongodb.*` → `spring.mongodb.*`) 4. Hibernate ORM package relocations (vendored `spring-orm` classes) 5. `HttpStatus.MOVED_TEMPORARILY` → `HttpStatus.FOUND` 6. CLASSIC boot loader removal for Micronaut compatibility 7. Enum serialization default change (`SimpleEnumMarshaller`) 8. Theme infrastructure removal (with corrected `JstlUtils` note) 9. Embedded server module relocations (including `AnnotationConfigServletWebApplicationContext`) 10. `HandlerAdapter.getLastModified` removal 11. Spring Security filter ordering changes 12. Known plugin incompatibilities (spring-security, sitemesh3) ### Architectural Review An Oracle architectural review verified: - ✅ No stale Spring Boot 3 package references remain in code (all verified against Boot 4.0.5 jars) - ✅ Jackson removal is safe - Boot manages both Jackson 2.x and 3.x - ✅ Generated BOM still publishes `groovy.version=4.0.31` correctly - ✅ `GrailsApplicationBuilder` reflection target (`o.s.b.web.context.servlet.AnnotationConfigServletWebApplicationContext`) confirmed in Boot 4.0.5 - ✅ `spring.factories` key (`o.s.b.bootstrap.BootstrapRegistryInitializer`) confirmed in Boot 4.0.5 - ✅ NOTICE file follows ASF conventions, no duplicate in packaged jar ### Remaining TODOs (tracked, not in scope for this push) - **Micronaut update**: `micronaut-platform:5.0.0-M1` requires JDK 21+ (`micronaut-core:5.0.0-M20`), blocked until JDK baseline discussion - **JSP GrailsLayoutSpec fix**: Needs further investigation into JSTL implementation dependency -- 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]
