Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
f1a881e
Quick Updates for Spring Boot 4
jamesfredley Jan 19, 2026
fb217b9
Merge remote-tracking branch 'origin/8.0.x' into spring-boot-4
jamesfredley Mar 20, 2026
530013a
fix: resolve Spring Boot 4 incompatibilities reintroduced by 8.0.x merge
jamesfredley Mar 20, 2026
5aad61d
Merge branch '8.0.x' into spring-boot-4
jamesfredley Mar 21, 2026
6e2d905
Merge branch '8.0.x' into spring-boot-4
jamesfredley Mar 21, 2026
fb98bbe
fix: Remove ThemeSource usage removed in Spring Framework 7.0
jamesfredley Mar 21, 2026
62f8864
fix: correct import ordering in ControllersAutoConfiguration
jamesfredley Mar 21, 2026
f703763
fix: Resolve compilation and test failures for Spring Boot 4 upgrade
jamesfredley Mar 21, 2026
29ce89a
fix: Replace wildcard import with explicit imports in LoggingTransformer
jamesfredley Mar 21, 2026
5c4bb1a
Merge branch '8.0.x' into spring-boot-4
jamesfredley Mar 21, 2026
8e2878a
fix: Resolve CI failures for Spring Boot 4 upgrade
jamesfredley Mar 21, 2026
042ef95
fix: restore reset() behavior in AbstractGrailsMockHttpServletResponse
matrei Mar 26, 2026
577bb41
test: Update assertions in RenderMethodTests
matrei Mar 26, 2026
0717300
test(cleanup): Cleanup RenderMethodTests
matrei Mar 26, 2026
919590f
fix(deps): update to spring-boot 4.0.5 and groovy 4.0.31
matrei Mar 30, 2026
710b3eb
build: minor cleanup
matrei Mar 30, 2026
bcc0972
fix: minor cleanup and removing of `@CompileDynamic`
matrei Mar 30, 2026
eff26da
Merge remote-tracking branch 'origin/8.0.x' into spring-boot-4
jamesfredley Mar 30, 2026
ad9a860
fix: update Spring Boot 4.0 bootstrap API imports to new package
jamesfredley Mar 30, 2026
b0903f7
fix: update autoconfigure exclusion paths for Spring Boot 4 package r…
jamesfredley Mar 30, 2026
6d96a7a
Merge branch '8.0.x' into spring-boot-4
jamesfredley Mar 31, 2026
0fd14cd
fix: address Copilot review feedback on Spring Boot 4 upgrade
jamesfredley Mar 31, 2026
f026c56
fix: address review feedback and architectural improvements for Sprin…
jamesfredley Apr 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .agents/skills/grails-developer/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ Activate this skill when developing with Grails 7, including:
## Technology Stack

Grails 7 is built on:
- **Spring Boot**: 3.5.x
- **Spring Framework**: 6.2.x
- **Spring Boot**: 4.0.x
- **Spring Framework**: 7.0.x
- **Groovy**: 4.0.x
- **Gradle**: 8.14.x
- **Spock**: 2.3-groovy-4.0
Expand Down
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ export GRADLE_OPTS="-Xms2G -Xmx5G"
|-----------|---------|
| JDK | 17+ (baseline 17) |
| Groovy | 4.0.x |
| Spring Boot | 3.5.x |
| Spring Framework | 6.2.x |
| Spring Boot | 4.0.x |
| Spring Framework | 7.0.x |
| Spock | 2.3-groovy-4.0 |
| Gradle | 8.14.x |
| Jakarta EE | 10 |
Expand Down
8 changes: 7 additions & 1 deletion NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,10 @@ may be obtained from:
http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html

