You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by gp...@apache.org on 2012/05/24 00:04:24 UTC

git commit: DELTASPIKE-176 and DELTASPIKE-179 improved tests

Updated Branches:
  refs/heads/master ca7bfbdcf -> d1ed1336e


DELTASPIKE-176 and DELTASPIKE-179 improved tests


Project: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/commit/d1ed1336
Tree: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/tree/d1ed1336
Diff: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/diff/d1ed1336

Branch: refs/heads/master
Commit: d1ed1336e4b06a6a13c13631627b3272ca795cfa
Parents: ca7bfbd
Author: gpetracek <gp...@apache.org>
Authored: Wed May 23 23:53:45 2012 +0200
Committer: gpetracek <gp...@apache.org>
Committed: Thu May 24 00:00:29 2012 +0200

----------------------------------------------------------------------
 .../PersistenceStrategyCleanupTestEvent.java       |   23 ++++++
 .../TransactionBeanStorageCleanupTestEvent.java    |   23 ++++++
 .../TransactionalInterceptorStrategy.java          |   33 ++++++++-
 .../context/TransactionBeanStorage.java            |   28 +++++++-
 .../test/jpa/api/shared/TestEventObserver.java     |   54 +++++++++++++++
 .../DefaultEntityManagerInjectionTest.java         |   19 +++++
 .../DefaultNestedTransactionTest.java              |   16 ++++
 ...NestedMultiTransactionCatchedExceptionTest.java |   16 ++++
 .../NestedTransactionCatchedExceptionTest.java     |   16 ++++
 ...tityManagerInjectionUncatchedExceptionTest.java |   16 ++++
 ...anagerInjectionUncatchedFlushExceptionTest.java |   16 ++++
 ...ultiTransactionUncatchedFlushExceptionTest.java |   16 ++++
 ...stedMultiTransactionUncatchedExceptionTest.java |   16 ++++
 .../nested/NestedTransactionWithExceptionTest.java |   16 ++++
 .../auto/MultipleEntityManagerInjectionTest.java   |   16 ++++
 .../manual/ManualTransactionTest.java              |   16 ++++
 .../nested/NestedMultiTransactionTest.java         |   16 ++++
 .../nested/NestedTransactionTest.java              |   16 ++++
 .../stereotype/StereotypeTransactionalTest.java    |   16 ++++
 ...ransactionScopedEntityManagerInjectionTest.java |   22 ++++++
 ...aultTransactionScopedNestedTransactionTest.java |   16 ++++
 ...ransactionScopedEntityManagerInjectionTest.java |   16 ++++
 .../ManualTransactionScopedTransactionTest.java    |   16 ++++
 ...estedMultiTransactionScopedTransactionTest.java |   16 ++++
 .../NestedTransactionScopedTransactionTest.java    |   16 ++++
 ...ereotypeTransactionScopedTransactionalTest.java |   16 ++++
 26 files changed, 500 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/PersistenceStrategyCleanupTestEvent.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/PersistenceStrategyCleanupTestEvent.java b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/PersistenceStrategyCleanupTestEvent.java
new file mode 100644
index 0000000..b255199
--- /dev/null
+++ b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/PersistenceStrategyCleanupTestEvent.java
@@ -0,0 +1,23 @@
+/*
+ * 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.jpa.impl.transaction;
+
+public class PersistenceStrategyCleanupTestEvent
+{
+}

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/TransactionBeanStorageCleanupTestEvent.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/TransactionBeanStorageCleanupTestEvent.java b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/TransactionBeanStorageCleanupTestEvent.java
new file mode 100644
index 0000000..4a50658
--- /dev/null
+++ b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/TransactionBeanStorageCleanupTestEvent.java
@@ -0,0 +1,23 @@
+/*
+ * 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.jpa.impl.transaction;
+
+public class TransactionBeanStorageCleanupTestEvent
+{
+}

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/TransactionalInterceptorStrategy.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/TransactionalInterceptorStrategy.java b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/TransactionalInterceptorStrategy.java
index 0db02a4..4353dd7 100644
--- a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/TransactionalInterceptorStrategy.java
+++ b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/TransactionalInterceptorStrategy.java
@@ -18,12 +18,15 @@
  */
 package org.apache.deltaspike.jpa.impl.transaction;
 
