-
Notifications
You must be signed in to change notification settings - Fork 40
Description
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
`