Browse Source

Follow changes in data-commons AOT support.

Closes: #5053
pull/5056/head
Christoph Strobl 3 months ago
parent
commit
692e5fc3c7
No known key found for this signature in database
GPG Key ID: E6054036D0C37A4B
  1. 5
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/aot/MongoManagedTypesBeanRegistrationAotProcessor.java
  2. 17
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/AotMongoRepositoryPostProcessorUnitTests.java
  3. 18
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/TestMongoAotRepositoryContext.java

5
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.jspecify.annotations.Nullable;
import org.springframework.aot.generate.GenerationContext; import org.springframework.aot.generate.GenerationContext;
import org.springframework.core.ResolvableType; import org.springframework.core.ResolvableType;
import org.springframework.data.aot.AotContext;
import org.springframework.data.aot.ManagedTypesBeanRegistrationAotProcessor; import org.springframework.data.aot.ManagedTypesBeanRegistrationAotProcessor;
import org.springframework.data.mongodb.MongoManagedTypes; import org.springframework.data.mongodb.MongoManagedTypes;
import org.springframework.util.ClassUtils; import org.springframework.util.ClassUtils;
@ -44,13 +45,13 @@ class MongoManagedTypesBeanRegistrationAotProcessor extends ManagedTypesBeanRegi
} }
@Override @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())) { if (MongoAotPredicates.IS_SIMPLE_TYPE.test(type.toClass())) {
return; return;
} }
super.contributeType(type, generationContext); super.contributeType(type, generationContext, aotContext);
lazyLoadingProxyAotProcessor.registerLazyLoadingProxyIfNeeded(type.toClass(), generationContext); lazyLoadingProxyAotProcessor.registerLazyLoadingProxyIfNeeded(type.toClass(), generationContext);
} }
} }

17
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 static org.mockito.Mockito.*;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.function.Consumer;
import org.jmolecules.ddd.annotation.Entity; import org.jmolecules.ddd.annotation.Entity;
import org.jspecify.annotations.Nullable; import org.jspecify.annotations.Nullable;
@ -42,6 +44,7 @@ import org.springframework.core.env.Environment;
import org.springframework.core.env.StandardEnvironment; import org.springframework.core.env.StandardEnvironment;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.aot.AotContext; import org.springframework.data.aot.AotContext;
import org.springframework.data.aot.AotTypeConfiguration;
import org.springframework.data.mongodb.repository.support.SimpleMongoRepository; import org.springframework.data.mongodb.repository.support.SimpleMongoRepository;
import org.springframework.data.repository.Repository; import org.springframework.data.repository.Repository;
import org.springframework.data.repository.config.AotRepositoryContext; import org.springframework.data.repository.config.AotRepositoryContext;
@ -177,6 +180,11 @@ class AotMongoRepositoryPostProcessorUnitTests {
return Set.of(); return Set.of();
} }
@Override
public Set<Class<?>> getUserDomainTypes() {
return Set.of();
}
@Override @Override
public ConfigurableListableBeanFactory getBeanFactory() { public ConfigurableListableBeanFactory getBeanFactory() {
return applicationContext != null ? applicationContext.getBeanFactory() : null; return applicationContext != null ? applicationContext.getBeanFactory() : null;
@ -197,6 +205,15 @@ class AotMongoRepositoryPostProcessorUnitTests {
return null; return null;
} }
@Override
public void typeConfiguration(Class<?> type, Consumer<AotTypeConfiguration> configurationConsumer) {
}
@Override
public Collection<AotTypeConfiguration> typeConfigurations() {
return List.of();
}
} }
} }

18
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.io.IOException;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.function.Consumer;
import org.jspecify.annotations.Nullable; 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.env.StandardEnvironment;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.core.test.tools.ClassFile; 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.core.mapping.Document;
import org.springframework.data.mongodb.repository.support.MongoRepositoryFragmentsContributor; import org.springframework.data.mongodb.repository.support.MongoRepositoryFragmentsContributor;
import org.springframework.data.mongodb.repository.support.SimpleMongoRepository; import org.springframework.data.mongodb.repository.support.SimpleMongoRepository;
@ -77,6 +80,16 @@ public class TestMongoAotRepositoryContext implements AotRepositoryContext {
return null; return null;
} }
@Override
public void typeConfiguration(Class<?> type, Consumer<AotTypeConfiguration> configurationConsumer) {
}
@Override
public Collection<AotTypeConfiguration> typeConfigurations() {
return List.of();
}
@Override @Override
public String getBeanName() { public String getBeanName() {
return "dummyRepository"; return "dummyRepository";
@ -117,6 +130,11 @@ public class TestMongoAotRepositoryContext implements AotRepositoryContext {
return Set.of(); return Set.of();
} }
@Override
public Set<Class<?>> getUserDomainTypes() {
return Set.of();
}
public List<ClassFile> getRequiredContextFiles() { public List<ClassFile> getRequiredContextFiles() {
return List.of(classFileForType(repositoryInformation.getRepositoryBaseClass())); return List.of(classFileForType(repositoryInformation.getRepositoryBaseClass()));
} }

Loading…
Cancel
Save