DELTASPIKE-607 EntityManagerDelegate interface for EM method access.
Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/b0233a20 Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/b0233a20 Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/b0233a20 Branch: refs/heads/master Commit: b0233a20c2d220ff8734e765f5aa2f6dd46fd2cf Parents: 900d570 Author: Thomas Hug <[email protected]> Authored: Mon May 26 04:42:42 2014 -0700 Committer: Thomas Hug <[email protected]> Committed: Mon May 26 07:41:58 2014 -0700 ---------------------------------------------------------------------- .../data/api/EntityManagerDelegate.java | 179 +++++++++++++++ .../handler/EntityManagerDelegateHandler.java | 216 +++++++++++++++++++ .../EntityManagerDelegateHandlerTest.java | 63 ++++++ .../handler/EntityRepositoryHandlerTest.java | 64 +++--- .../data/test/TransactionalTestCase.java | 9 + .../service/ExtendedRepositoryInterface.java | 3 +- .../deltaspike/data/test/util/TestData.java | 48 +++++ .../data/test/util/TestDeployments.java | 5 +- 8 files changed, 545 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/deltaspike/blob/b0233a20/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/EntityManagerDelegate.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/EntityManagerDelegate.java b/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/EntityManagerDelegate.java new file mode 100644 index 0000000..e98a322 --- /dev/null +++ b/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/EntityManagerDelegate.java @@ -0,0 +1,179 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.deltaspike.data.api; + +import java.util.Map; + +import javax.persistence.EntityManagerFactory; +import javax.persistence.EntityTransaction; +import javax.persistence.FlushModeType; +import javax.persistence.LockModeType; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.metamodel.Metamodel; + + +/** + * Expose {@link javax.persistence.EntityManager} methods not present on repository base interfaces. + * Calls the corresponding method on the repository EntityManager. + * + * @param <E> The Entity type. + */ +public interface EntityManagerDelegate<E> +{ + /** + * See {@link javax.persistence.EntityManager#persist(Object)}. + */ + void persist(E entity); + + /** + * See {@link javax.persistence.EntityManager#merge(Object)}. + */ + E merge(E entity); + + /** + * See {@link javax.persistence.EntityManager#find(Class, Object, java.util.Map)}. + */ + E find(Object primaryKey, Map<String, Object> properties); + + /** + * See {@link javax.persistence.EntityManager#find(Class, Object, LockModeType)}. + */ + E find(Object primaryKey, LockModeType lockMode); + + /** + * See {@link javax.persistence.EntityManager#find(Class, Object, LockModeType, Map)}. + */ + E find(Object primaryKey, LockModeType lockMode, Map<String, Object> properties); + + /** + * See {@link javax.persistence.EntityManager#getReference(Class, Object)}. + */ + E getReference(Object primaryKey); + + /** + * See {@link javax.persistence.EntityManager#setFlushMode(FlushModeType)}. + */ + void setFlushMode(FlushModeType flushMode); + + /** + * See {@link javax.persistence.EntityManager#getFlushMode()}. + */ + FlushModeType getFlushMode(); + + /** + * See {@link javax.persistence.EntityManager#lock(Object, LockModeType)}. + */ + void lock(Object entity, LockModeType lockMode); + + /** + * See {@link javax.persistence.EntityManager#lock(Object, LockModeType, Map)}. + */ + void lock(Object entity, LockModeType lockMode, Map<String, Object> properties); + + /** + * See {@link javax.persistence.EntityManager#refresh(Object, Map)}. + */ + void refresh(E entity, Map<String, Object> properties); + + /** + * See {@link javax.persistence.EntityManager#refresh(Object, LockModeType)}. + */ + void refresh(E entity, LockModeType lockMode); + + /** + * See {@link javax.persistence.EntityManager#refresh(Object, LockModeType, Map)}. + */ + void refresh(E entity, LockModeType lockMode, Map<String, Object> properties); + + /** + * See {@link javax.persistence.EntityManager#clear()}. + */ + void clear(); + + /** + * See {@link javax.persistence.EntityManager#detach(Object)}. + */ + void detach(E entity); + + /** + * See {@link javax.persistence.EntityManager#contains(Object)}. + */ + boolean contains(E entity); + + /** + * See {@link javax.persistence.EntityManager#getLockMode(Object)}. + */ + LockModeType getLockMode(E entity); + + /** + * See {@link javax.persistence.EntityManager#setProperty(String, Object)}. + */ + void setProperty(String propertyName, Object value); + + /** + * See {@link javax.persistence.EntityManager#getProperties()}. + */ + Map<String, Object> getProperties(); + + /** + * See {@link javax.persistence.EntityManager#joinTransaction()}. + */ + void joinTransaction(); + + /** + * See {@link javax.persistence.EntityManager#unwrap(Class)}. + */ + <T> T unwrap(Class<T> cls); + + /** + * See {@link javax.persistence.EntityManager#getDelegate()}. + */ + Object getDelegate(); + + /** + * See {@link javax.persistence.EntityManager#close()}. + */ + void close(); + + /** + * See {@link javax.persistence.EntityManager#isOpen()}. + */ + boolean isOpen(); + + /** + * See {@link javax.persistence.EntityManager#getTransaction()}. + */ + EntityTransaction getTransaction(); + + /** + * See {@link javax.persistence.EntityManager#getEntityManagerFactory()}. + */ + EntityManagerFactory getEntityManagerFactory(); + + /** + * See {@link javax.persistence.EntityManager#getCriteriaBuilder()}. + */ + CriteriaBuilder getCriteriaBuilder(); + + /** + * See {@link javax.persistence.EntityManager#getMetamodel()}. + */ + Metamodel getMetamodel(); + +} http://git-wip-us.apache.org/repos/asf/deltaspike/blob/b0233a20/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerDelegateHandler.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerDelegateHandler.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerDelegateHandler.java new file mode 100644 index 0000000..902645b --- /dev/null +++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerDelegateHandler.java @@ -0,0 +1,216 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.deltaspike.data.impl.handler; + +import java.util.Map; + +import javax.inject.Inject; +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.EntityTransaction; +import javax.persistence.FlushModeType; +import javax.persistence.LockModeType; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.metamodel.Metamodel; + +import org.apache.deltaspike.data.api.EntityManagerDelegate; +import org.apache.deltaspike.data.spi.DelegateQueryHandler; +import org.apache.deltaspike.data.spi.QueryInvocationContext; + +@SuppressWarnings("unchecked") +public class EntityManagerDelegateHandler<E> implements EntityManagerDelegate<E>, DelegateQueryHandler +{ + + @Inject + private QueryInvocationContext context; + + @Override + public void persist(E entity) + { + entityManager().persist(entity); + } + + @Override + public E merge(E entity) + { + return entityManager().merge(entity); + } + + @Override + public E find(Object primaryKey, Map<String, Object> properties) + { + return (E) entityManager().find(context.getEntityClass(), primaryKey, properties); + } + + @Override + public E find(Object primaryKey, LockModeType lockMode) + { + return (E) entityManager().find(context.getEntityClass(), primaryKey, lockMode); + } + + @Override + public E find(Object primaryKey, LockModeType lockMode, Map<String, Object> properties) + { + return (E) entityManager().find(context.getEntityClass(), primaryKey, lockMode, properties); + } + + @Override + public E getReference(Object primaryKey) + { + return (E) entityManager().getReference(context.getEntityClass(), primaryKey); + } + + @Override + public void setFlushMode(FlushModeType flushMode) + { + entityManager().setFlushMode(flushMode); + } + + @Override + public FlushModeType getFlushMode() + { + return entityManager().getFlushMode(); + } + + @Override + public void lock(Object entity, LockModeType lockMode) + { + entityManager().lock(entity, lockMode); + } + + @Override + public void lock(Object entity, LockModeType lockMode, Map<String, Object> properties) + { + entityManager().lock(entity, lockMode, properties); + } + + @Override + public void refresh(E entity, Map<String, Object> properties) + { + entityManager().refresh(entity, properties); + } + + @Override + public void refresh(E entity, LockModeType lockMode) + { + entityManager().refresh(entity, lockMode); + } + + @Override + public void refresh(E entity, LockModeType lockMode, Map<String, Object> properties) + { + entityManager().refresh(entity, lockMode, properties); + } + + @Override + public void clear() + { + entityManager().clear(); + } + + @Override + public void detach(E entity) + { + entityManager().detach(entity); + } + + @Override + public boolean contains(E entity) + { + return entityManager().contains(entity); + } + + @Override + public LockModeType getLockMode(E entity) + { + return entityManager().getLockMode(entity); + } + + @Override + public void setProperty(String propertyName, Object value) + { + entityManager().setProperty(propertyName, value); + } + + @Override + public Map<String, Object> getProperties() + { + return entityManager().getProperties(); + } + + @Override + public void joinTransaction() + { + entityManager().joinTransaction(); + } + + @Override + public <T> T unwrap(Class<T> cls) + { + return entityManager().unwrap(cls); + } + + @Override + public Object getDelegate() + { + return entityManager().getDelegate(); + } + + @Override + public void close() + { + entityManager().close(); + } + + @Override + public boolean isOpen() + { + return entityManager().isOpen(); + } + + @Override + public EntityTransaction getTransaction() + { + return entityManager().getTransaction(); + } + + @Override + public EntityManagerFactory getEntityManagerFactory() + { + return entityManager().getEntityManagerFactory(); + } + + @Override + public CriteriaBuilder getCriteriaBuilder() + { + return entityManager().getCriteriaBuilder(); + } + + @Override + public Metamodel getMetamodel() + { + return entityManager().getMetamodel(); + } + + private EntityManager entityManager() + { + return context.getEntityManager(); + } + +} http://git-wip-us.apache.org/repos/asf/deltaspike/blob/b0233a20/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerDelegateHandlerTest.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerDelegateHandlerTest.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerDelegateHandlerTest.java new file mode 100644 index 0000000..cc91b8e --- /dev/null +++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityManagerDelegateHandlerTest.java @@ -0,0 +1,63 @@ +package org.apache.deltaspike.data.impl.handler; + +import static org.apache.deltaspike.data.test.util.TestDeployments.finalizeDeployment; +import static org.apache.deltaspike.data.test.util.TestDeployments.initDeployment; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +import javax.enterprise.inject.Produces; +import javax.inject.Inject; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +import org.apache.deltaspike.data.test.TransactionalTestCase; +import org.apache.deltaspike.data.test.domain.Simple; +import org.apache.deltaspike.data.test.service.ExtendedRepositoryInterface; +import org.apache.deltaspike.test.category.WebProfileCategory; +import org.jboss.arquillian.container.test.api.Deployment; +import org.jboss.shrinkwrap.api.Archive; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(WebProfileCategory.class) +public class EntityManagerDelegateHandlerTest extends TransactionalTestCase +{ + @Deployment + public static Archive<?> deployment() + { + return finalizeDeployment(EntityRepositoryHandlerTest.class, + initDeployment() + .addClasses(ExtendedRepositoryInterface.class) + .addPackage(Simple.class.getPackage())); + } + + @Inject + private ExtendedRepositoryInterface repository; + + @Produces + @PersistenceContext + private EntityManager entityManager; + + @Test + public void should_delete_detached_entity() { + // given + Simple simple = testData.createSimple("should_merge_entity"); + Long id = simple.getId(); + + // when + repository.detach(simple); + repository.remove(repository.merge(simple)); + + // then + assertNotNull(id); + Simple search = repository.findBy(id); + assertNull(search); + } + + @Override + protected EntityManager getEntityManager() + { + return entityManager; + } + +} http://git-wip-us.apache.org/repos/asf/deltaspike/blob/b0233a20/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerTest.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerTest.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerTest.java index 5f5d2a2..e0944b8 100644 --- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerTest.java +++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerTest.java @@ -80,7 +80,7 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_merge() throws Exception { // given - Simple simple = createSimple("testMerge"); + Simple simple = testData.createSimple("testMerge"); Long id = simple.getId(); // when @@ -115,7 +115,7 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase { // given final String name = "testRefresh"; - Simple simple = createSimple(name); + Simple simple = testData.createSimple(name); // when simple.setName("override"); @@ -129,7 +129,7 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_find_by_pk() throws Exception { // given - Simple simple = createSimple("testFindByPk"); + Simple simple = testData.createSimple("testFindByPk"); // when Simple find = repo.findBy(simple.getId()); @@ -143,7 +143,7 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_find_by_example() throws Exception { // given - Simple simple = createSimple("testFindByExample"); + Simple simple = testData.createSimple("testFindByExample"); // when List<Simple> find = repo.findBy(simple, Simple_.name); @@ -159,8 +159,8 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_find_by_example_with_start_and_max() throws Exception { // given - Simple simple = createSimple("testFindByExample1", Integer.valueOf(10)); - createSimple("testFindByExample1", Integer.valueOf(10)); + Simple simple = testData.createSimple("testFindByExample1", Integer.valueOf(10)); + testData.createSimple("testFindByExample1", Integer.valueOf(10)); // when List<Simple> find = repo.findBy(simple, 0, 1, Simple_.name, Simple_.counter); @@ -177,7 +177,7 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_find_by_example_with_no_attributes() throws Exception { // given - Simple simple = createSimple("testFindByExample"); + Simple simple = testData.createSimple("testFindByExample"); SingularAttribute<Simple, ?>[] attributes = new SingularAttribute[] {}; // when @@ -193,8 +193,8 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_find_all() { // given - createSimple("testFindAll1"); - createSimple("testFindAll2"); + testData.createSimple("testFindAll1"); + testData.createSimple("testFindAll2"); // when List<Simple> find = repo.findAll(); @@ -207,8 +207,8 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_find_by_all_with_start_and_max() { // given - createSimple("testFindAll1"); - createSimple("testFindAll2"); + testData.createSimple("testFindAll1"); + testData.createSimple("testFindAll2"); // when List<Simple> find = repo.findAll(0, 1); @@ -222,8 +222,8 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_find_by_like() { // given - createSimple("testFindAll1"); - createSimple("testFindAll2"); + testData.createSimple("testFindAll1"); + testData.createSimple("testFindAll2"); Simple example = new Simple("test"); // when @@ -238,8 +238,8 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_find_by_like_with_start_and_max() { // given - createSimple("testFindAll1"); - createSimple("testFindAll2"); + testData.createSimple("testFindAll1"); + testData.createSimple("testFindAll2"); Simple example = new Simple("test"); // when @@ -254,8 +254,8 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_find_by_like_non_string() { // given - createSimple("testFindAll1", 1); - createSimple("testFindAll2", 2); + testData.createSimple("testFindAll1", 1); + testData.createSimple("testFindAll2", 2); Simple example = new Simple("test"); example.setCounter(1); @@ -270,7 +270,7 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_count_all() { // given - createSimple("testCountAll"); + testData.createSimple("testCountAll"); // when Long result = repo.count(); @@ -284,8 +284,8 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_count_with_attributes() { // given - Simple simple = createSimple("testFindAll1", Integer.valueOf(55)); - createSimple("testFindAll2", Integer.valueOf(55)); + Simple simple = testData.createSimple("testFindAll1", Integer.valueOf(55)); + testData.createSimple("testFindAll2", Integer.valueOf(55)); // when Long result = repo.count(simple, Simple_.name, Simple_.counter); @@ -299,8 +299,8 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_count_with_no_attributes() { // given - Simple simple = createSimple("testFindAll1"); - createSimple("testFindAll2"); + Simple simple = testData.createSimple("testFindAll1"); + testData.createSimple("testFindAll2"); SingularAttribute<Simple, Object>[] attributes = new SingularAttribute[] {}; // when @@ -315,8 +315,8 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_count_by_like() { // given - createSimple("testFindAll1"); - createSimple("testFindAll2"); + testData.createSimple("testFindAll1"); + testData.createSimple("testFindAll2"); Simple example = new Simple("test"); // when @@ -330,7 +330,7 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase public void should_remove() { // given - Simple simple = createSimple("testRemove"); + Simple simple = testData.createSimple("testRemove"); // when repo.remove(simple); @@ -347,18 +347,4 @@ public class EntityRepositoryHandlerTest extends TransactionalTestCase return entityManager; } - private Simple createSimple(String name) - { - return createSimple(name, null); - } - - private Simple createSimple(String name, Integer counter) - { - Simple result = new Simple(name); - result.setCounter(counter); - entityManager.persist(result); - entityManager.flush(); - return result; - } - } http://git-wip-us.apache.org/repos/asf/deltaspike/blob/b0233a20/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/TransactionalTestCase.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/TransactionalTestCase.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/TransactionalTestCase.java index 0d90398..184a9e9 100644 --- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/TransactionalTestCase.java +++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/TransactionalTestCase.java @@ -22,6 +22,7 @@ import javax.annotation.Resource; import javax.persistence.EntityManager; import javax.transaction.UserTransaction; +import org.apache.deltaspike.data.test.util.TestData; import org.jboss.arquillian.junit.Arquillian; import org.junit.After; import org.junit.Before; @@ -33,6 +34,8 @@ public abstract class TransactionalTestCase @Resource protected UserTransaction ut; + + protected TestData testData; @Before public void startTransaction() throws Exception @@ -41,6 +44,12 @@ public abstract class TransactionalTestCase // Required by OpenJPA getEntityManager().getMetamodel(); } + + @Before + public void initTestData() + { + testData = new TestData(getEntityManager()); + } @After public void rollbackTransaction() throws Exception http://git-wip-us.apache.org/repos/asf/deltaspike/blob/b0233a20/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/ExtendedRepositoryInterface.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/ExtendedRepositoryInterface.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/ExtendedRepositoryInterface.java index 1445d33..7aa7de9 100755 --- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/ExtendedRepositoryInterface.java +++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/ExtendedRepositoryInterface.java @@ -20,6 +20,7 @@ package org.apache.deltaspike.data.test.service; import static javax.persistence.LockModeType.PESSIMISTIC_READ; +import org.apache.deltaspike.data.api.EntityManagerDelegate; import org.apache.deltaspike.data.api.EntityRepository; import org.apache.deltaspike.data.api.Modifying; import org.apache.deltaspike.data.api.Query; @@ -27,7 +28,7 @@ import org.apache.deltaspike.data.api.Repository; import org.apache.deltaspike.data.test.domain.Simple; @Repository -public interface ExtendedRepositoryInterface extends EntityRepository<Simple, Long> +public interface ExtendedRepositoryInterface extends EntityRepository<Simple, Long>, EntityManagerDelegate<Simple> { @Query(lock = PESSIMISTIC_READ) http://git-wip-us.apache.org/repos/asf/deltaspike/blob/b0233a20/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestData.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestData.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestData.java new file mode 100644 index 0000000..0ed860f --- /dev/null +++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestData.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.deltaspike.data.test.util; + +import javax.persistence.EntityManager; + +import org.apache.deltaspike.data.test.domain.Simple; + +public class TestData +{ + + private EntityManager entityManager; + + public TestData(EntityManager entityManager) + { + this.entityManager = entityManager; + } + + public Simple createSimple(String name) + { + return createSimple(name, null); + } + + public Simple createSimple(String name, Integer counter) + { + Simple result = new Simple(name); + result.setCounter(counter); + entityManager.persist(result); + entityManager.flush(); + return result; + } +} http://git-wip-us.apache.org/repos/asf/deltaspike/blob/b0233a20/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestDeployments.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestDeployments.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestDeployments.java index 98ee9e3..68a65c1 100755 --- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestDeployments.java +++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestDeployments.java @@ -22,6 +22,7 @@ import java.net.URL; import org.apache.deltaspike.data.api.AbstractEntityRepository; import org.apache.deltaspike.data.api.EntityManagerConfig; +import org.apache.deltaspike.data.api.EntityManagerDelegate; import org.apache.deltaspike.data.api.EntityManagerResolver; import org.apache.deltaspike.data.api.EntityRepository; import org.apache.deltaspike.data.api.FirstResult; @@ -103,7 +104,7 @@ public abstract class TestDeployments WebArchive archive = ShrinkWrap .create(WebArchive.class, "test.war") .addAsLibrary(createApiArchive()) - .addClasses(WebProfileCategory.class, TransactionalTestCase.class) + .addClasses(WebProfileCategory.class, TransactionalTestCase.class, TestData.class) .addClasses(RepositoryExtension.class, RepositoryDefinitionException.class) .addPackages(true, TEST_FILTER, createImplPackages()) .addPackages(true, AuditedEntity.class.getPackage()) @@ -156,7 +157,7 @@ public abstract class TestDeployments FirstResult.class, MaxResults.class, Modifying.class, Query.class, QueryParam.class, QueryResult.class, EntityManagerConfig.class, EntityManagerResolver.class, SingleResultType.class, - QueryInvocationException.class) + QueryInvocationException.class, EntityManagerDelegate.class) .addClasses(Criteria.class, QuerySelection.class, CriteriaSupport.class) .addClasses(CreatedOn.class, CurrentUser.class, ModifiedBy.class, ModifiedOn.class) .addClasses(MappingConfig.class, QueryInOutMapper.class)
