From d364b441b49157273120bf043c7d655cb483356c Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 20 Mar 2013 17:03:48 +0100 Subject: [PATCH] DATAJPA-319 - Use default CDI repository scope (application). Don't inherit the scope of the repository from the EntityManager but let it be the default (application scope singleton). --- .../jpa/repository/cdi/JpaRepositoryBean.java | 13 +---------- .../cdi/CdiExtensionintegrationTests.java | 23 ++++++++++++++++++- .../jpa/repository/cdi/PersonRepository.java | 4 ++-- .../cdi/QualifiedPersonRepository.java | 2 +- .../cdi/UnqualifiedPersonRepository.java | 4 ++-- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryBean.java b/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryBean.java index 6457ba40f..abe7f22da 100644 --- a/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryBean.java +++ b/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryBean.java @@ -32,7 +32,6 @@ import org.springframework.util.Assert; * * @author Dirk Mahler * @author Oliver Gierke - * * @param The type of the repository. */ class JpaRepositoryBean extends CdiRepositoryBean { @@ -69,14 +68,4 @@ class JpaRepositoryBean extends CdiRepositoryBean { JpaRepositoryFactory factory = new JpaRepositoryFactory(entityManager); return factory.getRepository(repositoryType); } - - /* - * (non-Javadoc) - * @see javax.enterprise.inject.spi.Bean#getScope() - */ - public Class getScope() { - - // The repository uses the same scope as the associated EntityManager. - return entityManagerBean.getScope(); - } -} \ No newline at end of file +} 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 c6945a2fa..ab0e818a1 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 @@ -1,5 +1,5 @@ /* - * Copyright 2011 the original author or authors. + * Copyright 2011-2013 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. @@ -15,6 +15,14 @@ */ package org.springframework.data.jpa.repository.cdi; +import static org.hamcrest.Matchers.*; +import static org.junit.Assert.*; + +import java.util.Set; + +import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.spi.Bean; + import org.apache.webbeans.cditest.CdiTestContainer; import org.apache.webbeans.cditest.CdiTestContainerLoader; import org.junit.BeforeClass; @@ -36,6 +44,19 @@ public class CdiExtensionintegrationTests { container.bootContainer(); } + /** + * @see DATAJPA-319 + */ + @Test + @SuppressWarnings("rawtypes") + public void foo() { + + Set> beans = container.getBeanManager().getBeans(PersonRepository.class); + + assertThat(beans, hasSize(1)); + assertThat(beans.iterator().next().getScope(), is(equalTo((Class) ApplicationScoped.class))); + } + @Test public void saveAndFindAll() { 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 30c5ba231..7f5ed7117 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 @@ -1,5 +1,5 @@ /* - * Copyright 2011 the original author or authors. + * Copyright 2011-2013 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. @@ -17,7 +17,7 @@ package org.springframework.data.jpa.repository.cdi; import java.util.List; -interface PersonRepository { +public interface PersonRepository { List findAll(); diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedPersonRepository.java b/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedPersonRepository.java index 71882fd34..f26f97af9 100644 --- a/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedPersonRepository.java +++ b/src/test/java/org/springframework/data/jpa/repository/cdi/QualifiedPersonRepository.java @@ -18,6 +18,6 @@ package org.springframework.data.jpa.repository.cdi; import org.springframework.data.repository.Repository; @PersonDB -interface QualifiedPersonRepository extends PersonRepository, Repository { +public interface QualifiedPersonRepository extends PersonRepository, Repository { } diff --git a/src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedPersonRepository.java b/src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedPersonRepository.java index 9c1e9c8cd..4e986f175 100644 --- a/src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedPersonRepository.java +++ b/src/test/java/org/springframework/data/jpa/repository/cdi/UnqualifiedPersonRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2011 the original author or authors. + * Copyright 2011-2013 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. @@ -17,6 +17,6 @@ package org.springframework.data.jpa.repository.cdi; import org.springframework.data.repository.Repository; -interface UnqualifiedPersonRepository extends PersonRepository, Repository { +public interface UnqualifiedPersonRepository extends PersonRepository, Repository { }