diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/aot/MongoManagedTypesBeanRegistrationAotProcessor.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/aot/MongoManagedTypesBeanRegistrationAotProcessor.java index 4b7aa10c3..d76b9fc4d 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/aot/MongoManagedTypesBeanRegistrationAotProcessor.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/aot/MongoManagedTypesBeanRegistrationAotProcessor.java @@ -18,6 +18,7 @@ package org.springframework.data.mongodb.aot; import org.jspecify.annotations.Nullable; import org.springframework.aot.generate.GenerationContext; import org.springframework.core.ResolvableType; +import org.springframework.data.aot.AotContext; import org.springframework.data.aot.ManagedTypesBeanRegistrationAotProcessor; import org.springframework.data.mongodb.MongoManagedTypes; import org.springframework.util.ClassUtils; @@ -44,13 +45,13 @@ class MongoManagedTypesBeanRegistrationAotProcessor extends ManagedTypesBeanRegi } @Override - protected void contributeType(ResolvableType type, GenerationContext generationContext) { + protected void contributeType(ResolvableType type, GenerationContext generationContext, AotContext aotContext) { if (MongoAotPredicates.IS_SIMPLE_TYPE.test(type.toClass())) { return; } - super.contributeType(type, generationContext); + super.contributeType(type, generationContext, aotContext); lazyLoadingProxyAotProcessor.registerLazyLoadingProxyIfNeeded(type.toClass(), generationContext); } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/AotMongoRepositoryPostProcessorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/AotMongoRepositoryPostProcessorUnitTests.java index e3371d4ff..24917738d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/AotMongoRepositoryPostProcessorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/AotMongoRepositoryPostProcessorUnitTests.java @@ -19,9 +19,11 @@ import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; import java.lang.annotation.Annotation; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Set; +import java.util.function.Consumer; import org.jmolecules.ddd.annotation.Entity; import org.jspecify.annotations.Nullable; @@ -42,6 +44,7 @@ import org.springframework.core.env.Environment; import org.springframework.core.env.StandardEnvironment; import org.springframework.data.annotation.Id; import org.springframework.data.aot.AotContext; +import org.springframework.data.aot.AotTypeConfiguration; import org.springframework.data.mongodb.repository.support.SimpleMongoRepository; import org.springframework.data.repository.Repository; import org.springframework.data.repository.config.AotRepositoryContext; @@ -177,6 +180,11 @@ class AotMongoRepositoryPostProcessorUnitTests { return Set.of(); } + @Override + public Set> getUserDomainTypes() { + return Set.of(); + } + @Override public ConfigurableListableBeanFactory getBeanFactory() { return applicationContext != null ? applicationContext.getBeanFactory() : null; @@ -197,6 +205,15 @@ class AotMongoRepositoryPostProcessorUnitTests { return null; } + @Override + public void typeConfiguration(Class type, Consumer configurationConsumer) { + + } + + @Override + public Collection typeConfigurations() { + return List.of(); + } } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/TestMongoAotRepositoryContext.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/TestMongoAotRepositoryContext.java index a4170c150..4084a8db0 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/TestMongoAotRepositoryContext.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/TestMongoAotRepositoryContext.java @@ -17,8 +17,10 @@ package org.springframework.data.mongodb.repository.aot; import java.io.IOException; import java.lang.annotation.Annotation; +import java.util.Collection; import java.util.List; import java.util.Set; +import java.util.function.Consumer; import org.jspecify.annotations.Nullable; @@ -28,6 +30,7 @@ import org.springframework.core.env.Environment; import org.springframework.core.env.StandardEnvironment; import org.springframework.core.io.ClassPathResource; import org.springframework.core.test.tools.ClassFile; +import org.springframework.data.aot.AotTypeConfiguration; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.repository.support.MongoRepositoryFragmentsContributor; import org.springframework.data.mongodb.repository.support.SimpleMongoRepository; @@ -77,6 +80,16 @@ public class TestMongoAotRepositoryContext implements AotRepositoryContext { return null; } + @Override + public void typeConfiguration(Class type, Consumer configurationConsumer) { + + } + + @Override + public Collection typeConfigurations() { + return List.of(); + } + @Override public String getBeanName() { return "dummyRepository"; @@ -117,6 +130,11 @@ public class TestMongoAotRepositoryContext implements AotRepositoryContext { return Set.of(); } + @Override + public Set> getUserDomainTypes() { + return Set.of(); + } + public List getRequiredContextFiles() { return List.of(classFileForType(repositoryInformation.getRepositoryBaseClass())); }