From 8c6c2da0bae160c7554ae35562df092d6bc0fd84 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 27 Sep 2017 13:03:03 +0200 Subject: [PATCH] DATACMNS-1172 - Polishing. Tweaked newly introduced RepositoryConfiguration.getImplementationBasePackage() to not require a parameter but use internal information instead (the repository interface in DefaultRepositoryConfiguration). Original pull request: #248. --- .../CustomRepositoryImplementationDetector.java | 2 +- .../config/DefaultRepositoryConfiguration.java | 6 +++--- .../repository/config/RepositoryConfiguration.java | 2 +- .../DefaultRepositoryConfigurationUnitTests.java | 14 ++++++++------ 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/springframework/data/repository/config/CustomRepositoryImplementationDetector.java b/src/main/java/org/springframework/data/repository/config/CustomRepositoryImplementationDetector.java index 0f84c2378..09d18d288 100644 --- a/src/main/java/org/springframework/data/repository/config/CustomRepositoryImplementationDetector.java +++ b/src/main/java/org/springframework/data/repository/config/CustomRepositoryImplementationDetector.java @@ -81,7 +81,7 @@ public class CustomRepositoryImplementationDetector { // TODO 2.0: Extract into dedicated interface for custom implementation lookup configuration. return detectCustomImplementation(configuration.getImplementationClassName(), // - configuration.getImplementationBasePackages(configuration.getRepositoryInterface()), // + configuration.getImplementationBasePackages(), // configuration.getExcludeFilters()); } 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 1c87906b7..c3fa2ac4d 100644 --- a/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java +++ b/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java @@ -83,11 +83,11 @@ public class DefaultRepositoryConfiguration getImplementationBasePackages(String interfaceClassName) { - return Collections.singleton(ClassUtils.getPackageName(interfaceClassName)); + public Iterable getImplementationBasePackages() { + return Collections.singleton(ClassUtils.getPackageName(getRepositoryInterface())); } /* diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryConfiguration.java b/src/main/java/org/springframework/data/repository/config/RepositoryConfiguration.java index 67f736141..34138b19c 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfiguration.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfiguration.java @@ -40,7 +40,7 @@ public interface RepositoryConfiguration getImplementationBasePackages(String interfaceClassName); + Iterable getImplementationBasePackages(); /** * Returns the interface name of the repository. 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 b234635fe..5db1eb634 100644 --- a/src/test/java/org/springframework/data/repository/config/DefaultRepositoryConfigurationUnitTests.java +++ b/src/test/java/org/springframework/data/repository/config/DefaultRepositoryConfigurationUnitTests.java @@ -54,7 +54,7 @@ public class DefaultRepositoryConfigurationUnitTests { @Test // DATACMNS-1172 public void limitsImplementationBasePackages() { - Iterable packages = getConfiguration(source).getImplementationBasePackages("com.acme.MyRepository"); + Iterable packages = getConfiguration(source, "com.acme.MyRepository").getImplementationBasePackages(); assertThat(packages, hasItem("com.acme")); } @@ -62,20 +62,22 @@ public class DefaultRepositoryConfigurationUnitTests { @Test // DATACMNS-1172 public void limitsImplementationBasePackagesOfNestedClass() { - Iterable packages = getConfiguration(source).getImplementationBasePackages(NestedInterface.class.getName()); + Iterable packages = getConfiguration(source, MyRepository.class.getName()).getImplementationBasePackages(); assertThat(packages, hasItem("org.springframework.data.repository.config")); } private DefaultRepositoryConfiguration getConfiguration( - RepositoryConfigurationSource source) { - RootBeanDefinition beanDefinition = createBeanDefinition(); + RepositoryConfigurationSource source, String repositoryInterfaceName) { + + RootBeanDefinition beanDefinition = createBeanDefinition(repositoryInterfaceName); + return new DefaultRepositoryConfiguration(source, beanDefinition); } - private static RootBeanDefinition createBeanDefinition() { + private static RootBeanDefinition createBeanDefinition(String repositoryInterfaceName) { - RootBeanDefinition beanDefinition = new RootBeanDefinition("com.acme.MyRepository"); + RootBeanDefinition beanDefinition = new RootBeanDefinition(repositoryInterfaceName); ConstructorArgumentValues constructorArgumentValues = new ConstructorArgumentValues(); constructorArgumentValues.addGenericArgumentValue(MyRepository.class);