Skip to content

Failed to integrate spring-boot v4.0.0 #314

@marsdonne

Description

@marsdonne

I tried to write a spring boot 4 example, and when everything was running smoothly on the pre installed PostgreSQL 18, I started trying embedded-database-spring-test

`
//Message.kt
data class Message(
@NotNull @column(columnDefinition = "text", nullable = false) var content: String,
@id @GeneratedValue @column(columnDefinition = "uuid", updatable = false, nullable = false) val id: UUID? = null
)

interface MessageRepository : CrudRepository<Message, String>

@service
class MessageService(private val db: MessageRepository) {
fun findMessages(): List = db.findAll().toList()

fun findMessageById(id: String): Message? = db.findByIdOrNull(id)

fun save(message: Message): Message = db.save(message)

}

@controller
class MessageController(private val service: MessageService) {
@QueryMapping
fun messages(): List = service.findMessages()

@MutationMapping
fun send(@Argument @Valid content: String): Message = service.save(Message(content))

}
`

`
//MessageGraphqlTests.kt

@SpringBootTest
@AutoConfigureEmbeddedDatabase
class MessageGraphqlTests(private val ctx: ApplicationContext) {

@Test
fun contextLoads() {
    val client = WebTestClient.bindToApplicationContext(ctx)
        .configureClient()
        .baseUrl("/graphql")
        .build()

    val mutateTester = HttpGraphQlTester.create(client)
    mutateTester.documentName("sendMessage")
        .variable("content", "hello world")
        .execute()
        .path("send")
        .entity<Message>()
        .matches { it.content.isNotBlank() }

    val queryTester = mutateTester.mutate().build()
    queryTester.documentName("queryMessages")
        .execute()
        .path("messages")
        .entityList<Message>()
        .hasSizeGreaterThan(0)
}

}
`

