Author: ozeigermann
Date: Fri Jul 20 09:09:17 2007
New Revision: 558028
URL: http://svn.apache.org/viewvc?view=rev&rev=558028
Log:
Removed suspend/resume code as this is not applicable to our implementation.
Might be reintroduced by an XA implementation later.
Added:
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionalResourceManager.java
Modified:
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResourceManager.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=558028&r1=558027&r2=558028
==============================================================================
---
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
Fri Jul 20 09:09:17 2007
@@ -16,8 +16,6 @@
*/
package org.apache.commons.transaction;
-import java.util.HashSet;
-import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReadWriteLock;
@@ -27,7 +25,7 @@
/**
* Not thread-safe. FIXME: Should it be?
- *
+ *
* @author olli
*
* @param <T>
@@ -35,10 +33,6 @@
public abstract class AbstractTransactionalResourceManager<T extends
AbstractTransactionalResourceManager.AbstractTxContext> implements
TransactionalResourceManager {
protected ThreadLocal<T> activeTx = new ThreadLocal<T>();
- protected Set<T> activeTransactions = new HashSet<T>();
-
- protected Set<T> suspendedTransactions = new HashSet<T>();
-
protected abstract T createContext();
/**
@@ -64,67 +58,6 @@
return (txContext.isMarkedForRollback());
}
- /**
- * Suspends the transaction associated to the current thread. I.e. the
- * associated between the current thread and the transaction is deleted.
- * This is useful when you want to continue the transaction in another
- * thread later. Call [EMAIL PROTECTED] #resumeTransaction(TxContext)} -
possibly in
- * another thread than the current - to resume work on the transaction.
<br>
- * <br>
- * <em>Caution:</em> When calling this method the returned identifier for
- * the transaction is the only remaining reference to the transaction, so
be
- * sure to remember it or the transaction will be eventually deleted (and
- * thereby rolled back) as garbage.
- *
- * @return an identifier for the suspended transaction, will be needed to
- * later resume the transaction by
- * [EMAIL PROTECTED] #resumeTransaction(TxContext)}
- *
- * @see #resumeTransaction(TxContext)
- */
- public T suspendTransaction() {
- T txContext = getActiveTx();
-
- if (txContext == null) {
- throw new IllegalStateException("Active thread " +
Thread.currentThread()
- + " not associated with a transaction!");
- }
-
- suspendedTransactions.add(txContext);
- setActiveTx(null);
- return txContext;
- }
-
- /**
- * Resumes a transaction in the current thread that has previously been
- * suspened by [EMAIL PROTECTED] #suspendTransaction()}.
- *
- * @param suspendedTx
- * the identifier for the transaction to be resumed, delivered
by
- * [EMAIL PROTECTED] #suspendTransaction()}
- *
- * @see #suspendTransaction()
- */
- public void resumeTransaction(T suspendedTx) {
- T txContext = getActiveTx();
-
- if (txContext != null) {
- throw new IllegalStateException("Active thread " +
Thread.currentThread()
- + " already associated with a transaction!");
- }
-
- if (suspendedTx == null) {
- throw new IllegalStateException("No transaction to resume!");
- }
-
- if (!suspendedTransactions.contains(suspendedTx)) {
- throw new IllegalStateException("Transaction to resume needs to be
suspended!");
- }
-
- suspendedTransactions.remove(txContext);
- setActiveTx(suspendedTx);
- }
-
@Override
public void startTransaction() {
if (getActiveTx() != null) {
@@ -133,7 +66,6 @@
}
T txContent = createContext();
setActiveTx(txContent);
- activeTransactions.add(txContent);
}
@@ -148,7 +80,6 @@
txContext.dispose();
setActiveTx(null);
- activeTransactions.remove(txContext);
}
@Override
Added:
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionalResourceManager.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionalResourceManager.java?view=auto&rev=558028
==============================================================================
---
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionalResourceManager.java
(added)
+++
jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionalResourceManager.java
Fri Jul 20 09:09:17 2007
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.transaction;
+
+
+/**
+ * Interface for something that makes up a transactional resource manager.
+ *
+ */
+public interface TransactionalResourceManager {
+ /**
+ * TODO
+ *
+ * @param mSecs
+ */
+ public void setTransactionTimeout(long mSecs);
+
+ /**
+ * Starts a new transaction and associates it with the current thread. All
+ * subsequent changes in the same thread made to the map are invisible from
+ * other threads until [EMAIL PROTECTED] #commitTransaction()} is called.
Use
+ * [EMAIL PROTECTED] #rollbackTransaction()} to discard your changes.
After calling
+ * either method there will be no transaction associated to the current
+ * thread any longer. <br>
+ * <br>
+ * <em>Caution:</em> Be careful to finally call one of those methods, as
+ * otherwise the transaction will lurk around for ever.
+ *
+ * @see #commitTransaction()
+ * @see #rollbackTransaction()
+ */
+ public void startTransaction();
+
+
+ /**
+ * Discards all changes made in the current transaction and deletes the
+ * association between the current thread and the transaction.
+ *
+ * @see #startTransaction()
+ * @see #commitTransaction()
+ */
+ public void rollbackTransaction();
+
+ /**
+ * Commits all changes made in the current transaction and deletes the
+ * association between the current thread and the transaction.
+ *
+ * @see #startTransaction()
+ * @see #rollbackTransaction()
+ */
+ public void commitTransaction();
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]