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;
+
+@Stateful
+@RequestScoped
+(a)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);
+ }
+}
Show replies by date