+import org.apache.deltaspike.core.api.projectstage.TestStage;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.api.Transactional;
 import org.apache.deltaspike.jpa.impl.EntityManagerRef;
 import org.apache.deltaspike.jpa.impl.PersistenceHelper;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionBeanStorage;
 import org.apache.deltaspike.jpa.spi.PersistenceStrategy;
 
+import javax.annotation.PostConstruct;
 import javax.enterprise.context.Dependent;
 import javax.enterprise.inject.Any;
 import javax.enterprise.inject.Default;
@@ -71,10 +74,21 @@ public class TransactionalInterceptorStrategy implements PersistenceStrategy
     @Inject
     private BeanManager beanManager;
 
+    private boolean isTestProjectStage;
+
+    @PostConstruct
+    protected void init()
+    {
+        this.isTestProjectStage = TestStage.class.isAssignableFrom(
+            ProjectStageProducer.getInstance().getProjectStage().getClass());
+    }
+
     public Object execute(InvocationContext invocationContext) throws Exception
     {
         Transactional transactionalAnnotation = extractTransactionalAnnotation(invocationContext);
 
+        //TODO add support for entity managers injected as argument/s
+
         InternalTransactionContext currentTransactionContext =
                 getOrCreateTransactionContext(transactionalAnnotation, invocationContext.getTarget());
 
@@ -145,6 +159,8 @@ public class TransactionalInterceptorStrategy implements PersistenceStrategy
                         //but we have to continue to cleanup the scope
                     }
                 }
+
+                cleanupTransactionBeanStorage();
             }
 
             // give any extensions a chance to supply a better error message
@@ -223,10 +239,7 @@ public class TransactionalInterceptorStrategy implements PersistenceStrategy
                             }
                         }
                     }
-
-                    // and now we close all open transaction-scopes and reset the storage
-                    TransactionBeanStorage.getStorage().endAllTransactionScopes();
-                    TransactionBeanStorage.resetStorage();
+                    cleanupTransactionBeanStorage();
                 }
                 else
                 {
@@ -249,6 +262,13 @@ public class TransactionalInterceptorStrategy implements PersistenceStrategy
         }
     }
 
