diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/cdi/Neo4jCdiRepositoryBean.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/cdi/Neo4jCdiRepositoryBean.java index f5f8fe730..27058f170 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/cdi/Neo4jCdiRepositoryBean.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/cdi/Neo4jCdiRepositoryBean.java @@ -15,18 +15,19 @@ */ package org.springframework.data.neo4j.repository.cdi; +import java.lang.annotation.Annotation; +import java.util.Set; + +import javax.enterprise.context.spi.CreationalContext; +import javax.enterprise.inject.spi.Bean; +import javax.enterprise.inject.spi.BeanManager; + import org.springframework.data.neo4j.core.GraphDatabase; import org.springframework.data.neo4j.repository.GraphRepositoryFactory; import org.springframework.data.neo4j.support.Neo4jTemplate; import org.springframework.data.neo4j.support.mapping.Neo4jMappingContext; import org.springframework.data.repository.cdi.CdiRepositoryBean; -import org.springframework.util.Assert; - -import javax.enterprise.context.spi.CreationalContext; -import javax.enterprise.inject.spi.Bean; -import javax.enterprise.inject.spi.BeanManager; -import java.lang.annotation.Annotation; -import java.util.Set; +import org.springframework.data.repository.config.CustomRepositoryImplementationDetector; /** * {@link org.springframework.data.repository.cdi.CdiRepositoryBean} to create Neo4j repository instances via CDI. @@ -45,13 +46,13 @@ public class Neo4jCdiRepositoryBean 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 Neo4jCdiRepositoryBean(Bean graphDatabase, - Set qualifiers, Class repositoryType, BeanManager beanManager, Bean customImplementationBean) { + public Neo4jCdiRepositoryBean(Bean graphDatabase, Set qualifiers, Class repositoryType, + BeanManager beanManager, CustomRepositoryImplementationDetector detector) { - super(qualifiers, repositoryType, beanManager, customImplementationBean); + super(qualifiers, repositoryType, beanManager, detector); this.graphDatabase = graphDatabase; } diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/cdi/Neo4jCdiRepositoryExtension.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/cdi/Neo4jCdiRepositoryExtension.java index fe0ecca01..17ab38c13 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/cdi/Neo4jCdiRepositoryExtension.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/cdi/Neo4jCdiRepositoryExtension.java @@ -61,12 +61,12 @@ public class Neo4jCdiRepositoryExtension extends CdiRepositoryExtensionSupport { for (Type type : bean.getTypes()) { if (type instanceof Class && GraphDatabase.class.isAssignableFrom((Class) type)) { - + if (LOG.isDebugEnabled()) { LOG.debug(String.format("Discovered %s with qualifiers %s.", GraphDatabase.class.getName(), bean.getQualifiers())); } - + graphDatabases.put(new HashSet(bean.getQualifiers()), (Bean) bean); } } @@ -100,7 +100,8 @@ public class Neo4jCdiRepositoryExtension extends CdiRepositoryExtensionSupport { * @param beanManager The BeanManager instance. * @return The bean. */ - private CdiRepositoryBean createRepositoryBean(Class repositoryType, Set qualifiers, BeanManager beanManager) { + private CdiRepositoryBean createRepositoryBean(Class repositoryType, Set qualifiers, + BeanManager beanManager) { Bean graphDatabase = this.graphDatabases.get(qualifiers); @@ -109,9 +110,7 @@ public class Neo4jCdiRepositoryExtension extends CdiRepositoryExtensionSupport { Neo4jMappingContext.class.getName(), qualifiers)); } - Bean customImplementationBean = getCustomImplementationBean(repositoryType, beanManager, qualifiers); - - return new Neo4jCdiRepositoryBean(graphDatabase, qualifiers, repositoryType, - beanManager, customImplementationBean); + return new Neo4jCdiRepositoryBean(graphDatabase, qualifiers, repositoryType, beanManager, + getCustomImplementationDetector()); } }