diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryBean.java b/src/main/java/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryBean.java index b7e4d8e36..1c983e69c 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryBean.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryBean.java @@ -24,6 +24,7 @@ import java.util.Set; import org.springframework.data.elasticsearch.core.ElasticsearchOperations; import org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory; import org.springframework.data.repository.cdi.CdiRepositoryBean; +import org.springframework.data.repository.config.CustomRepositoryImplementationDetector; import org.springframework.util.Assert; /** @@ -44,12 +45,12 @@ public class ElasticsearchRepositoryBean extends CdiRepositoryBean { * @param qualifiers must not be {@literal null}. * @param repositoryType must not be {@literal null}. * @param beanManager must not be {@literal null}. - * @param customImplementationBean the bean for the custom implementation of the - * {@link org.springframework.data.repository.Repository}, can be {@literal null}. + * @param detector detector for the custom {@link org.springframework.data.repository.Repository} implementations + * {@link CustomRepositoryImplementationDetector}, can be {@literal null}. */ public ElasticsearchRepositoryBean(Bean operations, Set qualifiers, - Class repositoryType, BeanManager beanManager, Bean customImplementationBean) { - super(qualifiers, repositoryType, beanManager, customImplementationBean); + Class repositoryType, BeanManager beanManager, CustomRepositoryImplementationDetector detector) { + super(qualifiers, repositoryType, beanManager, detector); Assert.notNull(operations, "Cannot create repository with 'null' for ElasticsearchOperations."); this.elasticsearchOperationsBean = operations; @@ -59,7 +60,8 @@ public class ElasticsearchRepositoryBean extends CdiRepositoryBean { protected T create(CreationalContext creationalContext, Class repositoryType, Object customImplementation) { ElasticsearchOperations elasticsearchOperations = getDependencyInstance(elasticsearchOperationsBean, ElasticsearchOperations.class); - return new ElasticsearchRepositoryFactory(elasticsearchOperations).getRepository(repositoryType, customImplementation); + return new ElasticsearchRepositoryFactory(elasticsearchOperations).getRepository(repositoryType, + customImplementation); } @Override diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryExtension.java b/src/main/java/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryExtension.java index 0253201af..679569637 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryExtension.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryExtension.java @@ -66,7 +66,8 @@ public class ElasticsearchRepositoryExtension extends CdiRepositoryExtensionSupp } } - private CdiRepositoryBean createRepositoryBean(Class repositoryType, Set qualifiers, BeanManager beanManager) { + private CdiRepositoryBean createRepositoryBean(Class repositoryType, Set qualifiers, + BeanManager beanManager) { Bean elasticsearchOperationsBean = this.elasticsearchOperationsMap.get(qualifiers .toString()); @@ -75,8 +76,8 @@ public class ElasticsearchRepositoryExtension extends CdiRepositoryExtensionSupp throw new UnsatisfiedResolutionException(String.format("Unable to resolve a bean for '%s' with qualifiers %s.", ElasticsearchOperations.class.getName(), qualifiers)); } - Bean customImplementationBean = getCustomImplementationBean(repositoryType, beanManager, qualifiers); - return new ElasticsearchRepositoryBean(elasticsearchOperationsBean, qualifiers, repositoryType, beanManager, customImplementationBean); + return new ElasticsearchRepositoryBean(elasticsearchOperationsBean, qualifiers, repositoryType, beanManager, + getCustomImplementationDetector()); } }