From d5761c7c8ddaf0c3f56461249ee75eb9b0e1bb8c 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 25e98deea..80d83d53c 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java @@ -98,16 +98,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); } }