codeconsole commented on PR #16237: URL: https://github.com/apache/grails-core/pull/16237#issuecomment-5684798432
@matrei Addressed the review in [e8bb2eb0a5](https://github.com/apache/grails-core/commit/e8bb2eb0a5bf4227aee06cab334adb057e50a34f). 1. **GString and converter selection:** GStrings serialize as strings. JSON/XML renderers require converters to advertise a media type in the requested family, preventing wildcard string/byte converters from emitting raw JSON or losing the XML string element. Tests cover scalar and nested values, quoted strings, byte-array base64 output, and XML fallback. 2. **Controller test parity and named configurations:** Web tests initialize Boot's Jackson configuration and populate real Spring converters from the context mapper. New controller tests exercise application customizers, named `render`/`respond`, domain values, and RFC 9457 response body/content type/status through the harness. 3. **Domain serialization scope:** The domain compatibility serializer now belongs to isolated Grails writers. The shared Boot mapper retains Jackson annotations, mixins, naming, inclusion, views, formatting, and derived getters. Tests cover that separation and application serializer precedence; the guide documents the Grails writer's property-model limitations. 4. **8.0 compatibility:** This PR still targets `8.0.x`, and `grails.web.rendering.json.spring` now defaults to `false`. Spring JSON rendering requires explicit opt-in. 5. **Plugin isolation and bean ambiguity:** Web/XML plugins load automatically only for web tests, with service/plain-test isolation coverage. MessageSource resolution uses the application bean name; mapper resolution uses the unique/primary candidate or the conventional `jacksonJsonMapper` bean. 6. **Default JSON rendering:** `render json: [ok: true]` now works without a named configuration. 7. **Documentation and minor fixes:** Removed the automatic Spring HATEOAS integration claims and the stale adapter-module claim in the PR description. Documented unknown-format fallback and the global Spring `Errors` serializer. Jackson's intermediate output is decoded with its actual UTF-8 encoding before writing the configured response encoding, and `WriterOutputStream.write(int)` no longer allocates a byte array. **Validation:** The final scoped run completed successfully, including aggregate violations, affected-module checks, GSP, web/uber suites, fields, the guide build, and combined test report (`-PonlyCoreTests --max-workers=2 --no-daemon --continue -x aggregateGroovydoc`). PMD/SpotBugs were not enabled. An earlier clean repository-wide run lost its Gradle daemon; the successful scoped run is not a full-repository pass. -- 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]
