Skip to content

Commit 95fc878

Browse files
mp911deodrotbohm
authored andcommitted
DATAES-123 - Improved detection of custom implementations for CDI repositories.
Adapted to API changes in CDI extension. Related ticket: DATACMNS-565. Original pull request: spring-projects#74.
1 parent 89730fe commit 95fc878

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

src/main/java/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryBean.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
2525
import org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory;
2626
import org.springframework.data.repository.cdi.CdiRepositoryBean;
27+
import org.springframework.data.repository.config.CustomRepositoryImplementationDetector;
2728
import org.springframework.util.Assert;
2829

2930
/**
@@ -44,12 +45,12 @@ public class ElasticsearchRepositoryBean<T> extends CdiRepositoryBean<T> {
4445
* @param qualifiers must not be {@literal null}.
4546
* @param repositoryType must not be {@literal null}.
4647
* @param beanManager must not be {@literal null}.
47-
* @param customImplementationBean the bean for the custom implementation of the
48-
* {@link org.springframework.data.repository.Repository}, can be {@literal null}.
48+
* @param detector detector for the custom {@link org.springframework.data.repository.Repository} implementations
49+
* {@link CustomRepositoryImplementationDetector}, can be {@literal null}.
4950
*/
5051
public ElasticsearchRepositoryBean(Bean<ElasticsearchOperations> operations, Set<Annotation> qualifiers,
51-
Class<T> repositoryType, BeanManager beanManager, Bean<?> customImplementationBean) {
52-
super(qualifiers, repositoryType, beanManager, customImplementationBean);
52+
Class<T> repositoryType, BeanManager beanManager, CustomRepositoryImplementationDetector detector) {
53+
super(qualifiers, repositoryType, beanManager, detector);
5354

5455
Assert.notNull(operations, "Cannot create repository with 'null' for ElasticsearchOperations.");
5556
this.elasticsearchOperationsBean = operations;
@@ -59,7 +60,8 @@ public ElasticsearchRepositoryBean(Bean<ElasticsearchOperations> operations, Set
5960
protected T create(CreationalContext<T> creationalContext, Class<T> repositoryType, Object customImplementation) {
6061
ElasticsearchOperations elasticsearchOperations = getDependencyInstance(elasticsearchOperationsBean,
6162
ElasticsearchOperations.class);
62-
return new ElasticsearchRepositoryFactory(elasticsearchOperations).getRepository(repositoryType, customImplementation);
63+
return new ElasticsearchRepositoryFactory(elasticsearchOperations).getRepository(repositoryType,
64+
customImplementation);
6365
}
6466

6567
@Override

src/main/java/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryExtension.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ void afterBeanDiscovery(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanMan
6666
}
6767
}
6868

69-
private <T> CdiRepositoryBean<T> createRepositoryBean(Class<T> repositoryType, Set<Annotation> qualifiers, BeanManager beanManager) {
69+
private <T> CdiRepositoryBean<T> createRepositoryBean(Class<T> repositoryType, Set<Annotation> qualifiers,
70+
BeanManager beanManager) {
7071

7172
Bean<ElasticsearchOperations> elasticsearchOperationsBean = this.elasticsearchOperationsMap.get(qualifiers
7273
.toString());
@@ -75,8 +76,8 @@ private <T> CdiRepositoryBean<T> createRepositoryBean(Class<T> repositoryType, S
7576
throw new UnsatisfiedResolutionException(String.format("Unable to resolve a bean for '%s' with qualifiers %s.",
7677
ElasticsearchOperations.class.getName(), qualifiers));
7778
}
78-
Bean<?> customImplementationBean = getCustomImplementationBean(repositoryType, beanManager, qualifiers);
7979

80-
return new ElasticsearchRepositoryBean<T>(elasticsearchOperationsBean, qualifiers, repositoryType, beanManager, customImplementationBean);
80+
return new ElasticsearchRepositoryBean<T>(elasticsearchOperationsBean, qualifiers, repositoryType, beanManager,
81+
getCustomImplementationDetector());
8182
}
8283
}

0 commit comments

Comments
 (0)