Polishing.
Reformat code. Simplify flow. Add ticket reference to test. See #3287 Original pull request: #3219
This commit is contained in:
@@ -15,6 +15,15 @@
|
||||
*/
|
||||
package org.springframework.data.repository.config;
|
||||
|
||||
import java.lang.reflect.TypeVariable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.jspecify.annotations.Nullable;
|
||||
@@ -23,7 +32,12 @@ import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||
import org.springframework.beans.factory.config.DependencyDescriptor;
|
||||
import org.springframework.beans.factory.parsing.BeanComponentDefinition;
|
||||
import org.springframework.beans.factory.support.*;
|
||||
import org.springframework.beans.factory.support.AutowireCandidateResolver;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
|
||||
import org.springframework.beans.factory.support.RootBeanDefinition;
|
||||
import org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver;
|
||||
import org.springframework.context.support.GenericApplicationContext;
|
||||
import org.springframework.core.ResolvableType;
|
||||
@@ -43,10 +57,6 @@ import org.springframework.data.util.ClassUtils;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StopWatch;
|
||||
|
||||
import java.lang.reflect.TypeVariable;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Delegate for configuration integration to reuse the general way of detecting repositories. Customization is done by
|
||||
* providing a configuration format specific {@link RepositoryConfigurationSource} (currently either XML or annotations
|
||||
@@ -85,7 +95,7 @@ public class RepositoryConfigurationDelegate {
|
||||
* @param environment must not be {@literal null}.
|
||||
*/
|
||||
public RepositoryConfigurationDelegate(RepositoryConfigurationSource configurationSource,
|
||||
ResourceLoader resourceLoader, Environment environment) {
|
||||
ResourceLoader resourceLoader, Environment environment) {
|
||||
|
||||
this.isXml = configurationSource instanceof XmlRepositoryConfigurationSource;
|
||||
boolean isAnnotation = configurationSource instanceof AnnotationRepositoryConfigurationSource;
|
||||
@@ -110,7 +120,7 @@ public class RepositoryConfigurationDelegate {
|
||||
* {@link Environment}.
|
||||
*/
|
||||
private static Environment defaultEnvironment(@Nullable Environment environment,
|
||||
@Nullable ResourceLoader resourceLoader) {
|
||||
@Nullable ResourceLoader resourceLoader) {
|
||||
|
||||
if (environment != null) {
|
||||
return environment;
|
||||
@@ -129,7 +139,7 @@ public class RepositoryConfigurationDelegate {
|
||||
* @see org.springframework.beans.factory.support.BeanDefinitionRegistry
|
||||
*/
|
||||
public List<BeanComponentDefinition> registerRepositoriesIn(BeanDefinitionRegistry registry,
|
||||
RepositoryConfigurationExtension extension) {
|
||||
RepositoryConfigurationExtension extension) {
|
||||
|
||||
if (logger.isInfoEnabled()) {
|
||||
logger.info(LogMessage.format("Bootstrapping Spring Data %s repositories in %s mode.", //
|
||||
@@ -215,7 +225,7 @@ public class RepositoryConfigurationDelegate {
|
||||
}
|
||||
|
||||
private void registerAotComponents(BeanDefinitionRegistry registry, RepositoryConfigurationExtension extension,
|
||||
Map<String, RepositoryConfigurationAdapter<?>> metadataByRepositoryBeanName) {
|
||||
Map<String, RepositoryConfigurationAdapter<?>> metadataByRepositoryBeanName) {
|
||||
|
||||
BeanDefinitionBuilder repositoryAotProcessor = BeanDefinitionBuilder
|
||||
.rootBeanDefinition(extension.getRepositoryAotProcessor()).setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||
@@ -238,7 +248,7 @@ public class RepositoryConfigurationDelegate {
|
||||
* @param registry must not be {@literal null}.
|
||||
*/
|
||||
private static void potentiallyLazifyRepositories(Map<String, RepositoryConfiguration<?>> configurations,
|
||||
BeanDefinitionRegistry registry, BootstrapMode mode) {
|
||||
BeanDefinitionRegistry registry, BootstrapMode mode) {
|
||||
|
||||
if (!(registry instanceof DefaultListableBeanFactory beanFactory) || BootstrapMode.DEFAULT.equals(mode)) {
|
||||
return;
|
||||
@@ -262,11 +272,8 @@ public class RepositoryConfigurationDelegate {
|
||||
&& !beanFactory.containsBean(DeferredRepositoryInitializationListener.class.getName())) {
|
||||
|
||||
logger.debug("Registering deferred repository initialization listener.");
|
||||
|
||||
if (!beanFactory.containsBean(DeferredRepositoryInitializationListener.class.getName())) {
|
||||
beanFactory.registerSingleton(DeferredRepositoryInitializationListener.class.getName(),
|
||||
new DeferredRepositoryInitializationListener(beanFactory));
|
||||
}
|
||||
beanFactory.registerSingleton(DeferredRepositoryInitializationListener.class.getName(),
|
||||
new DeferredRepositoryInitializationListener(beanFactory));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,13 @@
|
||||
*/
|
||||
package org.springframework.data.repository.config;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.lang.reflect.TypeVariable;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mockito;
|
||||
@@ -52,13 +59,6 @@ import org.springframework.data.repository.sample.AddressRepository;
|
||||
import org.springframework.data.repository.sample.AddressRepositoryClient;
|
||||
import org.springframework.data.repository.sample.ProductRepository;
|
||||
|
||||
import java.lang.reflect.TypeVariable;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link RepositoryConfigurationDelegate}.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user