[jboss-svn-commits] JBL Code SVN: r6319 - in labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx: . jta jts
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Sep 20 11:32:20 EDT 2006
Author: kevin.conner at jboss.com
Date: 2006-09-20 11:32:17 -0400 (Wed, 20 Sep 2006)
New Revision: 6319
Modified:
labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/BaseTransactionManagerDelegate.java
labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jta/TransactionManagerDelegate.java
labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerDelegate.java
Log:
Fix for JBTM-125 TransactionTimeoutConfiguration
Modified: labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/BaseTransactionManagerDelegate.java
===================================================================
--- labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/BaseTransactionManagerDelegate.java 2006-09-20 15:28:27 UTC (rev 6318)
+++ labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/BaseTransactionManagerDelegate.java 2006-09-20 15:32:17 UTC (rev 6319)
@@ -31,12 +31,13 @@
import org.jboss.tm.TransactionLocal;
import org.jboss.tm.TransactionLocalDelegate;
+import org.jboss.tm.TransactionTimeoutConfiguration;
/**
* Delegate for JBoss TransactionManager/TransactionLocalDelegate.
* @author kevin
*/
-public class BaseTransactionManagerDelegate implements TransactionManager, TransactionLocalDelegate
+public abstract class BaseTransactionManagerDelegate implements TransactionManager, TransactionLocalDelegate, TransactionTimeoutConfiguration
{
/**
* Delegate transaction manager.
@@ -194,16 +195,16 @@
* @throws InterruptedException if the thread is interrupted
*/
public void lock(final TransactionLocal local, final Transaction tx)
- throws InterruptedException
- {
- transactionLocalDelegate.lock(local, tx) ;
- }
+ throws InterruptedException
+ {
+ transactionLocalDelegate.lock(local, tx) ;
+ }
/**
* Unlock the transaction local in the context of this transaction
*/
public void unlock(final TransactionLocal local, final Transaction tx)
{
- transactionLocalDelegate.unlock(local, tx) ;
+ transactionLocalDelegate.unlock(local, tx) ;
}
}
Modified: labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jta/TransactionManagerDelegate.java
===================================================================
--- labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jta/TransactionManagerDelegate.java 2006-09-20 15:28:27 UTC (rev 6318)
+++ labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jta/TransactionManagerDelegate.java 2006-09-20 15:32:17 UTC (rev 6319)
@@ -25,21 +25,73 @@
import javax.naming.Context;
import javax.naming.Name;
import javax.naming.spi.ObjectFactory;
+import javax.transaction.RollbackException;
+import javax.transaction.Status;
+import javax.transaction.SystemException;
import com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple;
import com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate;
+import com.arjuna.ats.jbossatx.logging.jbossatxLogger;
public class TransactionManagerDelegate extends BaseTransactionManagerDelegate implements ObjectFactory
{
/**
+ * The transaction manager.
+ */
+ private static final TransactionManagerImple TRANSACTION_MANAGER = new TransactionManagerImple() ;
+
+ /**
* Construct the delegate with the appropriate transaction manager
*/
public TransactionManagerDelegate()
{
- super(new TransactionManagerImple());
+ super(getTransactionManager());
}
/**
+ * Get the transaction timeout.
+ *
+ * @return the timeout in seconds associated with this thread
+ * @throws SystemException for any error
+ */
+ public int getTransactionTimeout()
+ throws SystemException
+ {
+ return getTransactionManager().getTimeout() ;
+ }
+
+ /**
+ * Get the time left before transaction timeout
+ *
+ * @param errorRollback throw an error if the transaction is marked for rollback
+ * @return the remaining in the current transaction or -1
+ * if there is no transaction
+ * @throws RollbackException if the transaction is marked for rollback and
+ * errorRollback is true
+ *
+ * @message com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_1
+ * [com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_1] - Transaction rolledback
+ * @message com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_2
+ * [com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_2] - Unexpected error retrieving transaction status
+ */
+ public long getTimeLeftBeforeTransactionTimeout(boolean errorRollback)
+ throws RollbackException
+ {
+ try
+ {
+ if (getStatus() == Status.STATUS_MARKED_ROLLBACK)
+ {
+ throw new RollbackException(jbossatxLogger.logMesg.getString("com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_1")) ;
+ }
+ }
+ catch (final SystemException se)
+ {
+ throw new RollbackException(jbossatxLogger.logMesg.getString("com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_2")) ;
+ }
+ return -1 ;
+ }
+
+ /**
* Get the transaction manager from the factory.
* @param initObj The initialisation object.
* @param relativeName The instance name relative to the context.
@@ -53,4 +105,13 @@
{
return this ;
}
+
+ /**
+ * Get the transaction manager.
+ * @return The transaction manager.
+ */
+ private static TransactionManagerImple getTransactionManager()
+ {
+ return TRANSACTION_MANAGER ;
+ }
}
Modified: labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerDelegate.java
===================================================================
--- labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerDelegate.java 2006-09-20 15:28:27 UTC (rev 6318)
+++ labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerDelegate.java 2006-09-20 15:32:17 UTC (rev 6319)
@@ -25,13 +25,22 @@
import javax.naming.Context;
import javax.naming.Name;
import javax.naming.spi.ObjectFactory;
+import javax.transaction.RollbackException;
+import javax.transaction.Status;
+import javax.transaction.SystemException;
import com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple;
import com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate;
+import com.arjuna.ats.jbossatx.logging.jbossatxLogger;
public class TransactionManagerDelegate extends BaseTransactionManagerDelegate implements ObjectFactory
{
/**
+ * The transaction manager.
+ */
+ private static final TransactionManagerImple TRANSACTION_MANAGER = new TransactionManagerImple() ;
+
+ /**
* Construct the delegate with the appropriate transaction manager
*/
public TransactionManagerDelegate()
@@ -40,6 +49,49 @@
}
/**
+ * Get the transaction timeout.
+ *
+ * @return the timeout in seconds associated with this thread
+ * @throws SystemException for any error
+ */
+ public int getTransactionTimeout()
+ throws SystemException
+ {
+ return getTransactionManager().getTimeout() ;
+ }
+
+ /**
+ * Get the time left before transaction timeout
+ *
+ * @param errorRollback throw an error if the transaction is marked for rollback
+ * @return the remaining in the current transaction or -1
+ * if there is no transaction
+ * @throws RollbackException if the transaction is marked for rollback and
+ * errorRollback is true
+ *
+ * @message com.arjuna.ats.jbossatx.jts.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_1
+ * [com.arjuna.ats.jbossatx.jts.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_1] - Transaction rolledback
+ * @message com.arjuna.ats.jbossatx.jts.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_2
+ * [com.arjuna.ats.jbossatx.jts.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_2] - Unexpected error retrieving transaction status
+ */
+ public long getTimeLeftBeforeTransactionTimeout(boolean errorRollback)
+ throws RollbackException
+ {
+ try
+ {
+ if (getStatus() == Status.STATUS_MARKED_ROLLBACK)
+ {
+ throw new RollbackException(jbossatxLogger.logMesg.getString("com.arjuna.ats.jbossatx.jts.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_1")) ;
+ }
+ }
+ catch (final SystemException se)
+ {
+ throw new RollbackException(jbossatxLogger.logMesg.getString("com.arjuna.ats.jbossatx.jts.TransactionManagerDelegate.getTimeLeftBeforeTransactionTimeout_2")) ;
+ }
+ return -1 ;
+ }
+
+ /**
* Get the transaction manager from the factory.
* @param initObj The initialisation object.
* @param relativeName The instance name relative to the context.
@@ -53,4 +105,13 @@
{
return this ;
}
+
+ /**
+ * Get the transaction manager.
+ * @return The transaction manager.
+ */
+ private static TransactionManagerImple getTransactionManager()
+ {
+ return TRANSACTION_MANAGER ;
+ }
}
More information about the jboss-svn-commits
mailing list