Hi list, I agree that we need to move forward, even if that means having to revert to Sitemesh 2.6.0. Getting Grails 7 to GA is IMO way more important than to have a more modernized GSP engine.
Also agree that Sitemesh3 could be a target for Grails 8. Good work James D!! Den ons. 2. jul. 2025 kl. 13.39 skrev James Daugherty <jdaughe...@apache.org >: > Hi Everyone, > > I started investigating a ticket related to forwarding not working in a > Grails controller on 7.0.0-M4. As part of that I made this discovery: > https://github.com/apache/grails-core/issues/14193#issuecomment-3017157073 > It seems the DispatcherServlet from Spring is designed to handle multiple > calls methods that cause the response to render and close. The dispatcher > chooses the right one by the committed state of the response. > > From my investigation, the Sitemesh 3 implementation appears to use a > filter to render its output after the DispatcherServlet is processed - so > the response state is never committed. I think we could update the > GrailsDispatcherServlet to handle the various scenarios that the > DispatcherServlet handles, but I'm not sure this is practical for Grails 7 > given the delays we have already had. We would also be deviating from how > Spring MVC controllers are rendered and this logic doesn't appear that > simple. Moreover, we still have several outstanding tickets related to the > sitemesh 3 upgrade: > > * Apr 2025 - https://github.com/apache/grails-core/issues/14193 - > forwarding from a controller > * Jan 2025 - https://github.com/apache/grails-core/issues/13988 - nested > layouts > * Feb 2005 - https://github.com/apache/grails-core/issues/14197 - $raw in > titles > * Nov 2024 - https://github.com/apache/grails-core/issues/13849 - layout > by > convention > > We have reached out to the developer of Sitemesh 3 on most of these tickets > (via ticket comments and direct slack messages over the past few months); > we have yet to receive any work or progress on them. The oldest of which is > 8+ months old. I'm skeptical these can be finished in a reasonable time > frame. > > > Given the lack of support, the multiple issues found by users, and the > current state of Grails 7 being delayed by these tickets, I would like to > propose we revert back to Sitemesh 2.6.0. Assuming we confirm all of these > issues are fixed, we would only have the remaining license, asset plugin > release, & ASF release related issues to fix before we could release Grails > 7. > > > I have gone ahead and reverted back to Sitemesh 2.6.0 in the issue14193 > branch (https://github.com/apache/grails-core/tree/issue14193). As part > of > switching back to v2, I discovered the following is now fixed: > * async rendering > * async error handling > * layout specified by a controller property > * layout specified in controller property applied to a GSP that does not > contain a root html tag > > It seems the sitemesh3 upgrade was performed during a time when the project > wasn't running all of its tests, so we are only now learning the scope of > its impact. I think we can still be open to switching to Sitemesh 3 in > Grails 8. Especially if we get the necessary support, but otherwise, we > can continue with 2.x. > > Please note as part of this branch revert, I've also taken a closer look at > the Sitemesh licensing requirements and made a first pass being compatible > with the Sitemesh license. We'll still have to follow-up with ASF legal to > ensure we're compliant since the license is a derivative of the ASF > license. > > -James > -- Med venlig hilsen, Søren Berg Glasius Hedevej 1, Gl. Rye, 8680 Ry Mobile: +45 40 44 91 88 --- Press ESC once to quit - twice to save the changes.