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.

Reply via email to