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

   Bumps `spring-boot-starter-sitemesh` / `spring-webmvc-sitemesh` from 
`3.3.0-M2` to `3.3.0-M3`.
   
   ### Why
   
   **M3 fixes the response charset in the view-resolver integration.** Under 
M2, `SiteMeshView` stamped a charset-less `text/html` onto the real response 
before the inner view rendered. Grails GSP only applies its configured content 
type (`text/html;charset=UTF-8`) when none is set yet, so it backed off — and 
the response went out with the servlet container's locale-derived charset 
instead. Net effect: decorated pages served most non-English locales as 
**ISO-8859-1**, destroying all non-Latin-1 text (Cyrillic, Thai, Chinese, 
Czech, ...). Only locales whose container mapping happened to be UTF-8 rendered 
correctly.
   
   M3 lets the inner view own the content type (`enableBuffering` is now the 
public API for unconditional buffering) and restores the `text/html` default 
only when the view declines to set one.
   
   ### Also in M3
   
   - The invasive wrap-all default is replaced by a non-invasive delegating 
resolver — no `ViewResolver` bean is replaced or retyped. Grails' 
`bean-definition` / `bean-instance` integrations are unaffected and keep 
priority through the starter's extension contract (verified: single decoration 
pass).
   - `SiteMeshViewResolver.decorate(View)` for views a handler resolves 
manually and returns directly.
   - `SiteMeshViewContext` is created after the render, so custom content 
processors and decorator selectors observe the actual response content type.
   - The starter's early post-processors bind `sitemesh.*` from the 
`Environment`, so `wrapMode=bean-definition` no longer ignores a configured 
`targetBeanName`.
   - Decorator-chain parsing is centralized and whitespace-tolerant (`"inner, 
outer"` works in meta tags, request attributes, and configuration alike).
   
   ### Verification (against the released Central artifact)
   
   - `:grails-sitemesh3:test` — green (forced rerun)
   - `:grails-test-examples-gsp-sitemesh3:check` — 21 integration tests green 
(forced rerun), covering forced layouts, decorator chaining, JSP, plain text, 
and error-page decoration
   - A generated application serves **all 18 bundled locales as 
`charset=UTF-8`** with strict byte-level validation of the translated content
   
   Companion to #15974, which internationalizes the default welcome page — 
correct rendering of its non-Latin-1 locales depends on this upgrade.


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