From c663e32bc0ac780e6d1e9228997c0f50967b2645 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Mon, 10 Sep 2018 12:11:32 +0200 Subject: [PATCH] DATACMNS-1389 - Reorder repository candidate check. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We now check whether to use the repository configuration as last check to clarify store module responsibility first. This allows to place store-specific checks in RepositoryConfigurationExtensionSupport.useRepositoryConfiguration(…) such as rejecting reactive repositories for a store module that does not support reactive repositories Previously, we called useRepositoryConfiguration(…) before checking whether the actual repository interface is handled by the store module. This resulted in rejection of reactive repositories by store modules that do not provide reactive support whereas the repository did not belong to the actual store module. Related ticket: DATACMNS-1174. --- .../RepositoryConfigurationExtensionSupport.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java index ba37984ef..5fab75ba7 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java @@ -97,16 +97,10 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit RepositoryMetadata metadata = AbstractRepositoryMetadata.getMetadata(repositoryInterface); - if (!useRepositoryConfiguration(metadata)) { - continue; - } + boolean qualifiedForImplementation = !strictMatchesOnly || configSource.usesExplicitFilters() + || isStrictRepositoryCandidate(metadata); - if (!strictMatchesOnly || configSource.usesExplicitFilters()) { - result.add(configuration); - continue; - } - - if (isStrictRepositoryCandidate(metadata)) { + if (qualifiedForImplementation && useRepositoryConfiguration(metadata)) { result.add(configuration); } }