From c7e54bf9f3b8acd9f458a6f8bd292f8a3dcc9a97 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Thu, 24 Oct 2019 13:20:21 +0200 Subject: [PATCH 1/3] DATAJDBC-437 - Prepare branch --- pom.xml | 2 +- spring-data-jdbc-distribution/pom.xml | 2 +- spring-data-jdbc/pom.xml | 4 ++-- spring-data-relational/pom.xml | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 87b7e95ebe..d972b6798e 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.data spring-data-relational-parent - 1.2.0.BUILD-SNAPSHOT + 1.2.0.DATAJDBC-437-SNAPSHOT pom Spring Data Relational Parent diff --git a/spring-data-jdbc-distribution/pom.xml b/spring-data-jdbc-distribution/pom.xml index f2bbb72319..71c531216f 100644 --- a/spring-data-jdbc-distribution/pom.xml +++ b/spring-data-jdbc-distribution/pom.xml @@ -14,7 +14,7 @@ org.springframework.data spring-data-relational-parent - 1.2.0.BUILD-SNAPSHOT + 1.2.0.DATAJDBC-437-SNAPSHOT ../pom.xml diff --git a/spring-data-jdbc/pom.xml b/spring-data-jdbc/pom.xml index 0904eb8136..93ca35b98c 100644 --- a/spring-data-jdbc/pom.xml +++ b/spring-data-jdbc/pom.xml @@ -5,7 +5,7 @@ 4.0.0 spring-data-jdbc - 1.2.0.BUILD-SNAPSHOT + 1.2.0.DATAJDBC-437-SNAPSHOT Spring Data JDBC Spring Data module for JDBC repositories. @@ -14,7 +14,7 @@ org.springframework.data spring-data-relational-parent - 1.2.0.BUILD-SNAPSHOT + 1.2.0.DATAJDBC-437-SNAPSHOT diff --git a/spring-data-relational/pom.xml b/spring-data-relational/pom.xml index 1751c4244e..2da15cb40e 100644 --- a/spring-data-relational/pom.xml +++ b/spring-data-relational/pom.xml @@ -5,7 +5,7 @@ 4.0.0 spring-data-relational - 1.2.0.BUILD-SNAPSHOT + 1.2.0.DATAJDBC-437-SNAPSHOT Spring Data Relational Spring Data Relational support @@ -13,7 +13,7 @@ org.springframework.data spring-data-relational-parent - 1.2.0.BUILD-SNAPSHOT + 1.2.0.DATAJDBC-437-SNAPSHOT From 094eb1869de900bd6596bd013068d37bad4e12cd Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Thu, 24 Oct 2019 14:44:05 +0200 Subject: [PATCH 2/3] DATAJDBC-437 - In strict mode we only claim repositories for domain types with @Table annotation. Before this change Spring Data JDBC didn't specify any identifying annotation and therefore would claim all or no repository depending on the the version of Spring Data Commons. Also added the RepositoryFactorySupport to spring.factory in order to support detection of multiple RepositoryFactorySupport implementations on the classpath. See also: https://jira.spring.io/browse/DATACMNS-1596. --- .../config/JdbcRepositoryConfigExtension.java | 12 +++ .../main/resources/META-INF/spring.factories | 1 + ...oryCrossAggregateHsqlIntegrationTests.java | 7 +- ...epositoryIdGenerationIntegrationTests.java | 4 +- ...ryManipulateDbActionsIntegrationTests.java | 5 +- ...yMappingConfigurationIntegrationTests.java | 30 ++++---- ...nableJdbcAuditingHsqlIntegrationTests.java | 6 +- ...dbcRepositoryConfigExtensionUnitTests.java | 73 +++++++++++++++++++ 8 files changed, 120 insertions(+), 18 deletions(-) create mode 100644 spring-data-jdbc/src/main/resources/META-INF/spring.factories create mode 100644 spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtensionUnitTests.java diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtension.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtension.java index b860a8204d..31100661f8 100644 --- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtension.java +++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtension.java @@ -15,10 +15,14 @@ */ package org.springframework.data.jdbc.repository.config; +import java.lang.annotation.Annotation; +import java.util.Collection; +import java.util.Collections; import java.util.Locale; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.data.jdbc.repository.support.JdbcRepositoryFactoryBean; +import org.springframework.data.relational.core.mapping.Table; import org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport; import org.springframework.data.repository.config.RepositoryConfigurationSource; import org.springframework.util.StringUtils; @@ -75,4 +79,12 @@ public void postProcess(BeanDefinitionBuilder builder, RepositoryConfigurationSo .filter(StringUtils::hasText) // .ifPresent(s -> builder.addPropertyReference("dataAccessStrategy", s)); } + + /** + * In strict mode only domain types having a {@link Table} annotation get a repository. + */ + @Override + protected Collection> getIdentifyingAnnotations() { + return Collections.singleton(Table.class); + } } diff --git a/spring-data-jdbc/src/main/resources/META-INF/spring.factories b/spring-data-jdbc/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000000..f244d7b51f --- /dev/null +++ b/spring-data-jdbc/src/main/resources/META-INF/spring.factories @@ -0,0 +1 @@ +org.springframework.data.repository.core.support.RepositoryFactorySupport=org.springframework.data.jdbc.repository.support.JdbcRepositoryFactory diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryCrossAggregateHsqlIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryCrossAggregateHsqlIntegrationTests.java index 7b654486cb..fb4a20f0f4 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryCrossAggregateHsqlIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryCrossAggregateHsqlIntegrationTests.java @@ -15,14 +15,16 @@ */ package org.springframework.data.jdbc.repository; -import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.*; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.FilterType; import org.springframework.context.annotation.Import; import org.springframework.data.annotation.Id; import org.springframework.data.jdbc.core.mapping.AggregateReference; @@ -56,7 +58,8 @@ public class JdbcRepositoryCrossAggregateHsqlIntegrationTests { @Configuration @Import(TestConfiguration.class) - @EnableJdbcRepositories(considerNestedRepositories = true) + @EnableJdbcRepositories(includeFilters = @Filter(type = FilterType.REGEX, + pattern = ".*\\.JdbcRepositoryCrossAggregateHsqlIntegrationTests\\$.*"), considerNestedRepositories = true) static class Config { @Autowired JdbcRepositoryFactory factory; diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIdGenerationIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIdGenerationIntegrationTests.java index 7b3d2a2401..48bbb3a6ec 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIdGenerationIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIdGenerationIntegrationTests.java @@ -31,6 +31,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.FilterType; import org.springframework.context.annotation.Import; import org.springframework.data.annotation.Id; import org.springframework.data.jdbc.repository.config.EnableJdbcRepositories; @@ -145,7 +146,8 @@ static class ImmutableWithManualIdEntity { @Configuration @ComponentScan("org.springframework.data.jdbc.testing") - @EnableJdbcRepositories(considerNestedRepositories = true) + @EnableJdbcRepositories(includeFilters = @ComponentScan.Filter(type = FilterType.REGEX, + pattern = ".*\\.JdbcRepositoryIdGenerationIntegrationTests\\$.*"), considerNestedRepositories = true) static class TestConfiguration { AtomicLong lastId = new AtomicLong(0); diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryManipulateDbActionsIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryManipulateDbActionsIntegrationTests.java index d14b27e93b..292f5e53a4 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryManipulateDbActionsIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryManipulateDbActionsIntegrationTests.java @@ -33,7 +33,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationListener; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.FilterType; import org.springframework.context.annotation.Import; import org.springframework.data.annotation.Id; import org.springframework.data.annotation.PersistenceConstructor; @@ -185,7 +187,8 @@ private interface LogRepository extends CrudRepository {} @Configuration @Import(TestConfiguration.class) - @EnableJdbcRepositories(considerNestedRepositories = true) + @EnableJdbcRepositories(includeFilters = @ComponentScan.Filter(type = FilterType.REGEX, + pattern = ".*\\.JdbcRepositoryManipulateDbActionsIntegrationTests\\$.*"), considerNestedRepositories = true) static class Config { static long lastLogId; diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryQueryMappingConfigurationIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryQueryMappingConfigurationIntegrationTests.java index 0bf20dca16..547151f190 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryQueryMappingConfigurationIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryQueryMappingConfigurationIntegrationTests.java @@ -15,7 +15,10 @@ */ package org.springframework.data.jdbc.repository; -import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.*; + +import lombok.AllArgsConstructor; +import lombok.Data; import java.sql.ResultSet; import java.sql.SQLException; @@ -27,7 +30,9 @@ import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.FilterType; import org.springframework.context.annotation.Import; import org.springframework.dao.DataAccessException; import org.springframework.data.annotation.Id; @@ -43,9 +48,6 @@ import org.springframework.test.context.junit4.rules.SpringMethodRule; import org.springframework.transaction.annotation.Transactional; -import lombok.AllArgsConstructor; -import lombok.Data; - /** * Very simple use cases for creation and usage of {@link ResultSetExtractor}s in JdbcRepository. * @@ -59,14 +61,17 @@ public class JdbcRepositoryQueryMappingConfigurationIntegrationTests { @Configuration @Import(TestConfiguration.class) - @EnableJdbcRepositories(considerNestedRepositories = true) + @EnableJdbcRepositories( + includeFilters = @ComponentScan.Filter(type = FilterType.REGEX, + pattern = ".*\\.JdbcRepositoryQueryMappingConfigurationIntegrationTests\\$.*"), + considerNestedRepositories = true) static class Config { @Bean Class testClass() { return JdbcRepositoryQueryMappingConfigurationIntegrationTests.class; } - + @Bean QueryMappingConfiguration mappers() { return new DefaultQueryMappingConfiguration(); @@ -78,7 +83,7 @@ QueryMappingConfiguration mappers() { @Autowired NamedParameterJdbcTemplate template; @Autowired CarRepository carRepository; - + @Test // DATAJDBC-290 public void customFindAllCarsUsesConfiguredResultSetExtractor() { @@ -88,28 +93,27 @@ public void customFindAllCarsUsesConfiguredResultSetExtractor() { assertThat(cars).hasSize(1); assertThat(cars).allMatch(car -> CAR_MODEL.equals(car.getModel())); } - + interface CarRepository extends CrudRepository { @Query(value = "select * from car", resultSetExtractorClass = CarResultSetExtractor.class) List customFindAll(); } - + @Data @AllArgsConstructor static class Car { - @Id - private Long id; + @Id private Long id; private String model; } - + static class CarResultSetExtractor implements ResultSetExtractor> { @Override public List extractData(ResultSet rs) throws SQLException, DataAccessException { return Arrays.asList(new Car(1L, CAR_MODEL)); } - + } } diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcAuditingHsqlIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcAuditingHsqlIntegrationTests.java index 4dbf6601bc..8d9edc5e70 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcAuditingHsqlIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcAuditingHsqlIntegrationTests.java @@ -33,6 +33,8 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.ComponentScan.Filter; +import org.springframework.context.annotation.FilterType; import org.springframework.context.annotation.Primary; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; @@ -258,7 +260,9 @@ static class DummyEntity { } @ComponentScan("org.springframework.data.jdbc.testing") - @EnableJdbcRepositories(considerNestedRepositories = true) + @EnableJdbcRepositories( + includeFilters = @Filter(type = FilterType.REGEX, pattern = ".*\\.EnableJdbcAuditingHsqlIntegrationTests\\$.*"), + considerNestedRepositories = true) static class TestConfiguration { @Bean diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtensionUnitTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtensionUnitTests.java new file mode 100644 index 0000000000..fbb4245909 --- /dev/null +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtensionUnitTests.java @@ -0,0 +1,73 @@ +/* + * Copyright 2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.data.jdbc.repository.config; + +import static org.assertj.core.api.Assertions.*; + +import java.util.Collection; + +import org.junit.Test; +import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.beans.factory.support.DefaultListableBeanFactory; +import org.springframework.core.env.Environment; +import org.springframework.core.env.StandardEnvironment; +import org.springframework.core.io.ResourceLoader; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.type.StandardAnnotationMetadata; +import org.springframework.data.relational.core.mapping.Table; +import org.springframework.data.repository.Repository; +import org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource; +import org.springframework.data.repository.config.RepositoryConfiguration; +import org.springframework.data.repository.config.RepositoryConfigurationSource; + +/** + * Unit tests for {@link JdbcRepositoryConfigExtension}. + * + * @author Jens Schauder + * @since 1.2 + */ +public class JdbcRepositoryConfigExtensionUnitTests { + + StandardAnnotationMetadata metadata = new StandardAnnotationMetadata(Config.class, true); + ResourceLoader loader = new PathMatchingResourcePatternResolver(); + Environment environment = new StandardEnvironment(); + BeanDefinitionRegistry registry = new DefaultListableBeanFactory(); + + RepositoryConfigurationSource configurationSource = new AnnotationRepositoryConfigurationSource(metadata, + EnableJdbcRepositories.class, loader, environment, registry); + + @Test // DATAJPA-437 + public void isStrictMatchOnlyIfDomainTypeIsAnnotatedWithDocument() { + + JdbcRepositoryConfigExtension extension = new JdbcRepositoryConfigExtension(); + + Collection> configs = extension.getRepositoryConfigurations(configurationSource, loader, true); + + assertThat(configs).extracting(config -> config.getRepositoryInterface()).containsExactly(SampleRepository.class.getName()); + } + + @EnableJdbcRepositories(considerNestedRepositories = true) + static class Config { + + } + + @Table + static class Sample {} + + interface SampleRepository extends Repository {} + + interface UnannotatedRepository extends Repository {} +} From 519a242f4b49cfb83e6b9c8907c06c902169b1eb Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Fri, 25 Oct 2019 08:07:10 +0200 Subject: [PATCH 3/3] DATAJDBC-437 - Process Review Feedback. The repository for an unannotated entity now can be constructed, avoiding the need to exclude it in other tests. Improved error message for failure to create a repository by using `getRequiredPersistentEntity`. Removed superfluous `@since` annotation. --- .../repository/support/JdbcRepositoryFactory.java | 2 +- ...cRepositoryCrossAggregateHsqlIntegrationTests.java | 5 +---- .../JdbcRepositoryIdGenerationIntegrationTests.java | 3 +-- ...RepositoryManipulateDbActionsIntegrationTests.java | 3 +-- ...toryQueryMappingConfigurationIntegrationTests.java | 7 +------ .../EnableJdbcAuditingHsqlIntegrationTests.java | 6 +----- .../JdbcRepositoryConfigExtensionUnitTests.java | 11 +++++++---- 7 files changed, 13 insertions(+), 24 deletions(-) diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactory.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactory.java index 165463d865..bcde8cd6d8 100644 --- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactory.java +++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactory.java @@ -120,7 +120,7 @@ protected Object getTargetRepository(RepositoryInformation repositoryInformation JdbcAggregateTemplate template = new JdbcAggregateTemplate(publisher, context, converter, accessStrategy); SimpleJdbcRepository repository = new SimpleJdbcRepository<>(template, - context.getPersistentEntity(repositoryInformation.getDomainType())); + context.getRequiredPersistentEntity(repositoryInformation.getDomainType())); if (entityCallbacks != null) { template.setEntityCallbacks(entityCallbacks); diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryCrossAggregateHsqlIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryCrossAggregateHsqlIntegrationTests.java index fb4a20f0f4..300b00b8b6 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryCrossAggregateHsqlIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryCrossAggregateHsqlIntegrationTests.java @@ -22,9 +22,7 @@ import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.FilterType; import org.springframework.context.annotation.Import; import org.springframework.data.annotation.Id; import org.springframework.data.jdbc.core.mapping.AggregateReference; @@ -58,8 +56,7 @@ public class JdbcRepositoryCrossAggregateHsqlIntegrationTests { @Configuration @Import(TestConfiguration.class) - @EnableJdbcRepositories(includeFilters = @Filter(type = FilterType.REGEX, - pattern = ".*\\.JdbcRepositoryCrossAggregateHsqlIntegrationTests\\$.*"), considerNestedRepositories = true) + @EnableJdbcRepositories(considerNestedRepositories = true) static class Config { @Autowired JdbcRepositoryFactory factory; diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIdGenerationIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIdGenerationIntegrationTests.java index 48bbb3a6ec..07a864ddb5 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIdGenerationIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIdGenerationIntegrationTests.java @@ -146,8 +146,7 @@ static class ImmutableWithManualIdEntity { @Configuration @ComponentScan("org.springframework.data.jdbc.testing") - @EnableJdbcRepositories(includeFilters = @ComponentScan.Filter(type = FilterType.REGEX, - pattern = ".*\\.JdbcRepositoryIdGenerationIntegrationTests\\$.*"), considerNestedRepositories = true) + @EnableJdbcRepositories(considerNestedRepositories = true) static class TestConfiguration { AtomicLong lastId = new AtomicLong(0); diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryManipulateDbActionsIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryManipulateDbActionsIntegrationTests.java index 292f5e53a4..e61f1f991c 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryManipulateDbActionsIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryManipulateDbActionsIntegrationTests.java @@ -187,8 +187,7 @@ private interface LogRepository extends CrudRepository {} @Configuration @Import(TestConfiguration.class) - @EnableJdbcRepositories(includeFilters = @ComponentScan.Filter(type = FilterType.REGEX, - pattern = ".*\\.JdbcRepositoryManipulateDbActionsIntegrationTests\\$.*"), considerNestedRepositories = true) + @EnableJdbcRepositories(considerNestedRepositories = true) static class Config { static long lastLogId; diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryQueryMappingConfigurationIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryQueryMappingConfigurationIntegrationTests.java index 547151f190..9a6a4798a0 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryQueryMappingConfigurationIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryQueryMappingConfigurationIntegrationTests.java @@ -30,9 +30,7 @@ import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.FilterType; import org.springframework.context.annotation.Import; import org.springframework.dao.DataAccessException; import org.springframework.data.annotation.Id; @@ -61,10 +59,7 @@ public class JdbcRepositoryQueryMappingConfigurationIntegrationTests { @Configuration @Import(TestConfiguration.class) - @EnableJdbcRepositories( - includeFilters = @ComponentScan.Filter(type = FilterType.REGEX, - pattern = ".*\\.JdbcRepositoryQueryMappingConfigurationIntegrationTests\\$.*"), - considerNestedRepositories = true) + @EnableJdbcRepositories(considerNestedRepositories = true) static class Config { @Bean diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcAuditingHsqlIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcAuditingHsqlIntegrationTests.java index 8d9edc5e70..4dbf6601bc 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcAuditingHsqlIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcAuditingHsqlIntegrationTests.java @@ -33,8 +33,6 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.ComponentScan.Filter; -import org.springframework.context.annotation.FilterType; import org.springframework.context.annotation.Primary; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; @@ -260,9 +258,7 @@ static class DummyEntity { } @ComponentScan("org.springframework.data.jdbc.testing") - @EnableJdbcRepositories( - includeFilters = @Filter(type = FilterType.REGEX, pattern = ".*\\.EnableJdbcAuditingHsqlIntegrationTests\\$.*"), - considerNestedRepositories = true) + @EnableJdbcRepositories(considerNestedRepositories = true) static class TestConfiguration { @Bean diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtensionUnitTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtensionUnitTests.java index fbb4245909..7805fa2d01 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtensionUnitTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtensionUnitTests.java @@ -37,7 +37,6 @@ * Unit tests for {@link JdbcRepositoryConfigExtension}. * * @author Jens Schauder - * @since 1.2 */ public class JdbcRepositoryConfigExtensionUnitTests { @@ -54,9 +53,11 @@ public void isStrictMatchOnlyIfDomainTypeIsAnnotatedWithDocument() { JdbcRepositoryConfigExtension extension = new JdbcRepositoryConfigExtension(); - Collection> configs = extension.getRepositoryConfigurations(configurationSource, loader, true); + Collection> configs = extension + .getRepositoryConfigurations(configurationSource, loader, true); - assertThat(configs).extracting(config -> config.getRepositoryInterface()).containsExactly(SampleRepository.class.getName()); + assertThat(configs).extracting(config -> config.getRepositoryInterface()) + .containsExactly(SampleRepository.class.getName()); } @EnableJdbcRepositories(considerNestedRepositories = true) @@ -69,5 +70,7 @@ static class Sample {} interface SampleRepository extends Repository {} - interface UnannotatedRepository extends Repository {} + static class Unannotated {} + + interface UnannotatedRepository extends Repository {} }