From 3feaf52211b33c6b5c5eacb0e6d2a04f769764a3 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Thu, 23 Jan 2014 13:32:29 +0100 Subject: [PATCH] DATAGRAPH-422 - Enable CDI repositories to be instantiated eagerly. From the CDI extension we now use the callback newly introduced in Spring Data Commons to enable it to trigger eager initialization. See also: DATACMNS-416. --- .../repository/cdi/Neo4jCdiRepositoryExtension.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 b1cc84d38..2e9da9cda 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 @@ -1,5 +1,5 @@ /* - * Copyright 2013 the original author or authors. + * Copyright 2013-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,12 +34,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.neo4j.core.GraphDatabase; import org.springframework.data.neo4j.support.mapping.Neo4jMappingContext; +import org.springframework.data.repository.cdi.CdiRepositoryBean; import org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport; /** * CDI extension to export Neo4j repositories. * * @author Nicki Watt + * @author Oliver Gierke */ public class Neo4jCdiRepositoryExtension extends CdiRepositoryExtensionSupport { @@ -77,13 +79,14 @@ public class Neo4jCdiRepositoryExtension extends CdiRepositoryExtensionSupport { Set qualifiers = entry.getValue(); // Create the bean representing the repository. - Bean repositoryBean = createRepositoryBean(repositoryType, qualifiers, beanManager); + CdiRepositoryBean repositoryBean = createRepositoryBean(repositoryType, qualifiers, beanManager); if (LOG.isInfoEnabled()) { LOG.info(String.format("Registering bean for %s with qualifiers %s.", repositoryType.getName(), qualifiers)); } // Register the bean to the container. + registerBean(repositoryBean); afterBeanDiscovery.addBean(repositoryBean); } } @@ -96,7 +99,7 @@ public class Neo4jCdiRepositoryExtension extends CdiRepositoryExtensionSupport { * @param beanManager The BeanManager instance. * @return The bean. */ - private Bean createRepositoryBean(Class repositoryType, Set qualifiers, BeanManager beanManager) { + private CdiRepositoryBean createRepositoryBean(Class repositoryType, Set qualifiers, BeanManager beanManager) { Bean graphDatabase = this.graphDatabases.get(qualifiers);