svn commit: r558765 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking: LockManager.java RWLockManager.java
Author: ozeigermann Date: Mon Jul 23 08:00:02 2007 New Revision: 558765 URL: http://svn.apache.org/viewvc?view=revrev=558765 Log: Added tryLock and better internal lock management Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockManager.java?view=diffrev=558765r1=558764r2=558765 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockManager.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockManager.java Mon Jul 23 08:00:02 2007 @@ -53,5 +53,6 @@ *resource for on which this block of work shall be done */ public void lock(M managedResource, K key, boolean exclusive) throws LockException; +public boolean tryLock(M managedResource, K key, boolean exclusive); } Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java?view=diffrev=558765r1=558764r2=558765 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java Mon Jul 23 08:00:02 2007 @@ -31,40 +31,32 @@ protected ConcurrentHashMapKeyEntryK, M, ReadWriteLock locks = new ConcurrentHashMapKeyEntryK, M, ReadWriteLock(); -protected MapThread, SetReadWriteLock locksForThreads = new ConcurrentHashMapThread, SetReadWriteLock(); +protected MapThread, SetLock locksForThreads = new ConcurrentHashMapThread, SetLock(); protected MapReadWriteLock, SetThread threadsForLocks = new ConcurrentHashMapReadWriteLock, SetThread(); protected MapThread, Long effectiveGlobalTimeouts = new ConcurrentHashMapThread, Long(); // TODO -public static IterableReadWriteLock orderLocks() { -return null; +public IterableReadWriteLock orderLocks() { +SetLock locks = locksForThreads.get(Thread.currentThread()); +if (locks == null) { +throw new IllegalStateException(lock() can only be called after startWork()); +} -} +return null; -// TODO -public void lockAll(IterableReadWriteLock locks) { } @Override public void endWork() { -SetReadWriteLock locks = locksForThreads.get(Thread.currentThread()); +SetLock locks = locksForThreads.get(Thread.currentThread()); // graceful reaction... if (locks == null) { return; } -for (ReadWriteLock lock : locks) { -try { -lock.readLock().unlock(); -} catch (IllegalMonitorStateException imse) { -// we do not care -} -try { -lock.writeLock().unlock(); -} catch (IllegalMonitorStateException imse) { -// we do not care -} +for (Lock lock : locks) { +lock.unlock(); // FIXME: We need to do this atomically SetThread threadsForThisLock = threadsForLocks.get(lock); @@ -85,7 +77,7 @@ if (isWorking()) { throw new IllegalStateException(work has already been started); } -locksForThreads.put(Thread.currentThread(), new HashSetReadWriteLock()); +locksForThreads.put(Thread.currentThread(), new HashSetLock()); long timeoutMSecs = unit.toMillis(timeout); long now = System.currentTimeMillis(); @@ -149,37 +141,53 @@ } @Override +public boolean isWorking() { +return locksForThreads.get(Thread.currentThread()) != null; +} + +@Override public void lock(M managedResource, K key, boolean exclusive) throws LockException { long remainingTime = computeRemainingTime(); if (remainingTime 0) { throw new LockException(LockException.Code.TIMED_OUT); } +boolean locked = tryLockInternal(managedResource, key, exclusive, remainingTime, +TimeUnit.MILLISECONDS); +if (!locked
svn commit: r558810 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking: LockException.java RWLockManager.java
Author: ozeigermann Date: Mon Jul 23 10:40:10 2007 New Revision: 558810 URL: http://svn.apache.org/viewvc?view=revrev=558810 Log: Added first version of lock manager that supports deadlock detection. This has not been properly tested and still misses reasonable thread-safety protection. Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockException.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockException.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockException.java?view=diffrev=558810r1=558809r2=558810 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockException.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockException.java Mon Jul 23 10:40:10 2007 @@ -43,7 +43,7 @@ /** * Locking request canceled because of deadlock. */ -DEADLOCK_VICTIM, +WOULD_DEADLOCK, /** * A conflict between two optimistic transactions occured. Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java?view=diffrev=558810r1=558809r2=558810 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java Mon Jul 23 10:40:10 2007 @@ -16,10 +16,13 @@ */ package org.apache.commons.transaction.locking; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; @@ -31,45 +34,15 @@ protected ConcurrentHashMapKeyEntryK, M, ReadWriteLock locks = new ConcurrentHashMapKeyEntryK, M, ReadWriteLock(); -protected MapThread, SetLock locksForThreads = new ConcurrentHashMapThread, SetLock(); +protected MapThread, CopyOnWriteArraySetLock locksForThreads = new ConcurrentHashMapThread, CopyOnWriteArraySetLock(); -protected MapReadWriteLock, SetThread threadsForLocks = new ConcurrentHashMapReadWriteLock, SetThread(); +protected ConcurrentHashMapLock, SetThread threadsForLocks = new ConcurrentHashMapLock, SetThread(); protected MapThread, Long effectiveGlobalTimeouts = new ConcurrentHashMapThread, Long(); -// TODO -public IterableReadWriteLock orderLocks() { -SetLock locks = locksForThreads.get(Thread.currentThread()); -if (locks == null) { -throw new IllegalStateException(lock() can only be called after startWork()); -} - -return null; - -} - @Override public void endWork() { -SetLock locks = locksForThreads.get(Thread.currentThread()); -// graceful reaction... -if (locks == null) { -return; -} -for (Lock lock : locks) { -lock.unlock(); - -// FIXME: We need to do this atomically -SetThread threadsForThisLock = threadsForLocks.get(lock); -if (threadsForThisLock != null) { -threadsForThisLock.remove(Thread.currentThread()); -if (threadsForThisLock.isEmpty()) { -threadsForLocks.remove(lock); -locks.remove(lock); -} -} -} - -locksForThreads.remove(Thread.currentThread()); +release(Thread.currentThread()); } @Override @@ -77,7 +50,7 @@ if (isWorking()) { throw new IllegalStateException(work has already been started); } -locksForThreads.put(Thread.currentThread(), new HashSetLock()); +locksForThreads.put(Thread.currentThread(), new CopyOnWriteArraySetLock()); long timeoutMSecs = unit.toMillis(timeout); long now = System.currentTimeMillis(); @@ -91,8 +64,8 @@ } -protected long computeRemainingTime() { -long timeout = effectiveGlobalTimeouts.get
svn commit: r558836 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource: ResourceException.java ResourceManager.java StreamableResource.jav
Author: ozeigermann Date: Mon Jul 23 12:17:55 2007 New Revision: 558836 URL: http://svn.apache.org/viewvc?view=revrev=558836 Log: Cleaning of resource interfaces after first practical experience with an implementation: - Some methods had weird return types: removed - Foreign Exceptions replaced in favor of ResourceException Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceException.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceException.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceException.java?view=autorev=558836 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceException.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceException.java Mon Jul 23 12:17:55 2007 @@ -0,0 +1,37 @@ +/* + * 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.resource; + +public class ResourceException extends Exception { + +/** + * + */ +private static final long serialVersionUID = 7650329971392401844L; + +public ResourceException(String message, Throwable cause) { +super(message, cause); +} + +public ResourceException(Throwable cause) { +super(cause); +} +public ResourceException(String message) { +super(message); +} + +} Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java?view=diffrev=558836r1=558835r2=558836 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java Mon Jul 23 12:17:55 2007 @@ -16,16 +16,14 @@ */ package org.apache.commons.transaction.resource; -import java.io.IOException; - -import org.apache.commons.transaction.locking.LockException; public interface ResourceManagerR { -R getResource(String path) throws IOException, LockException; - -String getRootPath() throws IOException, LockException; +R getResource(String path) throws ResourceException; +String getRootPath(); +/* void addInterceptor(ResourceInterceptor interceptor); void removeInterceptor(ResourceInterceptor interceptor); +*/ } Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java?view=diffrev=558836r1=558835r2=558836 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java Mon Jul 23 12:17:55 2007 @@ -16,46 +16,43 @@ */ package org.apache.commons.transaction.resource; -import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.util.Collection; - -import
svn commit: r558857 - /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/
Author: ozeigermann Date: Mon Jul 23 13:54:15 2007 New Revision: 558857 URL: http://svn.apache.org/viewvc?view=revrev=558857 Log: First step to (yet non-working) pessimistic tx file manager having undo log Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceUndoManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/MemoryUndoManager.java Removed: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/DefaultPathManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/PathManager.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/TxFileResourceManager.java Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceManager.java?view=autorev=558857 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceManager.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceManager.java Mon Jul 23 13:54:15 2007 @@ -0,0 +1,204 @@ +/* + * 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.file; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.commons.transaction.resource.ResourceException; +import org.apache.commons.transaction.resource.ResourceManager; +import org.apache.commons.transaction.resource.StreamableResource; +import org.apache.commons.transaction.util.FileHelper; + +public class FileResourceManager implements ResourceManagerStreamableResource { + +private Log logger = LogFactory.getLog(getClass()); + +protected String rootPath; + +public FileResourceManager(String rootPath) { +this.rootPath = rootPath; +} + +public StreamableResource getResource(String path) throws ResourceException { +return new FileResource(path); +} + +public String getRootPath() { +return rootPath; +} + +protected static class FileResource implements StreamableResource { + +protected File file; + +public FileResource(String path) { +this.file = new File(path); +} + +public FileResource(File file) { +this.file = file; +} + +public void createAsDirectory() throws ResourceException { +if (!file.mkdirs()) { +throw new ResourceException(Could not create directory); +} + +} + +public void createAsFile() throws ResourceException { +try { +if (!file.createNewFile()) { +throw new ResourceException(Could not create file); +} +} catch (IOException e) { +throw new ResourceException(e); +} +} + +public void delete() throws ResourceException { +if (!file.delete()) +throw new ResourceException(Could not create file); + +} + +public boolean exists() { +return file.exists(); +} + +public ListStreamableResource getChildren() throws ResourceException { +ListStreamableResource result = new ArrayListStreamableResource(); +File[] files = file.listFiles(); +for (File file : files
svn commit: r558858 - /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/util/FileHelper.java
Author: ozeigermann Date: Mon Jul 23 13:54:49 2007 New Revision: 558858 URL: http://svn.apache.org/viewvc?view=revrev=558858 Log: Removed all unused methods Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/util/FileHelper.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/util/FileHelper.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/util/FileHelper.java?view=diffrev=558858r1=558857r2=558858 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/util/FileHelper.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/util/FileHelper.java Mon Jul 23 13:54:49 2007 @@ -16,12 +16,12 @@ */ package org.apache.commons.transaction.util; +import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; import java.nio.channels.FileChannel; /** @@ -30,131 +30,17 @@ * @version $Id: FileHelper.java 493628 2007-01-07 01:42:48Z joerg $ */ public final class FileHelper { - -private static int BUF_SIZE = 5; - -private static byte[] BUF = new byte[BUF_SIZE]; - -/** - * Deletes a file specified by a path. - * - * @param path - *path of file to be deleted - * @return codetrue/code if file has been deleted, codefalse/code - * otherwise - */ -public static boolean deleteFile(String path) { -File file = new File(path); -return file.delete(); -} - -/** - * Checks if a file specified by a path exits. - * - * @param path - *path of file to be checked - * @return codetrue/code if file exists, codefalse/code - * otherwise - */ -public static boolean fileExists(String path) { -File file = new File(path); -return file.exists(); -} - -/** - * Creates a file specified by a path. All necessary directories will be - * created. - * - * @param path - *path of file to be created - * @return codetrue/code if file has been created, codefalse/code - * if the file already exists - * @throws IOException - * If an I/O error occurred - */ -public static boolean createFile(String path) throws IOException { -File file = new File(path); -if (file.isDirectory()) { -return file.mkdirs(); -} else { -File dir = file.getParentFile(); -// do not check if this worked, as it may also return false, when -// all neccessary dirs are present -dir.mkdirs(); -return file.createNewFile(); -} -} - -/** - * Removes a file. If the specified file is a directory all contained files - * will be removed recursively as well. - * - * @param toRemove - *file to be removed - */ -public static void removeRec(File toRemove) { -if (toRemove.isDirectory()) { -File fileList[] = toRemove.listFiles(); -for (int a = 0; a fileList.length; a++) { -removeRec(fileList[a]); -} -} -toRemove.delete(); -} - -/** - * Moves one directory or file to another. Existing files will be replaced. - * - * @param source - *file to move from - * @param target - *file to move to - * @throws IOException - * if an I/O error occurs (may result in partially done work) - */ -public static void moveRec(File source, File target) throws IOException { -byte[] sharedBuffer = new byte[BUF_SIZE]; -moveRec(source, target, sharedBuffer); -} - -static void moveRec(File source, File target, byte[] sharedBuffer) throws IOException { -if (source.isDirectory()) { -if (!target.exists()) { -target.mkdirs(); -} -if (target.isDirectory()) { - -File[] files = source.listFiles(); -for (int i = 0; i files.length; i++) { -File file = files[i]; -File targetFile = new File(target, file.getName()); -if (file.isFile()) { -if (targetFile.exists()) { -targetFile.delete(); -} -if (!file.renameTo(targetFile)) { -copy(file, targetFile, sharedBuffer); -file.delete
svn commit: r558859 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction: ManageableResourceManager.java memory/BasicTxMap.java memory/OptimisticTxMa
Author: ozeigermann Date: Mon Jul 23 13:55:13 2007 New Revision: 558859 URL: http://svn.apache.org/viewvc?view=revrev=558859 Log: Minor cleanup Modified: 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/memory/BasicTxMap.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/OptimisticTxMap.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/PessimisticTxMap.java 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=diffrev=558859r1=558858r2=558859 == --- 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 Mon Jul 23 13:55:13 2007 @@ -18,10 +18,11 @@ import org.apache.commons.transaction.locking.LockManager; - public interface ManageableResourceManager extends TransactionalResourceManager { void setRollbackOnly(); + boolean commitCanFail(); + /** * Checks whether this transaction has been marked to allow a rollback as * the only valid outcome. This can be set my method @@ -36,11 +37,8 @@ */ public boolean isTransactionMarkedForRollback(); - public boolean isReadOnlyTransaction(); - -public void joinTransaction(LockManager lm); - +public void joinTransaction(LockManager lm); } Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/BasicTxMap.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/BasicTxMap.java?view=diffrev=558859r1=558858r2=558859 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/BasicTxMap.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/BasicTxMap.java Mon Jul 23 13:55:13 2007 @@ -26,9 +26,7 @@ import java.util.concurrent.ConcurrentHashMap; import org.apache.commons.transaction.AbstractTransactionalResourceManager; -import org.apache.commons.transaction.TransactionalResourceManager; import org.apache.commons.transaction.AbstractTransactionalResourceManager.AbstractTxContext; -import org.apache.commons.transaction.locking.LockManager; /** * Wrapper that adds transactional control to all kinds of maps that implement Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/OptimisticTxMap.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/OptimisticTxMap.java?view=diffrev=558859r1=558858r2=558859 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/OptimisticTxMap.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/OptimisticTxMap.java Mon Jul 23 13:55:13 2007 @@ -25,9 +25,7 @@ import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; -import org.apache.commons.transaction.TransactionalResourceManager; import org.apache.commons.transaction.locking.LockException; -import org.apache.commons.transaction.locking.LockManager; /** * Wrapper that adds transactional control to all kinds of maps that implement Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/PessimisticTxMap.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/PessimisticTxMap.java?view=diffrev=558859r1=558858r2=558859 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/PessimisticTxMap.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory
svn commit: r558475 - /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java
Author: ozeigermann Date: Sun Jul 22 05:27:57 2007 New Revision: 558475 URL: http://svn.apache.org/viewvc?view=revrev=558475 Log: Added method to remove a property Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java?view=diffrev=558475r1=558474r2=558475 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java Sun Jul 22 05:27:57 2007 @@ -39,7 +39,8 @@ Object getProperty(String name); Object setProperty(String name, Object newValue); - +Object removeProperty(String name); + // plus locking methods void readLock(); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r558476 - /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java
Author: ozeigermann Date: Sun Jul 22 05:28:34 2007 New Revision: 558476 URL: http://svn.apache.org/viewvc?view=revrev=558476 Log: Added method to access affected resource Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java?view=diffrev=558476r1=558475r2=558476 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java Sun Jul 22 05:28:34 2007 @@ -8,6 +8,7 @@ String getPath(); String getDestinationPath(); String propertyName(); +StreamableResource getResource(); EventType getEventType(); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r558494 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src: java/org/apache/commons/transaction/ java/org/apache/commons/transaction/locking/ java/org/apache/commons/trans
Author: ozeigermann Date: Sun Jul 22 08:16:04 2007 New Revision: 558494 URL: http://svn.apache.org/viewvc?view=revrev=558494 Log: Major refeactoring to - allow for new type of lock manager - allow operations on multiple transaction resource managers inside a single transaction Added: 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 jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/HierarchicalRWLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/BasicTxMap.java - copied, changed from r558031, jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/TxMap.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/test/org/apache/commons/transaction/TransactionImplTest.java Removed: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/GenericLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/IntrinsicLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/ReadWriteLockManager.java 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/Transaction.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionalResourceManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/HierarchicalLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockException.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/OptimisticTxMap.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/PessimisticTxMap.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/TxMap.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=diffrev=558494r1=558493r2=558494 == --- 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 Sun Jul 22 08:16:04 2007 @@ -16,37 +16,44 @@ */ package org.apache.commons.transaction; +import java.util.Map; import java.util.concurrent.TimeUnit; -import java.util.concurrent.locks.ReadWriteLock; import org.apache.commons.transaction.locking.LockException; -import org.apache.commons.transaction.locking.ReadWriteLockManager; -import org.apache.commons.transaction.locking.LockException.Code; +import org.apache.commons.transaction.locking.LockManager; /** * Not thread-safe. FIXME: Should it be? - * + * * @author olli - * + * * @param T */ -public abstract class AbstractTransactionalResourceManagerT extends AbstractTransactionalResourceManager.AbstractTxContext implements TransactionalResourceManager { +public abstract class AbstractTransactionalResourceManagerT extends AbstractTransactionalResourceManager.AbstractTxContext +implements ManageableResourceManager { protected ThreadLocalT activeTx = new ThreadLocalT(); +private LockManagerObject, String lm; + +private String name; + protected abstract T createContext(); -/** - * Checks whether this transaction has been marked to allow a rollback as - * the only valid outcome. This can be set my method - * [EMAIL PROTECTED
svn commit: r558495 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src: java/org/apache/commons/transaction/ java/org/apache/commons/transaction/locking/ java/org/apache/commons/trans
Author: ozeigermann Date: Sun Jul 22 08:24:54 2007 New Revision: 558495 URL: http://svn.apache.org/viewvc?view=revrev=558495 Log: Added Apache headers to all files where it was missing 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/TransactionException.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/HierarchicalLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/HierarchicalRWLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceInterceptor.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/util/ComboInputStreamMulticaster.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/util/InputStreamMulticaster.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/test/org/apache/commons/transaction/TransactionImplTest.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/test/org/apache/commons/transaction/file/ComboInputStreamMulticasterTest.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=diffrev=558495r1=558494r2=558495 == --- 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 Sun Jul 22 08:24:54 2007 @@ -16,7 +16,6 @@ */ package org.apache.commons.transaction; -import java.util.Map; import java.util.concurrent.TimeUnit; import org.apache.commons.transaction.locking.LockException; 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=diffrev=558495r1=558494r2=558495 == --- 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 Sun Jul 22 08:24:54 2007 @@ -1,7 +1,21 @@ +/* + * 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; - - public class TransactionException extends RuntimeException { /** @@ -10,8 +24,7 @@ private static final long serialVersionUID = 7650329971392401844L; public enum Code { -COMMIT_FAILED, -ROLLBACK_ONLY +COMMIT_FAILED, ROLLBACK_ONLY } protected Code code; @@ -24,7 +37,7 @@ public
svn commit: r558030 - /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/Transaction.java
Author: ozeigermann Date: Fri Jul 20 09:10:30 2007 New Revision: 558030 URL: http://svn.apache.org/viewvc?view=revrev=558030 Log: Base interface for a transaction including more than one resource manager. 2PC is not intended. Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/Transaction.java Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/Transaction.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/Transaction.java?view=autorev=558030 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/Transaction.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/Transaction.java Fri Jul 20 09:10:30 2007 @@ -0,0 +1,34 @@ +/* + * 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; + +public interface Transaction { +public void setTransactionTimeout(long mSecs); + +public void start(); + +void setRollbackOnly(); + +boolean isRollbackOnly(); + +public void rollback(); + +public void commit(); + +boolean enlistResourceManager(TransactionalResourceManager resourceManager); + +} - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r558031 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory: ./ OptimisticTxMap.java PessimisticTxMap.java TxMap.java
Author: ozeigermann Date: Fri Jul 20 09:13:20 2007 New Revision: 558031 URL: http://svn.apache.org/viewvc?view=revrev=558031 Log: Reintroduces transactional memory implementations. However, they no longer wrap a map, but hide the wrapped map as an implementation detail. Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/OptimisticTxMap.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/PessimisticTxMap.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/TxMap.java Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/OptimisticTxMap.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/OptimisticTxMap.java?view=autorev=558031 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/OptimisticTxMap.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/OptimisticTxMap.java Fri Jul 20 09:13:20 2007 @@ -0,0 +1,340 @@ +/* + * 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.memory; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.ReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +import org.apache.commons.transaction.TransactionalResourceManager; +import org.apache.commons.transaction.locking.LockException; + +/** + * Wrapper that adds transactional control to all kinds of maps that implement + * the [EMAIL PROTECTED] Map} interface. By using a naive optimistic transaction control + * this wrapper has better isolation than [EMAIL PROTECTED] TxMap}, but + * may also fail to commit. + * + * br + * Start a transaction by calling [EMAIL PROTECTED] #startTransaction()}. Then perform the + * normal actions on the map and finally either call + * [EMAIL PROTECTED] #commitTransaction()} to make your changes permanent or + * [EMAIL PROTECTED] #rollbackTransaction()} to undo them. br + * emCaution:/em Do not modify values retrieved by [EMAIL PROTECTED] #get(Object)} as + * this will circumvent the transactional mechanism. Rather clone the value or + * copy it in a way you see fit and store it back using + * [EMAIL PROTECTED] #put(Object, Object)}. br + * emNote:/em This wrapper guarantees isolation level + * codeSERIALIZABLE/code. br + * emCaution:/em This implementation might be slow when large amounts of + * data is changed in a transaction as much references will need to be copied + * around. + * + * @version $Id: OptimisticMapWrapper.java 493628 2007-01-07 01:42:48Z joerg $ + * @see TxMap + * @see PessimisticTxMap + */ +public class OptimisticTxMapK, V extends TxMapK, V implements MapK, V, +TransactionalResourceManager { + +private SetCopyingTxContext activeTransactions = new HashSetCopyingTxContext(); +private ReadWriteLock commitLock = new ReentrantReadWriteLock(); + +private long commitTimeout = 1000 * 60; // 1 minute + +private long accessTimeout = 1000 * 30; // 30 seconds +public void rollbackTransaction() { +MapTxContext txContext = getActiveTx(); +super.rollbackTransaction(); +activeTransactions.remove(txContext); +} + +public void commitTransaction() throws LockException { +commitTransaction(false); +} + +public void commitTransaction(boolean force) throws LockException { +MapTxContext txContext = getActiveTx(); + +if (txContext == null) { +throw new IllegalStateException( +Active thread + Thread.currentThread() + not associated with a transaction
svn commit: r558033 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource: ./ ResourceEvent.java ResourceInterceptor.java ResourceManager.jav
Author: ozeigermann Date: Fri Jul 20 09:14:53 2007 New Revision: 558033 URL: http://svn.apache.org/viewvc?view=revrev=558033 Log: New package for streamable resources. Will be implemented by transactional file resource manager. Could also offer access to content from a CMS. Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceInterceptor.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java?view=autorev=558033 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceEvent.java Fri Jul 20 09:14:53 2007 @@ -0,0 +1,13 @@ +package org.apache.commons.transaction.resource; + +public interface ResourceEvent { +enum EventType { +ACCESS, READ, CREATE, DELETE, WRITE, MOVE, COPY, COMMIT, ROLLBACK, PROPERTYSET +}; + +String getPath(); +String getDestinationPath(); +String propertyName(); + +EventType getEventType(); +} Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceInterceptor.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceInterceptor.java?view=autorev=558033 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceInterceptor.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceInterceptor.java Fri Jul 20 09:14:53 2007 @@ -0,0 +1,7 @@ +package org.apache.commons.transaction.resource; + + +public interface ResourceInterceptor { +boolean beforeCompletion(ResourceEvent event); +void afterCompletion(ResourceEvent event); +} \ No newline at end of file Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java?view=autorev=558033 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/ResourceManager.java Fri Jul 20 09:14:53 2007 @@ -0,0 +1,15 @@ +package org.apache.commons.transaction.resource; + +import java.io.IOException; + +import org.apache.commons.transaction.locking.LockException; + +public interface ResourceManagerR { +R getResource(String path) throws IOException, LockException; + +String getRootPath() throws IOException, LockException; + +void addInterceptor(ResourceInterceptor interceptor); + +void removeInterceptor(ResourceInterceptor interceptor); +} \ No newline at end of file Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java?view=autorev=558033 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/resource/StreamableResource.java Fri Jul 20 09:14:53 2007 @@ -0,0 +1,51 @@ +package org.apache.commons.transaction.resource; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import
svn commit: r558028 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction: AbstractTransactionalResourceManager.java TransactionalResourceManager.java
Author: ozeigermann Date: Fri Jul 20 09:09:17 2007 New Revision: 558028 URL: http://svn.apache.org/viewvc?view=revrev=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=diffrev=558028r1=558027r2=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 AbstractTransactionalResourceManagerT extends AbstractTransactionalResourceManager.AbstractTxContext implements TransactionalResourceManager { protected ThreadLocalT activeTx = new ThreadLocalT(); -protected SetT activeTransactions = new HashSetT(); - -protected SetT suspendedTransactions = new HashSetT(); - 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 - * emCaution:/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
svn commit: r558034 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file: FileResourceManager.java TxFileResourceManager.java
Author: ozeigermann Date: Fri Jul 20 09:15:31 2007 New Revision: 558034 URL: http://svn.apache.org/viewvc?view=revrev=558034 Log: Adapted to new resource package. File manager still lacks implementation. Removed: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/FileResourceManager.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/TxFileResourceManager.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/TxFileResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/TxFileResourceManager.java?view=diffrev=558034r1=558033r2=558034 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/TxFileResourceManager.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/TxFileResourceManager.java Fri Jul 20 09:15:31 2007 @@ -32,11 +32,13 @@ import org.apache.commons.transaction.TransactionalResourceManager; import org.apache.commons.transaction.AbstractTransactionalResourceManager.AbstractTxContext; import org.apache.commons.transaction.locking.LockException; +import org.apache.commons.transaction.resource.ResourceManager; +import org.apache.commons.transaction.resource.StreamableResource; import org.apache.commons.transaction.util.FileHelper; public class TxFileResourceManager extends AbstractTransactionalResourceManagerTxFileResourceManager.FileTxContext implements -FileResourceManager { +ResourceManagerStreamableResource { private Log logger = LogFactory.getLog(getClass()); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r558035 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking: IntrinsicLockManager.java NativeLockManager.java
Author: ozeigermann Date: Fri Jul 20 09:16:44 2007 New Revision: 558035 URL: http://svn.apache.org/viewvc?view=revrev=558035 Log: Renamed Native- to IntrinsicLockManager Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/IntrinsicLockManager.java - copied, changed from r556343, jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/NativeLockManager.java Removed: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/NativeLockManager.java Copied: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/IntrinsicLockManager.java (from r556343, jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/NativeLockManager.java) URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/IntrinsicLockManager.java?view=diffrev=558035p1=jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/NativeLockManager.javar1=556343p2=jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/IntrinsicLockManager.javar2=558035 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/NativeLockManager.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/IntrinsicLockManager.java Fri Jul 20 09:16:44 2007 @@ -1,8 +1,9 @@ package org.apache.commons.transaction.locking; -public class NativeLockManager extends GenericLockManagerObject, Object implements LockManagerObject, Object { +public class IntrinsicLockManager extends GenericLockManagerObject, Object implements LockManagerObject, Object { +@Override public Object create() { return new Object(); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r558038 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking: GenericLockManager.java LockException.java ReadWriteLockManager.jav
Author: ozeigermann Date: Fri Jul 20 09:19:46 2007 New Revision: 558038 URL: http://svn.apache.org/viewvc?view=revrev=558038 Log: Preparation for deadlock detection Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/GenericLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockException.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/ReadWriteLockManager.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/GenericLockManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/GenericLockManager.java?view=diffrev=558038r1=558037r2=558038 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/GenericLockManager.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/GenericLockManager.java Fri Jul 20 09:19:46 2007 @@ -1,44 +1,47 @@ package org.apache.commons.transaction.locking; +import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; public abstract class GenericLockManagerK, L implements LockManagerK, L { - -protected final ConcurrentHashMapK, L globalLocks = new ConcurrentHashMapK, L(); -protected final ConcurrentHashMapK, L globalOwners = new ConcurrentHashMapK, L(); + +protected ConcurrentHashMapK, L locks = new ConcurrentHashMapK, L(); + +protected MapThread, SetL threads = new ConcurrentHashMapThread, SetL(); @Override public L get(K key) { -return globalLocks.get(key); +return locks.get(key); } - + @Override public L putIfAbsent(K key, L lock) { L existingLock = get(key); if (existingLock == null) { -L concurrentlyInsertedLock = globalLocks.putIfAbsent(key, lock); +L concurrentlyInsertedLock = locks.putIfAbsent(key, lock); if (concurrentlyInsertedLock != null) lock = concurrentlyInsertedLock; } return lock; - + } - + @Override public L remove(K key) { -return globalLocks.remove(key); +return locks.remove(key); } +@Override public IterableL getAll() { -return globalLocks.values(); +return locks.values(); } -// FIXME -public SetL getAllForCurrentThread() { -// TODO Auto-generated method stub -return null; +@Override +public IterableL getAllForCurrentThread() { +return threads.get(Thread.currentThread()); } +public abstract L create(); } Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockException.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockException.java?view=diffrev=558038r1=558037r2=558038 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockException.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockException.java Fri Jul 20 09:19:46 2007 @@ -87,6 +87,11 @@ super(cause); } +public LockException(Throwable cause, Code code) { +super(cause); +this.code = code; +} + /** * Returns the formal reason for the exception. * Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/ReadWriteLockManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/ReadWriteLockManager.java?view=diffrev=558038r1=558037r2=558038 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/ReadWriteLockManager.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/ReadWriteLockManager.java Fri Jul 20 09:19:46 2007 @@ -1,16 +1,136 @@ package org.apache.commons.transaction.locking; +import java.util.Collection; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentSkipListSet; +import java.util.concurrent.TimeUnit; +import
svn commit: r558040 - /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/HierarchicalLockManager.java
Author: ozeigermann Date: Fri Jul 20 09:20:20 2007 New Revision: 558040 URL: http://svn.apache.org/viewvc?view=revrev=558040 Log: New to manager hierarchical locking as required by file resource manager. Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/HierarchicalLockManager.java Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/HierarchicalLockManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/HierarchicalLockManager.java?view=autorev=558040 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/HierarchicalLockManager.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/HierarchicalLockManager.java Fri Jul 20 09:20:20 2007 @@ -0,0 +1,7 @@ +package org.apache.commons.transaction.locking; + + +// Takes care of hierarchical locking with folders and resources +public class HierarchicalLockManager extends ReadWriteLockManager { + +} - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r556345 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction: ./ file/ locking/ memory/ xa/
Author: ozeigermann Date: Sat Jul 14 15:18:19 2007 New Revision: 556345 URL: http://svn.apache.org/viewvc?view=revrev=556345 Log: (empty) Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResourceManager.java - copied, changed from r556197, jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResource.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionalResourceManager.java - copied, changed from r556197, jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionalResource.java Removed: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResource.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/TransactionalResource.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/xa/ Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/TxFileResourceManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/ReadWriteLockManager.java Copied: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResourceManager.java (from r556197, jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResource.java) URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResourceManager.java?view=diffrev=556345p1=jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResource.javar1=556197p2=jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResourceManager.javar2=556345 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResource.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/AbstractTransactionalResourceManager.java Sat Jul 14 15:18:19 2007 @@ -22,7 +22,6 @@ import java.util.concurrent.locks.ReadWriteLock; import org.apache.commons.transaction.locking.LockException; -import org.apache.commons.transaction.locking.LockManager; import org.apache.commons.transaction.locking.ReadWriteLockManager; import org.apache.commons.transaction.locking.LockException.Code; @@ -33,7 +32,7 @@ * * @param T */ -public abstract class AbstractTransactionalResourceT extends AbstractTransactionalResource.AbstractTxContext implements TransactionalResource { +public abstract class AbstractTransactionalResourceManagerT extends AbstractTransactionalResourceManager.AbstractTxContext implements TransactionalResourceManager { protected ThreadLocalT activeTx = new ThreadLocalT(); protected SetT activeTransactions = new HashSetT(); @@ -42,7 +41,18 @@ protected abstract T createContext(); -@Override +/** + * Checks whether this transaction has been marked to allow a rollback as + * the only valid outcome. This can be set my method + * [EMAIL PROTECTED] #markTransactionForRollback()} or might be set internally be any + * fatal error. Once a transaction is marked for rollback there is no way to + * undo this. A transaction that is marked for rollback can not be + * committed, also rolled back. + * + * @return codetrue/code if this transaction has been marked for a + * roll back + * @see #markTransactionForRollback() + */ public boolean isTransactionMarkedForRollback() { T txContext = getActiveTx(); @@ -160,7 +170,10 @@ setActiveTx(null); } -@Override +/** + * Prepares the changes done inside this transaction reasource. + * + */ public boolean prepareTransaction() { T txContext = getActiveTx(); @@ -201,6 +214,11 @@ return false; } +/** + * Marks the current transaction to allow only a rollback as valid outcome. + * + * @see #isTransactionMarkedForRollback() + */ public void markTransactionForRollback() { // TODO Auto-generated method stub Copied: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction
svn commit: r555573 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2: ./ example/ lib/ src/java/org/apache/commons/ src/java/org/apache/transaction/ src/java/org/apache/transaction/file
Author: ozeigermann Date: Thu Jul 12 03:37:26 2007 New Revision: 73 URL: http://svn.apache.org/viewvc?view=revrev=73 Log: Initial new source for 2.0 Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/file/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/GenericLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/LockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/NativeLockManager.java Removed: jakarta/commons/proper/transaction/branches/TRANSACTION_2/example/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/lib/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/ Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/NOTICE.txt Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/NOTICE.txt URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/NOTICE.txt?view=diffrev=73r1=72r2=73 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/NOTICE.txt (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/NOTICE.txt Thu Jul 12 03:37:26 2007 @@ -1,5 +1,5 @@ Apache Jakarta Commons Transaction -Copyright 1999-2004 The Apache Software Foundation +Copyright 1999-2007 The Apache Software Foundation This product includes software developed by The Apache Software Foundation (http://www.apache.org/). Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/GenericLockManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/GenericLockManager.java?view=autorev=73 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/GenericLockManager.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/GenericLockManager.java Thu Jul 12 03:37:26 2007 @@ -0,0 +1,31 @@ +package org.apache.transaction.locking; + +import java.util.concurrent.ConcurrentHashMap; + +public class GenericLockManagerK, L implements LockManagerK, L { + +private final ConcurrentHashMapK, L globalLocks = new ConcurrentHashMapK, L(); + +@Override +public L getLock(K key) { +return globalLocks.get(key); +} + +@Override +public L createLockIfAbsent(K key, L lock) { +L existingLock = getLock(key); +if (existingLock == null) { +L concurrentlyInsertedLock = globalLocks.putIfAbsent(key, lock); +if (concurrentlyInsertedLock != null) +lock = concurrentlyInsertedLock; +} +return lock; + +} + +@Override +public L removeLock(K key) { +return globalLocks.remove(key); +} + +} Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/LockManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/LockManager.java?view=autorev=73 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/LockManager.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/LockManager.java Thu Jul 12 03:37:26 2007 @@ -0,0 +1,10 @@ +package org.apache.transaction.locking; + +public interface LockManagerK, L { +public L getLock(K key); + +public L createLockIfAbsent(K key, L lock); + +public L removeLock(K key); + +} Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/NativeLockManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/NativeLockManager.java?view=autorev=73 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/NativeLockManager.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/NativeLockManager.java Thu Jul 12 03:37:26 2007 @@ -0,0 +1,5 @@ +package
svn commit: r555581 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2: ./ src/conf/ src/java/org/apache/commons/ src/java/org/apache/commons/transaction/ src/java/org/apache/commons/tran
Author: ozeigermann Date: Thu Jul 12 04:14:42 2007 New Revision: 81 URL: http://svn.apache.org/viewvc?view=revrev=81 Log: More cleanup and addition of input stream multicaster Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/ - copied from r73, jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/file/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/ComboInputStreamMulticaster.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/InputStreamMulticaster.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/ - copied from r73, jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/locking/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/test/org/apache/commons/transaction/file/ComboInputStreamMulticasterTest.java Removed: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/conf/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/transaction/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java1.4/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/test/org/apache/commons/transaction/file/FileResourceManagerTest.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/test/org/apache/commons/transaction/locking/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/test/org/apache/commons/transaction/memory/ Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/project.xml jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/GenericLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/NativeLockManager.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/project.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/project.xml?view=diffrev=81r1=80r2=81 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/project.xml (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/project.xml Thu Jul 12 04:14:42 2007 @@ -148,7 +148,7 @@ dependency groupIdjunit/groupId artifactIdjunit/artifactId - version3.8.1/version + versionjunit-4.3.1/version properties scopetest/scope /properties @@ -196,12 +196,7 @@ aspectSourceDirectory/ unitTest includes - includeorg/apache/commons/transaction/file/FileResourceManagerTest.java/include - includeorg/apache/commons/transaction/memory/MapWrapperTest.java/include - includeorg/apache/commons/transaction/memory/OptimisticMapWrapperTest.java/include - includeorg/apache/commons/transaction/memory/PessimisticMapWrapperTest.java/include - includeorg/apache/commons/transaction/locking/GenericLockTest.java/include - includeorg/apache/commons/transaction/locking/LockTestRepeatableReads.java/include + includeorg/apache/commons/transaction/file/ComboInputStreamMulticasterTest.java/include /includes /unitTest resources Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/ComboInputStreamMulticaster.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/ComboInputStreamMulticaster.java?view=autorev=81 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/ComboInputStreamMulticaster.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/ComboInputStreamMulticaster.java Thu Jul 12 04:14:42 2007 @@ -0,0 +1,148 @@ +package org.apache.commons.transaction.file; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import
svn commit: r555614 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction: file/ locking/ util/
Author: ozeigermann Date: Thu Jul 12 05:39:49 2007 New Revision: 555614 URL: http://svn.apache.org/viewvc?view=revrev=555614 Log: Next chaotic step to initial version. - Contains much work_in_progress code in the locking package - util now contains working code for FileHelpers and FileSequence (cleaned from 1.x logging / exception crap) Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/BookKeepingLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/GenericBookKeepingLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/MultiLevelLock.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/MultiLevelLockImpl.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/MultiLevelLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/NoOpCondition.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/NoOpLock.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/NoOpMultiLevelLock.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/util/ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/util/FileHelper.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/util/FileSequence.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/ComboInputStreamMulticaster.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/InputStreamMulticaster.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/GenericLockManager.java jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/LockManager.java Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/ComboInputStreamMulticaster.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/ComboInputStreamMulticaster.java?view=diffrev=555614r1=555613r2=555614 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/ComboInputStreamMulticaster.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/ComboInputStreamMulticaster.java Thu Jul 12 05:39:49 2007 @@ -16,6 +16,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +// TODO: Add two dedicated locks for close/open resp. spawn public class ComboInputStreamMulticaster implements InputStreamMulticaster { private int memoryBufferSize = 8192; @@ -30,6 +31,7 @@ protected boolean isOpen = false; +@Override public synchronized void close() { if (!isOpen) { throw new IllegalStateException(You can not close: Stream multicaster is not open!); @@ -37,6 +39,7 @@ isOpen = false; } +@Override public synchronized void open(InputStream backingInputStream) throws IOException { if (isOpen) { throw new IllegalStateException( @@ -75,6 +78,7 @@ isOpen = true; } +@Override public synchronized InputStream spawn() throws IOException { if (!isOpen) { throw new IllegalStateException( Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/InputStreamMulticaster.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/InputStreamMulticaster.java?view=diffrev=555614r1=555613r2=555614 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/InputStreamMulticaster.java (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/file/InputStreamMulticaster.java Thu Jul 12 05:39:49 2007 @@ -1,9 +1,12 @@ package org.apache.commons.transaction.file; + import java.io.IOException; import java.io.InputStream; public interface InputStreamMulticaster { void open(InputStream backingInputStream
svn commit: r555807 [2/2] - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2/src: java/org/apache/commons/transaction/ java/org/apache/commons/transaction/file/ java/org/apache/commons/tr
Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/TransactionalMapWrapper.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/TransactionalMapWrapper.java?view=autorev=555807 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/TransactionalMapWrapper.java (added) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/src/java/org/apache/commons/transaction/memory/TransactionalMapWrapper.java Thu Jul 12 15:57:44 2007 @@ -0,0 +1,443 @@ +/* + * 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.memory; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import org.apache.commons.transaction.AbstractTransactionManager; +import org.apache.commons.transaction.Status; +import org.apache.commons.transaction.TransactionManager; +import org.apache.commons.transaction.TxContext; + +/** + * Wrapper that adds transactional control to all kinds of maps that implement the [EMAIL PROTECTED] Map} interface. + * This wrapper has rather weak isolation, but is simply, neven blocks and commits will never fail for logical + * reasons. + * br + * Start a transaction by calling [EMAIL PROTECTED] #startTransaction()}. Then perform the normal actions on the map and + * finally either call [EMAIL PROTECTED] #commitTransaction()} to make your changes permanent or [EMAIL PROTECTED] #rollbackTransaction()} to + * undo them. + * br + * emCaution:/em Do not modify values retrieved by [EMAIL PROTECTED] #get(Object)} as this will circumvent the transactional mechanism. + * Rather clone the value or copy it in a way you see fit and store it back using [EMAIL PROTECTED] #put(Object, Object)}. + * br + * emNote:/em This wrapper guarantees isolation level codeREAD COMMITTED/code only. I.e. as soon a value + * is committed in one transaction it will be immediately visible in all other concurrent transactions. + * + * @version $Id: TransactionalMapWrapper.java 493628 2007-01-07 01:42:48Z joerg $ + * @see OptimisticMapWrapper + * @see PessimisticMapWrapper + */ +public class TransactionalMapWrapper extends AbstractTransactionManagerTransactionalMapWrapper.MapTxContext implements Map, TransactionManager { + +/** The map wrapped. */ +protected Map wrapped; + +/** + * Creates a new transactional map wrapper. Temporary maps and sets to store transactional + * data will be instances of [EMAIL PROTECTED] java.util.HashMap} and [EMAIL PROTECTED] java.util.HashSet}. + * + * @param wrapped map to be wrapped + */ +public TransactionalMapWrapper(Map wrapped) { +this.wrapped = Collections.synchronizedMap(wrapped); +} + +// +// Map methods +// + +/** + * @see Map#clear() + */ +public void clear() { +MapTxContext txContext = getActiveTx(); +if (txContext != null) { +txContext.clear(); +} else { +wrapped.clear(); +} +} + +/** + * @see Map#size() + */ +public int size() { +MapTxContext txContext = getActiveTx(); +if (txContext != null) { +return txContext.size(); +} else { +return wrapped.size(); +} +} + +/** + * @see Map#isEmpty() + */ +public boolean isEmpty() { +MapTxContext txContext = getActiveTx(); +if (txContext == null) { +return wrapped.isEmpty(); +} else { +return txContext.isEmpty(); +} +} + +/** + * @see Map#containsKey(java.lang.Object) + */ +public boolean containsKey(Object key) { + return keySet().contains(key); +} + +/** + * @see Map#containsValue(java.lang.Object) + */ +public boolean containsValue(Object value) { +TxContext txContext =
svn commit: r554172 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java
Author: ozeigermann Date: Sat Jul 7 02:51:44 2007 New Revision: 554172 URL: http://svn.apache.org/viewvc?view=revrev=554172 Log: Added patch that now deletes dangling links. Patch provided by Bojan Vukojevic Details can be found here: https://issues.apache.org/jira/browse/TRANSACTION-19 Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java?view=diffrev=554172r1=554171r2=554172 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Sat Jul 7 02:51:44 2007 @@ -157,7 +157,10 @@ throw new IOException(Could not delete file + removeFile.getName() + in directory targetDir); } -} +} else if (!targetFile.isFile()) { +// this is likely a dangling link +targetFile.delete(); +} // indicate, this has been done removeFile.delete(); } else { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r547548 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java
Author: ozeigermann Date: Thu Jun 14 23:30:06 2007 New Revision: 547548 URL: http://svn.apache.org/viewvc?view=revrev=547548 Log: Fix for https://issues.apache.org/jira/browse/TRANSACTION-18 Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java?view=diffrev=547548r1=547547r2=547548 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Thu Jun 14 23:30:06 2007 @@ -151,7 +151,7 @@ for (int i = 0; i files.length; i++) { File removeFile = files[i]; File targetFile = new File(targetDir, removeFile.getName()); -if (removeFile.isFile()) { +if (!removeFile.isDirectory()) { if (targetFile.exists()) { if (!targetFile.delete()) { throw new IOException(Could not delete file + removeFile.getName() - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r545634 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java
Author: ozeigermann Date: Fri Jun 8 14:36:59 2007 New Revision: 545634 URL: http://svn.apache.org/viewvc?view=revrev=545634 Log: Free lock owners once they no longer have any locks associated to them. Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java?view=diffrev=545634r1=545633r2=545634 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java Fri Jun 8 14:36:59 2007 @@ -331,6 +331,7 @@ locks.remove(lock); } } +removeOwnerWithoutLocks(ownerId); } /** @@ -362,6 +363,7 @@ if (locks != null) { locks.remove(lock); } +removeOwnerWithoutLocks(ownerId); } /** @@ -528,5 +530,12 @@ } } - +protected void removeOwnerWithoutLocks(Object ownerId) { +synchronized (globalOwners) { +Set locks = (Set) globalOwners.get(ownerId); +if (locks == null || locks.isEmpty()) { +globalOwners.remove(ownerId); +} +} +} } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r520951 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java
Author: ozeigermann Date: Wed Mar 21 10:05:40 2007 New Revision: 520951 URL: http://svn.apache.org/viewvc?view=revrev=520951 Log: Added a few log lines Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java?view=diffrev=520951r1=520950r2=520951 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Wed Mar 21 10:05:40 2007 @@ -622,6 +622,7 @@ context.status = STATUS_ROLLING_BACK; context.saveState(); context.rollback(); +if (logger.isFineEnabled()) logger.logFine(All resources successfully removed for tx + txId); context.status = STATUS_ROLLEDBACK; context.saveState(); globalTransactions.remove(txId); @@ -661,6 +662,7 @@ context.status = STATUS_COMMITTING; context.saveState(); context.commit(); +if (logger.isFineEnabled()) logger.logFine(All resources successfully moved for tx + txId); context.status = STATUS_COMMITTED; context.saveState(); globalTransactions.remove(txId); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r520389 - in /jakarta/commons/proper/transaction/trunk/src: java/org/apache/commons/transaction/file/FileResourceManager.java test/org/apache/commons/transaction/file/FileResourceManagerVi
Author: ozeigermann Date: Tue Mar 20 06:58:03 2007 New Revision: 520389 URL: http://svn.apache.org/viewvc?view=revrev=520389 Log: Moved changes for administration command to a sub class in order not to overload the base implementation. Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/file/FileResourceManagerVirtualAdminCommandsTest.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java?view=diffrev=520389r1=520388r2=520389 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Tue Mar 20 06:58:03 2007 @@ -18,7 +18,6 @@ import java.io.BufferedReader; import java.io.BufferedWriter; -import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -196,8 +195,6 @@ protected TransactionIdToPathMapper txIdMapper = null; protected int idCnt = 0; - -protected String virtualAdminPath = null; /* * --- ctor and general getter / setter methods --- @@ -205,14 +202,6 @@ * */ -public String getVirtualAdminPath() { -return virtualAdminPath; -} - -public void setVirtualAdminPath(String virutalAdminPath) { -this.virtualAdminPath = virutalAdminPath; -} - /** * Creates a new resource manager operation on the specified directories. * @@ -728,26 +717,16 @@ } public boolean resourceExists(Object txId, Object resourceId) throws ResourceManagerException { -if (isVirtualAdminId(resourceId)) { -logger.logFine(Faking existence of virtual administration command); -return true; -} - lockResource(resourceId, txId, true); return (getPathForRead(txId, resourceId) != null); } public void deleteResource(Object txId, Object resourceId) throws ResourceManagerException { - -checkForVirtualAdminCommand(resourceId); - deleteResource(txId, resourceId, true); } public void deleteResource(Object txId, Object resourceId, boolean assureOnly) throws ResourceManagerException { -checkForVirtualAdminCommand(resourceId); - if (logger.isFineEnabled()) logger.logFine(txId + deleting + resourceId); lockResource(resourceId, txId, false); @@ -781,16 +760,11 @@ } public void createResource(Object txId, Object resourceId) throws ResourceManagerException { - -checkForVirtualAdminCommand(resourceId); - createResource(txId, resourceId, true); } public void createResource(Object txId, Object resourceId, boolean assureOnly) throws ResourceManagerException { -checkForVirtualAdminCommand(resourceId); - if (logger.isFineEnabled()) logger.logFine(txId + creating + resourceId); lockResource(resourceId, txId, false); @@ -824,10 +798,6 @@ } public void copyResource(Object txId, Object fromResourceId, Object toResourceId, boolean overwrite) throws ResourceManagerException { - -checkForVirtualAdminCommand(fromResourceId); -checkForVirtualAdminCommand(toResourceId); - if (logger.isFineEnabled()) logger.logFine(txId + copying + fromResourceId + to + toResourceId); lockResource(fromResourceId, txId, true); @@ -855,10 +825,6 @@ } public void moveResource(Object txId, Object fromResourceId, Object toResourceId, boolean overwrite) throws ResourceManagerException { - -checkForVirtualAdminCommand(fromResourceId); -checkForVirtualAdminCommand(toResourceId); - if (logger.isFineEnabled()) logger.logFine(txId + moving + fromResourceId + to + toResourceId); lockResource(fromResourceId, txId, false); @@ -870,12 +836,6 @@ } public InputStream readResource(Object resourceId) throws ResourceManagerException { - -if (isVirtualAdminId(resourceId)) { -logger.logWarning(Issuing virtual admin command + resourceId); -return executeAdminCommand(resourceId); -} - // create temporary light weight tx Object txId; synchronized (globalTransactions) { @@ -895,12 +855,6 @@ } public InputStream readResource(Object txId, Object resourceId) throws ResourceManagerException { - -if (isVirtualAdminId(resourceId)) { -String message = You
svn commit: r520390 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/VirtualAdminCommandsFileResourceManager.java
Author: ozeigermann Date: Tue Mar 20 06:58:37 2007 New Revision: 520390 URL: http://svn.apache.org/viewvc?view=revrev=520390 Log: Moved changes for administration command to a sub class in order not to overload the base implementation. Added: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/VirtualAdminCommandsFileResourceManager.java Added: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/VirtualAdminCommandsFileResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/VirtualAdminCommandsFileResourceManager.java?view=autorev=520390 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/VirtualAdminCommandsFileResourceManager.java (added) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/VirtualAdminCommandsFileResourceManager.java Tue Mar 20 06:58:37 2007 @@ -0,0 +1,304 @@ +/* + * 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.file; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.OutputStream; + +import org.apache.commons.transaction.util.LoggerFacade; + +/** + * A resource manager for streamable objects stored in a file system that + * features additional administration commands. + * + * @version $Id: FileResourceManager.java 519647 2007-03-18 17:50:02Z + * ozeigermann $ + */ +public class VirtualAdminCommandsFileResourceManager extends +FileResourceManager implements ResourceManager, +ResourceManagerErrorCodes { + +protected String virtualAdminPath = null; + +public String getVirtualAdminPath() { +return virtualAdminPath; +} + +public void setVirtualAdminPath(String virutalAdminPath) { +this.virtualAdminPath = virutalAdminPath; +} + +/** + * Creates a new resource manager operation on the specified directories. + * + * @param storeDir + *directory where main data should go after commit + * @param workDir + *directory where transactions store temporary data + * @param urlEncodePath + *if set to codetrue/code encodes all paths to allow for + *any kind of characters + * @param logger + *the logger to be used by this store + */ +public VirtualAdminCommandsFileResourceManager(String storeDir, +String workDir, boolean urlEncodePath, LoggerFacade logger) { +this(storeDir, workDir, urlEncodePath, logger, false); +} + +/** + * Creates a new resource manager operation on the specified directories. + * + * @param storeDir + *directory where main data should go after commit + * @param workDir + *directory where transactions store temporary data + * @param urlEncodePath + *if set to codetrue/code encodes all paths to allow for + *any kind of characters + * @param logger + *the logger to be used by this store + * @param debug + *if set to codetrue/code logs all locking information to + *transaction.log for debugging inspection + */ +public VirtualAdminCommandsFileResourceManager(String storeDir, +String workDir, boolean urlEncodePath, LoggerFacade logger, +boolean debug) { +this(storeDir, workDir, urlEncodePath ? new URLEncodeIdMapper() : null, +new NoOpTransactionIdToPathMapper(), logger, debug); +} + +/** + * Creates a new resource manager operation on the specified directories. + * This constructor is reintroduced for backwards API compatibility and is + * used by jakarta-slide. + * + * @param storeDir + *directory where main data should go after commit + * @param workDir + *directory where transactions store temporary data + * @param idMapper + *mapper for resourceId to path + * @param
svn commit: r519647 - in /jakarta/commons/proper/transaction/trunk/src: java/org/apache/commons/transaction/file/FileResourceManager.java test/org/apache/commons/transaction/file/FileResourceManagerVi
Author: ozeigermann Date: Sun Mar 18 10:50:02 2007 New Revision: 519647 URL: http://svn.apache.org/viewvc?view=revrev=519647 Log: Added sketch for administration interface Added: jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/file/FileResourceManagerVirtualAdminCommandsTest.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java?view=diffrev=519647r1=519646r2=519647 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Sun Mar 18 10:50:02 2007 @@ -18,6 +18,7 @@ import java.io.BufferedReader; import java.io.BufferedWriter; +import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -195,6 +196,8 @@ protected TransactionIdToPathMapper txIdMapper = null; protected int idCnt = 0; + +protected String virtualAdminPath = null; /* * --- ctor and general getter / setter methods --- @@ -202,6 +205,14 @@ * */ +public String getVirtualAdminPath() { +return virtualAdminPath; +} + +public void setVirtualAdminPath(String virutalAdminPath) { +this.virtualAdminPath = virutalAdminPath; +} + /** * Creates a new resource manager operation on the specified directories. * @@ -717,16 +728,26 @@ } public boolean resourceExists(Object txId, Object resourceId) throws ResourceManagerException { +if (isVirtualAdminId(resourceId)) { +logger.logFine(Faking existence of virtual administration command); +return true; +} + lockResource(resourceId, txId, true); return (getPathForRead(txId, resourceId) != null); } public void deleteResource(Object txId, Object resourceId) throws ResourceManagerException { + +checkForVirtualAdminCommand(resourceId); + deleteResource(txId, resourceId, true); } public void deleteResource(Object txId, Object resourceId, boolean assureOnly) throws ResourceManagerException { +checkForVirtualAdminCommand(resourceId); + if (logger.isFineEnabled()) logger.logFine(txId + deleting + resourceId); lockResource(resourceId, txId, false); @@ -760,11 +781,16 @@ } public void createResource(Object txId, Object resourceId) throws ResourceManagerException { + +checkForVirtualAdminCommand(resourceId); + createResource(txId, resourceId, true); } public void createResource(Object txId, Object resourceId, boolean assureOnly) throws ResourceManagerException { +checkForVirtualAdminCommand(resourceId); + if (logger.isFineEnabled()) logger.logFine(txId + creating + resourceId); lockResource(resourceId, txId, false); @@ -798,6 +824,10 @@ } public void copyResource(Object txId, Object fromResourceId, Object toResourceId, boolean overwrite) throws ResourceManagerException { + +checkForVirtualAdminCommand(fromResourceId); +checkForVirtualAdminCommand(toResourceId); + if (logger.isFineEnabled()) logger.logFine(txId + copying + fromResourceId + to + toResourceId); lockResource(fromResourceId, txId, true); @@ -825,6 +855,10 @@ } public void moveResource(Object txId, Object fromResourceId, Object toResourceId, boolean overwrite) throws ResourceManagerException { + +checkForVirtualAdminCommand(fromResourceId); +checkForVirtualAdminCommand(toResourceId); + if (logger.isFineEnabled()) logger.logFine(txId + moving + fromResourceId + to + toResourceId); lockResource(fromResourceId, txId, false); @@ -836,6 +870,12 @@ } public InputStream readResource(Object resourceId) throws ResourceManagerException { + +if (isVirtualAdminId(resourceId)) { +logger.logWarning(Issuing virtual admin command + resourceId); +return executeAdminCommand(resourceId); +} + // create temporary light weight tx Object txId; synchronized (globalTransactions) { @@ -855,6 +895,12 @@ } public InputStream readResource(Object txId, Object resourceId) throws ResourceManagerException { + +if (isVirtualAdminId(resourceId)) { +String message = You must not call virtual admin commands ( + resourceId
svn commit: r519649 - /jakarta/commons/proper/transaction/trunk/xdocs/releases.xml
Author: ozeigermann Date: Sun Mar 18 10:54:22 2007 New Revision: 519649 URL: http://svn.apache.org/viewvc?view=revrev=519649 Log: Removed outdated beta release links Modified: jakarta/commons/proper/transaction/trunk/xdocs/releases.xml Modified: jakarta/commons/proper/transaction/trunk/xdocs/releases.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/xdocs/releases.xml?view=diffrev=519649r1=519648r2=519649 == --- jakarta/commons/proper/transaction/trunk/xdocs/releases.xml (original) +++ jakarta/commons/proper/transaction/trunk/xdocs/releases.xml Sun Mar 18 10:54:22 2007 @@ -29,6 +29,7 @@ lia href=http://archive.apache.org/dist/jakarta/commons/transaction/;Version 1.0 - 15 December 2004/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_0_RELEASE/RELEASE-NOTES.txt;release notes/a/li lia href=http://archive.apache.org/dist/jakarta/commons/transaction/;Version 1.0.1 - 13 January 2005/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_0_1_RELEASE/RELEASE-NOTES.txt;release notes/a/li lia href=http://jakarta.apache.org/site/downloads/downloads_commons-transaction.cgi;Version 1.1 - 02 June 2005/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_FINAL_RELEASE/RELEASE-NOTES.txt;release notes/a/li + lia href=http://jakarta.apache.org/site/downloads/downloads_commons-transaction.cgi;Version 1.2 - 04 March 2007/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_2_RELEASE/RELEASE-NOTES.txt;release notes/a/li /ul p The latest binary and source releases are always available on the @@ -45,8 +46,6 @@ section name=Beta Releases / Release Candidates pThe following beta releases / release candidates are available:/p ul - lia href=http://people.apache.org/dist/jakarta/commons/transaction/1.1b1/;Version 1.1 beta 1 - 13 January 2005/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B1_RELEASE/RELEASE-NOTES.txt;release notes/a/li - lia href=http://people.apache.org/dist/jakarta/commons/transaction/1.1b2/;Version 1.1 beta 2 - 5 February 2005/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE/RELEASE-NOTES.txt;release notes/a/li /ul /section section name=Latest Sources - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r519654 - /jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt
Author: ozeigermann Date: Sun Mar 18 10:57:09 2007 New Revision: 519654 URL: http://svn.apache.org/viewvc?view=revrev=519654 Log: Added sketch for administration interface Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?view=diffrev=519654r1=519653r2=519654 == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Sun Mar 18 10:57:09 2007 @@ -1,8 +1,13 @@ -Jakarta Commons Transaction Release 1.2 +Jakarta Commons Transaction Release 1.3 --- -RELEASE NUMBER: 1.2 -RELEASE TAG / BRANCH: TRANSACTION_1_2_RELEASE / none yet +RELEASE NUMBER: 1.3 +RELEASE TAG / BRANCH: none yet / none yet + +STATUS +-- + +Branch to be spawned DESCRIPTION --- @@ -19,31 +24,12 @@ GENERAL RELEASE NOTES - -This is a bug fix/maintenance/feature release of Commons Transaction. A lot of bug fixing work -from a number of people has gone into this release. This makes Commons Transaction more stable and reliable. -Additionally, some nice features have been added. See below for details. - -ENHANCEMENTS FROM 1.1 +ENHANCEMENTS FROM 1.2 - -- Better error reporting in FileHelper when destination directories (moveRec) or files (copyRec) could not be created -- Added functions to FileResourceManager for copying and moving resources. -- Added possibility to append to (instead of overwriting) an existing resource with writeResource in FileResourceManager. -- Added LoggerFacade implementation for Jakarta Commons Logging +- A simple, path based administration interface was added. This allows to call certain methods of the manager simply by accessing a certain path. -BUGFIXES FROM 1.1 +BUGFIXES FROM 1.2 - -- Fixed bugzilla issue 35201. Maps in AbstractXAResource now are synchronized to avoid problems in multi threaded scenarios. -- Fixed bug reported by Niklas Gustavsson on http://www.mail-archive.com/commons-dev@jakarta.apache.org/msg69441.html. - Failed deletion of a file now throws an exception and enters an error state upon commit. -- Reduced likelyhood of clash between internally generated and external tx id in generatedUniqueTxId -- Fixed bugzilla issue 35377. Synchronizing on Set activeTransactions while iterating over its items in - OptimisticMapWrapper.copyChangesToConcurrentTransactions() for preventing ConcurrentModificationException. -- Fixed bugzilla issue 37379. The construction of the transaction specific path is now done via a TransactionIdToPathMapper. -- Fixed issue with deleteResource(..) and createResource(..) of FileResourceManager seen as read-only operations. -- Fixed issue with AbstractXAResource. Resources did not get released when prepare(..) returns XA_RDONLY as no - commit(..) is triggered by the TransactionManager explicitely. -- TransactionalMapWrapper now properly supports null values. Bug report and fix supplied by Greg Steckman at http://issues.apache.org/bugzilla/show_bug.cgi?id=38545 -- Minor bug reported at http://issues.apache.org/bugzilla/show_bug.cgi?id=39559 has been fixed. KNOWN ISSUES - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r516334 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_2: RELEASE-NOTES.txt build.properties.sample build.xml project.properties project.xml
Author: ozeigermann Date: Fri Mar 9 00:53:33 2007 New Revision: 516334 URL: http://svn.apache.org/viewvc?view=revrev=516334 Log: Initial updates for 2.0 development Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/RELEASE-NOTES.txt jakarta/commons/proper/transaction/branches/TRANSACTION_2/build.properties.sample jakarta/commons/proper/transaction/branches/TRANSACTION_2/build.xml jakarta/commons/proper/transaction/branches/TRANSACTION_2/project.properties jakarta/commons/proper/transaction/branches/TRANSACTION_2/project.xml Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/RELEASE-NOTES.txt URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/RELEASE-NOTES.txt?view=diffrev=516334r1=516333r2=516334 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/RELEASE-NOTES.txt Fri Mar 9 00:53:33 2007 @@ -1,14 +1,14 @@ -Jakarta Commons Transaction Release 1.2 +Jakarta Commons Transaction Release 2.0 --- -RELEASE NUMBER: 1.2 -RELEASE TAG / BRANCH: TRANSACTION_1_2_RELEASE / none yet +RELEASE NUMBER: 2.0 +RELEASE TAG / BRANCH: none yet / TRANSACTION_2 DESCRIPTION --- -Commons Transaction aims at providing utility classes commonly used in -transactional Java programming. +Commons Transaction 2 aims at providing a general infrastructure for transcational systems. +A transactional file system servers as the initial default implementation. There are implementations for: - multi level (e.g. read/write) locks, @@ -19,33 +19,11 @@ GENERAL RELEASE NOTES - -This is a bug fix/maintenance/feature release of Commons Transaction. A lot of bug fixing work -from a number of people has gone into this release. This makes Commons Transaction more stable and reliable. -Additionally, some nice features have been added. See below for details. +JDK COMPATIBILITIES +--- -ENHANCEMENTS FROM 1.1 -- -- Better error reporting in FileHelper when destination directories (moveRec) or files (copyRec) could not be created -- Added functions to FileResourceManager for copying and moving resources. -- Added possibility to append to (instead of overwriting) an existing resource with writeResource in FileResourceManager. -- Added LoggerFacade implementation for Jakarta Commons Logging - -BUGFIXES FROM 1.1 -- -- Fixed bugzilla issue 35201. Maps in AbstractXAResource now are synchronized to avoid problems in multi threaded scenarios. -- Fixed bug reported by Niklas Gustavsson on http://www.mail-archive.com/commons-dev@jakarta.apache.org/msg69441.html. - Failed deletion of a file now throws an exception and enters an error state upon commit. -- Reduced likelyhood of clash between internally generated and external tx id in generatedUniqueTxId -- Fixed bugzilla issue 35377. Synchronizing on Set activeTransactions while iterating over its items in - OptimisticMapWrapper.copyChangesToConcurrentTransactions() for preventing ConcurrentModificationException. -- Fixed bugzilla issue 37379. The construction of the transaction specific path is now done via a TransactionIdToPathMapper. -- Fixed issue with deleteResource(..) and createResource(..) of FileResourceManager seen as read-only operations. -- Fixed issue with AbstractXAResource. Resources did not get released when prepare(..) returns XA_RDONLY as no - commit(..) is triggered by the TransactionManager explicitely. -- TransactionalMapWrapper now properly supports null values. Bug report and fix supplied by Greg Steckman at http://issues.apache.org/bugzilla/show_bug.cgi?id=38545 -- Minor bug reported at http://issues.apache.org/bugzilla/show_bug.cgi?id=39559 has been fixed. +Commons Transaction 2 requires JDK 1.5 or up KNOWN ISSUES -- Deadlock detection sometimes determines more than one thread as a deadlock victim Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/build.properties.sample URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/build.properties.sample?view=diffrev=516334r1=516333r2=516334 == Binary files - no diff available. Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_2/build.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_2/build.xml?view=diffrev=516334r1=516333r2=516334 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_2/build.xml (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_2/build.xml Fri Mar 9 00:53:33 2007 @@ -30,13 +30,13
svn commit: r514406 - /jakarta/commons/proper/transaction/trunk/project.xml
Author: ozeigermann Date: Sun Mar 4 07:28:11 2007 New Revision: 514406 URL: http://svn.apache.org/viewvc?view=revrev=514406 Log: Updated to most recent release number Modified: jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/project.xml?view=diffrev=514406r1=514405r2=514406 == --- jakarta/commons/proper/transaction/trunk/project.xml (original) +++ jakarta/commons/proper/transaction/trunk/project.xml Sun Mar 4 07:28:11 2007 @@ -25,7 +25,7 @@ shortDescriptionCommons Transaction/shortDescription descriptionCommons Transaction/description - currentVersion1.2-rc3/currentVersion + currentVersion1.2-rc4/currentVersion urlhttp://jakarta.apache.org/commons/${pom.artifactId.substring(8)}//url packageorg.apache.commons.${pom.artifactId.substring(8)}/package - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r514407 - /jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/
Author: ozeigermann Date: Sun Mar 4 07:29:07 2007 New Revision: 514407 URL: http://svn.apache.org/viewvc?view=revrev=514407 Log: (empty) Added: jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/ - copied from r514406, jakarta/commons/proper/transaction/trunk/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r514408 - /jakarta/commons/proper/transaction/trunk/build.xml
Author: ozeigermann Date: Sun Mar 4 07:30:40 2007 New Revision: 514408 URL: http://svn.apache.org/viewvc?view=revrev=514408 Log: Updated to most recent release number Modified: jakarta/commons/proper/transaction/trunk/build.xml Modified: jakarta/commons/proper/transaction/trunk/build.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/build.xml?view=diffrev=514408r1=514407r2=514408 == --- jakarta/commons/proper/transaction/trunk/build.xml (original) +++ jakarta/commons/proper/transaction/trunk/build.xml Sun Mar 4 07:30:40 2007 @@ -36,7 +36,7 @@ property name=compile.deprecation value=true / property name=compile.optimize value=true / - property name=version value=1.2-rc3/ + property name=version value=1.2-rc4/ property name=name value=commons-transaction / property name=title value=Commons Transaction / property name=package value=org.apache.commons.transaction / - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r514411 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH: RELEASE-NOTES.txt build.xml
Author: ozeigermann Date: Sun Mar 4 07:35:33 2007 New Revision: 514411 URL: http://svn.apache.org/viewvc?view=revrev=514411 Log: Updated to most recent release number Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/RELEASE-NOTES.txt jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/build.xml Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/RELEASE-NOTES.txt URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/RELEASE-NOTES.txt?view=diffrev=514411r1=514410r2=514411 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/RELEASE-NOTES.txt Sun Mar 4 07:35:33 2007 @@ -2,7 +2,7 @@ --- RELEASE NUMBER: 1.2 -RELEASE TAG / BRANCH: TRANSACTION_1_2_RELEASE / none yet +RELEASE TAG / BRANCH: TRANSACTION_1_2_RELEASE_BRANCH / none yet DESCRIPTION --- Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/build.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/build.xml?view=diffrev=514411r1=514410r2=514411 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/build.xml (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/build.xml Sun Mar 4 07:35:33 2007 @@ -36,7 +36,7 @@ property name=compile.deprecation value=true / property name=compile.optimize value=true / - property name=version value=1.2-rc3/ + property name=version value=1.2-rc4/ property name=name value=commons-transaction / property name=title value=Commons Transaction / property name=package value=org.apache.commons.transaction / - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r514418 - in /jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH: RELEASE-NOTES.txt build.xml project.xml xdocs/releases.xml
Author: ozeigermann Date: Sun Mar 4 07:55:20 2007 New Revision: 514418 URL: http://svn.apache.org/viewvc?view=revrev=514418 Log: Final release preparations Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/RELEASE-NOTES.txt jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/build.xml jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/project.xml jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/xdocs/releases.xml Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/RELEASE-NOTES.txt URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/RELEASE-NOTES.txt?view=diffrev=514418r1=514417r2=514418 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/RELEASE-NOTES.txt Sun Mar 4 07:55:20 2007 @@ -2,7 +2,7 @@ --- RELEASE NUMBER: 1.2 -RELEASE TAG / BRANCH: TRANSACTION_1_2_RELEASE_BRANCH / none yet +RELEASE TAG / BRANCH: TRANSACTION_1_2_RELEASE / TRANSACTION_1_2_RELEASE_BRANCH DESCRIPTION --- Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/build.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/build.xml?view=diffrev=514418r1=514417r2=514418 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/build.xml (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/build.xml Sun Mar 4 07:55:20 2007 @@ -36,7 +36,7 @@ property name=compile.deprecation value=true / property name=compile.optimize value=true / - property name=version value=1.2-rc4/ + property name=version value=1.2/ property name=name value=commons-transaction / property name=title value=Commons Transaction / property name=package value=org.apache.commons.transaction / Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/project.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/project.xml?view=diffrev=514418r1=514417r2=514418 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/project.xml (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/project.xml Sun Mar 4 07:55:20 2007 @@ -25,7 +25,7 @@ shortDescriptionCommons Transaction/shortDescription descriptionCommons Transaction/description - currentVersion1.2-rc4/currentVersion + currentVersion1.2/currentVersion urlhttp://jakarta.apache.org/commons/${pom.artifactId.substring(8)}//url packageorg.apache.commons.${pom.artifactId.substring(8)}/package Modified: jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/xdocs/releases.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/xdocs/releases.xml?view=diffrev=514418r1=514417r2=514418 == --- jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/xdocs/releases.xml (original) +++ jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/xdocs/releases.xml Sun Mar 4 07:55:20 2007 @@ -29,6 +29,7 @@ lia href=http://archive.apache.org/dist/jakarta/commons/transaction/;Version 1.0 - 15 December 2004/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_0_RELEASE/RELEASE-NOTES.txt;release notes/a/li lia href=http://archive.apache.org/dist/jakarta/commons/transaction/;Version 1.0.1 - 13 January 2005/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_0_1_RELEASE/RELEASE-NOTES.txt;release notes/a/li lia href=http://jakarta.apache.org/site/downloads/downloads_commons-transaction.cgi;Version 1.1 - 02 June 2005/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_FINAL_RELEASE/RELEASE-NOTES.txt;release notes/a/li + lia href=http://jakarta.apache.org/site/downloads/downloads_commons-transaction.cgi;Version 1.2 - 04 March 2007/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_2_RELEASE/RELEASE-NOTES.txt;release notes/a/li /ul p The latest binary and source releases are always available
svn commit: r514422 - /jakarta/commons/proper/transaction/tags/TRANSACTION_1_2_RELEASE/
Author: ozeigermann Date: Sun Mar 4 08:04:05 2007 New Revision: 514422 URL: http://svn.apache.org/viewvc?view=revrev=514422 Log: 1.2 release tag Added: jakarta/commons/proper/transaction/tags/TRANSACTION_1_2_RELEASE/ - copied from r514421, jakarta/commons/proper/transaction/branches/TRANSACTION_1_2_RELEASE_BRANCH/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r514430 - /jakarta/commons/proper/transaction/branches/TRANSACTION_2/
Author: ozeigermann Date: Sun Mar 4 08:31:33 2007 New Revision: 514430 URL: http://svn.apache.org/viewvc?view=revrev=514430 Log: (empty) Added: jakarta/commons/proper/transaction/branches/TRANSACTION_2/ - copied from r514429, jakarta/commons/proper/transaction/trunk/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r513490 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/ResourceManager.java
Author: ozeigermann Date: Thu Mar 1 12:46:28 2007 New Revision: 513490 URL: http://svn.apache.org/viewvc?view=revrev=513490 Log: Fixed minor typo Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/ResourceManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/ResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/ResourceManager.java?view=diffrev=513490r1=513489r2=513490 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/ResourceManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/ResourceManager.java Thu Mar 1 12:46:28 2007 @@ -128,7 +128,7 @@ * a network connection must be reestablished. * * @return codetrue/code upon successful recovery of the resource manager - * @throws ResourceManagerSystemException if anything fatal hapened during shutdown + * @throws ResourceManagerSystemException if anything fatal hapened during recovery */ public boolean recover() throws ResourceManagerSystemException; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r426820 - in /jakarta/commons/proper/transaction/trunk: build.properties.sample build.xml lib/geronimo-spec-j2ee-1.0-M1.jar lib/geronimo-spec-j2ee-1.4-rc4.jar lib/geronimo-spec-servlet-2.4
Author: ozeigermann Date: Sat Jul 29 08:57:46 2006 New Revision: 426820 URL: http://svn.apache.org/viewvc?rev=426820view=rev Log: Preparation for rc3 Added: jakarta/commons/proper/transaction/trunk/lib/geronimo-spec-j2ee-1.4-rc4.jar (with props) jakarta/commons/proper/transaction/trunk/lib/geronimo-spec-servlet-2.4-rc4.jar (with props) Removed: jakarta/commons/proper/transaction/trunk/lib/geronimo-spec-j2ee-1.0-M1.jar Modified: jakarta/commons/proper/transaction/trunk/build.properties.sample jakarta/commons/proper/transaction/trunk/build.xml jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/build.properties.sample URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/build.properties.sample?rev=426820r1=426819r2=426820view=diff == Binary files - no diff available. Modified: jakarta/commons/proper/transaction/trunk/build.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/build.xml?rev=426820r1=426819r2=426820view=diff == --- jakarta/commons/proper/transaction/trunk/build.xml (original) +++ jakarta/commons/proper/transaction/trunk/build.xml Sat Jul 29 08:57:46 2006 @@ -57,8 +57,8 @@ property name=dist.lib value=${dist.dir}/lib/ property name=dist.deploy value=${dist.dir}/deploy/ - property name=j2ee.jar value=${lib.dir}/geronimo-spec-j2ee.jar/ - property name=servlet.jar value=${lib.dir}/geronimo-spec-servlet-2.4.jar/ + property name=j2ee.jar value=${lib.dir}/geronimo-spec-j2ee-1.4-rc4.jar/ + property name=servlet.jar value=${lib.dir}/geronimo-spec-servlet-2.4-rc4.jar/ path id=classpath pathelement location=${build.classes} / @@ -78,7 +78,11 @@ available property=j2ee.present classname=javax.resource.cci.Connection classpath=${j2ee.jar}/ available property=servlet.present classname=javax.servlet.Servlet classpath=${servlet.jar}/ condition property=jvm14.present -equals arg1=${ant.java.version} arg2=1.4/ +or + equals arg1=${ant.java.version} arg2=1.4/ + equals arg1=${ant.java.version} arg2=1.5/ + equals arg1=${ant.java.version} arg2=1.6/ +/or /condition echo message=+---/ echo message=| Build environment for ${name} ${version}/ @@ -105,6 +109,7 @@ echo message=Optional Libraries:/ echo message= J2EE API ${j2ee.present}/ echo message= Servlet API ${servlet.present}/ +echo message= JVM 14${jvm14.present}/ echo message=/ property name=required.present value=true/ !--condition property=required.present @@ -169,7 +174,7 @@ /javac /target - target name=build-test depends=build + target name=build-test depends=detect,build if=jvm14.present javac destdir=${build.classes} target=${compile.target} debug=${compile.debug} @@ -434,6 +439,10 @@ copy file=project.xml tofile=${dist.dir}/${final.name}.pom / antcall target=internal-md5 param name=path value=${dist.dir}/${final.name}.pom/ +/antcall +copy file=${build.lib}/${final.name}.jar tofile=${dist.dir}/${final.name}.jar / +antcall target=internal-md5 + param name=path value=${dist.dir}/${final.name}.jar/ /antcall /target Added: jakarta/commons/proper/transaction/trunk/lib/geronimo-spec-j2ee-1.4-rc4.jar URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/lib/geronimo-spec-j2ee-1.4-rc4.jar?rev=426820view=auto == Binary file - no diff available. Propchange: jakarta/commons/proper/transaction/trunk/lib/geronimo-spec-j2ee-1.4-rc4.jar -- svn:mime-type = application/octet-stream Added: jakarta/commons/proper/transaction/trunk/lib/geronimo-spec-servlet-2.4-rc4.jar URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/lib/geronimo-spec-servlet-2.4-rc4.jar?rev=426820view=auto == Binary file - no diff available. Propchange: jakarta/commons/proper/transaction/trunk/lib/geronimo-spec-servlet-2.4-rc4.jar -- svn:mime-type = application/octet-stream Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/project.xml?rev=426820r1=426819r2=426820view=diff == --- jakarta/commons
svn commit: r425360 - /jakarta/commons/proper/transaction/trunk/build.xml
Author: ozeigermann Date: Tue Jul 25 03:18:13 2006 New Revision: 425360 URL: http://svn.apache.org/viewvc?rev=425360view=rev Log: Made release files look like they should Modified: jakarta/commons/proper/transaction/trunk/build.xml Modified: jakarta/commons/proper/transaction/trunk/build.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/build.xml?rev=425360r1=425359r2=425360view=diff == --- jakarta/commons/proper/transaction/trunk/build.xml (original) +++ jakarta/commons/proper/transaction/trunk/build.xml Tue Jul 25 03:18:13 2006 @@ -435,32 +435,32 @@ target name=zip-bin tar longfile=gnu tarfile=${dist.dir}/${final.name}.tar - tarfileset dir=${build.bin.dist}/ + tarfileset prefix=${final.name} dir=${build.bin.dist}/ /tar -gzip zipfile=${dist.dir}/${final.name}.tgz src=${dist.dir}/${final.name}.tar/ +gzip zipfile=${dist.dir}/${final.name}.tar.gz src=${dist.dir}/${final.name}.tar/ delete file=${dist.dir}/${final.name}.tar / zip zipfile=${dist.dir}/${final.name}.zip - zipfileset dir=${build.bin.dist}/ + zipfileset prefix=${final.name} dir=${build.bin.dist}/ /zip -checksum file=${dist.dir}/${final.name}.tgz/ -checksum file=${dist.dir}/${final.name}.zip/ +checksum fileext=.md5 file=${dist.dir}/${final.name}.tar.gz/ +checksum fileext=.md5 file=${dist.dir}/${final.name}.zip/ /target target name=zip-src tar longfile=gnu tarfile=${dist.dir}/${final.name}-src.tar - tarfileset dir=${build.src.dist}/ + tarfileset prefix=${final.name}-src dir=${build.src.dist}/ /tar -gzip zipfile=${dist.dir}/${final.name}-src.tgz src=${dist.dir}/${final.name}-src.tar/ +gzip zipfile=${dist.dir}/${final.name}-src.tar.gz src=${dist.dir}/${final.name}-src.tar/ delete file=${dist.dir}/${final.name}-src.tar / zip zipfile=${dist.dir}/${final.name}-src.zip - zipfileset dir=${build.src.dist}/ + zipfileset prefix=${final.name}-src dir=${build.src.dist}/ /zip -checksum file=${dist.dir}/${final.name}-src.tgz/ -checksum file=${dist.dir}/${final.name}-src.zip/ +checksum fileext=.md5 file=${dist.dir}/${final.name}-src.tar.gz/ +checksum fileext=.md5 file=${dist.dir}/${final.name}-src.zip/ /target /project - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r425540 - in /jakarta/commons/proper/transaction/trunk: build.xml src/conf/MANIFEST.MF
Author: ozeigermann Date: Tue Jul 25 15:25:09 2006 New Revision: 425540 URL: http://svn.apache.org/viewvc?rev=425540view=rev Log: Further fixes for the 1.2 release Modified: jakarta/commons/proper/transaction/trunk/build.xml jakarta/commons/proper/transaction/trunk/src/conf/MANIFEST.MF Modified: jakarta/commons/proper/transaction/trunk/build.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/build.xml?rev=425540r1=425539r2=425540view=diff == --- jakarta/commons/proper/transaction/trunk/build.xml (original) +++ jakarta/commons/proper/transaction/trunk/build.xml Tue Jul 25 15:25:09 2006 @@ -20,7 +20,7 @@ property name=compile.deprecation value=true / property name=compile.optimize value=true / - property name=version value=1.2-rc1/ + property name=version value=1.2-rc3/ property name=name value=commons-transaction / property name=title value=Commons Transaction / property name=package value=org.apache.commons.transaction / @@ -57,8 +57,8 @@ property name=dist.lib value=${dist.dir}/lib/ property name=dist.deploy value=${dist.dir}/deploy/ - property name=j2ee.jar value=${lib.dir}/geronimo-spec-j2ee-1.0-M1.jar/ - property name=servlet.jar value=${lib.dir}/geronimo-spec-j2ee-1.0-M1.jar/ + property name=j2ee.jar value=${lib.dir}/geronimo-spec-j2ee.jar/ + property name=servlet.jar value=${lib.dir}/geronimo-spec-servlet-2.4.jar/ path id=classpath pathelement location=${build.classes} / @@ -431,6 +431,10 @@ !-- == -- target name=package depends=scrub,dist,zip-bin,zip-src description=Packages distribution +copy file=project.xml tofile=${dist.dir}/${final.name}.pom / +antcall target=internal-md5 + param name=path value=${dist.dir}/${final.name}.pom/ +/antcall /target target name=zip-bin @@ -440,12 +444,17 @@ gzip zipfile=${dist.dir}/${final.name}.tar.gz src=${dist.dir}/${final.name}.tar/ delete file=${dist.dir}/${final.name}.tar / +antcall target=internal-md5 + param name=path value=${dist.dir}/${final.name}.tar.gz/ +/antcall + zip zipfile=${dist.dir}/${final.name}.zip zipfileset prefix=${final.name} dir=${build.bin.dist}/ /zip -checksum fileext=.md5 file=${dist.dir}/${final.name}.tar.gz/ -checksum fileext=.md5 file=${dist.dir}/${final.name}.zip/ +antcall target=internal-md5 + param name=path value=${dist.dir}/${final.name}.zip/ +/antcall /target target name=zip-src @@ -455,12 +464,24 @@ gzip zipfile=${dist.dir}/${final.name}-src.tar.gz src=${dist.dir}/${final.name}-src.tar/ delete file=${dist.dir}/${final.name}-src.tar / +antcall target=internal-md5 + param name=path value=${dist.dir}/${final.name}-src.tar.gz/ +/antcall + zip zipfile=${dist.dir}/${final.name}-src.zip zipfileset prefix=${final.name}-src dir=${build.src.dist}/ /zip -checksum fileext=.md5 file=${dist.dir}/${final.name}-src.tar.gz/ -checksum fileext=.md5 file=${dist.dir}/${final.name}-src.zip/ +antcall target=internal-md5 + param name=path value=${dist.dir}/${final.name}-src.zip/ +/antcall + + /target + + target name=internal-md5 +basename property=_base file=${path}/ +checksum file=${path} property=md5/ + echo message=${md5} *${_base} file=${path}.md5/ /target /project Modified: jakarta/commons/proper/transaction/trunk/src/conf/MANIFEST.MF URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/conf/MANIFEST.MF?rev=425540r1=425539r2=425540view=diff == --- jakarta/commons/proper/transaction/trunk/src/conf/MANIFEST.MF (original) +++ jakarta/commons/proper/transaction/trunk/src/conf/MANIFEST.MF Tue Jul 25 15:25:09 2006 @@ -6,5 +6,6 @@ Specification-Title: @title@ Implementation-Version: @version@ Implementation-Vendor: Apache Software Foundation -Implementation-Vendor-Id: - +mplementation-Vendor-Id: org.apache +X-Compile-Source-JDK: 1.3 +X-Compile-Target-JDK: 1.3 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r425541 - /jakarta/commons/proper/transaction/trunk/project.xml
Author: ozeigermann Date: Tue Jul 25 15:25:31 2006 New Revision: 425541 URL: http://svn.apache.org/viewvc?rev=425541view=rev Log: Further fixes for the 1.2 release Modified: jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/project.xml?rev=425541r1=425540r2=425541view=diff == --- jakarta/commons/proper/transaction/trunk/project.xml (original) +++ jakarta/commons/proper/transaction/trunk/project.xml Tue Jul 25 15:25:31 2006 @@ -9,7 +9,7 @@ shortDescriptionCommons Transaction/shortDescription descriptionCommons Transaction/description - currentVersion1.2-rc1/currentVersion + currentVersion1.2-rc3/currentVersion urlhttp://jakarta.apache.org/commons/${pom.artifactId.substring(8)}//url packageorg.apache.commons.${pom.artifactId.substring(8)}/package - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r425012 - in /jakarta/commons/proper/transaction/trunk: build.xml project.xml
Author: ozeigermann Date: Mon Jul 24 04:15:16 2006 New Revision: 425012 URL: http://svn.apache.org/viewvc?rev=425012view=rev Log: Preparation for 1.2 release Modified: jakarta/commons/proper/transaction/trunk/build.xml jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/build.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/build.xml?rev=425012r1=425011r2=425012view=diff == --- jakarta/commons/proper/transaction/trunk/build.xml (original) +++ jakarta/commons/proper/transaction/trunk/build.xml Mon Jul 24 04:15:16 2006 @@ -20,7 +20,7 @@ property name=compile.deprecation value=true / property name=compile.optimize value=true / - property name=version value=1.1.1pre1/ + property name=version value=1.2-rc1/ property name=name value=commons-transaction / property name=title value=Commons Transaction / property name=package value=org.apache.commons.transaction / Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/project.xml?rev=425012r1=425011r2=425012view=diff == --- jakarta/commons/proper/transaction/trunk/project.xml (original) +++ jakarta/commons/proper/transaction/trunk/project.xml Mon Jul 24 04:15:16 2006 @@ -9,7 +9,7 @@ shortDescriptionCommons Transaction/shortDescription descriptionCommons Transaction/description - currentVersion1.1.1-SNAPSHOT/currentVersion + currentVersion1.2-rc1/currentVersion urlhttp://jakarta.apache.org/commons/${pom.artifactId.substring(8)}//url packageorg.apache.commons.${pom.artifactId.substring(8)}/package - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r423981 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/TurnBarrier.java
Author: ozeigermann Date: Thu Jul 20 09:27:42 2006 New Revision: 423981 URL: http://svn.apache.org/viewvc?rev=423981view=rev Log: Minor spelling mistake fixed. Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/TurnBarrier.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/TurnBarrier.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/TurnBarrier.java?rev=423981r1=423980r2=423981view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/TurnBarrier.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/TurnBarrier.java Thu Jul 20 09:27:42 2006 @@ -25,7 +25,7 @@ /** * Simple turn based barrier to make a sequence of calls from different threads deterministic. - * This is very useful for testing where you want to have a contious flow throughout + * This is very useful for testing where you want to have a continuous flow throughout * different threads. The idea is to have an ordered sequence of steps where step n can not be * executed before n-1. * - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r422023 - /jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt
Author: ozeigermann Date: Fri Jul 14 13:25:22 2006 New Revision: 422023 URL: http://svn.apache.org/viewvc?rev=422023view=rev Log: Preparation for 1.2 release Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?rev=422023r1=422022r2=422023view=diff == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Fri Jul 14 13:25:22 2006 @@ -1,8 +1,8 @@ -Jakarta Commons Transaction Release 1.1.1 -- +Jakarta Commons Transaction Release 1.2 +--- -RELEASE NUMBER: 1.1.1 -RELEASE TAG / BRANCH: TRANSACTION_1_1_1_RELEASE / none yet +RELEASE NUMBER: 1.2 +RELEASE TAG / BRANCH: TRANSACTION_1_2_RELEASE / none yet DESCRIPTION --- @@ -19,7 +19,9 @@ GENERAL RELEASE NOTES - -This is the first bug fix/maintenance release of Commons Transaction 1.1. +This is a bug fix/maintenance/feature release of Commons Transaction. A lot of bug fixing work +from a number of people has gone into this release. This makes Commons Transaction more stable and reliable. +Additionally, some nice features have been added. See below for details. ENHANCEMENTS FROM 1.1 - - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r421670 - in /jakarta/commons/proper/transaction/trunk/src: java/org/apache/commons/transaction/memory/TransactionalMapWrapper.java test/org/apache/commons/transaction/memory/MapWrapperTes
Author: ozeigermann Date: Thu Jul 13 10:42:52 2006 New Revision: 421670 URL: http://svn.apache.org/viewvc?rev=421670view=rev Log: Fix for bug 38545. Transactional map wrapper did not allow for null values. Bug reported and patch supplied by Greg Steckman at http://issues.apache.org/bugzilla/show_bug.cgi?id=38545. Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/TransactionalMapWrapper.java jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/memory/MapWrapperTest.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/TransactionalMapWrapper.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/TransactionalMapWrapper.java?rev=421670r1=421669r2=421670view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/TransactionalMapWrapper.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/TransactionalMapWrapper.java Thu Jul 13 10:42:52 2006 @@ -317,7 +317,7 @@ * @see Map#containsKey(java.lang.Object) */ public boolean containsKey(Object key) { -return (get(key) != null); + return keySet().contains(key); } /** @@ -529,6 +529,7 @@ Set keySet = new HashSet(); if (!cleared) { keySet.addAll(wrapped.keySet()); +keySet.removeAll(deletes); } keySet.addAll(adds.keySet()); return keySet; @@ -541,14 +542,12 @@ return null; } -Object changed = changes.get(key); -if (changed != null) { -return changed; +if(changes.containsKey(key)){ +return changes.get(key); } -Object added = adds.get(key); -if (added != null) { -return added; +if(adds.containsKey(key)){ +return adds.get(key); } if (cleared) { @@ -563,7 +562,7 @@ try { readOnly = false; deletes.remove(key); -if (wrapped.get(key) != null) { +if (wrapped.containsKey(key)) { changes.put(key, value); } else { adds.put(key, value); Modified: jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/memory/MapWrapperTest.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/memory/MapWrapperTest.java?rev=421670r1=421669r2=421670view=diff == --- jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/memory/MapWrapperTest.java (original) +++ jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/memory/MapWrapperTest.java Thu Jul 13 10:42:52 2006 @@ -121,6 +121,37 @@ report(value2, (String) txMap1.get(key1)); } +public void testContainsKeyWithNullValue() throws Throwable { + +logger.info(Checking containsKey returns true when the value is null); + +final Map map1 = new HashMap(); + +final TransactionalMapWrapper txMap1 = getNewWrapper(map1); + +assertTrue(txMap1.isEmpty()); + +// make sure changes are propagated to wrapped map outside tx +txMap1.put(key1, null); +assertTrue(txMap1.containsKey(key1)); + +// make sure changes are progated to wrapped map after commit +txMap1.startTransaction(); +txMap1.put(key2, null); +assertTrue(txMap1.containsKey(key2)); +txMap1.remove(key1); +assertTrue(map1.containsKey(key1)); +txMap1.commitTransaction(); +assertTrue(txMap1.containsKey(key2)); +assertFalse(txMap1.containsKey(key1)); + +txMap1.startTransaction(); +assertTrue(txMap1.containsKey(key2)); +txMap1.remove(key2); +assertFalse(txMap1.containsKey(key2)); +txMap1.commitTransaction(); +} + public void testComplex() throws Throwable { logger.info(Checking advanced and complex transaction features); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r421671 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java
Author: ozeigermann Date: Thu Jul 13 10:48:24 2006 New Revision: 421671 URL: http://svn.apache.org/viewvc?rev=421671view=rev Log: All lock methods now pass time out to underlying implementation. Bug reported by Mathieu Baudier! Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java?rev=421671r1=421670r2=421671view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java Thu Jul 13 10:48:24 2006 @@ -181,7 +181,7 @@ public void lock(Object ownerId, Object resourceId, int targetLockLevel, boolean reentrant, long timeoutMSecs) throws LockException { lock(ownerId, resourceId, targetLockLevel, reentrant ? GenericLock.COMPATIBILITY_REENTRANT -: GenericLock.COMPATIBILITY_NONE, false, globalTimeoutMSecs); +: GenericLock.COMPATIBILITY_NONE, false, timeoutMSecs); } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r421672 - /jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt
Author: ozeigermann Date: Thu Jul 13 10:48:40 2006 New Revision: 421672 URL: http://svn.apache.org/viewvc?rev=421672view=rev Log: (empty) Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?rev=421672r1=421671r2=421672view=diff == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Thu Jul 13 10:48:40 2006 @@ -39,6 +39,8 @@ - Fixed issue with deleteResource(..) and createResource(..) of FileResourceManager seen as read-only operations. - Fixed issue with AbstractXAResource. Resources did not get released when prepare(..) returns XA_RDONLY as no commit(..) is triggered by the TransactionManager explicitely. +- TransactionalMapWrapper now properly supports null values. Bug report and fix supplied by Greg Steckman at http://issues.apache.org/bugzilla/show_bug.cgi?id=38545 +- Minor bug reported at http://issues.apache.org/bugzilla/show_bug.cgi?id=39559 has been fixed. KNOWN ISSUES - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r408874 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java
Author: ozeigermann Date: Tue May 23 04:21:54 2006 New Revision: 408874 URL: http://svn.apache.org/viewvc?rev=408874view=rev Log: Fixed simple typo Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java?rev=408874r1=408873r2=408874view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Tue May 23 04:21:54 2006 @@ -1377,7 +1377,7 @@ protected boolean finished = false; // list of streams participating in this tx -private List openResourcs = new ArrayList(); +private List openResources = new ArrayList(); public TransactionContext(Object txId) throws ResourceManagerException { this.txId = txId; @@ -1483,7 +1483,7 @@ public synchronized void closeResources() { synchronized (globalOpenResources) { -for (Iterator it = openResourcs.iterator(); it.hasNext();) { +for (Iterator it = openResources.iterator(); it.hasNext();) { Object stream = it.next(); closeOpenResource(stream); } @@ -1493,7 +1493,7 @@ public synchronized void registerResource(Object openResource) { synchronized (globalOpenResources) { registerOpenResource(openResource); -openResourcs.add(openResource); +openResources.add(openResource); } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r368793 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java
Author: ozeigermann Date: Fri Jan 13 09:26:32 2006 New Revision: 368793 URL: http://svn.apache.org/viewcvs?rev=368793view=rev Log: Fix of previous fix (again!) Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java?rev=368793r1=368792r2=368793view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Fri Jan 13 09:26:32 2006 @@ -887,7 +887,7 @@ synchronized (globalTransactions) { do { txId = Long.toHexString(System.currentTimeMillis()) + - -+ Integer.toHexString(idCnt); ++ Integer.toHexString(idCnt++); // XXX busy loop } while (getContext(txId) != null); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r368816 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java
Author: ozeigermann Date: Fri Jan 13 10:30:34 2006 New Revision: 368816 URL: http://svn.apache.org/viewcvs?rev=368816view=rev Log: Fixed error reporting when resources could not be created Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java?rev=368816r1=368815r2=368816view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java Fri Jan 13 10:30:34 2006 @@ -132,7 +132,7 @@ } } else { if (!targetFile.exists()) { -if (targetFile.mkdirs()) { +if (!targetFile.mkdirs()) { throw new IOException(Could not create target directory: + targetFile); } @@ -187,8 +187,10 @@ } else { if (!target.isDirectory()) { if (!target.exists()) { -target.getParentFile().mkdirs(); -if (target.createNewFile()) { +if(!target.getParentFile().mkdirs()) { +throw new IOException(Could not create target directory: + target.getParentFile()); +} +if (!target.createNewFile()) { throw new IOException(Could not create target file: + target); } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r349996 - in /jakarta/commons/proper/transaction/trunk: RELEASE-NOTES.txt src/java/org/apache/commons/transaction/util/FileHelper.java
Author: ozeigermann Date: Wed Nov 30 09:26:20 2005 New Revision: 349996 URL: http://svn.apache.org/viewcvs?rev=349996view=rev Log: Better error reporting in FileHelper#moveRec when destination directories could not be created Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?rev=349996r1=349995r2=349996view=diff == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Wed Nov 30 09:26:20 2005 @@ -30,6 +30,7 @@ - Fixed bug reported by Niklas Gustavsson on http://www.mail-archive.com/commons-dev@jakarta.apache.org/msg69441.html. Failed deletion of a file now throws an exception and enters an error state upon commit. - Reduced likelyhood of clash between internally generated and external tx id in generatedUniqueTxId +- Better error reporting in FileHelper#moveRec when destination directories could not be created KNOWN ISSUES Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java?rev=349996r1=349995r2=349996view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java Wed Nov 30 09:26:20 2005 @@ -131,7 +131,9 @@ file.delete(); } } else { -targetFile.mkdirs(); +if (targetFile.mkdirs()) { +throw new IOException(Could not create target directory: +targetFile); +} moveRec(file, targetFile); } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r349997 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java
Author: ozeigermann Date: Wed Nov 30 09:29:27 2005 New Revision: 349997 URL: http://svn.apache.org/viewcvs?rev=349997view=rev Log: Fix of previous fix :( Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java?rev=349997r1=349996r2=349997view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java Wed Nov 30 09:29:27 2005 @@ -131,8 +131,11 @@ file.delete(); } } else { -if (targetFile.mkdirs()) { -throw new IOException(Could not create target directory: +targetFile); +if (!targetFile.exists()) { +if (targetFile.mkdirs()) { +throw new IOException(Could not create target directory: ++ targetFile); +} } moveRec(file, targetFile); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r350000 - in /jakarta/commons/proper/transaction/trunk: RELEASE-NOTES.txt src/java/org/apache/commons/transaction/util/FileHelper.java
Author: ozeigermann Date: Wed Nov 30 09:36:48 2005 New Revision: 35 URL: http://svn.apache.org/viewcvs?rev=35view=rev Log: Better error reporting in FileHelper#copyRec when destination file could not be created Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?rev=35r1=34r2=35view=diff == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Wed Nov 30 09:36:48 2005 @@ -23,6 +23,7 @@ ENHANCEMENTS FROM 1.1 - +- Better error reporting in FileHelper when destination directories (moveRec) or files (copyRec) could not be created BUGFIXES FROM 1.1 - @@ -30,7 +31,6 @@ - Fixed bug reported by Niklas Gustavsson on http://www.mail-archive.com/commons-dev@jakarta.apache.org/msg69441.html. Failed deletion of a file now throws an exception and enters an error state upon commit. - Reduced likelyhood of clash between internally generated and external tx id in generatedUniqueTxId -- Better error reporting in FileHelper#moveRec when destination directories could not be created KNOWN ISSUES Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java?rev=35r1=34r2=35view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/FileHelper.java Wed Nov 30 09:36:48 2005 @@ -188,7 +188,9 @@ if (!target.isDirectory()) { if (!target.exists()) { target.getParentFile().mkdirs(); -target.createNewFile(); +if (target.createNewFile()) { +throw new IOException(Could not create target file: + target); +} } copy(source, target, sharedBuffer); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r348458 - in /jakarta/commons/proper/transaction/trunk: RELEASE-NOTES.txt src/java/org/apache/commons/transaction/file/FileResourceManager.java
Author: ozeigermann Date: Wed Nov 23 07:19:45 2005 New Revision: 348458 URL: http://svn.apache.org/viewcvs?rev=348458view=rev Log: Reduced likelyhood of clash between internally generated and external tx id in generatedUniqueTxId Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?rev=348458r1=348457r2=348458view=diff == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Wed Nov 23 07:19:45 2005 @@ -29,6 +29,7 @@ - Fixed bugzilla issue 35201. Maps in AbstractXAResource now are synchronized to avoid problems in multi threaded scenarios. - Fixed bug reported by Niklas Gustavsson on http://www.mail-archive.com/commons-dev@jakarta.apache.org/msg69441.html. Failed deletion of a file now throws an exception and enters an error state upon commit. +- Reduced likelyhood of clash between internally generated and external tx id in generatedUniqueTxId KNOWN ISSUES Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java?rev=348458r1=348457r2=348458view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Wed Nov 23 07:19:45 2005 @@ -199,6 +199,8 @@ protected ResourceIdToPathMapper idMapper = null; +protected int idCnt = 0; + /* * --- ctor and general getter / setter methods --- * @@ -884,7 +886,8 @@ String txId; synchronized (globalTransactions) { do { -txId = Long.toHexString(System.currentTimeMillis()); +txId = Long.toHexString(System.currentTimeMillis()) + - ++ Integer.toHexString(idCnt); // XXX busy loop } while (getContext(txId) != null); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r332783 - /jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt
Author: ozeigermann Date: Sat Nov 12 07:40:23 2005 New Revision: 332783 URL: http://svn.apache.org/viewcvs?rev=332783view=rev Log: (empty) Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?rev=332783r1=332782r2=332783view=diff == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Sat Nov 12 07:40:23 2005 @@ -26,8 +26,9 @@ BUGFIXES FROM 1.1 - -- Fixed bugzilla issue 35201. Maps in AbstractXAResource now are synchronizedt to avoid problems in multi threaded scenarios - +- Fixed bugzilla issue 35201. Maps in AbstractXAResource now are synchronized to avoid problems in multi threaded scenarios. +- Fixed bug reported by Niklas Gustavsson on http://www.mail-archive.com/commons-dev@jakarta.apache.org/msg69441.html. + Failed deletion of a file now throws an exception and enters an error state upon commit. KNOWN ISSUES - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r332340 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java
Author: ozeigermann Date: Thu Nov 10 09:58:48 2005 New Revision: 332340 URL: http://svn.apache.org/viewcvs?rev=332340view=rev Log: Added check if file really is deleted. Throw an exception otherwise to indicate an error condition. Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java?rev=332340r1=332339r2=332340view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Thu Nov 10 09:58:48 2005 @@ -159,7 +159,10 @@ File targetFile = new File(targetDir, removeFile.getName()); if (removeFile.isFile()) { if (targetFile.exists()) { -targetFile.delete(); +if (!targetFile.delete()) { +throw new IOException(Could not delete file + removeFile.getName() ++ in directory targetDir); +} } // indicate, this has been done removeFile.delete(); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r226579 - /jakarta/commons/proper/transaction/branches/TRANSACTION_1_1_RELEASE_BRANCH/
Author: ozeigermann Date: Sat Jul 30 14:02:01 2005 New Revision: 226579 URL: http://svn.apache.org/viewcvs?rev=226579view=rev Log: 1.1 release branch Added: jakarta/commons/proper/transaction/branches/TRANSACTION_1_1_RELEASE_BRANCH/ - copied from r226578, jakarta/commons/proper/transaction/trunk/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r188839 - /jakarta/commons/proper/transaction/trunk/project.xml
Author: ozeigermann Date: Tue Jun 7 11:29:46 2005 New Revision: 188839 URL: http://svn.apache.org/viewcvs?rev=188839view=rev Log: Added John to the list of contributors Modified: jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/project.xml?rev=188839r1=188838r2=188839view=diff == --- jakarta/commons/proper/transaction/trunk/project.xml (original) +++ jakarta/commons/proper/transaction/trunk/project.xml Tue Jun 7 11:29:46 2005 @@ -67,7 +67,7 @@ /roles /developer developer - nameStefan Ltzkendorf/name + nameStefan Ltzkendorf/name idluetzkendorf/id email[EMAIL PROTECTED]/email organization/organization @@ -107,6 +107,10 @@ idarminw/id email[EMAIL PROTECTED]/email timezone+1/timezone +/contributor +contributor + nameJohn Rousseau/name + email[EMAIL PROTECTED]/email /contributor /contributors - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r188842 - /jakarta/commons/proper/transaction/trunk/project.xml
Author: ozeigermann Date: Tue Jun 7 11:38:28 2005 New Revision: 188842 URL: http://svn.apache.org/viewcvs?rev=188842view=rev Log: Minor encoding Modified: jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/project.xml?rev=188842r1=188841r2=188842view=diff == --- jakarta/commons/proper/transaction/trunk/project.xml (original) +++ jakarta/commons/proper/transaction/trunk/project.xml Tue Jun 7 11:38:28 2005 @@ -67,7 +67,7 @@ /roles /developer developer - nameStefan Ltzkendorf/name + nameStefan Ltzkendorf/name idluetzkendorf/id email[EMAIL PROTECTED]/email organization/organization - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r179796 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/xa/AbstractXAResource.java
Author: ozeigermann Date: Fri Jun 3 07:24:10 2005 New Revision: 179796 URL: http://svn.apache.org/viewcvs?rev=179796view=rev Log: Fix for bugzilla issue 35201. Non synchronized maps might cause problems in multi-threaded scenarios Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/xa/AbstractXAResource.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/xa/AbstractXAResource.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/xa/AbstractXAResource.java?rev=179796r1=179795r2=179796view=diff == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/xa/AbstractXAResource.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/util/xa/AbstractXAResource.java Fri Jun 3 07:24:10 2005 @@ -25,6 +25,7 @@ import java.util.HashMap; import java.util.Map; +import java.util.Collections; import javax.transaction.Status; import javax.transaction.xa.XAException; @@ -41,8 +42,8 @@ // there might be at least one active transaction branch per thread private ThreadLocal activeTransactionBranch = new ThreadLocal(); -private Map suspendedContexts = new HashMap(); -private Map activeContexts = new HashMap(); +private Map suspendedContexts = Collections.synchronizedMap(new HashMap()); +private Map activeContexts = Collections.synchronizedMap(new HashMap()); public abstract boolean isSameRM(XAResource xares) throws XAException; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r179799 - in /jakarta/commons/proper/transaction/trunk: RELEASE-NOTES.txt build.xml project.xml
Author: ozeigermann Date: Fri Jun 3 07:28:06 2005 New Revision: 179799 URL: http://svn.apache.org/viewcvs?rev=179799view=rev Log: First step for future 1.1.1 release Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt jakarta/commons/proper/transaction/trunk/build.xml jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?rev=179799r1=179798r2=179799view=diff == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Fri Jun 3 07:28:06 2005 @@ -1,8 +1,8 @@ -Jakarta Commons Transaction Release 1.1 final -- +Jakarta Commons Transaction Release 1.1.1 +- -RELEASE NUMBER: 1.1 -RELEASE TAG / BRANCH: TRANSACTION_1_1_FINAL_RELEASE / none yet +RELEASE NUMBER: 1.1.1 +RELEASE TAG / BRANCH: TRANSACTION_1_1_1_RELEASE / none yet DESCRIPTION --- @@ -19,65 +19,15 @@ GENERAL RELEASE NOTES - -This is the final version of the Commons Transaction 1.1 feature release. -It mainly cleanes up some minor issues that come up while beta testing. +This is the first bug fix/maintenance release of Commons Transaction 1.1. -Commons Transaction 1.1 aims at polishing (interface) oddities, improving -locking and making the file store more flexible. Locking now is much more -flexible, extensible and allows for rudimentary transaction management. There -is a new lock manager that hides locks from the user and keeps track of all of them -allowing for deadlock detection and more convenient management. - -ENHANCEMENTS FROM 1.0 +ENHANCEMENTS FROM 1.1 - -Locking: -- Extended and less excentric lock manager interface LockManager2 -- Extended multi level lock interface MultiLevelLock2 -- GenericLock and GenericLockManager now implement new interfaces as well -- GenericLock and GenericLockManager offer much better inspection with toString -- GenericLock offers (protected) means for waiter management and opens - possibility for fair strategies to subclasses - -File: -- Confiburable resource id to path mapping - -NEW FEATURES FROM 1.0 -- +BUGFIXES FROM 1.1 +- +- Fixed bugzilla issue 35201. Maps in AbstractXAResource now are synchronizedt to avoid problems in multi threaded scenarios -Locking: -- new ReadWriteLockManager for most intuitive read/write lock usage -- new read/write/upgrade locking mechanism (ReadWriteUpgradeLock, ReadWriteUpgradeLockManager) -- Deadlock detection for all lock managers, file store, and pessimistic map -- Flexible preference locking mechanism -- Global transaction timeouts that actively revoke granted rights from transactions - -MINOR INCOMPATIBILITIES TO 1.0 --- - -- PessimisticMapWrapper now throws the more general LockException from locking package -- Both MultiLevelLock#release and LockManager2#release now return a boolean that indicates if the lock - really has been released - -BUGFIXES FROM 1.0 beta1 -- Fixed deadlock hazard in deadlock detection caused by interleaving access to locks set of an owner -- Fixed timeout that in certain scenarios did not work -- GenericLock test method released all locks held by the testing owner - fixed -- OptimisticMapWrapper now uses a read/write lock to guarantee no other operations are being executed while - commiting; before it was possible that conflicts that arose during the process of - committing remained undetected - -ENHANCEMENTS FROM 1.0 beta1 -- Many extensions for information about locks - -ENHANCEMENTS FROM 1.0 beta2 -- Made GenericLockManager#checkLock, GenericLockManager#hasLock, GenericLockManager#release only check on existing locks - as creating a new lock was silly in that scenario -- Split GenericLockManager#lock(Object ownerId, Object resourceId, int targetLockLevel, int compatibility, boolean preferred, long timeoutMSecs) - into two parts to make subclassing easier KNOWN ISSUES Modified: jakarta/commons/proper/transaction/trunk/build.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/build.xml?rev=179799r1=179798r2=179799view=diff == --- jakarta/commons/proper/transaction/trunk/build.xml (original) +++ jakarta/commons/proper/transaction/trunk/build.xml Fri Jun 3 07:28:06 2005 @@ -20,7 +20,7 @@ property name=compile.deprecation value=true / property name=compile.optimize value=true / - property name=version value=1.1/ + property name=version value=1.1.1pre1/ property name=name
svn commit: r179442 - /jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml
Author: ozeigermann Date: Wed Jun 1 15:37:48 2005 New Revision: 179442 URL: http://svn.apache.org/viewcvs?rev=179442view=rev Log: Updated to 1.1 release Modified: jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml Modified: jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml?rev=179442r1=179441r2=179442view=diff == --- jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml (original) +++ jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml Wed Jun 1 15:37:48 2005 @@ -12,6 +12,7 @@ ul lia href=http://archive.apache.org/dist/jakarta/commons/transaction/;Version 1.0 - 15 December 2004/a / a href=http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/transaction/RELEASE-NOTES.txt?rev=1.3;release notes/a/li lia href=http://jakarta.apache.org/site/binindex.cgi#commons-transaction;Version 1.0.1 - 13 January 2005/a / a href=http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/transaction/RELEASE-NOTES.txt?rev=1.3.2.1;release notes/a/li + lia href=http://jakarta.apache.org/site/binindex.cgi#commons-transaction;Version 1.1 - 02 June 2005/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_FINAL_RELEASE/RELEASE-NOTES.txt;release notes/a/li /ul p The latest binary release is always available on the - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r178932 - in /jakarta/commons/proper/transaction/trunk: RELEASE-NOTES.txt build.xml project.xml
Author: ozeigermann Date: Sun May 29 00:46:06 2005 New Revision: 178932 URL: http://svn.apache.org/viewcvs?rev=178932view=rev Log: Preparation for 1.1 final release Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt jakarta/commons/proper/transaction/trunk/build.xml jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?rev=178932r1=178931r2=178932view=diff == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Sun May 29 00:46:06 2005 @@ -1,8 +1,8 @@ -Jakarta Commons Transaction Release 1.1 rc1 +Jakarta Commons Transaction Release 1.1 final - -RELEASE NUMBER: 1.1rc1 -RELEASE TAG / BRANCH: TRANSACTION_1_1_RC1_RELEASE / none yet +RELEASE NUMBER: 1.1 +RELEASE TAG / BRANCH: TRANSACTION_1_1_FINAL_RELEASE / none yet DESCRIPTION --- @@ -19,13 +19,13 @@ GENERAL RELEASE NOTES - -This is the first release candidate of the Commons Transaction 1.1 feature release. +This is the final version of the Commons Transaction 1.1 feature release. It mainly cleanes up some minor issues that come up while beta testing. Commons Transaction 1.1 aims at polishing (interface) oddities, improving locking and making the file store more flexible. Locking now is much more flexible, extensible and allows for rudimentary transaction management. There -is a new lock manager hides locks from the user and keeps track of all of them +is a new lock manager that hides locks from the user and keeps track of all of them allowing for deadlock detection and more convenient management. ENHANCEMENTS FROM 1.0 @@ -53,7 +53,7 @@ - Global transaction timeouts that actively revoke granted rights from transactions MINOR INCOMPATIBILITIES TO 1.0 -- +-- - PessimisticMapWrapper now throws the more general LockException from locking package - Both MultiLevelLock#release and LockManager2#release now return a boolean that indicates if the lock Modified: jakarta/commons/proper/transaction/trunk/build.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/build.xml?rev=178932r1=178931r2=178932view=diff == --- jakarta/commons/proper/transaction/trunk/build.xml (original) +++ jakarta/commons/proper/transaction/trunk/build.xml Sun May 29 00:46:06 2005 @@ -20,7 +20,7 @@ property name=compile.deprecation value=true / property name=compile.optimize value=true / - property name=version value=1.1b2/ + property name=version value=1.1/ property name=name value=commons-transaction / property name=title value=Commons Transaction / property name=package value=org.apache.commons.transaction / Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/project.xml?rev=178932r1=178931r2=178932view=diff == --- jakarta/commons/proper/transaction/trunk/project.xml (original) +++ jakarta/commons/proper/transaction/trunk/project.xml Sun May 29 00:46:06 2005 @@ -10,7 +10,7 @@ shortDescriptionCommons Transaction/shortDescription descriptionCommons Transaction/description - currentVersion1.1b2/currentVersion + currentVersion1.1/currentVersion urlhttp://jakarta.apache.org/commons/${pom.artifactId.substring(8)}//url packageorg.apache.commons.${pom.artifactId.substring(8)}/package - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r178933 - /jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_FINAL_RELEASE
Author: ozeigermann Date: Sun May 29 00:50:28 2005 New Revision: 178933 URL: http://svn.apache.org/viewcvs?rev=178933view=rev Log: Tagging as 1.1 final Added: jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_FINAL_RELEASE/ - copied from r178932, jakarta/commons/proper/transaction/trunk/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r168168 - /jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml
Author: ozeigermann Date: Wed May 4 12:03:52 2005 New Revision: 168168 URL: http://svn.apache.org/viewcvs?rev=168168view=rev Log: Fixed wrong release year Modified: jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml Modified: jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml?rev=168168r1=168167r2=168168view=diff == --- jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml (original) +++ jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml Wed May 4 12:03:52 2005 @@ -11,7 +11,7 @@ pThe following releases are available:/p ul lia href=http://archive.apache.org/dist/jakarta/commons/transaction/;Version 1.0 - 15 December 2004/a / a href=http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/transaction/RELEASE-NOTES.txt?rev=1.3;release notes/a/li - lia href=http://jakarta.apache.org/site/binindex.cgi#commons-transaction;Version 1.0.1 - 13 January 2004/a / a href=http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/transaction/RELEASE-NOTES.txt?rev=1.3.2.1;release notes/a/li + lia href=http://jakarta.apache.org/site/binindex.cgi#commons-transaction;Version 1.0.1 - 13 January 2005/a / a href=http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/transaction/RELEASE-NOTES.txt?rev=1.3.2.1;release notes/a/li /ul p The latest binary release is always available on the @@ -31,8 +31,8 @@ section name=Beta Releases / Release Candidates pThe following beta releases / release candidates are available:/p ul - lia href=http://cvs.apache.org/dist/jakarta/commons/transaction/1.1b1/;Version 1.1 beta 1 - 13 January 2004/a / a href=http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/transaction/RELEASE-NOTES.txt?rev=1.14;release notes/a/li - lia href=http://cvs.apache.org/dist/jakarta/commons/transaction/1.1b2/;Version 1.1 beta 2 - 5 February 2004/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE/RELEASE-NOTES.txt;release notes/a/li + lia href=http://cvs.apache.org/dist/jakarta/commons/transaction/1.1b1/;Version 1.1 beta 1 - 13 January 2005/a / a href=http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/transaction/RELEASE-NOTES.txt?rev=1.14;release notes/a/li + lia href=http://cvs.apache.org/dist/jakarta/commons/transaction/1.1b2/;Version 1.1 beta 2 - 5 February 2005/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE/RELEASE-NOTES.txt;release notes/a/li /ul /section section name=Latest Sources - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r168170 - /jakarta/commons/proper/transaction/trunk/project.xml
Author: ozeigermann Date: Wed May 4 12:23:29 2005 New Revision: 168170 URL: http://svn.apache.org/viewcvs?rev=168170view=rev Log: Made minotaur the site address Modified: jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/project.xml?rev=168170r1=168169r2=168170view=diff == --- jakarta/commons/proper/transaction/trunk/project.xml (original) +++ jakarta/commons/proper/transaction/trunk/project.xml Wed May 4 12:23:29 2005 @@ -31,7 +31,7 @@ gumpRepositoryIdjakarta/gumpRepositoryId issueTrackingUrlhttp://issues.apache.org/bugzilla//issueTrackingUrl - siteAddressjakarta.apache.org/siteAddress + siteAddressminotaur.apache.org/siteAddress siteDirectory/www/jakarta.apache.org/commons/${pom.artifactId.substring(8)}//siteDirectory distributionDirectory/www/jakarta.apache.org/builds/jakarta-commons/${pom.artifactId.substring(8)}//distributionDirectory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r155187 - jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt
Author: ozeigermann Date: Thu Feb 24 06:39:26 2005 New Revision: 155187 URL: http://svn.apache.org/viewcvs?view=revrev=155187 Log: Fixed upcoming release number Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?view=diffr1=155186r2=155187 == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Thu Feb 24 06:39:26 2005 @@ -1,7 +1,7 @@ Jakarta Commons Transaction Release 1.1 rc1 - -RELEASE NUMBER: 1.1b2 +RELEASE NUMBER: 1.1rc1 RELEASE TAG / BRANCH: TRANSACTION_1_1_RC1_RELEASE / none yet DESCRIPTION - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r153876 - jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java
Author: ozeigermann Date: Mon Feb 14 16:29:48 2005 New Revision: 153876 URL: http://svn.apache.org/viewcvs?view=revrev=153876 Log: Reverted the unmodifiable wrapper for actionList on Simon's request Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java?view=diffr1=153875r2=153876 == --- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java (original) +++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java Mon Feb 14 16:29:48 2005 @@ -249,7 +249,7 @@ return java.util.Collections.EMPTY_LIST; } else { -return Collections.unmodifiableList(actionList); +return actionList; } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r153637 - in jakarta/commons/proper/digester/branches/digester2/src: java/org/apache/commons/digester2/Path.java java/org/apache/commons/digester2/SupplementaryRuleManager.java test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java
Author: ozeigermann Date: Sun Feb 13 08:16:53 2005 New Revision: 153637 URL: http://svn.apache.org/viewcvs?view=revrev=153637 Log: Moved match methods into supplementary rule manager Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java?view=diffr1=153636r2=153637 == --- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java (original) +++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java Sun Feb 13 08:16:53 2005 @@ -142,32 +142,6 @@ localNames.clear(); } -public boolean matches(String pathToMatch) { -if (pathToMatch.charAt(0) == '/') { -// absolute -return getPath().equals(pathToMatch); -} else { -// relative -// XXX looks wrong but protects a match of -// a/b against a path of /gotcha/b, but -// still allows -// a/b to match against /a/b -return getPath().endsWith(/ + pathToMatch); -} -} - -/** - * Checks if this path matches any of the paths given. This means we iterate through - * codepathsToMatch/code and match every entry to this path. - */ -public boolean matchsAny(String[] pathsToMatch) { -for (int i = 0; i pathsToMatch.length; i++) { -if (matches(pathsToMatch[i])) -return true; -} -return false; -} - public String toString() { return getPath(); } Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java?view=diffr1=153636r2=153637 == --- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java (original) +++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java Sun Feb 13 08:16:53 2005 @@ -31,6 +31,32 @@ public class SupplementaryRuleManager extends DefaultRuleManager { +public static boolean matches(String path, String pathToMatch) { +if (pathToMatch.charAt(0) == '/') { +// absolute +return path.equals(pathToMatch); +} else { +// relative +// XXX looks wrong but protects a match of +// a/b against a path of /gotcha/b, but +// still allows +// a/b to match against /a/b +return path.endsWith(/ + pathToMatch); +} +} + +/** + * Checks if this path matches any of the paths given. This means we iterate through + * codepathsToMatch/code and match every entry to this path. + */ +public static boolean matchsAny(String path, String[] pathsToMatch) { +for (int i = 0; i pathsToMatch.length; i++) { +if (matches(path, pathsToMatch[i])) +return true; +} +return false; +} + protected final Action supplementaryAction; protected final Action fallbackAction; Modified: jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java?view=diffr1=153636r2=153637 == --- jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java (original) +++ jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java Sun Feb 13 08:16:53 2005 @@ -44,20 +44,20 @@ public void begin(Context context, String namespace, String name, Attributes attrs) { -Path path = context.getCurrentPath(); -if (path.matches(/root)) { +String path = context.getMatchPath(); +if (SupplementaryRuleManager.matches(path, /root
svn commit: r153638 - jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java
Author: ozeigermann Date: Sun Feb 13 08:21:25 2005 New Revision: 153638 URL: http://svn.apache.org/viewcvs?view=revrev=153638 Log: Set id property Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java (props changed) Propchange: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java -- Id = SupplementaryRuleManager - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r153727 - jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java
Author: ozeigermann Date: Sun Feb 13 23:13:25 2005 New Revision: 153727 URL: http://svn.apache.org/viewcvs?view=revrev=153727 Log: - Rigid protection of guts by making member variables private and passing umodifiable list back from getMatchingActions. - Added copy contructor to allow copying of member variables from sub classes Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java?view=diffr1=153726r2=153727 == --- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java (original) +++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java Sun Feb 13 23:13:25 2005 @@ -19,6 +19,7 @@ package org.apache.commons.digester2; +import java.util.Collections; import java.util.Map; import java.util.HashMap; import java.util.List; @@ -58,37 +59,56 @@ * Map of namespace-prefix to namespace-uri, used only by the * addAction() method. */ -protected HashMap namespaces = new HashMap(); +private HashMap namespaces = new HashMap(); /** * The list of all actions in the cache. This set allows us to * iterate over the set of actions to invoke the startParse/finishParse * methods. */ -protected ArrayList actions = new ArrayList(20); +private ArrayList actions = new ArrayList(20); /** * Map of expanded-pattern - list-of-actions, so that we can * find the pattern that matches the current xml element, then * return the list of actions. */ -protected MultiHashMap rules = new MultiHashMap(); +private MultiHashMap rules = new MultiHashMap(); + +// - +// Ctor +// - + +/** + * Default ctor. + */ +public DefaultRuleManager() { +} + +/** + * Returns a clone of this object. The Action objects currently + * registered are not copied, as Action objects are required to be + * re-entrant and thread-safe. + */ +public DefaultRuleManager(DefaultRuleManager manager) { +this.namespaces = (HashMap) manager.namespaces.clone(); +this.actions = (ArrayList) manager.actions.clone(); +this.rules = (MultiHashMap) manager.rules.clone(); +} + + // - // Public Methods // - /** - * Return a clone of this object. The Action objects currently + * Returns a clone of this object. The Action objects currently * registered are not copied, as Action objects are required to be * re-entrant and thread-safe. */ public RuleManager copy() { -DefaultRuleManager copy = new DefaultRuleManager(); -copy.namespaces = (HashMap) this.namespaces.clone(); -copy.actions = (ArrayList) this.actions.clone(); -copy.rules = (MultiHashMap) this.rules.clone(); -return copy; +return new DefaultRuleManager(this); } /** @@ -229,7 +249,7 @@ return java.util.Collections.EMPTY_LIST; } else { -return actionList; +return Collections.unmodifiableList(actionList); } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r153728 - jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/FallbackRuleManager.java
Author: ozeigermann Date: Sun Feb 13 23:13:53 2005 New Revision: 153728 URL: http://svn.apache.org/viewcvs?view=revrev=153728 Log: Added intial version of rule manager with default actions Added: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/FallbackRuleManager.java Added: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/FallbackRuleManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/FallbackRuleManager.java?view=autorev=153728 == --- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/FallbackRuleManager.java (added) +++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/FallbackRuleManager.java Sun Feb 13 23:13:53 2005 @@ -0,0 +1,79 @@ +/* $Id: DefaultRuleManager.java 153050 2005-02-09 12:12:28Z skitching $ + * + * Copyright 2001-2005 The Apache Software Foundation. + * + * Licensed 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.digester2; + +import java.util.Collections; +import java.util.List; +import java.util.ArrayList; + +/** + * @see DefaultRuleManager + */ +public class FallbackRuleManager extends DefaultRuleManager { + +protected final List fallbackActions; +protected List unmodifiableFallbackActions; + +public FallbackRuleManager(List fallbackActions) { +this.fallbackActions = fallbackActions; +unmodifiableFallbackActions = Collections.unmodifiableList(fallbackActions); +} + +public FallbackRuleManager() { +this(new ArrayList()); +} + +public FallbackRuleManager(FallbackRuleManager manager) { +this(manager.fallbackActions); +} + +/** + * @see DefaultRuleManager#copy() + */ +public RuleManager copy() { +return new FallbackRuleManager(this); +} + +/** + * @see DefaultRuleManager#getMatchingActions(String) + */ +public List getMatchingActions(String path) { +List actionList = super.getMatchingActions(path); +if (actionList == Collections.EMPTY_LIST fallbackActions != null fallbackActions.size() != 0) { +return unmodifiableFallbackActions; +} else { +return actionList; +} +} + +public void addFallbackAction(Action action) { +fallbackActions.add(action); +unmodifiableFallbackActions = Collections.unmodifiableList(fallbackActions); +} + +public boolean removeFallbackAction(Action action) { +boolean removed = fallbackActions.remove(action); +unmodifiableFallbackActions = Collections.unmodifiableList(fallbackActions); +return removed; +} + +public List getFallbackActions() { +return unmodifiableFallbackActions; +} +} - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r153729 - jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java
Author: ozeigermann Date: Sun Feb 13 23:15:11 2005 New Revision: 153729 URL: http://svn.apache.org/viewcvs?view=revrev=153729 Log: - Takes account of the explicitely unmodifiable list returned by DefaultRuleManager and does a wild mixture of caching and concatenating the list returned from DefaultRuleManager and its own list of supplementary actions. - Inherits from FallbackRuleManager Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java?view=diffr1=153728r2=153729 == --- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java (original) +++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java Sun Feb 13 23:15:11 2005 @@ -19,17 +19,19 @@ package org.apache.commons.digester2; +import java.util.AbstractList; +import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; -import java.util.ArrayList; +import java.util.Map; /** * @see DefaultRuleManager */ -public class SupplementaryRuleManager extends DefaultRuleManager { +public class SupplementaryRuleManager extends FallbackRuleManager { public static boolean matches(String path, String pathToMatch) { if (pathToMatch.charAt(0) == '/') { @@ -57,39 +59,25 @@ return false; } -protected final Action supplementaryAction; -protected final Action fallbackAction; +protected final List supplementaryActions; +protected final Map path2ActionsMap = new HashMap(); -protected final List fallbackList = new ArrayList(); +public SupplementaryRuleManager(List supplementaryActions) { +this.supplementaryActions = supplementaryActions; +} -public SupplementaryRuleManager(Action supplementaryAction) { -this(supplementaryAction, null); +public SupplementaryRuleManager(List supplementaryActions, List fallbackActions) { +super(fallbackActions); +this.supplementaryActions = supplementaryActions; } -public SupplementaryRuleManager(Action supplementaryAction, Action fallbackAction) { - -if (fallbackAction == null supplementaryAction == null) { -throw new IllegalArgumentException( -Both parameters set to null makes no sense. Use DefaultRuleManager instead.); -} - -this.supplementaryAction = supplementaryAction; -this.fallbackAction = fallbackAction; - -if (fallbackAction != null) { -fallbackList.add(fallbackAction); -} - -if (supplementaryAction != null) { -fallbackList.add(supplementaryAction); -} +public SupplementaryRuleManager() { +this(new ArrayList()); } public SupplementaryRuleManager(SupplementaryRuleManager manager) { -this(manager.supplementaryAction, manager.fallbackAction); -this.namespaces = (HashMap) manager.namespaces.clone(); -this.actions = (ArrayList) manager.actions.clone(); -this.rules = (MultiHashMap) manager.rules.clone(); +super(manager); +this.supplementaryActions = manager.supplementaryActions; } /** @@ -99,31 +87,73 @@ return new SupplementaryRuleManager(this); } +public void addRule(String pattern, Action action) throws InvalidRuleException { +super.addRule(pattern, action); +invalidateCache(); +} + +public void addFallbackAction(Action action) { +super.addFallbackAction(action); +invalidateCache(); +} + +public void addSupplementaryAction(Action action) { +supplementaryActions.add(action); +invalidateCache(); +} + /** * @see DefaultRuleManager#getMatchingActions(String) */ public List getMatchingActions(String path) { + +List completeList = (List) path2ActionsMap.get(path); +if (completeList != null) { +return completeList; +} + List actionList = super.getMatchingActions(path); -if (actionList == Collections.EMPTY_LIST) { -return fallbackList; -} -if (supplementaryAction != null) { -actionList.add(supplementaryAction); +if (supplementaryActions.size() != 0) { +if (actionList == Collections.EMPTY_LIST) { +completeList = Collections.unmodifiableList(supplementaryActions); +} else
svn commit: r153730 - jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java
Author: ozeigermann Date: Sun Feb 13 23:15:49 2005 New Revision: 153730 URL: http://svn.apache.org/viewcvs?view=revrev=153730 Log: Individual basic test cases for fallback and supplementary rule manager Modified: jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java Modified: jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java?view=diffr1=153729r2=153730 == --- jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java (original) +++ jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java Sun Feb 13 23:15:49 2005 @@ -25,7 +25,6 @@ import org.xml.sax.Attributes; import org.xml.sax.InputSource; -import org.xml.sax.XMLReader; /** * p @@ -35,27 +34,33 @@ public class SupplementaryRuleManagerTestCase extends TestCase { +private static class NullAction extends AbstractAction { +} + private static class XMLLikeAction extends AbstractAction { - + boolean rootFoundAbsolute = false; + boolean rootFoundRelative = false; + boolean wrongRelativeFound = false; + boolean longAbsoluteFound = false; - + public void begin(Context context, String namespace, String name, Attributes attrs) { String path = context.getMatchPath(); if (SupplementaryRuleManager.matches(path, /root)) { rootFoundAbsolute = true; -} - +} + if (SupplementaryRuleManager.matches(path, root)) { rootFoundRelative = true; } if (SupplementaryRuleManager.matches(path, /root/p/em)) { longAbsoluteFound = true; -} +} if (SupplementaryRuleManager.matches(path, ot/p)) { wrongRelativeFound = true; @@ -106,27 +111,52 @@ // Individual Test Methods // -public void testGlobalCallBack() throws Exception { +public void testFallback() throws Exception { String inputText = rootpHi emThere/em/p/root; InputSource source = new InputSource(new StringReader(inputText)); +// xmlio-style digester +XMLLikeAction xmlioLikeAction = new XMLLikeAction(); + +FallbackRuleManager manager = new FallbackRuleManager(); +manager.addFallbackAction(xmlioLikeAction); +manager.addRule(/root/p/em, new NullAction()); + Digester d = new Digester(); +d.setRuleManager(manager); +d.parse(source); -XMLReader reader = d.getXMLReader(); +assertTrue(Root element was found absolute, xmlioLikeAction.rootFoundAbsolute); +assertTrue(Root element was found relative, xmlioLikeAction.rootFoundRelative); +assertFalse(Long absolute path was found by other rule, xmlioLikeAction.longAbsoluteFound); +assertFalse(Incomplete relative was not found, xmlioLikeAction.wrongRelativeFound); + +} + +public void testSupplementary() throws Exception { +String inputText = rootpHi emThere/em/p/root; // xmlio-style digester -XMLLikeAction xmlioLikeHandler = new XMLLikeAction(); +XMLLikeAction xmlioLikeAction = new XMLLikeAction(); + +SupplementaryRuleManager manager = new SupplementaryRuleManager(); +manager.addSupplementaryAction(xmlioLikeAction); +manager.addRule(root, new NullAction()); -RuleManager manager = new SupplementaryRuleManager(xmlioLikeHandler); +Digester d = new Digester(); d.setRuleManager(manager); -d.parse(source); +// try twice to check caching +for (int i = 0; i 2; i++) { +InputSource source = new InputSource(new StringReader(inputText)); +d.parse(source); + +assertTrue(Root element was found absolute, xmlioLikeAction.rootFoundAbsolute); +assertTrue(Root element was found relative, xmlioLikeAction.rootFoundRelative); +assertTrue(Long absolute path was found, xmlioLikeAction.longAbsoluteFound); +assertFalse(Incomplete relative was not found, xmlioLikeAction.wrongRelativeFound); +} -assertTrue(Root element was found absolute, xmlioLikeHandler.rootFoundAbsolute); -assertTrue(Root element was found relative, xmlioLikeHandler.rootFoundRelative); -assertTrue(Long absolute path was found, xmlioLikeHandler.longAbsoluteFound); -assertFalse(Incomplete relative
svn commit: r153448 - jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java
Author: ozeigermann Date: Fri Feb 11 11:42:32 2005 New Revision: 153448 URL: http://svn.apache.org/viewcvs?view=revrev=153448 Log: Made #checkLock, #hasLock, #release only check on existing locks as creating a new lock was silly in that scenario Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java?view=diffr1=153447r2=153448 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java Fri Feb 11 11:42:32 2005 @@ -139,11 +139,14 @@ */ public boolean checkLock(Object ownerId, Object resourceId, int targetLockLevel, boolean reentrant) { timeoutCheck(ownerId); +boolean possible = true; -GenericLock lock = (GenericLock) atomicGetOrCreateLock(resourceId); -boolean possible = lock.test(ownerId, targetLockLevel, -reentrant ? GenericLock.COMPATIBILITY_REENTRANT : GenericLock.COMPATIBILITY_NONE); - +GenericLock lock = (GenericLock) getLock(resourceId); +if (lock != null) { +possible = lock.test(ownerId, targetLockLevel, +reentrant ? GenericLock.COMPATIBILITY_REENTRANT +: GenericLock.COMPATIBILITY_NONE); +} return possible; } @@ -153,10 +156,12 @@ */ public boolean hasLock(Object ownerId, Object resourceId, int lockLevel) { timeoutCheck(ownerId); +boolean owned = false; -GenericLock lock = (GenericLock) atomicGetOrCreateLock(resourceId); -boolean owned = lock.has(ownerId, lockLevel); - +GenericLock lock = (GenericLock) getLock(resourceId); +if (lock != null) { +owned = lock.has(ownerId, lockLevel); +} return owned; } @@ -290,9 +295,13 @@ */ public boolean release(Object ownerId, Object resourceId) { timeoutCheck(ownerId); -GenericLock lock = (GenericLock) atomicGetOrCreateLock(resourceId); -boolean released = lock.release(ownerId); -removeOwner(ownerId, lock); +boolean released = false; + +GenericLock lock = (GenericLock) getLock(resourceId); +if (lock != null) { +released = lock.release(ownerId); +removeOwner(ownerId, lock); +} return released; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r153450 - jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java
Author: ozeigermann Date: Fri Feb 11 11:46:40 2005 New Revision: 153450 URL: http://svn.apache.org/viewcvs?view=revrev=153450 Log: Split lock(Object ownerId, Object resourceId, int targetLockLevel, int compatibility, boolean preferred, long timeoutMSecs) into two parts to make subclassing easier Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java?view=diffr1=153449r2=153450 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java Fri Feb 11 11:46:40 2005 @@ -190,13 +190,19 @@ */ public void lock(Object ownerId, Object resourceId, int targetLockLevel, int compatibility, boolean preferred, long timeoutMSecs) throws LockException { +timeoutCheck(ownerId); +GenericLock lock = (GenericLock) atomicGetOrCreateLock(resourceId); +doLock(lock, ownerId, resourceId, targetLockLevel, compatibility, preferred, timeoutMSecs); +} + +protected void doLock(GenericLock lock, Object ownerId, Object resourceId, int targetLockLevel, + int compatibility, boolean preferred, long timeoutMSecs) +{ long now = System.currentTimeMillis(); long waitEnd = now + timeoutMSecs; timeoutCheck(ownerId); -GenericLock lock = (GenericLock) atomicGetOrCreateLock(resourceId); - GenericLock.LockOwner lockWaiter = new GenericLock.LockOwner(ownerId, targetLockLevel, compatibility, preferred); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r153452 - jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt
Author: ozeigermann Date: Fri Feb 11 11:51:53 2005 New Revision: 153452 URL: http://svn.apache.org/viewcvs?view=revrev=153452 Log: Added recent changes and prepared for rc1 Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?view=diffr1=153451r2=153452 == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Fri Feb 11 11:51:53 2005 @@ -1,8 +1,8 @@ -Jakarta Commons Transaction Release 1.1 beta2 +Jakarta Commons Transaction Release 1.1 rc1 - RELEASE NUMBER: 1.1b2 -RELEASE TAG / BRANCH: TRANSACTION_1_1_B2_RELEASE / none yet +RELEASE TAG / BRANCH: TRANSACTION_1_1_RC1_RELEASE / none yet DESCRIPTION --- @@ -19,9 +19,8 @@ GENERAL RELEASE NOTES - -This is the second beta of the Commons Transaction 1.1 feature release. -It mainly fixes concurrency bugs not discovered before the first beta and -adds test cases that reveal them. +This is the first release candidate of the Commons Transaction 1.1 feature release. +It mainly cleanes up some minor issues that come up while beta testing. Commons Transaction 1.1 aims at polishing (interface) oddities, improving locking and making the file store more flexible. Locking now is much more @@ -72,6 +71,13 @@ ENHANCEMENTS FROM 1.0 beta1 --- - Many extensions for information about locks + +ENHANCEMENTS FROM 1.0 beta2 +--- +- Made GenericLockManager#checkLock, GenericLockManager#hasLock, GenericLockManager#release only check on existing locks + as creating a new lock was silly in that scenario +- Split GenericLockManager#lock(Object ownerId, Object resourceId, int targetLockLevel, int compatibility, boolean preferred, long timeoutMSecs) + into two parts to make subclassing easier KNOWN ISSUES - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r153487 - in jakarta/commons/proper/digester/branches/digester2/src: java/org/apache/commons/digester2/DefaultRuleManager.java java/org/apache/commons/digester2/Path.java java/org/apache/commons/digester2/SupplementaryRuleManager.java test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java
Author: ozeigermann Date: Fri Feb 11 23:27:46 2005 New Revision: 153487 URL: http://svn.apache.org/viewcvs?view=revrev=153487 Log: Added early proposal for xmlio like rule manager and processing style Added: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java?view=diffr1=153486r2=153487 == --- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java (original) +++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/DefaultRuleManager.java Fri Feb 11 23:27:46 2005 @@ -58,7 +58,7 @@ * Map of namespace-prefix to namespace-uri, used only by the * addAction() method. */ -private HashMap namespaces = new HashMap(); +protected HashMap namespaces = new HashMap(); /** * The list of all actions in the cache. This set allows us to @@ -72,7 +72,7 @@ * find the pattern that matches the current xml element, then * return the list of actions. */ -private MultiHashMap rules = new MultiHashMap(); +protected MultiHashMap rules = new MultiHashMap(); // - // Public Methods Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java?view=diffr1=153486r2=153487 == --- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java (original) +++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java Fri Feb 11 23:27:46 2005 @@ -141,5 +141,36 @@ namespaces.clear(); localNames.clear(); } + +public boolean matches(String pathToMatch) { +if (pathToMatch.charAt(0) == '/') { +// absolute +return getPath().equals(pathToMatch); +} else { +// relative +// XXX looks wrong but protects a match of +// a/b against a path of /gotcha/b, but +// still allows +// a/b to match against /a/b +return getPath().endsWith(/ + pathToMatch); +} +} + +/** + * Checks if this path matches any of the paths given. This means we iterate through + * codepathsToMatch/code and match every entry to this path. + */ +public boolean matchsAny(String[] pathsToMatch) { +for (int i = 0; i pathsToMatch.length; i++) { +if (matches(pathsToMatch[i])) +return true; +} +return false; +} + +public String toString() { +return getPath(); +} + } Added: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java?view=autorev=153487 == --- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java (added) +++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java Fri Feb 11 23:27:46 2005 @@ -0,0 +1,103 @@ +/* $Id: DefaultRuleManager.java 153050 2005-02-09 12:12:28Z skitching $ + * + * Copyright 2001-2005 The Apache Software Foundation. + * + * Licensed 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
svn commit: r151330 - jakarta/commons/proper/digester/branches/digester2/project.xml
Author: ozeigermann Date: Fri Feb 4 00:03:50 2005 New Revision: 151330 URL: http://svn.apache.org/viewcvs?view=revrev=151330 Log: Added myself to the list of developers (to check to commit rights) Modified: jakarta/commons/proper/digester/branches/digester2/project.xml Modified: jakarta/commons/proper/digester/branches/digester2/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/project.xml?view=diffr1=151329r2=151330 == --- jakarta/commons/proper/digester/branches/digester2/project.xml (original) +++ jakarta/commons/proper/digester/branches/digester2/project.xml Fri Feb 4 00:03:50 2005 @@ -154,6 +154,15 @@ idskitching/id email[EMAIL PROTECTED]/email /developer +developer + nameOliver Zeigermann/name + idozeigermann/id + email[EMAIL PROTECTED]/email + timezone+1/timezone + roles + roleJava Developer/role + /roles +/developer /developers contributors - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r151389 - jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml
Author: ozeigermann Date: Fri Feb 4 11:02:37 2005 New Revision: 151389 URL: http://svn.apache.org/viewcvs?view=revrev=151389 Log: Prepared 1.1 beta 2 Modified: jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml Modified: jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml?view=diffr1=151388r2=151389 == --- jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml (original) +++ jakarta/commons/proper/transaction/trunk/xdocs/downloads.xml Fri Feb 4 11:02:37 2005 @@ -3,7 +3,7 @@ properties titleDownloads/title author email=commons-dev@jakarta.apache.orgCommons Documentation Team/author - revision$Id: downloads.xml,v 1.5 2005/01/13 01:23:57 ozeigermann Exp $/revision + revision$Id$/revision /properties body @@ -32,6 +32,7 @@ c pThe following beta releases / release candidates are available:/p ul lia href=http://cvs.apache.org/dist/jakarta/commons/transaction/1.1b1/;Version 1.1 beta 1 - 13 January 2004/a / a href=http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/transaction/RELEASE-NOTES.txt?rev=1.14;release notes/a/li + lia href=http://cvs.apache.org/dist/jakarta/commons/transaction/1.1b2/;Version 1.1 beta 2 - 5 February 2004/a / a href=http://svn.apache.org/repos/asf/jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE/RELEASE-NOTES.txt;release notes/a/li /ul /section section name=Latest Sources - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r151450 - in jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2: NestedSAXException.java SAXHandler.java
Author: ozeigermann Date: Fri Feb 4 16:33:31 2005 New Revision: 151450 URL: http://svn.apache.org/viewcvs?view=revrev=151450 Log: Fixed 1.4 incompatibility Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/NestedSAXException.java jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SAXHandler.java Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/NestedSAXException.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/NestedSAXException.java?view=diffr1=151449r2=151450 == --- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/NestedSAXException.java (original) +++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/NestedSAXException.java Fri Feb 4 16:33:31 2005 @@ -37,6 +37,7 @@ } public NestedSAXException(Throwable t) { +super(t.getMessage()); cause = t; } Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SAXHandler.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SAXHandler.java?view=diffr1=151449r2=151450 == --- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SAXHandler.java (original) +++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SAXHandler.java Fri Feb 4 16:33:31 2005 @@ -1265,15 +1265,20 @@ * */ public InputSource resolveEntity(String publicId, String systemId) -throws SAXException, IOException { +//throws SAXException, IOException { +throws SAXException { if (saxLog.isDebugEnabled()) { saxLog.debug(resolveEntity(' + publicId + ', ' + systemId + ')); } if (entityResolver != null) { -// the user has specified their own EntityResolver, so we just -// forward the call to that object: -return entityResolver.resolveEntity(publicId, systemId); +try { +// the user has specified their own EntityResolver, so we just +// forward the call to that object: +return entityResolver.resolveEntity(publicId, systemId); +} catch (IOException e) { +throw new NestedSAXException(e); +} } // TODO: fix this. We can't assume that every external entity - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r151137 - jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE
Author: ozeigermann Date: Thu Feb 3 01:18:19 2005 New Revision: 151137 URL: http://svn.apache.org/viewcvs?view=revrev=151137 Log: Prepared retagging Removed: jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r151138 - jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE
Author: ozeigermann Date: Thu Feb 3 01:19:36 2005 New Revision: 151138 URL: http://svn.apache.org/viewcvs?view=revrev=151138 Log: Retagging as 1.1b2 Added: jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE/ - copied from r151137, jakarta/commons/proper/transaction/trunk/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r149515 - in jakarta/commons/proper/transaction/trunk: RELEASE-NOTES.txt build.xml project.xml
Author: ozeigermann Date: Wed Feb 2 06:45:55 2005 New Revision: 149515 URL: http://svn.apache.org/viewcvs?view=revrev=149515 Log: Prepared 1.1b2 Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt jakarta/commons/proper/transaction/trunk/build.xml jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?view=diffr1=149514r2=149515 == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Wed Feb 2 06:45:55 2005 @@ -1,8 +1,8 @@ -Jakarta Commons Transaction Release 1.1 beta2 pre -- +Jakarta Commons Transaction Release 1.1 beta2 +- -RELEASE NUMBER: 1.1b2pre -RELEASE TAG / BRANCH: none yet / none yet +RELEASE NUMBER: 1.1b2 +RELEASE TAG / BRANCH: TRANSACTION_1_1_B2_RELEASE / none yet DESCRIPTION --- Modified: jakarta/commons/proper/transaction/trunk/build.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/build.xml?view=diffr1=149514r2=149515 == --- jakarta/commons/proper/transaction/trunk/build.xml (original) +++ jakarta/commons/proper/transaction/trunk/build.xml Wed Feb 2 06:45:55 2005 @@ -20,7 +20,7 @@ property name=compile.deprecation value=true / property name=compile.optimize value=true / - property name=version value=1.1b2pre/ + property name=version value=1.1b2/ property name=name value=commons-transaction / property name=title value=Commons Transaction / property name=package value=org.apache.commons.transaction / Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/project.xml?view=diffr1=149514r2=149515 == --- jakarta/commons/proper/transaction/trunk/project.xml (original) +++ jakarta/commons/proper/transaction/trunk/project.xml Wed Feb 2 06:45:55 2005 @@ -10,7 +10,7 @@ shortDescriptionCommons Transaction/shortDescription descriptionCommons Transaction/description - currentVersion1.1b2pre/currentVersion + currentVersion1.1b2/currentVersion urlhttp://jakarta.apache.org/commons/${pom.artifactId.substring(8)}//url packageorg.apache.commons.${pom.artifactId.substring(8)}/package - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r149517 - in jakarta/commons/proper/transaction/trunk: build.xml project.xml
Author: ozeigermann Date: Wed Feb 2 07:12:35 2005 New Revision: 149517 URL: http://svn.apache.org/viewcvs?view=revrev=149517 Log: Added new test Modified: jakarta/commons/proper/transaction/trunk/build.xml jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/build.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/build.xml?view=diffr1=149516r2=149517 == --- jakarta/commons/proper/transaction/trunk/build.xml (original) +++ jakarta/commons/proper/transaction/trunk/build.xml Wed Feb 2 07:12:35 2005 @@ -373,6 +373,7 @@ test name=org.apache.commons.transaction.memory.OptimisticMapWrapperTest haltonfailure=yes todir=tmp/ test name=org.apache.commons.transaction.memory.PessimisticMapWrapperTest haltonfailure=yes todir=tmp/ test name=org.apache.commons.transaction.locking.GenericLockTest haltonfailure=yes todir=tmp/ + test name=org.apache.commons.transaction.locking.LockTestRepeatableReads haltonfailure=yes todir=tmp/ /junit /target Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/project.xml?view=diffr1=149516r2=149517 == --- jakarta/commons/proper/transaction/trunk/project.xml (original) +++ jakarta/commons/proper/transaction/trunk/project.xml Wed Feb 2 07:12:35 2005 @@ -149,7 +149,7 @@ includeorg/apache/commons/transaction/memory/OptimisticMapWrapperTest.java/include includeorg/apache/commons/transaction/memory/PessimisticMapWrapperTest.java/include includeorg/apache/commons/transaction/locking/GenericLockTest.java/include - /includes + includeorg/apache/commons/transaction/locking/LockTestRepeatableReads.java/include /unitTest /build - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r149519 - jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE
Author: ozeigermann Date: Wed Feb 2 07:23:20 2005 New Revision: 149519 URL: http://svn.apache.org/viewcvs?view=revrev=149519 Log: Tagging as 1.1b2 Added: jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE/ - copied from r149518, jakarta/commons/proper/transaction/trunk/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r149521 - jakarta/commons/proper/transaction/trunk/project.xml
Author: ozeigermann Date: Wed Feb 2 07:31:50 2005 New Revision: 149521 URL: http://svn.apache.org/viewcvs?view=revrev=149521 Log: Added missing end tag Modified: jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/project.xml?view=diffr1=149520r2=149521 == --- jakarta/commons/proper/transaction/trunk/project.xml (original) +++ jakarta/commons/proper/transaction/trunk/project.xml Wed Feb 2 07:31:50 2005 @@ -150,6 +150,7 @@ includeorg/apache/commons/transaction/memory/PessimisticMapWrapperTest.java/include includeorg/apache/commons/transaction/locking/GenericLockTest.java/include includeorg/apache/commons/transaction/locking/LockTestRepeatableReads.java/include + includes /unitTest /build - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r149522 - jakarta/commons/proper/transaction/trunk/project.xml
Author: ozeigermann Date: Wed Feb 2 07:35:16 2005 New Revision: 149522 URL: http://svn.apache.org/viewcvs?view=revrev=149522 Log: *really* added missing end tag Modified: jakarta/commons/proper/transaction/trunk/project.xml Modified: jakarta/commons/proper/transaction/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/project.xml?view=diffr1=149521r2=149522 == --- jakarta/commons/proper/transaction/trunk/project.xml (original) +++ jakarta/commons/proper/transaction/trunk/project.xml Wed Feb 2 07:35:16 2005 @@ -150,7 +150,7 @@ includeorg/apache/commons/transaction/memory/PessimisticMapWrapperTest.java/include includeorg/apache/commons/transaction/locking/GenericLockTest.java/include includeorg/apache/commons/transaction/locking/LockTestRepeatableReads.java/include - includes + /includes /unitTest /build - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r149523 - jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE/trunk
Author: ozeigermann Date: Wed Feb 2 07:35:55 2005 New Revision: 149523 URL: http://svn.apache.org/viewcvs?view=revrev=149523 Log: Tagging as 1.1b2 Added: jakarta/commons/proper/transaction/tags/TRANSACTION_1_1_B2_RELEASE/trunk/ - copied from r149522, jakarta/commons/proper/transaction/trunk/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r149189 - jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/PessimisticMapWrapper.java
Author: ozeigermann Date: Sun Jan 30 16:08:12 2005 New Revision: 149189 URL: http://svn.apache.org/viewcvs?view=revrev=149189 Log: Added Javadocs Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/PessimisticMapWrapper.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/PessimisticMapWrapper.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/PessimisticMapWrapper.java?view=diffr1=149188r2=149189 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/PessimisticMapWrapper.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/PessimisticMapWrapper.java Sun Jan 30 16:08:12 2005 @@ -1,7 +1,7 @@ /* * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//transaction/src/java/org/apache/commons/transaction/memory/PessimisticMapWrapper.java,v 1.2 2004/12/14 12:12:46 ozeigermann Exp $ * $Revision: 1.2 $ - * $Date: 2004/12/14 12:12:46 $ + * $Date$ * * * @@ -64,6 +64,8 @@ * data will be instances of [EMAIL PROTECTED] java.util.HashMap} and [EMAIL PROTECTED] java.util.HashSet}. * * @param wrapped map to be wrapped + * @param logger + *generic logger used for all kinds of logging */ public PessimisticMapWrapper(Map wrapped, LoggerFacade logger) { this(wrapped, new HashMapFactory(), new HashSetFactory(), logger); @@ -76,6 +78,8 @@ * @param wrapped map to be wrapped * @param mapFactory factory for temporary maps * @param setFactory factory for temporary sets + * @param logger + *generic logger used for all kinds of logging */ public PessimisticMapWrapper(Map wrapped, MapFactory mapFactory, SetFactory setFactory, LoggerFacade logger) { super(wrapped, mapFactory, setFactory); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r149190 - in jakarta/commons/proper/transaction/trunk: RELEASE-NOTES.txt src/java/org/apache/commons/transaction/memory/OptimisticMapWrapper.java
Author: ozeigermann Date: Sun Jan 30 16:12:31 2005 New Revision: 149190 URL: http://svn.apache.org/viewcvs?view=revrev=149190 Log: OptimisticMapWrapper now uses a read/write lock to guarantee no other operations are being executed while commiting. Before this it was possible that conflicts that arose during the process of committing remained undetected Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/OptimisticMapWrapper.java Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?view=diffr1=149189r2=149190 == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Sun Jan 30 16:12:31 2005 @@ -65,6 +65,9 @@ - Fixed deadlock hazard in deadlock detection caused by interleaving access to locks set of an owner - Fixed timeout that in certain scenarios did not work - GenericLock test method released all locks held by the testing owner - fixed +- OptimisticMapWrapper now uses a read/write lock to guarantee no other operations are being executed while + commiting; before it was possible that conflicts that arose during the process of + committing remained undetected ENHANCEMENTS FROM 1.0 beta1 --- Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/OptimisticMapWrapper.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/OptimisticMapWrapper.java?view=diffr1=149189r2=149190 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/OptimisticMapWrapper.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/memory/OptimisticMapWrapper.java Sun Jan 30 16:12:31 2005 @@ -1,7 +1,7 @@ /* * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//transaction/src/java/org/apache/commons/transaction/memory/OptimisticMapWrapper.java,v 1.1 2004/11/18 23:27:18 ozeigermann Exp $ * $Revision: 1.1 $ - * $Date: 2004/11/18 23:27:18 $ + * $Date$ * * * @@ -23,12 +23,17 @@ package org.apache.commons.transaction.memory; +import java.io.PrintWriter; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.Collections; +import org.apache.commons.transaction.locking.ReadWriteLock; +import org.apache.commons.transaction.util.LoggerFacade; +import org.apache.commons.transaction.util.PrintWriterLogger; + /** * Wrapper that adds transactional control to all kinds of maps that implement the [EMAIL PROTECTED] Map} interface. By using * a naive optimistic transaction control this wrapper has better isolation than [EMAIL PROTECTED] TransactionalMapWrapper}, but @@ -52,8 +57,15 @@ */ public class OptimisticMapWrapper extends TransactionalMapWrapper { +protected static final int COMMIT_TIMEOUT = 1000 * 60; // 1 minute +protected static final int ACCESS_TIMEOUT = 1000 * 30; // 30 seconds + protected Set activeTransactions; +protected LoggerFacade logger; + +protected ReadWriteLock commitLock; + /** * Creates a new optimistic transactional map wrapper. Temporary maps and sets to store transactional * data will be instances of [EMAIL PROTECTED] java.util.HashMap} and [EMAIL PROTECTED] java.util.HashSet}. @@ -73,10 +85,28 @@ * @param setFactory factory for temporary sets */ public OptimisticMapWrapper(Map wrapped, MapFactory mapFactory, SetFactory setFactory) { +this(wrapped, mapFactory, setFactory, new PrintWriterLogger(new PrintWriter(System.out), +OptimisticMapWrapper.class.getName(), false)); +} + +/** + * Creates a new optimistic transactional map wrapper. Temporary maps and sets to store transactional + * data will be created and disposed using [EMAIL PROTECTED] MapFactory} and [EMAIL PROTECTED] SetFactory}. + * + * @param wrapped map to be wrapped + * @param mapFactory factory for temporary maps + * @param setFactory factory for temporary sets + * @param logger + *generic logger used for all kinds of logging + */ +public OptimisticMapWrapper(Map wrapped, MapFactory mapFactory, SetFactory setFactory, LoggerFacade logger) { super(wrapped, mapFactory, setFactory); activeTransactions = Collections.synchronizedSet(new HashSet()); +this.logger = logger; +commitLock = new
svn commit: r149027 - in jakarta/commons/proper/transaction/trunk: . src/java/org/apache/commons/transaction/locking src/test/org/apache/commons/transaction/locking
Author: ozeigermann Date: Sat Jan 29 03:26:11 2005 New Revision: 149027 URL: http://svn.apache.org/viewcvs?view=revrev=149027 Log: - Extensions for better information retrieval on lock levels and releases - More lock tests by Armin Waibel - Fix for GenericLock that releases all locks of a certain user when testing if a lock level was available Added: jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/locking/LockTestRepeatableReads.java Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt jakarta/commons/proper/transaction/trunk/project.xml jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLock.java jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/LockManager2.java jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/MultiLevelLock.java jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/MultiLevelLock2.java jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/ReadWriteLockManager.java Modified: jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Url: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt?view=diffrev=149027p1=jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txtr1=149026p2=jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txtr2=149027 == --- jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/transaction/trunk/RELEASE-NOTES.txt Sat Jan 29 03:26:11 2005 @@ -57,10 +57,18 @@ - - PessimisticMapWrapper now throws the more general LockException from locking package +- Both MultiLevelLock#release and LockManager2#release now return a boolean that indicates if the lock + really has been released BUGFIXES FROM 1.0 beta1 --- - Fixed deadlock hazard in deadlock detection caused by interleaving access to locks set of an owner +- Fixed timeout that in certain scenarios did not work +- GenericLock test method released all locks held by the testing owner - fixed + +ENHANCEMENTS FROM 1.0 beta1 +--- +- Many extensions for information about locks KNOWN ISSUES Modified: jakarta/commons/proper/transaction/trunk/project.xml Url: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/project.xml?view=diffrev=149027p1=jakarta/commons/proper/transaction/trunk/project.xmlr1=149026p2=jakarta/commons/proper/transaction/trunk/project.xmlr2=149027 == --- jakarta/commons/proper/transaction/trunk/project.xml(original) +++ jakarta/commons/proper/transaction/trunk/project.xmlSat Jan 29 03:26:11 2005 @@ -102,6 +102,12 @@ contributor nameAntranig Basman/name /contributor +contributor + nameArmin Waibel/name + idarminw/id + email[EMAIL PROTECTED]/email + timezone+1/timezone +/contributor /contributors Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLock.java Url: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLock.java?view=diffrev=149027p1=jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLock.javar1=149026p2=jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLock.javar2=149027 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLock.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLock.java Sat Jan 29 03:26:11 2005 @@ -1,7 +1,7 @@ /* * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//transaction/src/java/org/apache/commons/transaction/locking/GenericLock.java,v 1.14 2005/01/13 23:12:44 ozeigermann Exp $ * $Revision: 1.14 $ - * $Date: 2005/01/13 23:12:44 $ + * $Date$ * * * @@ -171,16 +171,19 @@ * @see MultiLevelLock2#test(Object, int, int) */ public boolean test(Object ownerId, int targetLockLevel, int compatibility) { -boolean success = false; -try { -success = tryLock(ownerId, targetLockLevel, compatibility, false); -} finally { -release(ownerId); -} +boolean success
svn commit: r148918 - /jakarta/commons/sandbox/xmlio/trunk/xdocs/index.xml /jakarta/commons/sandbox/xmlio/trunk/xdocs/xmlio-in.pdf /jakarta/commons/sandbox/xmlio/trunk/xdocs/xmlio-out.pdf
Author: ozeigermann Date: Fri Jan 28 13:30:01 2005 New Revision: 148918 URL: http://svn.apache.org/viewcvs?view=revrev=148918 Log: Added class diagrams by [EMAIL PROTECTED] Added: jakarta/commons/sandbox/xmlio/trunk/xdocs/xmlio-in.pdf (contents, props changed) jakarta/commons/sandbox/xmlio/trunk/xdocs/xmlio-out.pdf (contents, props changed) Modified: jakarta/commons/sandbox/xmlio/trunk/xdocs/index.xml Modified: jakarta/commons/sandbox/xmlio/trunk/xdocs/index.xml Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/xmlio/trunk/xdocs/index.xml?view=diffrev=148918p1=jakarta/commons/sandbox/xmlio/trunk/xdocs/index.xmlr1=148917p2=jakarta/commons/sandbox/xmlio/trunk/xdocs/index.xmlr2=148918 == --- jakarta/commons/sandbox/xmlio/trunk/xdocs/index.xml (original) +++ jakarta/commons/sandbox/xmlio/trunk/xdocs/index.xml Fri Jan 28 13:30:01 2005 @@ -91,5 +91,11 @@ /p /section +section name=Class diagrams + p + For an easy overview there is a class diagram for the a href=xmlio-in.pdfinput part/a and one for the a href=xmlio-out.pdfoutput part/a in PDF format. + /p +/section + /body /document Added: jakarta/commons/sandbox/xmlio/trunk/xdocs/xmlio-in.pdf Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/xmlio/trunk/xdocs/xmlio-in.pdf?view=autorev=148918 == Binary file. No diff available. Added: jakarta/commons/sandbox/xmlio/trunk/xdocs/xmlio-out.pdf Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/xmlio/trunk/xdocs/xmlio-out.pdf?view=autorev=148918 == Binary file. No diff available. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r148919 - /jakarta/commons/sandbox/xmlio/trunk/project.xml
Author: ozeigermann Date: Fri Jan 28 13:30:59 2005 New Revision: 148919 URL: http://svn.apache.org/viewcvs?view=revrev=148919 Log: Added [EMAIL PROTECTED] to the list of contributors Modified: jakarta/commons/sandbox/xmlio/trunk/project.xml Modified: jakarta/commons/sandbox/xmlio/trunk/project.xml Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/xmlio/trunk/project.xml?view=diffrev=148919p1=jakarta/commons/sandbox/xmlio/trunk/project.xmlr1=148918p2=jakarta/commons/sandbox/xmlio/trunk/project.xmlr2=148919 == --- jakarta/commons/sandbox/xmlio/trunk/project.xml (original) +++ jakarta/commons/sandbox/xmlio/trunk/project.xml Fri Jan 28 13:30:59 2005 @@ -24,6 +24,13 @@ /developer /developers + contributors +contributor + nameAnaximandro (Woody)/name + email[EMAIL PROTECTED]/email +/contributor + /contributors + dependencies !-- dependency - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r148920 - /jakarta/commons/sandbox/i18n/trunk/project.xml /jakarta/commons/sandbox/i18n/trunk/xdocs/i18n.pdf /jakarta/commons/sandbox/i18n/trunk/xdocs/index.xml
Author: ozeigermann Date: Fri Jan 28 13:37:18 2005 New Revision: 148920 URL: http://svn.apache.org/viewcvs?view=revrev=148920 Log: Added class diagrams by [EMAIL PROTECTED] Added: jakarta/commons/sandbox/i18n/trunk/xdocs/i18n.pdf (contents, props changed) Modified: jakarta/commons/sandbox/i18n/trunk/project.xml jakarta/commons/sandbox/i18n/trunk/xdocs/index.xml Modified: jakarta/commons/sandbox/i18n/trunk/project.xml Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/i18n/trunk/project.xml?view=diffrev=148920p1=jakarta/commons/sandbox/i18n/trunk/project.xmlr1=148919p2=jakarta/commons/sandbox/i18n/trunk/project.xmlr2=148920 == --- jakarta/commons/sandbox/i18n/trunk/project.xml (original) +++ jakarta/commons/sandbox/i18n/trunk/project.xml Fri Jan 28 13:37:18 2005 @@ -1,8 +1,8 @@ ?xml version=1.0? !-- - $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons-sandbox//i18n/project.xml,v 1.10 2004/11/03 12:21:16 ozeigermann Exp $ + $Header: /home/cvs/jakarta-commons-sandbox/i18n/project.xml,v 1.10 2004/11/03 12:21:16 ozeigermann Exp $ $Revision: 1.10 $ - $Date: 2004/11/03 12:21:16 $ + $Date$ @@ -61,6 +61,13 @@ /developer /developers + contributors +contributor + nameAnaximandro (Woody)/name + email[EMAIL PROTECTED]/email +/contributor + /contributors + dependencies dependency idcommons-xmlio/id Added: jakarta/commons/sandbox/i18n/trunk/xdocs/i18n.pdf Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/i18n/trunk/xdocs/i18n.pdf?view=autorev=148920 == Binary file. No diff available. Modified: jakarta/commons/sandbox/i18n/trunk/xdocs/index.xml Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/i18n/trunk/xdocs/index.xml?view=diffrev=148920p1=jakarta/commons/sandbox/i18n/trunk/xdocs/index.xmlr1=148919p2=jakarta/commons/sandbox/i18n/trunk/xdocs/index.xmlr2=148920 == --- jakarta/commons/sandbox/i18n/trunk/xdocs/index.xml (original) +++ jakarta/commons/sandbox/i18n/trunk/xdocs/index.xml Fri Jan 28 13:37:18 2005 @@ -33,5 +33,11 @@ /p /section +section name=Class diagrams + p + For an easy overview there is a a href=i18n.pdfclass diagram/a in PDF format. + /p +/section + /body /document - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r148947 - /jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java /jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/locking/GenericLockTest.java
Author: ozeigermann Date: Fri Jan 28 15:03:28 2005 New Revision: 148947 URL: http://svn.apache.org/viewcvs?view=revrev=148947 Log: Fixed timeout problem reported by Armin Waibel [EMAIL PROTECTED] Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/locking/GenericLockTest.java Modified: jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java Url: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java?view=diffrev=148947p1=jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.javar1=148946p2=jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.javar2=148947 == --- jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java (original) +++ jakarta/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/locking/GenericLockManager.java Fri Jan 28 15:03:28 2005 @@ -1,7 +1,7 @@ /* * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//transaction/src/java/org/apache/commons/transaction/locking/GenericLockManager.java,v 1.21 2005/01/13 23:11:56 ozeigermann Exp $ * $Revision: 1.21 $ - * $Date: 2005/01/13 23:11:56 $ + * $Date$ * * * @@ -158,11 +158,11 @@ */ public void lock(Object ownerId, Object resourceId, int targetLockLevel, int compatibility, boolean preferred, long timeoutMSecs) throws LockException { -timeoutCheck(ownerId); - long now = System.currentTimeMillis(); long waitEnd = now + timeoutMSecs; +timeoutCheck(ownerId); + GenericLock lock = (GenericLock) atomicGetOrCreateLock(resourceId); GenericLock.LockOwner lockWaiter = new GenericLock.LockOwner(ownerId, targetLockLevel, @@ -227,7 +227,7 @@ preferred, timeoutMSecs); lock.registerWaiter(lockWaiter); } - +now = System.currentTimeMillis(); } if (!acquired) { throw new LockException(Lock wait timed out, LockException.CODE_TIMED_OUT, Modified: jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/locking/GenericLockTest.java Url: http://svn.apache.org/viewcvs/jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/locking/GenericLockTest.java?view=diffrev=148947p1=jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/locking/GenericLockTest.javar1=148946p2=jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/locking/GenericLockTest.javar2=148947 == --- jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/locking/GenericLockTest.java (original) +++ jakarta/commons/proper/transaction/trunk/src/test/org/apache/commons/transaction/locking/GenericLockTest.java Fri Jan 28 15:03:28 2005 @@ -1,7 +1,7 @@ /* * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//transaction/src/test/org/apache/commons/transaction/locking/GenericLockTest.java,v 1.12 2005/01/13 16:44:03 ozeigermann Exp $ * $Revision: 1.12 $ - * $Date: 2005/01/13 16:44:03 $ + * $Date$ * * * @@ -75,7 +75,7 @@ return false; } } - + public void testBasic() throws Throwable { sLogger.logInfo(\n\nChecking basic map features\n\n); @@ -149,6 +149,32 @@ canRead1 = acquireNoWait(lock, owner1, READ_LOCK); assertTrue(canRead1); } + +public void testTimeout() { + +sLogger.logInfo(\n\nChecking timeouts\n\n); + +ReadWriteLockManager lockManager = new ReadWriteLockManager(sLogger, 100); +boolean timedOut = false; +try { +lockManager.readLock(owner1, resource); +lockManager.writeLock(owner2, resource); +} catch (LockException le) { +assertEquals(le.getCode(), LockException.CODE_TIMED_OUT); +timedOut = true; +} +assertTrue(timedOut); +lockManager = new ReadWriteLockManager(sLogger, 0); +timedOut = false; +try { +lockManager.readLock(owner1, resource); +lockManager.writeLock(owner2, resource); +} catch (LockException le