[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