`

Task :processTestAot
17:30:29.363 [main] INFO org.springframework.test.context.aot.TestClassScanner -- Scanning for Spring test classes in all packages in classpath roots [E:\exhibitions\kotlin-spring\build\classes\kotlin\test, E:\exhibitions\kotlin-spring\build\resources\test]
17:30:29.724 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [com.example.demo.MessageGraphqlTests]: MessageGraphqlTests does not declare any static, non-private, non-final, nested classes annotated with @configuration.
17:30:29.811 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration com.example.demo.DemoApplication for test class com.example.demo.MessageGraphqlTests

. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )_
_ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' |
| .__|| ||| |_, | / / / /
=========|
|==============|/=////

:: Spring Boot :: (v4.0.0)

2025-11-21T17:30:30.143+08:00 INFO 10900 --- [demo] [ main] com.example.demo.MessageGraphqlTests : Starting MessageGraphqlTests using Java 24.0.2 with PID 10900 (E:\exhibitions\kotlin-spring\build\classes\kotlin\test started by user in E:\exhibitions\kotlin-spring)
2025-11-21T17:30:30.144+08:00 INFO 10900 --- [demo] [ main] com.example.demo.MessageGraphqlTests : No active profile set, falling back to 1 default profile: "default"
2025-11-21T17:30:30.584+08:00 INFO 10900 --- [demo] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2025-11-21T17:30:30.689+08:00 INFO 10900 --- [demo] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 98 ms. Found 1 JPA repository interface.
2025-11-21T17:30:30.776+08:00 INFO 10900 --- [demo] [ main] EmbeddedDatabaseContextCustomizerFactory : Replacing 'dataSource' DataSource bean with embedded version
2025-11-21T17:30:31.352+08:00 INFO 10900 --- [demo] [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: AotMetamodel]
2025-11-21T17:30:31.386+08:00 INFO 10900 --- [demo] [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 7.1.8.Final
2025-11-21T17:30:31.759+08:00 INFO 10900 --- [demo] [ main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
2025-11-21T17:30:31.788+08:00 INFO 10900 --- [demo] [ main] org.hibernate.orm.connections.pooling : HHH10001005: Database info:
Database JDBC URL [undefined/unknown]
Database driver: undefined/unknown
Database dialect: SpringDataJpaAotDialect
Database version: 0.0
Default catalog/schema: unknown/unknown
Autocommit mode: undefined/unknown
Isolation level:
JDBC fetch size: undefined/unknown
Pool: undefined/unknown
Minimum pool size: undefined/unknown
Maximum pool size: undefined/unknown
2025-11-21T17:30:32.372+08:00 INFO 10900 --- [demo] [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
Exception in thread "main" org.springframework.test.context.aot.TestContextAotException: Failed to generate AOT artifacts for test classes [com.example.demo.MessageGraphqlTests]
at org.springframework.test.context.aot.TestContextAotGenerator.lambda$processAheadOfTime$3(TestContextAotGenerator.java:286)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:987)
at org.springframework.util.MultiValueMapAdapter.forEach(MultiValueMapAdapter.java:174)
at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:244)
at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:205)
at org.springframework.test.context.aot.TestAotProcessor.performAotProcessing(TestAotProcessor.java:91)
at org.springframework.test.context.aot.TestAotProcessor.doProcess(TestAotProcessor.java:72)
at org.springframework.test.context.aot.TestAotProcessor.doProcess(TestAotProcessor.java:39)
at org.springframework.context.aot.AbstractAotProcessor.process(AbstractAotProcessor.java:84)
at org.springframework.boot.test.context.SpringBootTestAotProcessor.main(SpringBootTestAotProcessor.java:63)
Caused by: org.springframework.test.context.aot.TestContextAotException: Failed to process test class [com.example.demo.MessageGraphqlTests] for AOT
at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:322)
at org.springframework.test.context.aot.TestContextAotGenerator.lambda$processAheadOfTime$3(TestContextAotGenerator.java:277)
... 9 more
Caused by: org.springframework.beans.factory.aot.AotBeanProcessingException: Error processing bean with name 'io.zonky.test.db.EmbeddedDatabaseContextCustomizerFactory$EmbeddedDatabaseRegistrar': failed to generate code for bean definition
at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution$BeanDefinitionsRegistrationGenerator.lambda$generateRegisterBeanDefinitionMethods$0(BeanRegistrationsAotContribution.java:280)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution$BeanDefinitionsRegistrationGenerator.generateRegisterBeanDefinitionMethods(BeanRegistrationsAotContribution.java:270)
at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution$BeanDefinitionsRegistrationGenerator.generateBeanRegistrationsCode(BeanRegistrationsAotContribution.java:238)
Caused by: org.springframework.test.context.aot.TestContextAotException: Failed to process test class [com.example.demo.MessageGraphqlTests] for AOT

at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.lambda$generateBeanRegistrationClass$0(BeanRegistrationsAotContribution.java:116)
at org.springframework.aot.generate.GeneratedMethod.<init>(GeneratedMethod.java:54)
at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:112)

Caused by: org.springframework.beans.factory.aot.AotBeanProcessingException: Error processing bean with name 'io.zonky.test.db.EmbeddedDatabaseContextCustomizerFactory$EmbeddedDatabaseRegistrar': failed to generate code for bean definition

at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:89)
at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.generateBeanRegistrationClass(BeanRegistrationsAotContribution.java:110)
at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.generateBeanRegistrationCode(BeanRegistrationsAotContribution.java:88)
at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.applyTo(BeanRegistrationsAotContribution.java:77)
at org.springframework.context.aot.BeanFactoryInitializationAotContributions.applyTo(BeanFactoryInitializationAotContributions.java:94)
at org.springframework.context.aot.ApplicationContextAotGenerator.lambda$processAheadOfTime$0(ApplicationContextAotGenerator.java:59)
at org.springframework.context.aot.ApplicationContextAotGenerator.withCglibClassHandler(ApplicationContextAotGenerator.java:68)
at org.springframework.context.aot.ApplicationContextAotGenerator.processAheadOfTime(ApplicationContextAotGenerator.java:54)
at org.springframework.test.context.aot.TestContextAotGenerator.processAheadOfTime(TestContextAotGenerator.java:318)
... 10 more

Caused by: org.springframework.aot.generate.ValueCodeGenerationException: Failed to generate code for '[io.zonky.test.db.support.DatabaseDefinition@f1ba4281]' with type class java.util.LinkedHashSet
at org.springframework.aot.generate.ValueCodeGenerator.generateCode(ValueCodeGenerator.java:121)
at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.generateValue(BeanDefinitionPropertiesCodeGenerator.java:314)
Caused by: org.springframework.aot.generate.ValueCodeGenerationException: Failed to generate code for '[io.zonky.test.db.support.DatabaseDefinition@f1ba4281]' with type class java.util.LinkedHashSet

at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.lambda$addConstructorArgumentValues$0(BeanDefinitionPropertiesCodeGenerator.java:206)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:987)
at java.base/java.util.Collections$UnmodifiableMap.forEach(Collections.java:1708)
at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.addConstructorArgumentValues(BeanDefinitionPropertiesCodeGenerator.java:203)
at org.springframework.beans.factory.aot.BeanDefinitionPropertiesCodeGenerator.generateCode(BeanDefinitionPropertiesCodeGenerator.java:147)
at org.springframework.beans.factory.aot.DefaultBeanRegistrationCodeFragments.generateSetBeanDefinitionPropertiesCode(DefaultBeanRegistrationCodeFragments.java:177)
at org.springframework.beans.factory.aot.BeanRegistrationCodeGenerator.generateCode(BeanRegistrationCodeGenerator.java:82)
at org.springframework.beans.factory.aot.BeanDefinitionMethodGenerator.lambda$generateBeanDefinitionMethod$1(BeanDefinitionMethodGenerator.java:176)
at org.springframework.aot.generate.GeneratedMethod.<init>(GeneratedMethod.java:54)
at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:112)
at org.springframework.aot.generate.GeneratedMethods.add(GeneratedMethods.java:89)
at org.springframework.beans.factory.aot.BeanDefinitionMethodGenerator.generateBeanDefinitionMethod(BeanDefinitionMethodGenerator.java:169)
at org.springframework.beans.factory.aot.BeanDefinitionMethodGenerator.generateBeanDefinitionMethod(BeanDefinitionMethodGenerator.java:89)
at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution$BeanDefinitionsRegistrationGenerator.generateBeanRegistration(BeanRegistrationsAotContribution.java:289)
at org.springframework.beans.factory.aot.BeanRegistrationsAotContribution$BeanDefinitionsRegistrationGenerator.lambda$generateRegisterBeanDefinitionMethods$0(BeanRegistrationsAotContribution.java:272)
... 25 more

Caused by: org.springframework.aot.generate.ValueCodeGenerationException: Failed to generate code for 'io.zonky.test.db.support.DatabaseDefinition@f1ba4281' with type class io.zonky.test.db.support.DatabaseDefinition
at org.springframework.aot.generate.ValueCodeGenerator.generateCode(ValueCodeGenerator.java:121)
Caused by: org.springframework.aot.generate.ValueCodeGenerationException: Failed to generate code for 'io.zonky.test.db.support.DatabaseDefinition@f1ba4281' with type class io.zonky.test.db.support.DatabaseDefinition

at org.springframework.aot.generate.ValueCodeGeneratorDelegates$CollectionDelegate.generateCollectionOf(ValueCodeGeneratorDelegates.java:120)
at org.springframework.aot.generate.ValueCodeGeneratorDelegates$SetDelegate.generateCollectionCode(ValueCodeGeneratorDelegates.java:394)
at org.springframework.aot.generate.ValueCodeGeneratorDelegates$SetDelegate.generateCollectionCode(ValueCodeGeneratorDelegates.java:384)
at org.springframework.aot.generate.ValueCodeGeneratorDelegates$CollectionDelegate.generateCode(ValueCodeGeneratorDelegates.java:104)
at org.springframework.aot.generate.ValueCodeGenerator.generateCode(ValueCodeGenerator.java:113)
... 41 more

Caused by: org.springframework.aot.generate.UnsupportedTypeValueCodeGenerationException: Code generation does not support io.zonky.test.db.support.DatabaseDefinition
Caused by: org.springframework.aot.generate.UnsupportedTypeValueCodeGenerationException: Code generation does not support io.zonky.test.db.support.DatabaseDefinition

at org.springframework.aot.generate.ValueCodeGenerator.generateCode(ValueCodeGenerator.java:118)
... 46 more

Task :processTestAot FAILED

Execution failed for task ':processTestAot'.

Process 'command 'C:\Users\user.gradle\jdks\eclipse_adoptium-24-amd64-windows.2\bin\java.exe'' finished with non-zero exit value 1

  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to generate a Build Scan (powered by Develocity).
Get more help at https://help.gradle.org.
BUILD FAILED in 4s
6 actionable tasks: 2 executed, 4 up-to-date

`

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions