From 3bc89bb2214eca3aa377261ecef0ffef479d0627 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 9 May 2025 11:07:33 +0200 Subject: [PATCH] Polishing. Reformat code. Simplify flow. Add ticket reference to test. See #3287 Original pull request: #3219 --- .../RepositoryConfigurationDelegate.java | 37 +++++++++++-------- ...ositoryConfigurationDelegateUnitTests.java | 14 +++---- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationDelegate.java b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationDelegate.java index 82adb4449..9f20988f3 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationDelegate.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationDelegate.java @@ -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 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> metadataByRepositoryBeanName) { + Map> 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> 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)); } } diff --git a/src/test/java/org/springframework/data/repository/config/RepositoryConfigurationDelegateUnitTests.java b/src/test/java/org/springframework/data/repository/config/RepositoryConfigurationDelegateUnitTests.java index 3b2bd4940..417681d31 100644 --- a/src/test/java/org/springframework/data/repository/config/RepositoryConfigurationDelegateUnitTests.java +++ b/src/test/java/org/springframework/data/repository/config/RepositoryConfigurationDelegateUnitTests.java @@ -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}. *