You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by hw...@apache.org on 2015/12/20 13:55:30 UTC
deltaspike git commit: DELTASPIKE-1007 transactional tests for
abstract repositories
Repository: deltaspike
Updated Branches:
refs/heads/master 5886504f9 -> e55bca67d
DELTASPIKE-1007 transactional tests for abstract repositories
added tests for @TransactionScoped beans
Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/e55bca67
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/e55bca67
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/e55bca67
Branch: refs/heads/master
Commit: e55bca67dce242427f531d642e61c769b67613c8
Parents: 5886504
Author: Harald Wellmann <hw...@apache.org>
Authored: Sun Dec 20 13:54:35 2015 +0100
Committer: Harald Wellmann <hw...@apache.org>
Committed: Sun Dec 20 13:55:02 2015 +0100
----------------------------------------------------------------------
.../data/test/ee7/domain/EmbeddedSimple.java | 5 +-
.../deltaspike/data/test/ee7/domain/Simple.java | 3 +-
.../data/test/ee7/domain/SuperSimple.java | 6 +-
...ltaSpikeTransactionalRepositoryAbstract.java | 40 +++
...taSpikeTransactionalRepositoryInterface.java | 3 -
.../JtaTransactionalRepositoryAbstract.java | 96 +++++++
.../JtaTransactionalRepositoryInterface.java | 3 +-
.../data/test/ee7/service/SimpleClientApp.java | 29 +++
.../data/test/ee7/service/SimpleClientDep.java | 29 +++
.../data/test/ee7/service/SimpleClientTx.java | 30 +++
.../data/test/ee7/service/SimpleHolderApp.java | 27 ++
.../data/test/ee7/service/SimpleHolderDep.java | 27 ++
.../data/test/ee7/service/SimpleHolderTx.java | 25 ++
...pikeTransactionalRepositoryAbstractTest.java | 125 +++++++++
...ikeTransactionalRepositoryInterfaceTest.java | 125 +++++++++
.../ee7/tx/DeltaSpikeTransactionalTest.java | 138 ----------
.../JtaTransactionalRepositoryAbstractTest.java | 255 +++++++++++++++++++
...JtaTransactionalRepositoryInterfaceTest.java | 138 ++++++++++
.../data/test/ee7/tx/JtaTransactionalTest.java | 139 ----------
19 files changed, 958 insertions(+), 285 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/EmbeddedSimple.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/EmbeddedSimple.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/EmbeddedSimple.java
index 516f245..277184e 100644
--- a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/EmbeddedSimple.java
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/EmbeddedSimple.java
@@ -18,11 +18,14 @@
*/
package org.apache.deltaspike.data.test.ee7.domain;
+import java.io.Serializable;
+
import javax.persistence.Embeddable;
@Embeddable
-public class EmbeddedSimple
+public class EmbeddedSimple implements Serializable
{
+ private static final long serialVersionUID = 1L;
private String embedd;
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/Simple.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/Simple.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/Simple.java
index 44cf969..96beace 100755
--- a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/Simple.java
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/Simple.java
@@ -41,11 +41,12 @@ import javax.persistence.TemporalType;
@Table(name = "SIMPLE_TABLE")
public class Simple extends SuperSimple
{
-
public static final String BY_NAME_LIKE = "simple.byNameLike";
public static final String BY_NAME_ENABLED = "simple.byNameAndEnabled";
public static final String BY_ID = "simple.byId";
+ private static final long serialVersionUID = 1L;
+
@Id
@GeneratedValue
private Long id;
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/SuperSimple.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/SuperSimple.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/SuperSimple.java
index 10af87b..fae2038 100644
--- a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/SuperSimple.java
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/domain/SuperSimple.java
@@ -18,11 +18,15 @@
*/
package org.apache.deltaspike.data.test.ee7.domain;
+import java.io.Serializable;
+
import javax.persistence.MappedSuperclass;
@MappedSuperclass
-public class SuperSimple
+public class SuperSimple implements Serializable
{
+ private static final long serialVersionUID = 1L;
+
private String superName;
public String getSuperName()
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/DeltaSpikeTransactionalRepositoryAbstract.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/DeltaSpikeTransactionalRepositoryAbstract.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/DeltaSpikeTransactionalRepositoryAbstract.java
new file mode 100644
index 0000000..56e8b56
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/DeltaSpikeTransactionalRepositoryAbstract.java
@@ -0,0 +1,40 @@
+/*
+ * 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.ee7.service;
+
+import static javax.persistence.LockModeType.PESSIMISTIC_READ;
+
+import org.apache.deltaspike.data.api.AbstractEntityRepository;
+import org.apache.deltaspike.data.api.Modifying;
+import org.apache.deltaspike.data.api.Query;
+import org.apache.deltaspike.data.api.Repository;
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+
+@Repository
+@org.apache.deltaspike.jpa.api.transaction.Transactional
+public abstract class DeltaSpikeTransactionalRepositoryAbstract extends AbstractEntityRepository<Simple, Long>
+{
+
+ @Query(lock = PESSIMISTIC_READ)
+ public abstract Simple findByName(String name);
+
+ @Modifying @Query("delete from Simple")
+ public abstract int deleteAll();
+
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/DeltaSpikeTransactionalRepositoryInterface.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/DeltaSpikeTransactionalRepositoryInterface.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/DeltaSpikeTransactionalRepositoryInterface.java
index 32f642a..3e5722e 100644
--- a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/DeltaSpikeTransactionalRepositoryInterface.java
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/DeltaSpikeTransactionalRepositoryInterface.java
@@ -35,9 +35,6 @@ public interface DeltaSpikeTransactionalRepositoryInterface extends EntityReposi
@Query(lock = PESSIMISTIC_READ)
Simple findByName(String name);
- @Query(named = Simple.BY_NAME_LIKE)
- Simple findByNameNoLock(String name);
-
@Modifying @Query("delete from Simple")
int deleteAll();
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/JtaTransactionalRepositoryAbstract.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/JtaTransactionalRepositoryAbstract.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/JtaTransactionalRepositoryAbstract.java
new file mode 100644
index 0000000..25483fb
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/JtaTransactionalRepositoryAbstract.java
@@ -0,0 +1,96 @@
+/*
+ * 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.ee7.service;
+
+import static javax.persistence.LockModeType.PESSIMISTIC_READ;
+
+import javax.inject.Inject;
+
+import org.apache.deltaspike.data.api.AbstractEntityRepository;
+import org.apache.deltaspike.data.api.Modifying;
+import org.apache.deltaspike.data.api.Query;
+import org.apache.deltaspike.data.api.Repository;
+import org.apache.deltaspike.data.api.SingleResultType;
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+
+@Repository
+@javax.transaction.Transactional
+public abstract class JtaTransactionalRepositoryAbstract
+ extends AbstractEntityRepository<Simple, Long>
+{
+ @Inject
+ private SimpleHolderTx simpleHolderTx;
+
+ @Inject
+ private SimpleHolderApp simpleHolderApp;
+
+ @Inject
+ private SimpleHolderDep simpleHolderDep;
+
+ @Query(lock = PESSIMISTIC_READ, singleResult = SingleResultType.OPTIONAL)
+ public abstract Simple findOptionalByName(String name);
+
+ @Modifying @Query("delete from Simple")
+ public abstract int deleteAll();
+
+ public Simple saveOnMatchTx(Simple simple)
+ {
+ if (simpleHolderTx.getSimple() == null)
+ {
+ return null;
+ }
+
+ if (simple.getName().equals(simpleHolderTx.getSimple().getName()))
+ {
+ return save(simple);
+ }
+
+ return null;
+ }
+
+ public Simple saveOnMatchApp(Simple simple)
+ {
+ if (simpleHolderApp.getSimple() == null)
+ {
+ return null;
+ }
+
+ if (simple.getName().equals(simpleHolderApp.getSimple().getName()))
+ {
+ return save(simple);
+ }
+
+ return null;
+ }
+
+ public Simple saveOnMatchDep(Simple simple)
+ {
+ if (simpleHolderDep.getSimple() == null)
+ {
+ return null;
+ }
+
+ if (simple.getName().equals(simpleHolderDep.getSimple().getName()))
+ {
+ return save(simple);
+ }
+
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/JtaTransactionalRepositoryInterface.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/JtaTransactionalRepositoryInterface.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/JtaTransactionalRepositoryInterface.java
index e28a011..4b86559 100755
--- a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/JtaTransactionalRepositoryInterface.java
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/JtaTransactionalRepositoryInterface.java
@@ -20,7 +20,6 @@ package org.apache.deltaspike.data.test.ee7.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;
@@ -29,7 +28,7 @@ import org.apache.deltaspike.data.test.ee7.domain.Simple;
@Repository
@javax.transaction.Transactional
-public interface JtaTransactionalRepositoryInterface extends EntityRepository<Simple, Long>, EntityManagerDelegate<Simple>
+public interface JtaTransactionalRepositoryInterface extends EntityRepository<Simple, Long>
{
@Query(lock = PESSIMISTIC_READ)
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientApp.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientApp.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientApp.java
new file mode 100644
index 0000000..bd27755
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientApp.java
@@ -0,0 +1,29 @@
+package org.apache.deltaspike.data.test.ee7.service;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+
+@ApplicationScoped
+@javax.transaction.Transactional
+public class SimpleClientApp
+{
+ @Inject
+ private SimpleHolderApp simpleHolder;
+
+ @Inject
+ private JtaTransactionalRepositoryAbstract repo;
+
+ public Simple getSimple()
+ {
+ return simpleHolder.getSimple();
+ }
+
+ public Simple createSimple(String name)
+ {
+ Simple simple = new Simple(name);
+ simpleHolder.setSimple(simple);
+ return repo.saveOnMatchApp(simple);
+ }
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientDep.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientDep.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientDep.java
new file mode 100644
index 0000000..7313a5d
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientDep.java
@@ -0,0 +1,29 @@
+package org.apache.deltaspike.data.test.ee7.service;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+
+@ApplicationScoped
+@javax.transaction.Transactional
+public class SimpleClientDep
+{
+ @Inject
+ private SimpleHolderDep simpleHolder;
+
+ @Inject
+ private JtaTransactionalRepositoryAbstract repo;
+
+ public Simple getSimple()
+ {
+ return simpleHolder.getSimple();
+ }
+
+ public Simple createSimple(String name)
+ {
+ Simple simple = new Simple(name);
+ simpleHolder.setSimple(simple);
+ return repo.saveOnMatchDep(simple);
+ }
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientTx.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientTx.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientTx.java
new file mode 100644
index 0000000..43141c6
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleClientTx.java
@@ -0,0 +1,30 @@
+package org.apache.deltaspike.data.test.ee7.service;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+
+@ApplicationScoped
+@javax.transaction.Transactional
+public class SimpleClientTx
+{
+ @Inject
+ private SimpleHolderTx simpleHolder;
+
+ @Inject
+ private JtaTransactionalRepositoryAbstract repo;
+
+ public Simple getSimple()
+ {
+ return simpleHolder.getSimple();
+ }
+
+ public Simple createSimple(String name)
+ {
+ Simple simple = new Simple(name);
+ simpleHolder.setSimple(simple);
+ return repo.saveOnMatchTx(simple);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderApp.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderApp.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderApp.java
new file mode 100644
index 0000000..b2e20f4
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderApp.java
@@ -0,0 +1,27 @@
+package org.apache.deltaspike.data.test.ee7.service;
+
+import java.io.Serializable;
+
+import javax.enterprise.context.ApplicationScoped;
+
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+
+@ApplicationScoped
+public class SimpleHolderApp implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private Simple simple;
+
+
+ public Simple getSimple()
+ {
+ return simple;
+ }
+
+
+ public void setSimple(Simple simple)
+ {
+ this.simple = simple;
+ }
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderDep.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderDep.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderDep.java
new file mode 100644
index 0000000..9c3292b
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderDep.java
@@ -0,0 +1,27 @@
+package org.apache.deltaspike.data.test.ee7.service;
+
+import java.io.Serializable;
+
+import javax.enterprise.context.Dependent;
+
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+
+@Dependent
+public class SimpleHolderDep implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private Simple simple;
+
+
+ public Simple getSimple()
+ {
+ return simple;
+ }
+
+
+ public void setSimple(Simple simple)
+ {
+ this.simple = simple;
+ }
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderTx.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderTx.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderTx.java
new file mode 100644
index 0000000..7c4696d
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/service/SimpleHolderTx.java
@@ -0,0 +1,25 @@
+package org.apache.deltaspike.data.test.ee7.service;
+
+import java.io.Serializable;
+
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+
+@javax.transaction.TransactionScoped
+public class SimpleHolderTx implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private Simple simple;
+
+
+ public Simple getSimple()
+ {
+ return simple;
+ }
+
+
+ public void setSimple(Simple simple)
+ {
+ this.simple = simple;
+ }
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalRepositoryAbstractTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalRepositoryAbstractTest.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalRepositoryAbstractTest.java
new file mode 100644
index 0000000..4cb9ae3
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalRepositoryAbstractTest.java
@@ -0,0 +1,125 @@
+/*
+ * 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.ee7.tx;
+
+import static org.apache.deltaspike.data.test.ee7.util.TestDeployments.initDeployment;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+import org.apache.deltaspike.data.test.ee7.service.DeltaSpikeTransactionalRepositoryAbstract;
+import org.apache.deltaspike.test.category.WebEE7ProfileCategory;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.junit.InSequence;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+
+@Category(WebEE7ProfileCategory.class)
+@RunWith(Arquillian.class)
+public class DeltaSpikeTransactionalRepositoryAbstractTest
+{
+
+ public static String DS_PROPERTIES_WITH_ENV_AWARE_TX_STRATEGY
+ = "globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.TransactionStrategy="
+ + "org.apache.deltaspike.jpa.impl.transaction.EnvironmentAwareTransactionStrategy";
+
+ private static final String NAME = "should_run_in_transaction";
+
+ @Deployment
+ public static Archive<?> deployment()
+ {
+ return initDeployment()
+ .addClass(DeltaSpikeTransactionalRepositoryAbstract.class)
+ .addClass(TransactionalQueryRunnerWrapper.class)
+ .addPackage(Simple.class.getPackage())
+ .addAsWebInfResource(new StringAsset(DS_PROPERTIES_WITH_ENV_AWARE_TX_STRATEGY),
+ "classes/META-INF/apache-deltaspike.properties");
+ }
+
+ @Inject
+ private DeltaSpikeTransactionalRepositoryAbstract repository;
+
+ @Produces
+ @PersistenceContext
+ private EntityManager entityManager;
+
+ @Inject
+ private TransactionalQueryRunnerWrapper wrapper;
+
+ @Test
+ @InSequence(1)
+ public void should_run_modifying_in_transaction() throws Exception
+ {
+ // when
+ repository.deleteAll();
+
+ // then
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(2)
+ public void should_save_in_transaction() throws Exception
+ {
+ // given
+ Simple simple = new Simple(NAME);
+
+ // when
+ simple = repository.save(simple);
+
+ // then
+ assertNotNull(simple.getId());
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(3)
+ public void should_find_with_lockmode_in_transaction() throws Exception
+ {
+ // when
+ Simple simple = repository.findByName(NAME);
+
+ // then
+ assertNotNull(simple);
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(10)
+ public void should_cleanup() throws Exception
+ {
+ repository.deleteAll();
+ }
+
+ @Before
+ public void init()
+ {
+ wrapper.reset();
+ }
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalRepositoryInterfaceTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalRepositoryInterfaceTest.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalRepositoryInterfaceTest.java
new file mode 100644
index 0000000..3ba7aec
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalRepositoryInterfaceTest.java
@@ -0,0 +1,125 @@
+/*
+ * 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.ee7.tx;
+
+import static org.apache.deltaspike.data.test.ee7.util.TestDeployments.initDeployment;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+import org.apache.deltaspike.data.test.ee7.service.DeltaSpikeTransactionalRepositoryInterface;
+import org.apache.deltaspike.test.category.WebEE7ProfileCategory;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.junit.InSequence;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+
+@Category(WebEE7ProfileCategory.class)
+@RunWith(Arquillian.class)
+public class DeltaSpikeTransactionalRepositoryInterfaceTest
+{
+
+ public static String DS_PROPERTIES_WITH_ENV_AWARE_TX_STRATEGY
+ = "globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.TransactionStrategy="
+ + "org.apache.deltaspike.jpa.impl.transaction.EnvironmentAwareTransactionStrategy";
+
+ private static final String NAME = "should_run_in_transaction";
+
+ @Deployment
+ public static Archive<?> deployment()
+ {
+ return initDeployment()
+ .addClass(DeltaSpikeTransactionalRepositoryInterface.class)
+ .addClass(TransactionalQueryRunnerWrapper.class)
+ .addPackage(Simple.class.getPackage())
+ .addAsWebInfResource(new StringAsset(DS_PROPERTIES_WITH_ENV_AWARE_TX_STRATEGY),
+ "classes/META-INF/apache-deltaspike.properties");
+ }
+
+ @Inject
+ private DeltaSpikeTransactionalRepositoryInterface repository;
+
+ @Produces
+ @PersistenceContext
+ private EntityManager entityManager;
+
+ @Inject
+ private TransactionalQueryRunnerWrapper wrapper;
+
+ @Test
+ @InSequence(1)
+ public void should_run_modifying_in_transaction() throws Exception
+ {
+ // when
+ repository.deleteAll();
+
+ // then
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(2)
+ public void should_save_in_transaction() throws Exception
+ {
+ // given
+ Simple simple = new Simple(NAME);
+
+ // when
+ simple = repository.save(simple);
+
+ // then
+ assertNotNull(simple.getId());
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(3)
+ public void should_find_with_lockmode_in_transaction() throws Exception
+ {
+ // when
+ Simple simple = repository.findByName(NAME);
+
+ // then
+ assertNotNull(simple);
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(10)
+ public void should_cleanup() throws Exception
+ {
+ repository.deleteAll();
+ }
+
+ @Before
+ public void init()
+ {
+ wrapper.reset();
+ }
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalTest.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalTest.java
deleted file mode 100644
index 18b0817..0000000
--- a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/DeltaSpikeTransactionalTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * 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.ee7.tx;
-
-import static org.apache.deltaspike.data.test.ee7.util.TestDeployments.initDeployment;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import javax.enterprise.inject.Produces;
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-
-import org.apache.deltaspike.data.test.ee7.domain.Simple;
-import org.apache.deltaspike.data.test.ee7.service.DeltaSpikeTransactionalRepositoryInterface;
-import org.apache.deltaspike.test.category.WebEE7ProfileCategory;
-import org.jboss.arquillian.container.test.api.Deployment;
-import org.jboss.arquillian.junit.Arquillian;
-import org.jboss.arquillian.junit.InSequence;
-import org.jboss.shrinkwrap.api.Archive;
-import org.jboss.shrinkwrap.api.asset.StringAsset;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-
-@Category(WebEE7ProfileCategory.class)
-@RunWith(Arquillian.class)
-public class DeltaSpikeTransactionalTest
-{
-
- public static String DS_PROPERTIES_WITH_ENV_AWARE_TX_STRATEGY
- = "globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.TransactionStrategy="
- + "org.apache.deltaspike.jpa.impl.transaction.EnvironmentAwareTransactionStrategy";
-
- private static final String NAME = "should_run_in_transaction";
-
- @Deployment
- public static Archive<?> deployment()
- {
- return initDeployment()
- .addClasses(DeltaSpikeTransactionalRepositoryInterface.class)
- .addClass(TransactionalQueryRunnerWrapper.class)
- .addPackage(Simple.class.getPackage())
- .addAsWebInfResource(new StringAsset(DS_PROPERTIES_WITH_ENV_AWARE_TX_STRATEGY),
- "classes/META-INF/apache-deltaspike.properties");
- }
-
- @Inject
- private DeltaSpikeTransactionalRepositoryInterface repository;
-
- @Produces
- @PersistenceContext
- private EntityManager entityManager;
-
- @Inject
- private TransactionalQueryRunnerWrapper wrapper;
-
- @Test
- @InSequence(1)
- public void should_run_modifying_in_transaction() throws Exception
- {
- // when
- repository.deleteAll();
-
- // then
- assertTrue(wrapper.isRunInTx());
- }
-
- @Test
- @InSequence(2)
- public void should_save_in_transaction() throws Exception
- {
- // given
- Simple simple = new Simple(NAME);
-
- // when
- simple = repository.save(simple);
-
- // then
- assertNotNull(simple.getId());
- assertTrue(wrapper.isRunInTx());
- }
-
- @Test
- @InSequence(3)
- public void should_find_with_lockmode_in_transaction() throws Exception
- {
- // when
- Simple simple = repository.findByName(NAME);
-
- // then
- assertNotNull(simple);
- assertTrue(wrapper.isRunInTx());
- }
-
- @Test
- @InSequence(4)
- public void should_find_no_lock_without_transaction() throws Exception
- {
- // when
- Simple simple = repository.findByNameNoLock(NAME);
-
- // then
- assertNotNull(simple);
- assertTrue(wrapper.isRunInNonTx());
- }
-
- @Test
- @InSequence(10)
- public void should_cleanup() throws Exception
- {
- repository.deleteAll();
- }
-
- @Before
- public void init()
- {
- wrapper.reset();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalRepositoryAbstractTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalRepositoryAbstractTest.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalRepositoryAbstractTest.java
new file mode 100644
index 0000000..41de5f9
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalRepositoryAbstractTest.java
@@ -0,0 +1,255 @@
+/*
+ * 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.ee7.tx;
+
+import static org.apache.deltaspike.data.test.ee7.util.TestDeployments.initDeployment;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+import org.apache.deltaspike.data.test.ee7.service.JtaTransactionalRepositoryAbstract;
+import org.apache.deltaspike.data.test.ee7.service.SimpleClientApp;
+import org.apache.deltaspike.data.test.ee7.service.SimpleClientDep;
+import org.apache.deltaspike.data.test.ee7.service.SimpleClientTx;
+import org.apache.deltaspike.test.category.WebEE7ProfileCategory;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.junit.InSequence;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests transactional repositories with the {@code javax.transaction.Transactional} interceptor
+ * binding and {@code javax.transaction.TransactionScoped} beans.
+ * <p>
+ * The test uses groups of beans with identical collaboration, only differing by the scope one bean
+ * per group ({@code SimpleHolderTx} vs. {@code SimpleHolderApp} vs. {@code SimpleHolderDep} ), to
+ * verify that transaction scoped beans actually do behave in a different way, compared to
+ * application scoped or dependent beans.
+ */
+@Category(WebEE7ProfileCategory.class)
+@RunWith(Arquillian.class)
+public class JtaTransactionalRepositoryAbstractTest
+{
+
+ public static String DS_PROPERTIES_WITH_CMT_STRATEGY = "globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.TransactionStrategy="
+ + "org.apache.deltaspike.jpa.impl.transaction.ContainerManagedTransactionStrategy";
+
+ private static final String NAME = "should_run_in_transaction";
+
+ @Deployment
+ public static Archive<?> deployment()
+ {
+ return initDeployment()
+ .addPackage(JtaTransactionalRepositoryAbstract.class.getPackage())
+ .addClass(TransactionalQueryRunnerWrapper.class)
+ .addPackage(Simple.class.getPackage())
+ .addAsWebInfResource(new StringAsset(DS_PROPERTIES_WITH_CMT_STRATEGY),
+ "classes/META-INF/apache-deltaspike.properties");
+
+ }
+
+ @Inject
+ private JtaTransactionalRepositoryAbstract repository;
+
+ @Produces
+ @PersistenceContext
+ private EntityManager entityManager;
+
+ @Inject
+ private TransactionalQueryRunnerWrapper wrapper;
+
+ @Inject
+ private SimpleClientTx simpleClientTx;
+
+ @Inject
+ private SimpleClientApp simpleClientApp;
+
+ @Inject
+ private SimpleClientDep simpleClientDep;
+
+ @Test
+ @InSequence(1)
+ public void should_run_modifying_in_transaction() throws Exception
+ {
+ // when
+ repository.deleteAll();
+
+ // then
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(2)
+ public void should_save_in_transaction() throws Exception
+ {
+ // given
+ Simple simple = new Simple(NAME);
+
+ // when
+ simple = repository.save(simple);
+
+ // then
+ assertNotNull(simple.getId());
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(3)
+ public void should_find_with_lockmode_in_transaction() throws Exception
+ {
+ // when
+ Simple simple = repository.findOptionalByName(NAME);
+
+ // then
+ assertNotNull(simple);
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(10)
+ public void tx_scoped_bean_should_be_empty_before_tx() throws Exception
+ {
+ // when
+ Simple simple = simpleClientTx.getSimple();
+
+ // then
+ assertNull(simple);
+ }
+
+ @Test
+ @InSequence(11)
+ public void should_save_when_tx_scoped_bean_is_found() throws Exception
+ {
+ // when
+ Simple simple = simpleClientTx.createSimple("transaction scoped");
+ Simple found = repository.findOptionalByName("transaction scoped");
+
+ // then
+ assertNotNull(simple);
+ assertNotNull(found);
+ assertEquals("transaction scoped", found.getName());
+ }
+
+ @Test
+ @InSequence(12)
+ public void tx_scoped_bean_should_be_empty_after_tx() throws Exception
+ {
+ // when
+ Simple simple = simpleClientTx.getSimple();
+
+ // then
+ assertNull(simple);
+ }
+
+ @Test
+ @InSequence(20)
+ public void app_scoped_bean_should_be_empty_before_tx() throws Exception
+ {
+ // when
+ Simple simple = simpleClientApp.getSimple();
+
+ // then
+ assertNull(simple);
+ }
+
+ @Test
+ @InSequence(21)
+ public void should_save_when_app_scoped_bean_is_found() throws Exception
+ {
+ // when
+ Simple simple = simpleClientApp.createSimple("application scoped");
+ Simple found = repository.findOptionalByName("application scoped");
+
+ // then
+ assertNotNull(simple);
+ assertNotNull(found);
+ assertEquals("application scoped", found.getName());
+ }
+
+ @Test
+ @InSequence(22)
+ public void app_scoped_bean_should_not_be_empty_after_tx() throws Exception
+ {
+ // when
+ Simple simple = simpleClientApp.getSimple();
+
+ // then
+ assertNotNull(simple);
+ }
+
+ @Test
+ @InSequence(30)
+ public void dep_scoped_bean_should_be_empty_before_tx() throws Exception
+ {
+ // when
+ Simple simple = simpleClientDep.getSimple();
+
+ // then
+ assertNull(simple);
+ }
+
+ @Test
+ @InSequence(31)
+ public void should_save_when_dep_scoped_bean_is_found() throws Exception
+ {
+ // when
+ Simple simple = simpleClientDep.createSimple("dependent");
+ Simple found = repository.findOptionalByName("dependent");
+
+ // then
+ assertNull(simple);
+ assertNull(found);
+ }
+
+ @Test
+ @InSequence(32)
+ public void dep_scoped_bean_should_be_empty_after_tx() throws Exception
+ {
+ // when
+ Simple simple = simpleClientDep.getSimple();
+
+ // then
+ assertNotNull(simple);
+ }
+
+ @Test
+ @InSequence(100)
+ public void should_cleanup() throws Exception
+ {
+ repository.deleteAll();
+ }
+
+ @Before
+ public void init()
+ {
+ wrapper.reset();
+ }
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalRepositoryInterfaceTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalRepositoryInterfaceTest.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalRepositoryInterfaceTest.java
new file mode 100644
index 0000000..caa255a
--- /dev/null
+++ b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalRepositoryInterfaceTest.java
@@ -0,0 +1,138 @@
+/*
+ * 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.ee7.tx;
+
+import static org.apache.deltaspike.data.test.ee7.util.TestDeployments.initDeployment;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.deltaspike.data.test.ee7.domain.Simple;
+import org.apache.deltaspike.data.test.ee7.service.JtaTransactionalRepositoryInterface;
+import org.apache.deltaspike.test.category.WebEE7ProfileCategory;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.junit.InSequence;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+
+@Category(WebEE7ProfileCategory.class)
+@RunWith(Arquillian.class)
+public class JtaTransactionalRepositoryInterfaceTest
+{
+
+ public static String DS_PROPERTIES_WITH_CMT_STRATEGY
+ = "globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.TransactionStrategy="
+ + "org.apache.deltaspike.jpa.impl.transaction.ContainerManagedTransactionStrategy";
+
+ private static final String NAME = "should_run_in_transaction";
+
+ @Deployment
+ public static Archive<?> deployment()
+ {
+ return initDeployment()
+ .addClass(JtaTransactionalRepositoryInterface.class)
+ .addClass(TransactionalQueryRunnerWrapper.class)
+ .addPackage(Simple.class.getPackage())
+ .addAsWebInfResource(new StringAsset(DS_PROPERTIES_WITH_CMT_STRATEGY),
+ "classes/META-INF/apache-deltaspike.properties");
+
+ }
+
+ @Inject
+ private JtaTransactionalRepositoryInterface repository;
+
+ @Produces
+ @PersistenceContext
+ private EntityManager entityManager;
+
+ @Inject
+ private TransactionalQueryRunnerWrapper wrapper;
+
+ @Test
+ @InSequence(1)
+ public void should_run_modifying_in_transaction() throws Exception
+ {
+ // when
+ repository.deleteAll();
+
+ // then
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(2)
+ public void should_save_in_transaction() throws Exception
+ {
+ // given
+ Simple simple = new Simple(NAME);
+
+ // when
+ simple = repository.save(simple);
+
+ // then
+ assertNotNull(simple.getId());
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(3)
+ public void should_find_with_lockmode_in_transaction() throws Exception
+ {
+ // when
+ Simple simple = repository.findByName(NAME);
+
+ // then
+ assertNotNull(simple);
+ assertTrue(wrapper.isRunInTx());
+ }
+
+ @Test
+ @InSequence(4)
+ public void should_find_no_lock_without_transaction() throws Exception
+ {
+ // when
+ Simple simple = repository.findByNameNoLock(NAME);
+
+ // then
+ assertNotNull(simple);
+ assertTrue(wrapper.isRunInNonTx());
+ }
+
+ @Test
+ @InSequence(10)
+ public void should_cleanup() throws Exception
+ {
+ repository.deleteAll();
+ }
+
+ @Before
+ public void init()
+ {
+ wrapper.reset();
+ }
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e55bca67/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalTest.java b/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalTest.java
deleted file mode 100644
index 2dee1e6..0000000
--- a/deltaspike/modules/data/test-ee7/src/test/java/org/apache/deltaspike/data/test/ee7/tx/JtaTransactionalTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * 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.ee7.tx;
-
-import static org.apache.deltaspike.data.test.ee7.util.TestDeployments.initDeployment;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import javax.enterprise.inject.Produces;
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-
-import org.apache.deltaspike.data.test.ee7.domain.Simple;
-import org.apache.deltaspike.data.test.ee7.service.JtaTransactionalRepositoryInterface;
-import org.apache.deltaspike.test.category.WebEE7ProfileCategory;
-import org.jboss.arquillian.container.test.api.Deployment;
-import org.jboss.arquillian.junit.Arquillian;
-import org.jboss.arquillian.junit.InSequence;
-import org.jboss.shrinkwrap.api.Archive;
-import org.jboss.shrinkwrap.api.asset.StringAsset;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-
-@Category(WebEE7ProfileCategory.class)
-@RunWith(Arquillian.class)
-public class JtaTransactionalTest
-{
-
- public static String DS_PROPERTIES_WITH_CMT_STRATEGY
- = "globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.TransactionStrategy="
- + "org.apache.deltaspike.jpa.impl.transaction.ContainerManagedTransactionStrategy";
-
- private static final String NAME = "should_run_in_transaction";
-
- @Deployment
- public static Archive<?> deployment()
- {
- return initDeployment()
- .addClasses(JtaTransactionalRepositoryInterface.class)
- .addClass(TransactionalQueryRunnerWrapper.class)
- .addPackage(Simple.class.getPackage())
- .addAsWebInfResource(new StringAsset(DS_PROPERTIES_WITH_CMT_STRATEGY),
- "classes/META-INF/apache-deltaspike.properties");
-
- }
-
- @Inject
- private JtaTransactionalRepositoryInterface repository;
-
- @Produces
- @PersistenceContext
- private EntityManager entityManager;
-
- @Inject
- private TransactionalQueryRunnerWrapper wrapper;
-
- @Test
- @InSequence(1)
- public void should_run_modifying_in_transaction() throws Exception
- {
- // when
- repository.deleteAll();
-
- // then
- assertTrue(wrapper.isRunInTx());
- }
-
- @Test
- @InSequence(2)
- public void should_save_in_transaction() throws Exception
- {
- // given
- Simple simple = new Simple(NAME);
-
- // when
- simple = repository.save(simple);
-
- // then
- assertNotNull(simple.getId());
- assertTrue(wrapper.isRunInTx());
- }
-
- @Test
- @InSequence(3)
- public void should_find_with_lockmode_in_transaction() throws Exception
- {
- // when
- Simple simple = repository.findByName(NAME);
-
- // then
- assertNotNull(simple);
- assertTrue(wrapper.isRunInTx());
- }
-
- @Test
- @InSequence(4)
- public void should_find_no_lock_without_transaction() throws Exception
- {
- // when
- Simple simple = repository.findByNameNoLock(NAME);
-
- // then
- assertNotNull(simple);
- assertTrue(wrapper.isRunInNonTx());
- }
-
- @Test
- @InSequence(10)
- public void should_cleanup() throws Exception
- {
- repository.deleteAll();
- }
-
- @Before
- public void init()
- {
- wrapper.reset();
- }
-
-}