Return-Path: Delivered-To: apmail-commons-dev-archive@www.apache.org Received: (qmail 98465 invoked from network); 28 Jul 2007 15:47:29 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 28 Jul 2007 15:47:28 -0000 Received: (qmail 9159 invoked by uid 500); 28 Jul 2007 15:47:27 -0000 Delivered-To: apmail-commons-dev-archive@commons.apache.org Received: (qmail 9072 invoked by uid 500); 28 Jul 2007 15:47:27 -0000 Mailing-List: contact dev-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list dev@commons.apache.org Received: (qmail 9063 invoked by uid 500); 28 Jul 2007 15:47:27 -0000 Delivered-To: apmail-jakarta-commons-dev@jakarta.apache.org Received: (qmail 9060 invoked by uid 500); 28 Jul 2007 15:47:27 -0000 Delivered-To: apmail-jakarta-commons-cvs@jakarta.apache.org Received: (qmail 9057 invoked by uid 99); 28 Jul 2007 15:47:27 -0000 Received: from Unknown (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 28 Jul 2007 08:47:27 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 28 Jul 2007 15:47:26 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 02F661A981A; Sat, 28 Jul 2007 08:47:05 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r560557 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction: AbstractTransactionalResourceManager.java ManageableResourceManager.java TransactionException.java TransactionImpl.java Date: Sat, 28 Jul 2007 15:47:05 -0000 To: commons-cvs@jakarta.apache.org From: ozeigermann@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070728154706.02F661A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ozeigermann Date: Sat Jul 28 08:47:04 2007 New Revision: 560557 URL: http://svn.apache.org/viewvc?view=rev&rev=560557 Log: Added additional prepare step to make Transaction 2PC enabled. Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResourceManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/ManageableResourceManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionException.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionImpl.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResourceManager.java?view=diff&rev=560557&r1=560556&r2=560557 ============================================================================== --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResourceManager.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResourceManager.java Sat Jul 28 08:47:04 2007 @@ -54,12 +54,7 @@ @Override public boolean isTransactionMarkedForRollback() { - T txContext = getActiveTx(); - - if (txContext == null) { - throw new IllegalStateException("Active thread " + Thread.currentThread() - + " not associated with a transaction!"); - } + T txContext = getCheckedActiveTx(); return (txContext.isMarkedForRollback()); } @@ -78,12 +73,7 @@ @Override public void rollbackTransaction() { - T txContext = getActiveTx(); - - if (txContext == null) { - throw new IllegalStateException("Active thread " + Thread.currentThread() - + " not associated with a transaction!"); - } + T txContext = getCheckedActiveTx(); txContext.dispose(); setActiveTx(null); @@ -91,12 +81,7 @@ @Override public boolean commitTransaction() { - T txContext = getActiveTx(); - - if (txContext == null) { - throw new IllegalStateException("Active thread " + Thread.currentThread() - + " not associated with a transaction!"); - } + T txContext = getCheckedActiveTx(); if (txContext.isMarkedForRollback()) { throw new IllegalStateException("Active thread " + Thread.currentThread() @@ -113,18 +98,22 @@ return activeTx.get(); } - protected void setActiveTx(T txContext) { - activeTx.set(txContext); - } - - public boolean isReadOnlyTransaction() { + protected T getCheckedActiveTx() { T txContext = getActiveTx(); if (txContext == null) { throw new IllegalStateException("Active thread " + Thread.currentThread() + " not associated with a transaction!"); } + return txContext; + } + + protected void setActiveTx(T txContext) { + activeTx.set(txContext); + } + public boolean isReadOnlyTransaction() { + T txContext = getCheckedActiveTx(); return (txContext.isReadOnly()); } @@ -183,6 +172,10 @@ public void commit() { } + + public boolean prepare() { + return true; + } } public LockManager getLm() { @@ -215,16 +208,20 @@ } + @Override public void setRollbackOnly() { - T txContext = getActiveTx(); - - if (txContext == null) { - throw new IllegalStateException("Active thread " + Thread.currentThread() - + " not associated with a transaction!"); - } + T txContext = getCheckedActiveTx(); txContext.markForRollback(); } + + @Override + public boolean prepareTransaction() { + T txContext = getCheckedActiveTx(); + return txContext.prepare(); + + } + } Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/ManageableResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/ManageableResourceManager.java?view=diff&rev=560557&r1=560556&r2=560557 ============================================================================== --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/ManageableResourceManager.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/ManageableResourceManager.java Sat Jul 28 08:47:04 2007 @@ -22,6 +22,8 @@ void setRollbackOnly(); boolean commitCanFail(); + + boolean prepareTransaction(); /** * Checks whether this transaction has been marked to allow a rollback as Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionException.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionException.java?view=diff&rev=560557&r1=560556&r2=560557 ============================================================================== --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionException.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionException.java Sat Jul 28 08:47:04 2007 @@ -24,7 +24,7 @@ private static final long serialVersionUID = 7650329971392401844L; public enum Code { - COMMIT_FAILED, ROLLBACK_ONLY + COMMIT_FAILED, ROLLBACK_ONLY, PREPARE_FAILED } protected Code code; Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionImpl.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionImpl.java?view=diff&rev=560557&r1=560556&r2=560557 ============================================================================== --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionImpl.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionImpl.java Sat Jul 28 08:47:04 2007 @@ -47,6 +47,10 @@ if (isRollbackOnly()) { throw new TransactionException(TransactionException.Code.ROLLBACK_ONLY); } + if (!prepare()) { + throw new TransactionException(TransactionException.Code.PREPARE_FAILED); + } + for (ManageableResourceManager manager : rms) { if (!manager.isReadOnlyTransaction()) { try { @@ -97,4 +101,11 @@ lm.startWork(timeout, unit); } + protected boolean prepare() { + for (ManageableResourceManager manager : rms) { + if (!manager.prepareTransaction()) + return false; + } + return true; + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org For additional commands, e-mail: dev-help@commons.apache.org