+    private void cleanupTransactionBeanStorage()
+    {
+        // and now we close all open transaction-scopes and reset the storage
+        TransactionBeanStorage.getStorage().endAllTransactionScopes();
+        TransactionBeanStorage.resetStorage();
+    }
+
     private List<String> getTransactionKeys(InternalTransactionContext currentTransactionContext)
     {
         List<String> transactionKeys = new ArrayList<String>();
@@ -267,6 +287,11 @@ public class TransactionalInterceptorStrategy implements PersistenceStrategy
 
     private void removeTransactionContext()
     {
+        if (this.isTestProjectStage)
+        {
+            this.beanManager.fireEvent(new PersistenceStrategyCleanupTestEvent());
+        }
+
         transactionContext.set(null);
         transactionContext.remove();
     }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/context/TransactionBeanStorage.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/context/TransactionBeanStorage.java b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/context/TransactionBeanStorage.java
index add73ca..a06cac9 100644
--- a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/context/TransactionBeanStorage.java
+++ b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/context/TransactionBeanStorage.java
@@ -18,6 +18,11 @@
  */
 package org.apache.deltaspike.jpa.impl.transaction.context;
 
+import org.apache.deltaspike.core.api.projectstage.TestStage;
+import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
+import org.apache.deltaspike.jpa.impl.transaction.TransactionBeanStorageCleanupTestEvent;
+
 import javax.enterprise.context.spi.Contextual;
 import javax.enterprise.inject.Typed;
 import java.util.ArrayList;
@@ -62,8 +67,12 @@ public class TransactionBeanStorage
 
     private List<String> activeTransactionKeyList = new ArrayList<String>();
 
+    private boolean isTestProjectStage;
+
     private TransactionBeanStorage()
     {
+        this.isTestProjectStage = TestStage.class.isAssignableFrom(
+            ProjectStageProducer.getInstance().getProjectStage().getClass());
     }
 
     /**
@@ -91,8 +100,23 @@ public class TransactionBeanStorage
      */
     public static void resetStorage()
     {
-        currentStorage.set(null);
-        currentStorage.remove();
+        TransactionBeanStorage currentBeanStorage = currentStorage.get();
+
+        if (currentBeanStorage != null)
+        {
+            currentBeanStorage.close();
+
+            currentStorage.set(null);
+            currentStorage.remove();
+        }
+    }
+
+    private void close()
+    {
+        if (this.isTestProjectStage)
+        {
+            BeanManagerProvider.getInstance().getBeanManager().fireEvent(new TransactionBeanStorageCleanupTestEvent());
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEventObserver.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEventObserver.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEventObserver.java
new file mode 100644
index 0000000..583532a
--- /dev/null
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEventObserver.java
@@ -0,0 +1,54 @@
+/*
+ * 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.test.jpa.api.shared;
+
+import org.apache.deltaspike.jpa.impl.transaction.PersistenceStrategyCleanupTestEvent;
+import org.apache.deltaspike.jpa.impl.transaction.TransactionBeanStorageCleanupTestEvent;
+
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.event.Observes;
+
+@RequestScoped
+public class TestEventObserver
+{
+    private int persistenceStrategyCleanupCalls = 0;
+    private int transactionBeanStorageCleanupCalls = 0;
+
+    protected void onPersistenceStrategyCleanup(
+        @Observes PersistenceStrategyCleanupTestEvent persistenceStrategyCleanupTestEvent)
+    {
+        this.persistenceStrategyCleanupCalls++;
+    }
+
+    protected void onTransactionBeanStorageCleanup(
+        @Observes TransactionBeanStorageCleanupTestEvent transactionBeanStorageCleanupTestEvent)
+    {
+        this.transactionBeanStorageCleanupCalls++;
+    }
+
+    public int getPersistenceStrategyCleanupCalls()
+    {
+        return persistenceStrategyCleanupCalls;
+    }
+
+    public int getTransactionBeanStorageCleanupCalls()
+    {
+        return transactionBeanStorageCleanupCalls;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultinjection/DefaultEntityManagerInjectionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultinjection/DefaultEntityManagerInjectionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultinjection/DefaultEntityManagerInjectionTest.java
index e75bc38..665d019 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultinjection/DefaultEntityManagerInjectionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultinjection/DefaultEntityManagerInjectionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.defaultinjection;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.jpa.api.shared.TestException;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
@@ -31,6 +34,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -54,6 +58,9 @@ public class DefaultEntityManagerInjectionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -78,6 +85,12 @@ public class DefaultEntityManagerInjectionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void defaultEntityManagerInjection()
     {
@@ -100,6 +113,9 @@ public class DefaultEntityManagerInjectionTest
         Assert.assertEquals(true, testTransaction.isStarted());
         Assert.assertEquals(true, testTransaction.isCommitted());
         Assert.assertEquals(false, testTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 
     @Test
@@ -132,6 +148,9 @@ public class DefaultEntityManagerInjectionTest
         Assert.assertEquals(true, testTransaction.isStarted());
         Assert.assertEquals(false, testTransaction.isCommitted());
         Assert.assertEquals(true, testTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultnested/DefaultNestedTransactionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultnested/DefaultNestedTransactionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultnested/DefaultNestedTransactionTest.java
index 59c0e1e..4c1e7fb 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultnested/DefaultNestedTransactionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultnested/DefaultNestedTransactionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.defaultnested;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -45,6 +49,9 @@ public class DefaultNestedTransactionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -69,6 +76,12 @@ public class DefaultNestedTransactionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void defaultNestedTransaction()
     {
@@ -90,5 +103,8 @@ public class DefaultNestedTransactionTest
         Assert.assertEquals(true, firstTransaction.isStarted());
         Assert.assertEquals(true, firstTransaction.isCommitted());
         Assert.assertEquals(false, firstTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/catched/multipleinjection/nested/NestedMultiTransactionCatchedExceptionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/catched/multipleinjection/nested/NestedMultiTransactionCatchedExceptionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/catched/multipleinjection/nested/NestedMultiTransactionCatchedExceptionTest.java
index ca902ba..b0a37a6 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/catched/multipleinjection/nested/NestedMultiTransactionCatchedExceptionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/catched/multipleinjection/nested/NestedMultiTransactionCatchedExceptionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.exception.catched.multipleinjection.nested;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -45,6 +49,9 @@ public class NestedMultiTransactionCatchedExceptionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -69,6 +76,12 @@ public class NestedMultiTransactionCatchedExceptionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void nestedMultiTransactionCatchedExceptionTest()
     {
@@ -106,5 +119,8 @@ public class NestedMultiTransactionCatchedExceptionTest
         Assert.assertEquals(true, secondTransaction.isStarted());
         Assert.assertEquals(true, secondTransaction.isCommitted());
         Assert.assertEquals(false, secondTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/catched/nested/NestedTransactionCatchedExceptionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/catched/nested/NestedTransactionCatchedExceptionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/catched/nested/NestedTransactionCatchedExceptionTest.java
index a397195..0cc84c8 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/catched/nested/NestedTransactionCatchedExceptionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/catched/nested/NestedTransactionCatchedExceptionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.exception.catched.nested;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -45,6 +49,9 @@ public class NestedTransactionCatchedExceptionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -69,6 +76,12 @@ public class NestedTransactionCatchedExceptionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void nestedTransactionCatchedExceptionTest()
     {
@@ -90,5 +103,8 @@ public class NestedTransactionCatchedExceptionTest
         Assert.assertEquals(true, firstTransaction.isStarted());
         Assert.assertEquals(true, firstTransaction.isCommitted());
         Assert.assertEquals(false, firstTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/auto/MultipleEntityManagerInjectionUncatchedExceptionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/auto/MultipleEntityManagerInjectionUncatchedExceptionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/auto/MultipleEntityManagerInjectionUncatchedExceptionTest.java
index 624acfa..e18823a 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/auto/MultipleEntityManagerInjectionUncatchedExceptionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/auto/MultipleEntityManagerInjectionUncatchedExceptionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.exception.uncatched.multipleinjection.auto;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.jpa.api.shared.TestException;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
@@ -31,6 +34,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -46,6 +50,9 @@ public class MultipleEntityManagerInjectionUncatchedExceptionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -70,6 +77,12 @@ public class MultipleEntityManagerInjectionUncatchedExceptionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void autoInjectionUncatchedExceptionTest()
     {
@@ -131,5 +144,8 @@ public class MultipleEntityManagerInjectionUncatchedExceptionTest
         Assert.assertEquals(true, secondTransaction.isStarted());
         Assert.assertEquals(false, secondTransaction.isCommitted());
         Assert.assertEquals(true, secondTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/flush/auto/MultipleEntityManagerInjectionUncatchedFlushExceptionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/flush/auto/MultipleEntityManagerInjectionUncatchedFlushExceptionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/flush/auto/MultipleEntityManagerInjectionUncatchedFlushExceptionTest.java
index 60e2084..39fc5a1 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/flush/auto/MultipleEntityManagerInjectionUncatchedFlushExceptionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/flush/auto/MultipleEntityManagerInjectionUncatchedFlushExceptionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.exception.uncatched.multipleinjection.flush.auto;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.jpa.api.shared.TestException;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
@@ -31,6 +34,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -46,6 +50,9 @@ public class MultipleEntityManagerInjectionUncatchedFlushExceptionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -70,6 +77,12 @@ public class MultipleEntityManagerInjectionUncatchedFlushExceptionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void autoInjectionUncatchedFlushExceptionTest()
     {
@@ -131,5 +144,8 @@ public class MultipleEntityManagerInjectionUncatchedFlushExceptionTest
         Assert.assertEquals(true, secondTransaction.isStarted());
         Assert.assertEquals(false, secondTransaction.isCommitted());
         Assert.assertEquals(true, secondTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/flush/nested/NestedMultiTransactionUncatchedFlushExceptionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/flush/nested/NestedMultiTransactionUncatchedFlushExceptionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/flush/nested/NestedMultiTransactionUncatchedFlushExceptionTest.java
index e09513b..f867568 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/flush/nested/NestedMultiTransactionUncatchedFlushExceptionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/flush/nested/NestedMultiTransactionUncatchedFlushExceptionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.exception.uncatched.multipleinjection.flush.nested;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.jpa.api.shared.TestException;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
@@ -31,6 +34,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -46,6 +50,9 @@ public class NestedMultiTransactionUncatchedFlushExceptionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -70,6 +77,12 @@ public class NestedMultiTransactionUncatchedFlushExceptionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void nestedMultiTransactionUncatchedFlushExceptionTest()
     {
@@ -115,5 +128,8 @@ public class NestedMultiTransactionUncatchedFlushExceptionTest
         Assert.assertEquals(true, secondTransaction.isStarted());
         Assert.assertEquals(false, secondTransaction.isCommitted());
         Assert.assertEquals(true, secondTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/nested/NestedMultiTransactionUncatchedExceptionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/nested/NestedMultiTransactionUncatchedExceptionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/nested/NestedMultiTransactionUncatchedExceptionTest.java
index a1034fc..d2ccd52 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/nested/NestedMultiTransactionUncatchedExceptionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/multipleinjection/nested/NestedMultiTransactionUncatchedExceptionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.exception.uncatched.multipleinjection.nested;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.jpa.api.shared.TestException;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
@@ -31,6 +34,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -46,6 +50,9 @@ public class NestedMultiTransactionUncatchedExceptionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -70,6 +77,12 @@ public class NestedMultiTransactionUncatchedExceptionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void nestedMultiTransactionUncatchedExceptionTest()
     {
@@ -115,5 +128,8 @@ public class NestedMultiTransactionUncatchedExceptionTest
         Assert.assertEquals(true, secondTransaction.isStarted());
         Assert.assertEquals(false, secondTransaction.isCommitted());
         Assert.assertEquals(true, secondTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/nested/NestedTransactionWithExceptionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/nested/NestedTransactionWithExceptionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/nested/NestedTransactionWithExceptionTest.java
index 2bc3098..7724986 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/nested/NestedTransactionWithExceptionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/exception/uncatched/nested/NestedTransactionWithExceptionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.exception.uncatched.nested;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.jpa.api.shared.TestException;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
@@ -31,6 +34,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -46,6 +50,9 @@ public class NestedTransactionWithExceptionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -70,6 +77,12 @@ public class NestedTransactionWithExceptionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void nestedTransactionWithExceptionTest()
     {
@@ -99,5 +112,8 @@ public class NestedTransactionWithExceptionTest
         Assert.assertEquals(true, firstTransaction.isStarted());
         Assert.assertEquals(false, firstTransaction.isCommitted());
         Assert.assertEquals(true, firstTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/auto/MultipleEntityManagerInjectionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/auto/MultipleEntityManagerInjectionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/auto/MultipleEntityManagerInjectionTest.java
index db8ce70..7e0bcb2 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/auto/MultipleEntityManagerInjectionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/auto/MultipleEntityManagerInjectionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.multipleinjection.auto;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -45,6 +49,9 @@ public class MultipleEntityManagerInjectionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -69,6 +76,12 @@ public class MultipleEntityManagerInjectionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void autoEntityManagerInjection()
     {
@@ -122,5 +135,8 @@ public class MultipleEntityManagerInjectionTest
         Assert.assertEquals(true, secondTransaction.isStarted());
         Assert.assertEquals(true, secondTransaction.isCommitted());
         Assert.assertEquals(false, secondTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/manual/ManualTransactionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/manual/ManualTransactionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/manual/ManualTransactionTest.java
index ef15787..542b6cc 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/manual/ManualTransactionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/manual/ManualTransactionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.multipleinjection.manual;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -45,6 +49,9 @@ public class ManualTransactionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -69,6 +76,12 @@ public class ManualTransactionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void manualTransactionTest()
     {
@@ -144,5 +157,8 @@ public class ManualTransactionTest
         Assert.assertEquals(true, secondTransaction.isStarted());
         Assert.assertEquals(true, secondTransaction.isCommitted());
         Assert.assertEquals(false, secondTransaction.isRolledBack());
+
+        Assert.assertEquals(3, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(3, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/nested/NestedMultiTransactionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/nested/NestedMultiTransactionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/nested/NestedMultiTransactionTest.java
index eb3b190..d762c43 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/nested/NestedMultiTransactionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/multipleinjection/nested/NestedMultiTransactionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.multipleinjection.nested;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -45,6 +49,9 @@ public class NestedMultiTransactionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -69,6 +76,12 @@ public class NestedMultiTransactionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void nestedMultiTransactionTest()
     {
@@ -106,5 +119,8 @@ public class NestedMultiTransactionTest
         Assert.assertEquals(true, secondTransaction.isStarted());
         Assert.assertEquals(true, secondTransaction.isCommitted());
         Assert.assertEquals(false, secondTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/nested/NestedTransactionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/nested/NestedTransactionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/nested/NestedTransactionTest.java
index 37f5624..b53aee9 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/nested/NestedTransactionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/nested/NestedTransactionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.nested;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -45,6 +49,9 @@ public class NestedTransactionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -69,6 +76,12 @@ public class NestedTransactionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void nestedTransaction()
     {
@@ -90,5 +103,8 @@ public class NestedTransactionTest
         Assert.assertEquals(true, firstTransaction.isStarted());
         Assert.assertEquals(true, firstTransaction.isCommitted());
         Assert.assertEquals(false, firstTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/stereotype/StereotypeTransactionalTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/stereotype/StereotypeTransactionalTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/stereotype/StereotypeTransactionalTest.java
index f3b12ff..0987efe 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/stereotype/StereotypeTransactionalTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/stereotype/StereotypeTransactionalTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactional.stereotype;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -46,6 +50,9 @@ public class StereotypeTransactionalTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -70,6 +77,12 @@ public class StereotypeTransactionalTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void transactionalBeanViaStereotype()
     {
@@ -92,5 +105,8 @@ public class StereotypeTransactionalTest
         Assert.assertEquals(true, testTransaction.isStarted());
         Assert.assertEquals(true, testTransaction.isCommitted());
         Assert.assertEquals(false, testTransaction.isRolledBack());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/defaultinjection/DefaultTransactionScopedEntityManagerInjectionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/defaultinjection/DefaultTransactionScopedEntityManagerInjectionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/defaultinjection/DefaultTransactionScopedEntityManagerInjectionTest.java
index 1a80e50..597a76a 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/defaultinjection/DefaultTransactionScopedEntityManagerInjectionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/defaultinjection/DefaultTransactionScopedEntityManagerInjectionTest.java
@@ -18,9 +18,12 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactionscoped.defaultinjection;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -29,6 +32,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -49,6 +53,9 @@ public class DefaultTransactionScopedEntityManagerInjectionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -73,6 +80,12 @@ public class DefaultTransactionScopedEntityManagerInjectionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void defaultTransactionScopedEntityManagerInjection()
     {
@@ -87,6 +100,9 @@ public class DefaultTransactionScopedEntityManagerInjectionTest
         Assert.assertEquals(false, testTransaction.isRolledBack());
 
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCount());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 
     @Test
@@ -102,6 +118,9 @@ public class DefaultTransactionScopedEntityManagerInjectionTest
         {
             //expected
         }
+
+        Assert.assertEquals(0, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(0, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 
     @Test
@@ -117,5 +136,8 @@ public class DefaultTransactionScopedEntityManagerInjectionTest
         {
             //expected
         }
+
+        Assert.assertEquals(0, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(0, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/defaultnested/DefaultTransactionScopedNestedTransactionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/defaultnested/DefaultTransactionScopedNestedTransactionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/defaultnested/DefaultTransactionScopedNestedTransactionTest.java
index 97f936a..3169aef 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/defaultnested/DefaultTransactionScopedNestedTransactionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/defaultnested/DefaultTransactionScopedNestedTransactionTest.java
@@ -18,9 +18,12 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactionscoped.defaultnested;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -29,6 +32,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -44,6 +48,9 @@ public class DefaultTransactionScopedNestedTransactionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -68,6 +75,12 @@ public class DefaultTransactionScopedNestedTransactionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void defaultTransactionScopedNestedTransaction()
     {
@@ -82,5 +95,8 @@ public class DefaultTransactionScopedNestedTransactionTest
         Assert.assertEquals(false, testTransaction.isRolledBack());
 
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCount());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/auto/MultipleTransactionScopedEntityManagerInjectionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/auto/MultipleTransactionScopedEntityManagerInjectionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/auto/MultipleTransactionScopedEntityManagerInjectionTest.java
index 4b33b1a..f938e4c 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/auto/MultipleTransactionScopedEntityManagerInjectionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/auto/MultipleTransactionScopedEntityManagerInjectionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactionscoped.multipleinjection.auto;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -45,6 +49,9 @@ public class MultipleTransactionScopedEntityManagerInjectionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -69,6 +76,12 @@ public class MultipleTransactionScopedEntityManagerInjectionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void autoTransactionScopedEntityManagerInjection()
     {
@@ -104,5 +117,8 @@ public class MultipleTransactionScopedEntityManagerInjectionTest
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCountDefaultEntityManager());
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCountFirstEntityManager());
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCountSecondEntityManager());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/manual/ManualTransactionScopedTransactionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/manual/ManualTransactionScopedTransactionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/manual/ManualTransactionScopedTransactionTest.java
index 748fd8c..2f7a051 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/manual/ManualTransactionScopedTransactionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/manual/ManualTransactionScopedTransactionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactionscoped.multipleinjection.manual;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -45,6 +49,9 @@ public class ManualTransactionScopedTransactionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -69,6 +76,12 @@ public class ManualTransactionScopedTransactionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void manualTransactionScopedTransactionTest()
     {
@@ -106,5 +119,8 @@ public class ManualTransactionScopedTransactionTest
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCountDefaultEntityManager());
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCountFirstEntityManager());
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCountSecondEntityManager());
+
+        Assert.assertEquals(3, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(3, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/nested/NestedMultiTransactionScopedTransactionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/nested/NestedMultiTransactionScopedTransactionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/nested/NestedMultiTransactionScopedTransactionTest.java
index 4d2c99e..e69695a 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/nested/NestedMultiTransactionScopedTransactionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/multipleinjection/nested/NestedMultiTransactionScopedTransactionTest.java
@@ -18,10 +18,13 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactionscoped.multipleinjection.nested;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityManager;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -45,6 +49,9 @@ public class NestedMultiTransactionScopedTransactionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -69,6 +76,12 @@ public class NestedMultiTransactionScopedTransactionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void nestedMultiTransactionScopedTransactionTest()
     {
@@ -97,5 +110,8 @@ public class NestedMultiTransactionScopedTransactionTest
 
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCountFirstEntityManager());
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCountSecondEntityManager());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/nested/NestedTransactionScopedTransactionTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/nested/NestedTransactionScopedTransactionTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/nested/NestedTransactionScopedTransactionTest.java
index a160c1c..c29a5d3 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/nested/NestedTransactionScopedTransactionTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/nested/NestedTransactionScopedTransactionTest.java
@@ -18,9 +18,12 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactionscoped.nested;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -29,6 +32,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -44,6 +48,9 @@ public class NestedTransactionScopedTransactionTest
     @Inject
     private TestEntityManagerProducer entityManagerProducer;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -68,6 +75,12 @@ public class NestedTransactionScopedTransactionTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void nestedTransactionScopedTransaction()
     {
@@ -82,5 +95,8 @@ public class NestedTransactionScopedTransactionTest
         Assert.assertEquals(false, testTransaction.isRolledBack());
 
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCount());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/d1ed1336/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/stereotype/StereotypeTransactionScopedTransactionalTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/stereotype/StereotypeTransactionScopedTransactionalTest.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/stereotype/StereotypeTransactionScopedTransactionalTest.java
index 5a1ca9a..5cf7785 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/stereotype/StereotypeTransactionScopedTransactionalTest.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactionscoped/stereotype/StereotypeTransactionScopedTransactionalTest.java
@@ -18,9 +18,12 @@
  */
 package org.apache.deltaspike.test.jpa.api.transactionscoped.stereotype;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
+import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.jpa.impl.transaction.context.TransactionContextExtension;
 import org.apache.deltaspike.test.jpa.api.shared.TestEntityTransaction;
+import org.apache.deltaspike.test.jpa.api.shared.TestEventObserver;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -29,6 +32,7 @@ import org.jboss.shrinkwrap.api.asset.EmptyAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -47,6 +51,9 @@ public class StereotypeTransactionScopedTransactionalTest
     @Inject
     private TestEntityTransactionHolder testEntityTransactionHolder;
 
+    @Inject
+    private TestEventObserver testEventObserver;
+
     @Deployment
     public static WebArchive deploy()
     {
@@ -71,6 +78,12 @@ public class StereotypeTransactionScopedTransactionalTest
                 .addAsWebInfResource(ArchiveUtils.getBeansXml(), "beans.xml");
     }
 
+    @Before
+    public void init()
+    {
+        ProjectStageProducer.setProjectStage(ProjectStage.UnitTest);
+    }
+
     @Test
     public void transactionalBeanViaStereotypeInTransactionScoped()
     {
@@ -84,5 +97,8 @@ public class StereotypeTransactionScopedTransactionalTest
         Assert.assertEquals(false, testTransaction.isRolledBack());
 
         Assert.assertEquals(1, this.entityManagerProducer.getCloseEntityManagerCount());
+
+        Assert.assertEquals(1, this.testEventObserver.getPersistenceStrategyCleanupCalls());
+        Assert.assertEquals(1, this.testEventObserver.getTransactionBeanStorageCleanupCalls());
     }
 }