[webbeans-commits] Webbeans SVN: r351 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/transaction.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Fri Nov 21 17:05:48 EST 2008


Author: nickarls
Date: 2008-11-21 17:05:48 -0500 (Fri, 21 Nov 2008)
New Revision: 351

Added:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/transaction/TransactionListener.java
Log:


Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/transaction/TransactionListener.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/transaction/TransactionListener.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/transaction/TransactionListener.java	2008-11-21 22:05:48 UTC (rev 351)
@@ -0,0 +1,49 @@
+package org.jboss.webbeans.transaction;
+
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.ejb.EJBException;
+import javax.ejb.SessionSynchronization;
+import javax.ejb.Stateful;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
+import javax.transaction.Status;
+import javax.transaction.Synchronization;
+import javax.webbeans.RequestScoped;
+
+ at Stateful
+ at RequestScoped
+ at TransactionAttribute(TransactionAttributeType.SUPPORTS)
+public class TransactionListener implements SessionSynchronization
+{
+
+   private List<Synchronization> synchronizations = new ArrayList<Synchronization>();
+
+   public void afterBegin() throws EJBException, RemoteException
+   {
+   }
+
+   public void afterCompletion(boolean success) throws EJBException, RemoteException
+   {
+      for (Synchronization synchronization : synchronizations)
+      {
+         synchronization.afterCompletion(success ? Status.STATUS_COMMITTED : Status.STATUS_ROLLEDBACK);
+      }
+      synchronizations.clear();
+   }
+
+   public void beforeCompletion() throws EJBException, RemoteException
+   {
+      for (Synchronization synchronization : synchronizations)
+      {
+         synchronization.beforeCompletion();
+      }
+   }
+
+   public void registerSynhronization(Synchronization synchronization)
+   {
+      synchronizations.add(synchronization);
+   }
+}




More information about the weld-commits mailing list