This product includes software developed by the OpenSymphony Group (http://www.opensymphony.com/). It uses Sitemesh2,
licensed under the OpenSymphony Software License, Version 1.1. See licenses/LICENSE-opensymphony.txt for the full license terms.
licensed under the OpenSymphony Software License, Version 1.1. See licenses/LICENSE-opensymphony.txt for the full license terms.

Spring Framework ORM Hibernate 5 Support
This product includes software from the Spring Framework project (https://spring.io/projects/spring-framework),
vendored from Spring Framework 6.2.x. These classes were removed in Spring Framework 7.0.
Copyright 2002-2024 the original author or authors.
Licensed under the Apache License, Version 2.0.
2 changes: 1 addition & 1 deletion build-logic/docs-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ dependencies {

testImplementation "org.codehaus.groovy:groovy-test-junit5:${GroovySystem.version}"
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.12.2'
testImplementation 'org.junit.platform:junit-platform-runner:1.12.2'
testImplementation 'org.junit.platform:junit-platform-suite:1.12.2'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.12.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.12.2'
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@ class SbomPlugin implements Plugin<Project> {
'pkg:maven/org.hibernate.common/hibernate-commons-annotations@5.1.2.Final?type=jar': 'LGPL-2.1-only', // hibernate 5 is LGPL, we are migrating to ASF license in hibernate 7
'pkg:maven/org.hibernate/hibernate-core-jakarta@5.6.15.Final?type=jar' : 'LGPL-2.1-only', // hibernate 5 is LGPL, we are migrating to ASF license in hibernate 7
],
'grails-data-hibernate5-spring-orm' : [
'pkg:maven/org.hibernate.common/hibernate-commons-annotations@5.1.2.Final?type=jar': 'LGPL-2.1-only', // hibernate 5 is LGPL, we are migrating to ASF license in hibernate 7
'pkg:maven/org.hibernate/hibernate-core-jakarta@5.6.15.Final?type=jar' : 'LGPL-2.1-only', // hibernate 5 is LGPL, we are migrating to ASF license in hibernate 7
],
'grails-data-hibernate5-dbmigration': [
'pkg:maven/javax.xml.bind/jaxb-api@2.3.1?type=jar': 'CDDL-1.1', // api export
],
Expand Down
39 changes: 20 additions & 19 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ ext {
'jna.version' : '5.17.0',
'jquery.version' : '3.7.1',
'objenesis.version' : '3.4',
'spring-boot.version' : '3.5.13',
'spring-boot.version' : '4.0.5',
]

// Note: the name of the dependency must be the prefix of the property name so properties in the pom are resolved correctly
Expand All @@ -48,22 +48,23 @@ ext {

// Note: the name of the dependency must be the prefix of the property name so properties in the pom are resolved correctly
gradleBomDependencies = [
'ant' : "org.apache.ant:ant:${gradleBomDependencyVersions['ant.version']}",
'ant-junit' : "org.apache.ant:ant-junit:${gradleBomDependencyVersions['ant.version']}",
'asciidoctor-gradle-jvm': "org.asciidoctor:asciidoctor-gradle-jvm:${gradleBomDependencyVersions['asciidoctor-gradle-jvm.version']}",
'asciidoctorj' : "org.asciidoctor:asciidoctorj:${gradleBomDependencyVersions['asciidoctorj.version']}",
'asset-pipeline-gradle' : "cloud.wondrify:asset-pipeline-gradle:${gradleBomDependencyVersions['asset-pipeline-gradle.version']}",
'byte-buddy' : "net.bytebuddy:byte-buddy:${gradleBomDependencyVersions['byte-buddy.version']}",
'commons-text' : "org.apache.commons:commons-text:${gradleBomDependencyVersions['commons-text.version']}",
'directory-watcher' : "io.methvin:directory-watcher:${gradleBomDependencyVersions['directory-watcher.version']}",
'grails-publish-plugin' : "org.apache.grails.gradle:grails-publish:${gradleBomDependencyVersions['grails-publish-plugin.version']}",
'jansi' : "org.fusesource.jansi:jansi:${gradleBomDependencyVersions['jansi.version']}",
'javaparser-core' : "com.github.javaparser:javaparser-core:${gradleBomDependencyVersions['javaparser-core.version']}",
'jline' : "jline:jline:${gradleBomDependencyVersions['jline.version']}",
'jna' : "net.java.dev.jna:jna:${gradleBomDependencyVersions['jna.version']}",
'objenesis' : "org.objenesis:objenesis:${gradleBomDependencyVersions['objenesis.version']}",
'spring-boot-cli' : "org.springframework.boot:spring-boot-cli:${gradleBomDependencyVersions['spring-boot.version']}",
'spring-boot-gradle' : "org.springframework.boot:spring-boot-gradle-plugin:${gradleBomDependencyVersions['spring-boot.version']}",
'ant' : "org.apache.ant:ant:${gradleBomDependencyVersions['ant.version']}",
'ant-junit' : "org.apache.ant:ant-junit:${gradleBomDependencyVersions['ant.version']}",
'asciidoctor-gradle-jvm' : "org.asciidoctor:asciidoctor-gradle-jvm:${gradleBomDependencyVersions['asciidoctor-gradle-jvm.version']}",
'asciidoctorj' : "org.asciidoctor:asciidoctorj:${gradleBomDependencyVersions['asciidoctorj.version']}",
'asset-pipeline-gradle' : "cloud.wondrify:asset-pipeline-gradle:${gradleBomDependencyVersions['asset-pipeline-gradle.version']}",
'byte-buddy' : "net.bytebuddy:byte-buddy:${gradleBomDependencyVersions['byte-buddy.version']}",
'commons-text' : "org.apache.commons:commons-text:${gradleBomDependencyVersions['commons-text.version']}",
'directory-watcher' : "io.methvin:directory-watcher:${gradleBomDependencyVersions['directory-watcher.version']}",
'grails-publish-plugin' : "org.apache.grails.gradle:grails-publish:${gradleBomDependencyVersions['grails-publish-plugin.version']}",
'jansi' : "org.fusesource.jansi:jansi:${gradleBomDependencyVersions['jansi.version']}",
'javaparser-core' : "com.github.javaparser:javaparser-core:${gradleBomDependencyVersions['javaparser-core.version']}",
'jline' : "jline:jline:${gradleBomDependencyVersions['jline.version']}",
'jna' : "net.java.dev.jna:jna:${gradleBomDependencyVersions['jna.version']}",
'objenesis' : "org.objenesis:objenesis:${gradleBomDependencyVersions['objenesis.version']}",
'spring-boot-cli' : "org.springframework.boot:spring-boot-cli:${gradleBomDependencyVersions['spring-boot.version']}",
'spring-boot-gradle' : "org.springframework.boot:spring-boot-gradle-plugin:${gradleBomDependencyVersions['spring-boot.version']}",
'spring-boot-loader-tools': "org.springframework.boot:spring-boot-loader-tools:${gradleBomDependencyVersions['spring-boot.version']}",
]

bomDependencyVersions = [
Expand All @@ -73,8 +74,8 @@ ext {
'commons-codec.version' : '1.18.0',
'commons-lang3.version' : '3.20.0',
'geb-spock.version' : '8.0.1',
'groovy.version' : '4.0.30',
'jackson.version' : '2.19.1',
'groovy.version' : '4.0.31',
'jackson.version' : '2.21.2',
'jquery.version' : '3.7.1',
'liquibase-hibernate5.version': '4.27.0',
'mongodb.version' : '5.5.1',
Expand Down
32 changes: 32 additions & 0 deletions gradle/boot4-disabled-integration-test-config.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

// TODO: BOOT4 - Integration tests disabled due to Spring Boot 4 incompatibilities.
//
// Modules applying this file have their integrationTest task disabled because of
// external plugin/library incompatibilities with Spring Boot 4 / Spring Framework 7.
//
// Known blockers:
// - grails-spring-security: ReflectionUtils.getApplication() removed in Spring Boot 4
// - SiteMesh3: Decorator/layout not compatible with Spring Framework 7
//
// Re-enable each module's integrationTest when its blocking dependency is updated.
// Search for 'boot4-disabled-integration-test-config' to find all affected modules.

tasks.named('integrationTest') {
enabled = false
}
1 change: 1 addition & 0 deletions gradle/publish-root-config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ def publishedProjects = [
'grails-data-hibernate5-core',
'grails-data-hibernate5-dbmigration',
'grails-data-hibernate5-spring-boot',
'grails-data-hibernate5-spring-orm',
// mongodb
'grails-data-mongodb',
'grails-data-mongodb-bson',
Expand Down
9 changes: 9 additions & 0 deletions grails-bom/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,15 @@ ext {
for (Map.Entry<String, String> property : pomProperties.entrySet()) {
propertiesNode.appendNode(property.key, property.value)
}

// Override Spring Boot's groovy.version property with Grails' version
// Spring Boot 4.0.5 defaults to Groovy 5.0.4, but Grails 8.0.x uses Groovy 4.0.31
def groovyVersionNode = propertiesNode.'groovy.version'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we are defining groovy version, it should already be overridden because of how the constraints are built. Why is this necessary?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Groovy version override in grails-bom ensures that consumers of the BOM get the exact Groovy version Grails was built and tested with, rather than whatever version might be pulled in transitively. Since the BOM is the public contract for dependency versions, being explicit here prevents subtle version mismatches in downstream applications.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are 2 separate concerns here:

  1. for selecting the right groovy version, the bom already supports mismatching spring boot. Are you saying gradle is not honoring the constraint override?

  2. for enforcing downstream projects, that is done by a different mechanism. For our projects, we should use enforcePlatform() if transitive dependencies are causing this problem (i'd rather we avoid enforced though and fix those transitive dependencies, but I'm pretty sure enforced will just cause an error in that case). For generated grails projects we should consider generating a gradle.properties with groovy.version set to prevent mismatches.

if (groovyVersionNode) {
groovyVersionNode[0].value = bomDependencyVersions['groovy.version']
} else {
propertiesNode.appendNode('groovy.version', bomDependencyVersions['groovy.version'])
}
}
}
}
2 changes: 1 addition & 1 deletion grails-bootstrap/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
2 changes: 1 addition & 1 deletion grails-codecs-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
2 changes: 1 addition & 1 deletion grails-codecs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
2 changes: 1 addition & 1 deletion grails-common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'
testImplementation 'org.slf4j:slf4j-simple'
testImplementation 'org.spockframework:spock-core', {
transitive = false
Expand Down
2 changes: 1 addition & 1 deletion grails-console/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
8 changes: 6 additions & 2 deletions grails-controllers/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ dependencies {

api 'org.apache.groovy:groovy'
api 'org.springframework.boot:spring-boot-autoconfigure'
// Spring Boot 4 modularized spring-boot-autoconfigure into domain-specific modules.
// WebMvc auto-configuration classes used by ControllersAutoConfiguration moved to spring-boot-webmvc.
api 'org.springframework.boot:spring-boot-webmvc'
api 'org.springframework.boot:spring-boot-servlet'
compileOnlyApi 'jakarta.servlet:jakarta.servlet-api'

runtimeOnly project(':grails-i18n')
Expand All @@ -60,7 +64,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand All @@ -79,4 +83,4 @@ dependencies {
apply {
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletRegistrationBean;
import org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
import org.springframework.boot.servlet.autoconfigure.HttpEncodingAutoConfiguration;
import org.springframework.boot.servlet.filter.OrderedCharacterEncodingFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.filter.OrderedCharacterEncodingFilter;
import org.springframework.boot.webmvc.autoconfigure.DispatcherServletRegistrationBean;
import org.springframework.boot.webmvc.autoconfigure.WebMvcAutoConfiguration;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.util.ClassUtils;
Expand Down
2 changes: 1 addition & 1 deletion grails-converters/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
6 changes: 5 additions & 1 deletion grails-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ dependencies {
api 'org.springframework:spring-context'
api 'org.springframework.boot:spring-boot-autoconfigure'

implementation 'org.springframework.boot:spring-boot-web-server', {
// impl: WebServerApplicationContext
}

compileOnly 'org.springframework:spring-test'
compileOnly 'org.apache.groovy:groovy-templates'

Expand All @@ -68,7 +72,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
2 changes: 1 addition & 1 deletion grails-core/src/main/groovy/grails/boot/GrailsApp.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import org.codehaus.groovy.control.CompilationUnit
import org.codehaus.groovy.control.CompilerConfiguration

import org.springframework.boot.SpringApplication
import org.springframework.boot.web.context.WebServerApplicationContext
import org.springframework.boot.web.server.context.WebServerApplicationContext
import org.springframework.context.ConfigurableApplicationContext
import org.springframework.core.env.ConfigurableEnvironment
import org.springframework.core.io.ResourceLoader
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.springframework.boot.ConfigurableBootstrapContext;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.bootstrap.ConfigurableBootstrapContext;
import org.springframework.boot.env.EnvironmentPostProcessor;
import org.springframework.core.Ordered;
import org.springframework.core.env.ConfigurableEnvironment;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import java.nio.file.Path
import groovy.transform.CompileStatic
import groovy.util.logging.Slf4j

import org.springframework.boot.ConfigurableBootstrapContext
import org.springframework.boot.bootstrap.ConfigurableBootstrapContext
import org.springframework.boot.SpringApplication
import org.springframework.boot.SpringApplicationRunListener
import org.springframework.boot.env.PropertiesPropertySourceLoader
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.springframework.boot.BootstrapRegistry;
import org.springframework.boot.BootstrapRegistryInitializer;
import org.springframework.boot.bootstrap.BootstrapRegistry;
import org.springframework.boot.bootstrap.BootstrapRegistryInitializer;

import org.apache.grails.core.plugins.DefaultPluginDiscovery;
import org.apache.grails.core.plugins.PluginDiscovery;
Expand All @@ -37,7 +37,7 @@
* access the same discovered, filtered, and sorted set of plugins.</p>
*
* <p>This class is registered via {@code META-INF/spring.factories} under the
* {@code org.springframework.boot.BootstrapRegistryInitializer} key.</p>
* {@code org.springframework.boot.bootstrap.BootstrapRegistryInitializer} key.</p>
*
* @since 7.1
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ class ApplicationClassInjector implements GrailsArtefactClassInjector {

public static final String EXCLUDE_MEMBER = 'exclude'
public static final List<String> EXCLUDED_AUTO_CONFIGURE_CLASSES = [
'org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration',
'org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration',
'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration'
'org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration',
'org.springframework.boot.reactor.autoconfigure.ReactorAutoConfiguration',
'org.springframework.boot.hibernate.autoconfigure.HibernateJpaAutoConfiguration'
]

/**
Expand Down
2 changes: 1 addition & 1 deletion grails-core/src/main/resources/META-INF/spring.factories
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ org.springframework.boot.env.PropertySourceLoader=\
org.grails.config.yaml.YamlPropertySourceLoader
org.springframework.boot.env.EnvironmentPostProcessor=grails.boot.config.GrailsEnvironmentPostProcessor
org.springframework.boot.SpringApplicationRunListener=grails.config.external.ExternalConfigRunListener
org.springframework.boot.BootstrapRegistryInitializer=org.apache.grails.core.GrailsBootstrapRegistryInitializer
org.springframework.boot.bootstrap.BootstrapRegistryInitializer=org.apache.grails.core.GrailsBootstrapRegistryInitializer
Loading
Loading