[jboss-cvs] jboss-seam/src/main/org/jboss/seam/util ...
Gavin King
gavin.king at jboss.com
Fri Jun 22 11:28:57 EDT 2007
User: gavin
Date: 07/06/22 11:28:57
Modified: src/main/org/jboss/seam/util Work.java
Log:
a basic TransactionListener that works all the time
javadoc
Revision Changes Path
1.7 +15 -0 jboss-seam/src/main/org/jboss/seam/util/Work.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Work.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/util/Work.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- Work.java 30 May 2007 20:16:00 -0000 1.6
+++ Work.java 22 Jun 2007 15:28:57 -0000 1.7
@@ -2,6 +2,8 @@
import javax.transaction.UserTransaction;
+import org.jboss.seam.core.BasicTransactionListener;
+import org.jboss.seam.core.TransactionListener;
import org.jboss.seam.log.LogProvider;
import org.jboss.seam.log.Logging;
import org.jboss.seam.transaction.Transaction;
@@ -27,19 +29,24 @@
boolean transactionActive = Transaction.instance().isActiveOrMarkedRollback();
boolean begin = isNewTransactionRequired(transactionActive);
UserTransaction userTransaction = begin ? Transaction.instance() : null;
+ TransactionListener transactionListener = BasicTransactionListener.instance();
+ boolean success=false;
if (begin)
{
log.debug("beginning transaction");
userTransaction.begin();
}
+
try
{
T result = work();
if (begin)
{
log.debug("committing transaction");
+ transactionListener.beforeSeamManagedTransactionCompletion();
userTransaction.commit();
+ success = true;
}
return result;
}
@@ -52,5 +59,13 @@
}
throw e;
}
+ finally
+ {
+ if (begin)
+ {
+ transactionListener.afterSeamManagedTransactionCompletion(success);
+ }
+ }
+
}
}
More information about the jboss-cvs-commits
mailing list