Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 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
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
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
8 changes: 8 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,14 @@ subprojects {
def cacheHours = isCiBuild || isReproducibleBuild ? 0 : 24
cacheDynamicVersionsFor(cacheHours, 'hours')
cacheChangingModulesFor(cacheHours, 'hours')

// Force Groovy 4.0.31 to override Spring Boot 4.0.5's default of Groovy 5.0.4
// This ensures all grails-core modules are compiled with the correct Groovy version
force 'org.apache.groovy:groovy:4.0.31'
force 'org.apache.groovy:groovy-templates:4.0.31'
force 'org.apache.groovy:groovy-xml:4.0.31'
force 'org.apache.groovy:groovy-json:4.0.31'
force 'org.apache.groovy:groovy-sql:4.0.31'
}
}
}
Expand Down
37 changes: 19 additions & 18 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']}",
'asciidoctorj-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,7 +74,7 @@ ext {
'commons-codec.version' : '1.18.0',
'commons-lang3.version' : '3.20.0',
'geb-spock.version' : '8.0.1',
'groovy.version' : '4.0.30',
'groovy.version' : '4.0.31',
'jackson.version' : '2.19.1',
'jquery.version' : '3.7.1',
'liquibase-hibernate5.version': '4.27.0',
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'
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
4 changes: 3 additions & 1 deletion grails-controllers/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ dependencies {

api 'org.apache.groovy:groovy'
api 'org.springframework.boot:spring-boot-autoconfigure'
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 +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
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
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import org.apache.grails.core.plugins.PluginDescriptor
import org.apache.grails.core.plugins.PluginDiscovery
import org.apache.grails.core.plugins.PluginInfo
import org.apache.grails.core.plugins.PluginMetadata
import org.springframework.boot.ConfigurableBootstrapContext
import org.springframework.boot.bootstrap.ConfigurableBootstrapContext
import org.springframework.boot.SpringApplication
import org.springframework.core.env.StandardEnvironment
import org.springframework.core.io.Resource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ class ApplicationClassInjectorSpec extends Specification {

where:
className << [
'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
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.EnableAutoConfiguration
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
import org.springframework.boot.hibernate.autoconfigure.HibernateJpaAutoConfiguration
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.ComponentScan

Expand Down
11 changes: 8 additions & 3 deletions grails-data-hibernate5/boot-plugin/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,22 @@ dependencies {
// TODO: Clarify and clean up dependencies
implementation platform(project(':grails-bom'))

api project(":grails-data-hibernate5-core")
api "org.apache.groovy:groovy"
api "org.springframework.boot:spring-boot-autoconfigure"

compileOnly project(':grails-shell-cli'), {
exclude group:'org.apache.groovy', module:'groovy'
}
api "org.apache.groovy:groovy"
api "org.springframework.boot:spring-boot-autoconfigure"
api project(":grails-data-hibernate5-core")
compileOnly "org.springframework.boot:spring-boot-jdbc"
compileOnly "org.springframework.boot:spring-boot-hibernate"

testImplementation project(':grails-shell-cli'), {
exclude group:'org.apache.groovy', module:'groovy'
}
testImplementation "org.spockframework:spock-core"
testImplementation "org.springframework.boot:spring-boot-jdbc"
testImplementation "org.springframework.boot:spring-boot-hibernate"

testRuntimeOnly "org.apache.tomcat:tomcat-jdbc"
testRuntimeOnly "com.h2database:h2"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ import org.springframework.boot.autoconfigure.AutoConfigureBefore
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
import org.springframework.boot.hibernate.autoconfigure.HibernateJpaAutoConfiguration
import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration
import org.springframework.context.ApplicationContext
import org.springframework.context.ApplicationContextAware
import org.springframework.context.ConfigurableApplicationContext
Expand Down
Loading
Loading