Browse Source

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.
pull/246/merge
Oliver Gierke 9 years ago
parent
commit
8da9679fc1
  1. 15
      src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java
  2. 5
      src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java
  3. 5
      src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder.java
  4. 11
      src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSource.java
  5. 9
      src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSourceSupport.java
  6. 11
      src/test/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSourceUnitTests.java
  7. 28
      src/test/java/org/springframework/data/repository/config/DefaultRepositoryConfigurationUnitTests.java
  8. 17
      src/test/java/org/springframework/data/repository/config/RepositoryBeanDefinitionRegistrarSupportUnitTests.java

15
src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java

@ -65,7 +65,6 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura @@ -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 @@ -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)

5
src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java

@ -78,10 +78,7 @@ public class DefaultRepositoryConfiguration<T extends RepositoryConfigurationSou @@ -78,10 +78,7 @@ public class DefaultRepositoryConfiguration<T extends RepositoryConfigurationSou
*/
@Override
public Streamable<String> getImplementationBasePackages() {
return configurationSource.shouldLimitRepositoryImplementationBasePackages()
? Streamable.of(ClassUtils.getPackageName(getRepositoryInterface()))
: getBasePackages();
return Streamable.of(ClassUtils.getPackageName(getRepositoryInterface()));
}
/*

5
src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder.java

@ -311,10 +311,7 @@ class RepositoryBeanDefinitionBuilder { @@ -311,10 +311,7 @@ class RepositoryBeanDefinitionBuilder {
* @return
*/
public Iterable<String> getBasePackages() {
return configuration.getConfigurationSource().shouldLimitRepositoryImplementationBasePackages() ? //
Collections.singleton(ClassUtils.getPackageName(fragmentInterfaceName)) : //
configuration.getImplementationBasePackages();
return Collections.singleton(ClassUtils.getPackageName(fragmentInterfaceName));
}
/**

11
src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSource.java

@ -63,17 +63,6 @@ public interface RepositoryConfigurationSource { @@ -63,17 +63,6 @@ public interface RepositoryConfigurationSource {
*/
Optional<String> 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
*/

9
src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSourceSupport.java

@ -117,13 +117,4 @@ public abstract class RepositoryConfigurationSourceSupport implements Repository @@ -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;
}
}

11
src/test/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSourceUnitTests.java

@ -103,14 +103,6 @@ public class AnnotationRepositoryConfigurationSourceUnitTests { @@ -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 { @@ -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 {}

28
src/test/java/org/springframework/data/repository/config/DefaultRepositoryConfigurationUnitTests.java

@ -34,7 +34,6 @@ import org.springframework.beans.factory.config.BeanDefinition; @@ -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 { @@ -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<RepositoryConfigurationSource> getConfiguration(
RepositoryConfigurationSource source) {
return getConfiguration(source, "com.acme.MyRepository");

17
src/test/java/org/springframework/data/repository/config/RepositoryBeanDefinitionRegistrarSupportUnitTests.java

@ -15,8 +15,7 @@ @@ -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 { @@ -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 { @@ -179,7 +167,4 @@ public class RepositoryBeanDefinitionRegistrarSupportUnitTests {
@EnableRepositories(basePackageClasses = FragmentImpl.class)
static class LimitsImplementationBasePackages {}
@EnableRepositories(basePackageClasses = FragmentImpl.class, limitImplementationBasePackages = false)
static class UnlimitedImplementationBasePackages {}
}

Loading…
Cancel
Save