The GitHub Actions job "Code Style" on 
grails-core.git/perf/sitemesh3-taglib-method-handlers has failed.
Run started by GitHub user codeconsole (triggered by codeconsole).

Head commit for run:
a23ffee12e9fcc9c9d1e4954587986ff6dab14a4 / Scott Murphy Heiberg 
<[email protected]>
fix(sitemesh3): register contentProcessor/decoratorSelector via auto-config to 
stop bean override

The SiteMesh 3 plugin registered the contentProcessor and decoratorSelector
beans in doWithSpring, relying on upstream 
SiteMeshViewResolverAutoConfiguration's
@ConditionalOnMissingBean(name=...) guards to suppress its defaults. But Grails
applies doWithSpring beans after Spring Boot evaluates auto-configuration
conditions, so upstream registered its beans first and the plugin's 
registrations
overrode them, logging at startup:

  Overriding bean definition for bean 'decoratorSelector' ...
  Overriding bean definition for bean 'contentProcessor' ...

Move both registrations into Sitemesh3AutoConfiguration, which is ordered
@AutoConfigureBefore the upstream config, so the Grails beans are present when
upstream's guards are evaluated and the defaults back off cleanly instead of
being overridden after the fact.

View decoration only applies when Spring MVC is resolving views, so the two 
beans
are gated on @ConditionalOnBean(DispatcherServlet) (with @AutoConfigureAfter the
dispatcher-servlet auto-config). This keeps them out of the lightweight
grails-testing-support unit-test contexts, which have no dispatcher servlet,
preserving the previous behaviour where unit tests are not decorated.

Adds Sitemesh3AutoConfigurationSpec covering the new factory methods.

Report URL: https://github.com/apache/grails-core/actions/runs/27921982796

With regards,
GitHub Actions via GitBox

Reply via email to