diff --git a/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtension.java b/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtension.java index 8df2bb337..faa1b1997 100644 --- a/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtension.java +++ b/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtension.java @@ -33,6 +33,7 @@ import javax.persistence.EntityManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.data.repository.cdi.CdiRepositoryBean; import org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport; /** @@ -87,10 +88,13 @@ public class JpaRepositoryExtension extends CdiRepositoryExtensionSupport { Class repositoryType = entry.getKey(); Set qualifiers = entry.getValue(); + // Create the bean representing the repository. - Bean repositoryBean = createRepositoryBean(repositoryType, qualifiers, beanManager); + CdiRepositoryBean repositoryBean = createRepositoryBean(repositoryType, qualifiers, beanManager); LOGGER.info("Registering bean for '{}' with qualifiers {}.", repositoryType.getName(), qualifiers); - // Register the bean to the container. + + // Register the bean to the extension and the container. + registerBean(repositoryBean); afterBeanDiscovery.addBean(repositoryBean); } } @@ -103,7 +107,8 @@ public class JpaRepositoryExtension 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) { // Determine the entity manager bean which matches the qualifiers of the repository. Bean entityManagerBean = entityManagers.get(qualifiers); diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/CdiExtensionIntegrationTests.java b/src/test/java/org/springframework/data/jpa/repository/cdi/CdiExtensionIntegrationTests.java index 9da091e7a..1a2f123f3 100644 --- a/src/test/java/org/springframework/data/jpa/repository/cdi/CdiExtensionIntegrationTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/cdi/CdiExtensionIntegrationTests.java @@ -27,6 +27,8 @@ import org.apache.webbeans.cditest.CdiTestContainer; import org.apache.webbeans.cditest.CdiTestContainerLoader; import org.junit.BeforeClass; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Integration tests for Spring Data JPA CDI extension. @@ -36,12 +38,17 @@ import org.junit.Test; */ public class CdiExtensionIntegrationTests { + private static Logger LOGGER = LoggerFactory.getLogger(CdiExtensionIntegrationTests.class); + static CdiTestContainer container; @BeforeClass public static void setUp() throws Exception { + container = CdiTestContainerLoader.getCdiContainer(); container.bootContainer(); + + LOGGER.debug("CDI container bootstrapped!"); } /** diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/PersonRepository.java b/src/test/java/org/springframework/data/jpa/repository/cdi/PersonRepository.java index 7f5ed7117..19e85e023 100644 --- a/src/test/java/org/springframework/data/jpa/repository/cdi/PersonRepository.java +++ b/src/test/java/org/springframework/data/jpa/repository/cdi/PersonRepository.java @@ -17,6 +17,9 @@ package org.springframework.data.jpa.repository.cdi; import java.util.List; +import org.springframework.data.repository.cdi.Eager; + +@Eager public interface PersonRepository { List findAll();