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]

Reply via email to