This is an automated email from the ASF dual-hosted git repository.

jamesfredley pushed a commit to branch fix/8.0.x-merge-sb4-fallout
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit b4dd6cfe5e536c5798b39a0c8eaee3ba31c090ee
Author: James Fredley <[email protected]>
AuthorDate: Thu May 21 19:31:43 2026 -0400

    Fix Spring Boot 4 autoconfigure package paths in exclude strings
    
    The merge from 7.2.x reintroduced three Spring Boot 3 era package names
    that are referenced as string literals (so the compiler cannot catch
    them). On the Grails 8 / Spring Boot 4 stack those classes live in
    new modules and the strings silently fail to match anything, so the
    @EnableAutoConfiguration exclusions they describe never take effect.
    
    * ApplicationClassInjector#CONDITIONAL_EXCLUSIONS pointed
      
org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration
      at the wrong package; the class moved to
      org.springframework.boot.liquibase.autoconfigure in SB4.
    
    * GrailsApplicationCompilerAutoConfiguration injected an exclude for
      org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
      into auto generated Application classes; that class moved to
      org.springframework.boot.jdbc.autoconfigure in SB4.
    
    The matching ApplicationClassInjectorSpec assertion is updated so the
    unit test catches future regressions of the liquibase entry.
    
    Assisted-by: claude-code:claude-opus-4-7
---
 .../org/grails/compiler/injection/ApplicationClassInjector.groovy       | 2 +-
 .../org/grails/compiler/injection/ApplicationClassInjectorSpec.groovy   | 2 +-
 .../org/grails/cli/boot/GrailsApplicationCompilerAutoConfiguration.java | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git 
a/grails-core/src/main/groovy/org/grails/compiler/injection/ApplicationClassInjector.groovy
 
b/grails-core/src/main/groovy/org/grails/compiler/injection/ApplicationClassInjector.groovy
index 2d126792dd..763bdbe761 100644
--- 
a/grails-core/src/main/groovy/org/grails/compiler/injection/ApplicationClassInjector.groovy
+++ 
b/grails-core/src/main/groovy/org/grails/compiler/injection/ApplicationClassInjector.groovy
@@ -83,7 +83,7 @@ class ApplicationClassInjector implements 
GrailsArtefactClassInjector {
     static final List<Map<String, String>> CONDITIONAL_EXCLUSIONS = [
             [
                     pluginClass: 
'org.grails.plugins.databasemigration.DatabaseMigrationGrailsPlugin',
-                    excludeClass: 
'org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration',
+                    excludeClass: 
'org.springframework.boot.liquibase.autoconfigure.LiquibaseAutoConfiguration',
                     systemProperty: 'grails.autoconfigure.exclude.liquibase'
             ]
     ]
diff --git 
a/grails-core/src/test/groovy/org/grails/compiler/injection/ApplicationClassInjectorSpec.groovy
 
b/grails-core/src/test/groovy/org/grails/compiler/injection/ApplicationClassInjectorSpec.groovy
index 680e1cfd6e..df02a2d506 100644
--- 
a/grails-core/src/test/groovy/org/grails/compiler/injection/ApplicationClassInjectorSpec.groovy
+++ 
b/grails-core/src/test/groovy/org/grails/compiler/injection/ApplicationClassInjectorSpec.groovy
@@ -53,7 +53,7 @@ class ApplicationClassInjectorSpec extends Specification {
         where:
         expected << [
             [
-                    excludeClass: 
'org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration',
+                    excludeClass: 
'org.springframework.boot.liquibase.autoconfigure.LiquibaseAutoConfiguration',
                     pluginClass: 
'org.grails.plugins.databasemigration.DatabaseMigrationGrailsPlugin',
                     systemProperty: 'grails.autoconfigure.exclude.liquibase'
             ]
diff --git 
a/grails-shell-cli/src/main/groovy/org/grails/cli/boot/GrailsApplicationCompilerAutoConfiguration.java
 
b/grails-shell-cli/src/main/groovy/org/grails/cli/boot/GrailsApplicationCompilerAutoConfiguration.java
index fbc9286f4e..9e8c912b22 100644
--- 
a/grails-shell-cli/src/main/groovy/org/grails/cli/boot/GrailsApplicationCompilerAutoConfiguration.java
+++ 
b/grails-shell-cli/src/main/groovy/org/grails/cli/boot/GrailsApplicationCompilerAutoConfiguration.java
@@ -127,7 +127,7 @@ public class GrailsApplicationCompilerAutoConfiguration 
extends CompilerAutoConf
         ClassNode applicationClassNode = new ClassNode("Application", 
Modifier.PUBLIC, 
ClassHelper.make("grails.boot.config.GrailsAutoConfiguration"));
         AnnotationNode enableAutoAnnotation = new 
AnnotationNode(ENABLE_AUTO_CONFIGURATION_CLASS_NODE);
         try {
-            enableAutoAnnotation.addMember("exclude", new 
ClassExpression(ClassHelper.make("org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration")));
+            enableAutoAnnotation.addMember("exclude", new 
ClassExpression(ClassHelper.make("org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration")));
         } catch (Throwable e) {
             // ignore
         }

Reply via email to