From 8da9679fc1bc2e770650bfce5448464fc68635ba Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 27 Sep 2017 16:05:41 +0200 Subject: [PATCH] DATACMNS-1172 - Removed ability to use scanning all packages for repository implementations again. Kept in a separate commit, so that it's easy to add again by reverting this commit. Removed, as the new behavior is effectively what had been documented as intended behavior all the time. Original pull request: #248. --- ...notationRepositoryConfigurationSource.java | 15 ---------- .../DefaultRepositoryConfiguration.java | 5 +--- .../RepositoryBeanDefinitionBuilder.java | 5 +--- .../config/RepositoryConfigurationSource.java | 11 -------- .../RepositoryConfigurationSourceSupport.java | 9 ------ ...epositoryConfigurationSourceUnitTests.java | 11 -------- ...faultRepositoryConfigurationUnitTests.java | 28 ------------------- ...anDefinitionRegistrarSupportUnitTests.java | 17 +---------- 8 files changed, 3 insertions(+), 98 deletions(-) diff --git a/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java b/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java index 618fa1338..26d48ac2b 100644 --- a/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java +++ b/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java @@ -65,7 +65,6 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura private static final String REPOSITORY_FACTORY_BEAN_CLASS = "repositoryFactoryBeanClass"; private static final String REPOSITORY_BASE_CLASS = "repositoryBaseClass"; private static final String CONSIDER_NESTED_REPOSITORIES = "considerNestedRepositories"; - private static final String LIMIT_IMPLEMENTATION_BASE_PACKAGES = "limitImplementationBasePackages"; private final AnnotationMetadata configMetadata; private final AnnotationMetadata enableAnnotationMetadata; @@ -322,20 +321,6 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura return attributes.containsKey(CONSIDER_NESTED_REPOSITORIES) && attributes.getBoolean(CONSIDER_NESTED_REPOSITORIES); } - /* - * (non-Javadoc) - * @see org.springframework.data.repository.config.RepositoryConfigurationSourceSupport#shouldLimitRepositoryImplementationBasePackages() - */ - @Override - public boolean shouldLimitRepositoryImplementationBasePackages() { - - if (!attributes.containsKey(LIMIT_IMPLEMENTATION_BASE_PACKAGES)) { - return true; - } - - return attributes.getBoolean(LIMIT_IMPLEMENTATION_BASE_PACKAGES); - } - /* * (non-Javadoc) * @see org.springframework.data.repository.config.RepositoryConfigurationSource#getAttribute(java.lang.String) diff --git a/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java b/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java index 42aef84ce..33547ee1b 100644 --- a/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java +++ b/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java @@ -78,10 +78,7 @@ public class DefaultRepositoryConfiguration getImplementationBasePackages() { - - return configurationSource.shouldLimitRepositoryImplementationBasePackages() - ? Streamable.of(ClassUtils.getPackageName(getRepositoryInterface())) - : getBasePackages(); + return Streamable.of(ClassUtils.getPackageName(getRepositoryInterface())); } /* diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder.java b/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder.java index 13ff86667..3b7b94069 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder.java @@ -311,10 +311,7 @@ class RepositoryBeanDefinitionBuilder { * @return */ public Iterable getBasePackages() { - - return configuration.getConfigurationSource().shouldLimitRepositoryImplementationBasePackages() ? // - Collections.singleton(ClassUtils.getPackageName(fragmentInterfaceName)) : // - configuration.getImplementationBasePackages(); + return Collections.singleton(ClassUtils.getPackageName(fragmentInterfaceName)); } /** diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSource.java b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSource.java index d48170f9c..1e5e2ecde 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSource.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSource.java @@ -63,17 +63,6 @@ public interface RepositoryConfigurationSource { */ Optional getRepositoryImplementationPostfix(); - /** - * Returns whether to limit repository implementation base packages for custom implementation scanning. If - * {@literal true}, then custom implementation scanning considers only the package of the repository/fragment - * interface and its subpackages for a scan. Otherwise, all {@link #getBasePackages()} are scanned for repository - * implementations - * - * @return {@literal true} if base packages are limited to the actual repository package. - * @since 2.0 - */ - boolean shouldLimitRepositoryImplementationBasePackages(); - /** * @return */ diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSourceSupport.java b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSourceSupport.java index 3851a9cbc..2014a7558 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSourceSupport.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSourceSupport.java @@ -117,13 +117,4 @@ public abstract class RepositoryConfigurationSourceSupport implements Repository public boolean shouldConsiderNestedRepositories() { return false; } - - /* - * (non-Javadoc) - * @see org.springframework.data.repository.config.RepositoryConfigurationSource#isLimitRepositoryImplementationBasePackages() - */ - @Override - public boolean shouldLimitRepositoryImplementationBasePackages() { - return true; - } } diff --git a/src/test/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSourceUnitTests.java b/src/test/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSourceUnitTests.java index fbb5bfaec..2e620cd03 100755 --- a/src/test/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSourceUnitTests.java +++ b/src/test/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSourceUnitTests.java @@ -103,14 +103,6 @@ public class AnnotationRepositoryConfigurationSourceUnitTests { assertThat(source.shouldConsiderNestedRepositories()).isTrue(); } - @Test // DATACMNS-1172 - public void returnsLimitImplementationBasePackages() { - - assertThat(getConfigSource(DefaultConfiguration.class).shouldLimitRepositoryImplementationBasePackages()).isTrue(); - assertThat(getConfigSource(DefaultConfigurationWithoutBasePackageLimit.class) - .shouldLimitRepositoryImplementationBasePackages()).isFalse(); - } - @Test // DATACMNS-456 public void findsStringAttributeByName() { @@ -164,9 +156,6 @@ public class AnnotationRepositoryConfigurationSourceUnitTests { @EnableRepositories(considerNestedRepositories = true) static class DefaultConfigurationWithNestedRepositories {} - @EnableRepositories(limitImplementationBasePackages = false) - static class DefaultConfigurationWithoutBasePackageLimit {} - @EnableRepositories(excludeFilters = { @Filter(Primary.class) }) static class ConfigurationWithExplicitFilter {} diff --git a/src/test/java/org/springframework/data/repository/config/DefaultRepositoryConfigurationUnitTests.java b/src/test/java/org/springframework/data/repository/config/DefaultRepositoryConfigurationUnitTests.java index e945e1630..ba6be18bc 100755 --- a/src/test/java/org/springframework/data/repository/config/DefaultRepositoryConfigurationUnitTests.java +++ b/src/test/java/org/springframework/data/repository/config/DefaultRepositoryConfigurationUnitTests.java @@ -34,7 +34,6 @@ import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.ConstructorArgumentValues; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.data.repository.query.QueryLookupStrategy.Key; -import org.springframework.data.util.Streamable; /** * Unit tests for {@link DefaultRepositoryConfiguration}. @@ -84,33 +83,6 @@ public class DefaultRepositoryConfigurationUnitTests { assertThat(getConfiguration(source).getRepositoryFactoryBeanClassName()).isEqualTo("custom"); } - @Test // DATACMNS-1172 - public void limitsImplementationBasePackages() { - - when(source.shouldLimitRepositoryImplementationBasePackages()).thenReturn(true); - - assertThat(getConfiguration(source, "com.acme.MyRepository").getImplementationBasePackages()) - .containsOnly("com.acme"); - } - - @Test // DATACMNS-1172 - public void limitsImplementationBasePackagesOfNestedClass() { - - when(source.shouldLimitRepositoryImplementationBasePackages()).thenReturn(true); - - assertThat(getConfiguration(source, NestedInterface.class.getName()).getImplementationBasePackages()) - .containsOnly("org.springframework.data.repository.config"); - } - - @Test // DATACMNS-1172 - public void shouldNotLimitImplementationBasePackages() { - - when(source.getBasePackages()).thenReturn(Streamable.of("com", "org.coyote")); - - assertThat(getConfiguration(source, "com.acme.MyRepository").getImplementationBasePackages()).contains("com", - "org.coyote"); - } - private DefaultRepositoryConfiguration getConfiguration( RepositoryConfigurationSource source) { return getConfiguration(source, "com.acme.MyRepository"); diff --git a/src/test/java/org/springframework/data/repository/config/RepositoryBeanDefinitionRegistrarSupportUnitTests.java b/src/test/java/org/springframework/data/repository/config/RepositoryBeanDefinitionRegistrarSupportUnitTests.java index f8d37edcd..7ca0eb7fc 100755 --- a/src/test/java/org/springframework/data/repository/config/RepositoryBeanDefinitionRegistrarSupportUnitTests.java +++ b/src/test/java/org/springframework/data/repository/config/RepositoryBeanDefinitionRegistrarSupportUnitTests.java @@ -15,8 +15,7 @@ */ package org.springframework.data.repository.config; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.lang.annotation.Annotation; @@ -96,17 +95,6 @@ public class RepositoryBeanDefinitionRegistrarSupportUnitTests { assertNoBeanDefinitionRegisteredFor("fragmentImpl"); } - @Test // DATACMNS-1172 - public void shouldNotLimitImplementationBasePackages() { - - AnnotationMetadata metadata = new StandardAnnotationMetadata(UnlimitedImplementationBasePackages.class, true); - - registrar.registerBeanDefinitions(metadata, registry); - - assertBeanDefinitionRegisteredFor("personRepository"); - assertBeanDefinitionRegisteredFor("fragmentImpl"); - } - @Test // DATACMNS-360 public void registeredProfileRepositoriesIfProfileActivated() { @@ -179,7 +167,4 @@ public class RepositoryBeanDefinitionRegistrarSupportUnitTests { @EnableRepositories(basePackageClasses = FragmentImpl.class) static class LimitsImplementationBasePackages {} - - @EnableRepositories(basePackageClasses = FragmentImpl.class, limitImplementationBasePackages = false) - static class UnlimitedImplementationBasePackages {} }