svn commit: r487667 - /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java
Author: sandymac Date: Fri Dec 15 13:18:47 2006 New Revision: 487667 URL: http://svn.apache.org/viewvc?view=revrev=487667 Log: Make StackObjectPool.borrowObject to throw a NoSuchElementException when the PoolableObjectFactory.makeObject returns null. addresses POOL-91 Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java?view=diffrev=487667r1=487666r2=487667 == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java Fri Dec 15 13:18:47 2006 @@ -148,6 +148,9 @@ } else { newlyCreated = true; obj = _factory.makeObject(); + if (obj == null) { +throw new NoSuchElementException(PoolableObjectFactory.makeObject() returned null.); + } } } if (!newlyCreated null != _factory null != obj) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r474163 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool: BaseKeyedObjectPool.java impl/GenericKeyedObjectPool.java impl/GenericKeyedObjectPoolFactory.java impl/Gen
Author: sandymac Date: Sun Nov 12 21:58:55 2006 New Revision: 474163 URL: http://svn.apache.org/viewvc?view=revrev=474163 Log: Add @since tags for methods added in Pool 1.3 and in Pool 2.0 Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPoolFactory.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java?view=diffrev=474163r1=474162r2=474163 == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java Sun Nov 12 21:58:55 2006 @@ -106,6 +106,7 @@ /** * Has this pool instance been closed. * @return codetrue/code when this pool has been closed. + * @since Pool 2.0 */ protected final boolean isClosed() { return closed; @@ -115,6 +116,7 @@ * Throws an codeIllegalStateException/code when this pool has been closed. * @throws IllegalStateException when this pool has been closed. * @see #isClosed() + * @since Pool 2.0 */ protected final void assertOpen() throws IllegalStateException { if(isClosed()) { Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java?view=diffrev=474163r1=474162r2=474163 == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java Sun Nov 12 21:58:55 2006 @@ -260,6 +260,7 @@ /** * The default minimum level of idle objects in the pool. + * @since Pool 1.3 * @see #setMinIdle * @see #getMinIdle */ @@ -405,6 +406,7 @@ * @param numTestsPerEvictionRun the number of idle objects to examine per run within the idle object eviction thread (if any) (see [EMAIL PROTECTED] #setNumTestsPerEvictionRun}) * @param minEvictableIdleTimeMillis the minimum number of milliseconds an object can sit idle in the pool before it is eligible for evcition (see [EMAIL PROTECTED] #setMinEvictableIdleTimeMillis}) * @param testWhileIdle whether or not to validate objects in the idle object eviction thread, if any (see [EMAIL PROTECTED] #setTestWhileIdle}) + * @since Pool 1.3 */ public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, int maxTotal, int minIdle, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle) { _factory = factory; @@ -577,6 +579,7 @@ /** * Sets the minimum number of idle objects in pool to maintain * @param poolSize - The minimum size of the pool + * @since Pool 1.3 * @see #getMinIdle */ public synchronized void setMinIdle(int poolSize) { @@ -586,6 +589,7 @@ /** * Returns the minimum number of idle objects in pool to maintain. * @return the minimum number of idle objects in pool to maintain. + * @since Pool 1.3 * @see #setMinIdle */ public synchronized int getMinIdle() { @@ -918,6 +922,7 @@ /** * Method clears oldest 15% of objects in pool. The method sorts the * objects into a TreeMap and then iterates the first 15% for removal + * @since Pool 1.3 */ public synchronized void clearOldest() { // build sorted map of idle objects @@ -1157,6 +1162,7 @@ * @param key - The key to register for pool control. * @param populateImmediately - If this is codetrue/code, the pool * will start a sustain cycle immediately. + * @since Pool 1.3 */ public synchronized void preparePool(Object key, boolean populateImmediately) { ObjectQueue pool = (ObjectQueue)(_poolMap.get(key)); Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java URL: http://svn.apache.org/viewvc
svn commit: r473646 [2/2] - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/ java/org/apache/commons/pool/composite/ java/org/apache/commons/pool/impl/ test/org/apache/commons/
Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java?view=diffrev=473646r1=473645r2=473646 == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java Fri Nov 10 21:57:35 2006 @@ -125,6 +125,7 @@ * @author Dirk Verbeeck * @author Sandy McArthur * @version $Revision$ $Date$ + * @since Pool 1.0 */ public class GenericObjectPool extends BaseObjectPool implements ObjectPool { @@ -503,6 +504,7 @@ * When less than 0, the [EMAIL PROTECTED] #borrowObject} method * may block indefinitely. * + * @return maximum number of milliseconds to block when borrowing an object. * @see #setMaxWait * @see #setWhenExhaustedAction * @see #WHEN_EXHAUSTED_BLOCK @@ -521,6 +523,7 @@ * When less than 0, the [EMAIL PROTECTED] #borrowObject} method * may block indefinitely. * + * @param maxWait maximum number of milliseconds to block when borrowing an object. * @see #getMaxWait * @see #setWhenExhaustedAction * @see #WHEN_EXHAUSTED_BLOCK @@ -584,6 +587,7 @@ * it will be dropped from the pool, and we will attempt * to borrow another. * + * @return codetrue/code if objects are validated before being borrowed. * @see #setTestOnBorrow */ public synchronized boolean getTestOnBorrow() { @@ -598,6 +602,7 @@ * it will be dropped from the pool, and we will attempt * to borrow another. * + * @param testOnBorrow codetrue/code if objects should be validated before being borrowed. * @see #getTestOnBorrow */ public synchronized void setTestOnBorrow(boolean testOnBorrow) { @@ -610,6 +615,7 @@ * before being returned to the pool within the * [EMAIL PROTECTED] #returnObject}. * + * @return codetrue/code when objects will be validated after returned to [EMAIL PROTECTED] #returnObject}. * @see #setTestOnReturn */ public synchronized boolean getTestOnReturn() { @@ -622,6 +628,7 @@ * before being returned to the pool within the * [EMAIL PROTECTED] #returnObject}. * + * @param testOnReturn codetrue/code so objects will be validated after returned to [EMAIL PROTECTED] #returnObject}. * @see #getTestOnReturn */ public synchronized void setTestOnReturn(boolean testOnReturn) { @@ -634,6 +641,7 @@ * When non-positive, no idle object evictor thread will be * run. * + * @return number of milliseconds to sleep between evictor runs. * @see #setTimeBetweenEvictionRunsMillis */ public synchronized long getTimeBetweenEvictionRunsMillis() { @@ -646,6 +654,7 @@ * When non-positive, no idle object evictor thread will be * run. * + * @param timeBetweenEvictionRunsMillis number of milliseconds to sleep between evictor runs. * @see #getTimeBetweenEvictionRunsMillis */ public synchronized void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) { @@ -657,6 +666,7 @@ * Returns the max number of objects to examine during each run of the * idle object evictor thread (if any). * + * @return max number of objects to examine during each evictor run. * @see #setNumTestsPerEvictionRun * @see #setTimeBetweenEvictionRunsMillis */ @@ -672,6 +682,7 @@ * tests will be run. I.e., when the value is i-n/i, roughly one in/ith of the * idle objects will be tested per run. * + * @param numTestsPerEvictionRun max number of objects to examine during each evictor run. * @see #getNumTestsPerEvictionRun * @see #setTimeBetweenEvictionRunsMillis */ @@ -684,6 +695,7 @@ * before it is eligible for eviction by the idle object evictor * (if any). * + * @return minimum amount of time an object may sit idle in the pool before it is eligible for eviction. * @see #setMinEvictableIdleTimeMillis * @see #setTimeBetweenEvictionRunsMillis */ @@ -697,7 +709,7 @@ * (if any). * When non-positive, no objects will be evicted from the pool * due to idle time alone. - * + * @param minEvictableIdleTimeMillis minimum amount of time an object may sit idle in the pool before it is eligible for eviction. * @see #getMinEvictableIdleTimeMillis * @see #setTimeBetweenEvictionRunsMillis */ @@ -711,6 +723,7 @@ * (if any), with the extra condition that at least * minIdle amount of object remain in the pool. * + * @return minimum amount of time an object may sit idle in the pool before it is
svn commit: r469364 - /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java
Author: sandymac Date: Mon Oct 30 20:16:21 2006 New Revision: 469364 URL: http://svn.apache.org/viewvc?view=revrev=469364 Log: Less agressive timings to reduce the chance of thread scheduling causing the testMaxTotalLRU to fail. Changed in response to issue POOL-89 Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java?view=diffrev=469364r1=469363r2=469364 == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java Mon Oct 30 20:16:21 2006 @@ -237,22 +237,22 @@ Object o1 = pool.borrowObject(a); assertNotNull(o1); pool.returnObject(a, o1); -Thread.sleep(10); +Thread.sleep(25); Object o2 = pool.borrowObject(b); assertNotNull(o2); pool.returnObject(b, o2); -Thread.sleep(10); +Thread.sleep(25); Object o3 = pool.borrowObject(c); assertNotNull(o3); pool.returnObject(c, o3); -Thread.sleep(10); +Thread.sleep(25); Object o4 = pool.borrowObject(a); assertNotNull(o4); pool.returnObject(a, o4); -Thread.sleep(10); +Thread.sleep(25); assertSame(o1, o4); @@ -260,7 +260,7 @@ Object o5 = pool.borrowObject(d); assertNotNull(o5); pool.returnObject(d, o5); -Thread.sleep(10); +Thread.sleep(25); // now re-request b, we should get a different object because it should // have been expelled from pool (was oldest because a was requested after b) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r469372 - /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java
Author: sandymac Date: Mon Oct 30 21:17:35 2006 New Revision: 469372 URL: http://svn.apache.org/viewvc?view=revrev=469372 Log: Use a struct instead of maintaining two Maps in parallel. Patch by Holger Hoffstätte from issue POOL-88 Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java?view=diffrev=469372r1=469371r2=469372 == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java Mon Oct 30 21:17:35 2006 @@ -429,7 +429,6 @@ _testWhileIdle = testWhileIdle; _poolMap = new HashMap(); -_activeMap = new HashMap(); startEvictor(_timeBetweenEvictionRunsMillis); } @@ -770,15 +769,15 @@ long starttime = System.currentTimeMillis(); boolean newlyCreated = false; for(;;) { -LinkedList pool = (LinkedList)(_poolMap.get(key)); +ObjectQueue pool = (ObjectQueue)(_poolMap.get(key)); if(null == pool) { -pool = new LinkedList(); +pool = new ObjectQueue(); _poolMap.put(key,pool); } ObjectTimestampPair pair = null; // if there are any sleeping, just grab one of those try { -pair = (ObjectTimestampPair)(pool.removeFirst()); +pair = (ObjectTimestampPair)(pool.queue.removeFirst()); if(null != pair) { _totalIdle--; } @@ -794,8 +793,7 @@ // check if we can create one // (note we know that the num sleeping is 0, else we wouldn't be here) -int active = getActiveCount(key); -if ((_maxActive 0 || active _maxActive) +if ((_maxActive 0 || pool.activeCount _maxActive) (_maxTotal 0 || _totalActive + _totalIdle _maxTotal)) { Object obj = _factory.makeObject(key); pair = new ObjectTimestampPair(obj); @@ -837,7 +835,7 @@ } } if (newlyCreated) { -incrementActiveCount(key); +pool.incrementActiveCount(); return pair.value; } else { try { @@ -867,7 +865,7 @@ throw new NoSuchElementException(Could not create a validated object); } // else keep looping } else { -incrementActiveCount(key); +pool.incrementActiveCount(); return pair.value; } @@ -879,9 +877,10 @@ * Clears the pool, removing all pooled instances. */ public synchronized void clear() { -for(Iterator keyiter = _poolMap.keySet().iterator(); keyiter.hasNext(); ) { -Object key = keyiter.next(); -final LinkedList list = (LinkedList)(_poolMap.get(key)); +for(Iterator entries = _poolMap.entrySet().iterator(); entries.hasNext(); ) { +final Map.Entry entry = (Map.Entry)entries.next(); +final Object key = entry.getKey(); +final LinkedList list = ((ObjectQueue)(entry.getValue())).queue; for(Iterator it = list.iterator(); it.hasNext(); ) { try { _factory.destroyObject(key,((ObjectTimestampPair)(it.next())).value); @@ -905,16 +904,15 @@ */ public synchronized void clearOldest() { // build sorted map of idle objects -TreeMap map = new TreeMap(); +final Map map = new TreeMap(); for (Iterator keyiter = _poolMap.keySet().iterator(); keyiter.hasNext();) { -Object key = keyiter.next(); -LinkedList list = (LinkedList) _poolMap.get(key); +final Object key = keyiter.next(); +final LinkedList list = ((ObjectQueue)_poolMap.get(key)).queue; for (Iterator it = list.iterator(); it.hasNext();) { // each item into the map uses the objectimestamppair object // as the key. It then gets sorted based on the timstamp field // each value in the map is the parent list it belongs in. -ObjectTimestampPair pair = (ObjectTimestampPair) it.next(); -map.put(pair, key); +map.put(it.next(), key); } } @@ -930,7 +928,7 @@ // key references is the key of the list it belongs to. Object key
svn commit: r469390 - /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java
Author: sandymac Date: Mon Oct 30 22:40:20 2006 New Revision: 469390 URL: http://svn.apache.org/viewvc?view=revrev=469390 Log: Added some checks to PoolUtils.synchronizedPool to warn of usage that isn't thread-safe when assertions are enabled. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java?view=diffrev=469390r1=469389r2=469390 == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java Mon Oct 30 22:40:20 2006 @@ -16,6 +16,12 @@ package org.apache.commons.pool; +import org.apache.commons.pool.impl.GenericKeyedObjectPool; +import org.apache.commons.pool.impl.StackKeyedObjectPool; +import org.apache.commons.pool.impl.GenericObjectPool; +import org.apache.commons.pool.impl.SoftReferenceObjectPool; +import org.apache.commons.pool.impl.StackObjectPool; + import java.util.Collection; import java.util.HashMap; import java.util.Iterator; @@ -328,7 +334,7 @@ * This should not be used on pool implementations that already provide proper synchronization * such as the pools provided in the Commons Pool library. Wrapping a pool that * [EMAIL PROTECTED] #wait waits} for poolable objects to be returned before allowing another one to be - * borrowed with another layer of synchronization will cause a deadlock. + * borrowed with another layer of synchronization will cause liveliness issues or a deadlock. * /p * * @param pool the ObjectPool to be wrapped in a synchronized ObjectPool. @@ -336,6 +342,17 @@ * @since Pool 1.3 */ public static ObjectPool synchronizedPool(final ObjectPool pool) { +if (pool == null) { +throw new IllegalArgumentException(pool must not be null.); +} +assert !(pool instanceof GenericObjectPool) +: GenericObjectPool is already thread-safe; +assert !(pool instanceof SoftReferenceObjectPool) +: SoftReferenceObjectPool is already thread-safe; +assert !(pool instanceof StackObjectPool) +: StackObjectPool is already thread-safe; +assert !org.apache.commons.pool.composite.CompositeObjectPool.equals(pool.getClass().getName()) +: CompositeObjectPools are already thread-safe; return new SynchronizedObjectPool(pool); } @@ -346,7 +363,7 @@ * This should not be used on pool implementations that already provide proper synchronization * such as the pools provided in the Commons Pool library. Wrapping a pool that * [EMAIL PROTECTED] #wait waits} for poolable objects to be returned before allowing another one to be - * borrowed with another layer of synchronization will cause a deadlock. + * borrowed with another layer of synchronization will cause liveliness issues or a deadlock. * /p * * @param keyedPool the KeyedObjectPool to be wrapped in a synchronized KeyedObjectPool. @@ -354,6 +371,15 @@ * @since Pool 1.3 */ public static KeyedObjectPool synchronizedPool(final KeyedObjectPool keyedPool) { +if (keyedPool == null) { +throw new IllegalArgumentException(keyedPool must not be null.); +} +assert !(keyedPool instanceof GenericKeyedObjectPool) +: GenericKeyedObjectPool is already thread-safe; +assert !(keyedPool instanceof StackKeyedObjectPool) +: StackKeyedObjectPool is already thread-safe; +assert !org.apache.commons.pool.composite.CompositeKeyedObjectPool.equals(keyedPool.getClass().getName()) +: CompositeKeyedObjectPools are already thread-safe; return new SynchronizedKeyedObjectPool(keyedPool); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r468834 - /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java
Author: sandymac Date: Sat Oct 28 22:20:38 2006 New Revision: 468834 URL: http://svn.apache.org/viewvc?view=revrev=468834 Log: Make sure the natural ordering is consistent with equals, see java.lang.Comparable Javadocs, fixes POOL-85 as reported by Mike Martin. Added checks in case the long to int cast overflows. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java?view=diffrev=468834r1=468833r2=468834 == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java Sat Oct 28 22:20:38 2006 @@ -1451,7 +1451,15 @@ } public int compareTo(ObjectTimestampPair other) { -return (int) (this.tstamp - other.tstamp); +final long tstampdiff = this.tstamp - other.tstamp; +if (tstampdiff == 0) { +// make sure the natural ordering is consistent with equals +// see java.lang.Comparable Javadocs +return System.identityHashCode(this) - System.identityHashCode(other); +} else { +// handle int overflow +return (int)Math.min(Math.max(tstampdiff, Integer.MIN_VALUE), Integer.MAX_VALUE); +} } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r449881 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/composite/ test/org/apache/commons/pool/composite/
Author: sandymac Date: Mon Sep 25 18:54:29 2006 New Revision: 449881 URL: http://svn.apache.org/viewvc?view=revrev=449881 Log: Remove the NULL Tracking Policy as it provides minimal benefit and adds a non-trivial amount of complication to support it. Removed: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/NullTracker.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestNullTracker.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingPolicy.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPoolFactory.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java?view=diffrev=449881r1=449880r2=449881 == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Mon Sep 25 18:54:29 2006 @@ -352,9 +352,6 @@ final int maxActive = config.maxActive; if (maxActive 0) { -if (TrackingPolicy.NULL.equals(config.trackingPolicy)) { -throw new IllegalStateException(Using the NULL tracker and limiting pool size is not valid.); -} final LimitPolicy limitPolicy = config.limitPolicy; if (LimitPolicy.FAIL.equals(limitPolicy)) { manager = new FailLimitManager(manager); @@ -385,8 +382,6 @@ final TrackingPolicy trackingPolicy = config.trackingPolicy; if (TrackingPolicy.SIMPLE.equals(trackingPolicy)) { tracker = new SimpleTracker(); -} else if (TrackingPolicy.NULL.equals(trackingPolicy)) { -tracker = new NullTracker(); } else if (TrackingPolicy.REFERENCE.equals(trackingPolicy)) { tracker = new ReferenceTracker(); } else if (TrackingPolicy.DEBUG.equals(trackingPolicy)) { Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingPolicy.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingPolicy.java?view=diffrev=449881r1=449880r2=449881 == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingPolicy.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingPolicy.java Mon Sep 25 18:54:29 2006 @@ -29,18 +29,12 @@ * @since #.# * @version $Revision$ $Date$ */ -/* XXX For Pool 3: public enum TrackingPolicy {NULL, SIMPLE, REFERENCE, DEBUG} but keep existing Javadoc. */ +/* XXX For Pool 3: public enum TrackingPolicy {SIMPLE, REFERENCE, DEBUG} but keep existing Javadoc. */ public final class TrackingPolicy implements Serializable { private static final long serialVersionUID = 181851949909846032L; /** - * Do not track how objects are borrowed from the pool. While this is the fastest tracking type it is - * incompatible with pools that limit the number of objects in the pool. - */ -public static final TrackingPolicy NULL = new TrackingPolicy(NULL); - -/** * Borrowed object tracker that trusts you'll return the objects you borrow. This is the most common method of * tracking active objects. If you return more objects than you borrow then this will throw an * [EMAIL PROTECTED] IllegalStateException}. @@ -77,7 +71,7 @@ // Autogenerated with Java 1.5 enums public static TrackingPolicy[] values() { -return new TrackingPolicy[] {NULL, SIMPLE, REFERENCE, DEBUG}; +return new TrackingPolicy[] {SIMPLE, REFERENCE, DEBUG}; } // necessary for serialization Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java?view=diffrev=449881r1=449880r2=449881 == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java (original) +++ jakarta/commons/proper/pool/trunk/src/test
svn commit: r449901 - /jakarta/commons/proper/pool/branches/performance-ideas2/
Author: sandymac Date: Mon Sep 25 21:50:06 2006 New Revision: 449901 URL: http://svn.apache.org/viewvc?view=revrev=449901 Log: removing performance-ideas2 branch. wasn't ever used and is out of sync with the trunk Removed: jakarta/commons/proper/pool/branches/performance-ideas2/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r449904 - /jakarta/commons/proper/pool/branches/performance-concurrent/
Author: sandymac Date: Mon Sep 25 21:55:37 2006 New Revision: 449904 URL: http://svn.apache.org/viewvc?view=revrev=449904 Log: branch to test effects of using java.util.concurrent with pool Added: jakarta/commons/proper/pool/branches/performance-concurrent/ - copied from r449903, jakarta/commons/proper/pool/trunk/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r421982 - in /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool: TestKeyedObjectPoolFactory.java TestObjectPoolFactory.java
Author: sandymac Date: Fri Jul 14 11:54:14 2006 New Revision: 421982 URL: http://svn.apache.org/viewvc?rev=421982view=rev Log: Fixes POOL-82 by allowing Test[Keyed]ObjectPoolFactory be instantiated and run. Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPoolFactory.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java?rev=421982r1=421981r2=421982view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java Fri Jul 14 11:54:14 2006 @@ -24,8 +24,8 @@ * @author Sandy McArthur * @version $Revision$ $Date$ */ -public abstract class TestKeyedObjectPoolFactory extends TestCase { -protected TestKeyedObjectPoolFactory(final String name) { +public class TestKeyedObjectPoolFactory extends TestCase { +public TestKeyedObjectPoolFactory(final String name) { super(name); } @@ -39,7 +39,9 @@ /** * @throws UnsupportedOperationException when this is unsupported by this KeyedPoolableObjectFactory type. */ -protected abstract KeyedObjectPoolFactory makeFactory(KeyedPoolableObjectFactory objectFactory) throws UnsupportedOperationException; +protected KeyedObjectPoolFactory makeFactory(KeyedPoolableObjectFactory objectFactory) throws UnsupportedOperationException{ +throw new UnsupportedOperationException(Subclass needs to override makeFactory method.); +} protected static KeyedPoolableObjectFactory createObjectFactory() { return PoolUtils.adapt(new MethodCallPoolableObjectFactory()); Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPoolFactory.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPoolFactory.java?rev=421982r1=421981r2=421982view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPoolFactory.java Fri Jul 14 11:54:14 2006 @@ -24,8 +24,8 @@ * @author Sandy McArthur * @version $Revision$ $Date$ */ -public abstract class TestObjectPoolFactory extends TestCase { -protected TestObjectPoolFactory(final String name) { +public class TestObjectPoolFactory extends TestCase { +public TestObjectPoolFactory(final String name) { super(name); } @@ -39,7 +39,9 @@ /** * @throws UnsupportedOperationException when this is unsupported by this PoolableObjectFactory type. */ -protected abstract ObjectPoolFactory makeFactory(PoolableObjectFactory objectFactory) throws UnsupportedOperationException; +protected ObjectPoolFactory makeFactory(PoolableObjectFactory objectFactory) throws UnsupportedOperationException { +throw new UnsupportedOperationException(Subclass needs to override makeFactory method.); +} public void testCreatePool() throws Exception { final ObjectPoolFactory factory; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r422028 - in /jakarta/commons/proper/pool/trunk: project.xml src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java src/test/org/apache/commons/pool/TestObjectPoolFactory.java
Author: sandymac Date: Fri Jul 14 13:29:12 2006 New Revision: 422028 URL: http://svn.apache.org/viewvc?rev=422028view=rev Log: Better fix for POOL-82 reverted Test[Keyed]ObjectPoolFactory sources and updated the project.xml to only include the correct unit tests and include previously missed unit tests. Modified: jakarta/commons/proper/pool/trunk/project.xml jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPoolFactory.java Modified: jakarta/commons/proper/pool/trunk/project.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/project.xml?rev=422028r1=422027r2=422028view=diff == --- jakarta/commons/proper/pool/trunk/project.xml (original) +++ jakarta/commons/proper/pool/trunk/project.xml Fri Jul 14 13:29:12 2006 @@ -260,12 +260,50 @@ unitTestSourceDirectorysrc/test/unitTestSourceDirectory unitTest includes -includeorg/apache/commons/pool/Test*Factory.java/include includeorg/apache/commons/pool/TestBaseObjectPool.java/include includeorg/apache/commons/pool/TestBaseKeyedObjectPool.java/include + includeorg/apache/commons/pool/TestBasePoolableObjectFactory.java/include + includeorg/apache/commons/pool/TestBaseKeyedPoolableObjectFactory.java/include includeorg/apache/commons/pool/TestPoolUtils.java/include -includeorg/apache/commons/pool/impl/Test*Pool.java/include + + includeorg/apache/commons/pool/impl/TestStackObjectPool.java/include + includeorg/apache/commons/pool/impl/TestStackKeyedObjectPool.java/include + includeorg/apache/commons/pool/impl/TestGenericObjectPool.java/include + includeorg/apache/commons/pool/impl/TestGenericKeyedObjectPool.java/include + includeorg/apache/commons/pool/impl/TestSoftReferenceObjectPool.java/include + !--includeorg/apache/commons/pool/impl/TestSoftRefOutOfMemory.java/include-- + includeorg/apache/commons/pool/impl/TestGenericObjectPoolFactory.java/include + includeorg/apache/commons/pool/impl/TestStackObjectPoolFactory.java/include + includeorg/apache/commons/pool/impl/TestGenericKeyedObjectPoolFactory.java/include + includeorg/apache/commons/pool/impl/TestStackKeyedObjectPoolFactory.java/include + + includeorg/apache/commons/pool/composite/TestFifoLender.java/include + includeorg/apache/commons/pool/composite/TestIdleEvictorLender.java/include + includeorg/apache/commons/pool/composite/TestInvalidEvictorLender.java/include + includeorg/apache/commons/pool/composite/TestLifoLender.java/include + includeorg/apache/commons/pool/composite/TestNullLender.java/include + includeorg/apache/commons/pool/composite/TestSoftLender.java/include + + includeorg/apache/commons/pool/composite/TestFailManager.java/include + includeorg/apache/commons/pool/composite/TestGrowManager.java/include + includeorg/apache/commons/pool/composite/TestIdleLimitManager.java/include + includeorg/apache/commons/pool/composite/TestFailLimitManager.java/include + includeorg/apache/commons/pool/composite/TestWaitLimitManager.java/include + + includeorg/apache/commons/pool/composite/TestNullTracker.java/include + includeorg/apache/commons/pool/composite/TestReferenceTracker.java/include + includeorg/apache/commons/pool/composite/TestDebugTracker.java/include + includeorg/apache/commons/pool/composite/TestSimpleTracker.java/include + includeorg/apache/commons/pool/composite/TestCompositeObjectPool.java/include + includeorg/apache/commons/pool/composite/TestCompositeKeyedObjectPool.java/include + includeorg/apache/commons/pool/composite/TestCompositeKeyedObjectPool2.java/include + includeorg/apache/commons/pool/composite/TestCompositeKeyedObjectPoolFactory.java/include /includes +!-- + excludes +excludeorg/apache/commons/pool/TestObjectPoolFactory.java/exclude + /excludes +-- /unitTest resources Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java?rev=422028r1=422027r2=422028view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java Fri Jul 14 13:29:12 2006 @@ -24,8 +24,8 @@ * @author Sandy McArthur * @version $Revision$ $Date$ */ -public class TestKeyedObjectPoolFactory extends TestCase
svn commit: r415726 - /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java
Author: sandymac Date: Tue Jun 20 09:36:14 2006 New Revision: 415726 URL: http://svn.apache.org/viewvc?rev=415726view=rev Log: Applied patch from POOL-81 correcting Javadoc text. Added caution note to the synchronizedPool methods about a potential deadlock when used with pool implementations that provide a wait behavior. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java?rev=415726r1=415725r2=415726view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java Tue Jun 20 09:36:14 2006 @@ -25,7 +25,8 @@ import java.util.TimerTask; /** - * This class consists exclusively of static methods that operate on or return keyedPool related interfaces. + * This class consists exclusively of static methods that operate on or return ObjectPool + * or KeyedObjectPool related interfaces. * * @author Sandy McArthur * @version $Revision$ $Date$ @@ -124,8 +125,8 @@ * The key is ignored. * * @param pool the [EMAIL PROTECTED] ObjectPool} to delegate to. - * @return a [EMAIL PROTECTED] KeyedObjectPool} that delegates to codekeyedPool/code ignoring the key. - * @throws IllegalArgumentException when codekeyedPool/code is codenull/code. + * @return a [EMAIL PROTECTED] KeyedObjectPool} that delegates to codepool/code ignoring the key. + * @throws IllegalArgumentException when codepool/code is codenull/code. * @since Pool 1.3 */ public static KeyedObjectPool adapt(final ObjectPool pool) throws IllegalArgumentException { @@ -133,10 +134,10 @@ } /** - * Wraps an codeObjectPool/code and dynamically checks the type of objects borrowed and returned to the keyedPool. - * If an object is passed to the keyedPool that isn't of type codetype/code a [EMAIL PROTECTED] ClassCastException} will be thrown. + * Wraps an codeObjectPool/code and dynamically checks the type of objects borrowed and returned to the pool. + * If an object is passed to the pool that isn't of type codetype/code a [EMAIL PROTECTED] ClassCastException} will be thrown. * - * @param pool the keyedPool to enforce type safety on + * @param pool the pool to enforce type safety on * @return an codeObjectPool/code that will only allow objects of codetype/code * @since Pool 1.3 */ @@ -151,11 +152,11 @@ } /** - * Wraps an codeKeyedObjectPool/code and dynamically checks the type of objects borrowed and returned to the keyedPool. + * Wraps a codeKeyedObjectPool/code and dynamically checks the type of objects borrowed and returned to the keyedPool. * If an object is passed to the keyedPool that isn't of type codetype/code a [EMAIL PROTECTED] ClassCastException} will be thrown. * * @param keyedPool the keyedPool to enforce type safety on - * @return an codeKeyedObjectPool/code that will only allow objects of codetype/code + * @return a codeKeyedObjectPool/code that will only allow objects of codetype/code * @since Pool 1.3 */ public static KeyedObjectPool checkedPool(final KeyedObjectPool keyedPool, final Class type) { @@ -169,15 +170,15 @@ } /** - * Periodically check the idle object count for the keyedPool. At most one idle object will be added per period. + * Periodically check the idle object count for the pool. At most one idle object will be added per period. * If there is an exception when calling [EMAIL PROTECTED] ObjectPool#addObject()} then no more checks will be performed. * - * @param pool the keyedPool to check periodically. + * @param pool the pool to check periodically. * @param minIdle if the [EMAIL PROTECTED] ObjectPool#getNumIdle()} is less than this then add an idle object. - * @param period the frequency to check the number of idle objects in a keyedPool, see + * @param period the frequency to check the number of idle objects in a pool, see * [EMAIL PROTECTED] Timer#schedule(TimerTask, long, long)}. * @return the [EMAIL PROTECTED] TimerTask} that will periodically check the pools idle object count. - * @throws IllegalArgumentException when codekeyedPool/code is codenull/code or + * @throws IllegalArgumentException when codepool/code is codenull/code or * when codeminIdle/code is negative or when codeperiod/code isn't * valid for [EMAIL PROTECTED] Timer#schedule(TimerTask, long, long)}. * @since Pool 1.3 @@ -256,17 +257,17 @@ } /** - * Call codeaddObject()/code
svn commit: r408008 - /jakarta/commons/proper/dbcp/trunk/xdocs/configuration.xml
Author: sandymac Date: Sat May 20 07:55:07 2006 New Revision: 408008 URL: http://svn.apache.org/viewvc?rev=408008view=rev Log: DBCP-188: Corrects maxActive documenation in configuration.xml Modified: jakarta/commons/proper/dbcp/trunk/xdocs/configuration.xml Modified: jakarta/commons/proper/dbcp/trunk/xdocs/configuration.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/dbcp/trunk/xdocs/configuration.xml?rev=408008r1=408007r2=408008view=diff == --- jakarta/commons/proper/dbcp/trunk/xdocs/configuration.xml (original) +++ jakarta/commons/proper/dbcp/trunk/xdocs/configuration.xml Sat May 20 07:55:07 2006 @@ -130,7 +130,7 @@ td8/td td The maximum number of active connections that can be allocated from - this pool at the same time, or zero for no limit. + this pool at the same time, or negative for no limit. /td /tr tr - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r406176 - in /jakarta/commons/proper/pool/branches/performance-ideas/src: java/org/apache/commons/pool/composite/ test/org/apache/commons/pool/ test/org/apache/commons/pool/composite/ test
Author: sandymac Date: Sat May 13 17:54:00 2006 New Revision: 406176 URL: http://svn.apache.org/viewcvs?rev=406176view=rev Log: Fully minimized synchronization but this leaves a race condition for pools with a max active limit. Created a unit test to verify this race condition. Small Javadoc corrections. Removed: jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFullSync.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/composite/TestCompositeObjectPoolFullSync.java Modified: jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/AbstractManager.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/FailManager.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/GrowManager.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/WaitLimitManager.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/TestBaseObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/TestObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/composite/PerformanceTest.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/composite/TestAll.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/composite/TestWaitLimitManager.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/impl/TestSoftReferenceObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/impl/TestStackObjectPool.java Modified: jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/AbstractManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/AbstractManager.java?rev=406176r1=406175r2=406176view=diff == --- jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/AbstractManager.java (original) +++ jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/AbstractManager.java Sat May 13 17:54:00 2006 @@ -80,11 +80,14 @@ public abstract Object nextFromPool() throws Exception; /** - * Return an object to the pool. Object will be [EMAIL PROTECTED] PoolableObjectFactory#passivateObject(Object) passivated}. + * Return an object to the pool. + * The Object's state will no longer be active. + * The Object will be passes to a delegate to be made idle. * * @param obj the object to return to the pool. */ public void returnToPool(final Object obj) { +objectPool.getTracker().returned(obj); objectPool.getLender().repay(obj); } Modified: jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java?rev=406176r1=406175r2=406176view=diff == --- jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java (original) +++ jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java Sat May 13 17:54:00 2006 @@ -218,8 +218,9 @@ } } -protected boolean addObjectToPool(final Object obj) { +private boolean addObjectToPool(final Object obj) { if (isOpen()) { +tracker.borrowed(obj); // pretend manager.returnToPool(obj); return true; } @@ -252,10 +253,8 @@ * @throws Exception if there is an unexpected problem. * @see #borrowObject() */ -protected Object borrowObjectFromPool() throws Exception { -final Object obj = manager.nextFromPool
svn commit: r399083 - /jakarta/commons/proper/pool/branches/performance-ideas2/
Author: sandymac Date: Tue May 2 16:23:10 2006 New Revision: 399083 URL: http://svn.apache.org/viewcvs?rev=399083view=rev Log: exploring some performance ideas Added: jakarta/commons/proper/pool/branches/performance-ideas2/ - copied from r399082, jakarta/commons/proper/pool/trunk/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r395465 - /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java
Author: sandymac Date: Wed Apr 19 20:20:07 2006 New Revision: 395465 URL: http://svn.apache.org/viewcvs?rev=395465view=rev Log: small unit test update Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java?rev=395465r1=395464r2=395465view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java Wed Apr 19 20:20:07 2006 @@ -105,8 +105,12 @@ } final List expectedMethods = new ArrayList(); +assertEquals(0, pool.getNumActive()); +assertEquals(0, pool.getNumIdle()); // addObject should make a new object, pasivate it and put it in the pool pool.addObject(); +assertEquals(0, pool.getNumActive()); +assertEquals(1, pool.getNumIdle()); expectedMethods.add(new MethodCall(makeObject).returned(ZERO)); expectedMethods.add(new MethodCall(passivateObject, ZERO)); assertEquals(expectedMethods, factory.getMethodCalls()); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r395466 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java
Author: sandymac Date: Wed Apr 19 20:21:57 2006 New Revision: 395466 URL: http://svn.apache.org/viewcvs?rev=395466view=rev Log: Fixes bug 39341: javadocs indicated that maxActive, maxIdle, and maxTotal were per key for GenericKeyedObjectPool when they are for the whole pool. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java?rev=395466r1=395465r2=395466view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java Wed Apr 19 20:21:57 2006 @@ -41,14 +41,14 @@ * pA codeGenericKeyedObjectPool/code provides a number of configurable parameters:/p * ul * li - *[EMAIL PROTECTED] #setMaxActive maxActive} controls the maximum number of objects (per key) + *[EMAIL PROTECTED] #setMaxActive maxActive} controls the maximum number of objects *that can be borrowed from the pool at one time. When non-positive, there *is no limit to the number of objects that may be active at one time. *When [EMAIL PROTECTED] #setMaxActive maxActive} is exceeded, the pool is said to be exhausted. * /li * li *[EMAIL PROTECTED] #setMaxIdle maxIdle} controls the maximum number of objects that can - *sit idle in the pool (per key) at any time. When negative, there + *sit idle in the pool at any time. When negative, there *is no limit to the number of objects that may be idle at one time. * /li * li @@ -170,16 +170,14 @@ public static final byte WHEN_EXHAUSTED_GROW = 2; /** - * The default cap on the number of idle instances in the pool - * (per key). + * The default cap on the number of idle instances in the pool. * @see #getMaxIdle * @see #setMaxIdle */ public static final int DEFAULT_MAX_IDLE = 8; /** - * The default cap on the total number of active instances from the pool - * (per key). + * The default cap on the total number of active instances from the pool. * @see #getMaxActive * @see #setMaxActive */ @@ -298,7 +296,7 @@ /** * Create a new codeGenericKeyedObjectPool/code using the specified values. * @param factory the codeKeyedPoolableObjectFactory/code to use to create, validate, and destroy objects if not codenull/code - * @param maxActive the maximum number of objects that can be borrowed from me at one time (per key) (see [EMAIL PROTECTED] #setMaxActive}) + * @param maxActive the maximum number of objects that can be borrowed from me at one time (see [EMAIL PROTECTED] #setMaxActive}) */ public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive) { this(factory,maxActive,DEFAULT_WHEN_EXHAUSTED_ACTION,DEFAULT_MAX_WAIT,DEFAULT_MAX_IDLE,DEFAULT_TEST_ON_BORROW,DEFAULT_TEST_ON_RETURN,DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS,DEFAULT_NUM_TESTS_PER_EVICTION_RUN,DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS,DEFAULT_TEST_WHILE_IDLE); @@ -307,7 +305,7 @@ /** * Create a new codeGenericKeyedObjectPool/code using the specified values. * @param factory the codeKeyedPoolableObjectFactory/code to use to create, validate, and destroy objects if not codenull/code - * @param maxActive the maximum number of objects that can be borrowed from me at one time (per key) (see [EMAIL PROTECTED] #setMaxActive}) + * @param maxActive the maximum number of objects that can be borrowed from me at one time (see [EMAIL PROTECTED] #setMaxActive}) * @param whenExhaustedAction the action to take when the pool is exhausted (see [EMAIL PROTECTED] #setWhenExhaustedAction}) * @param maxWait the maximum amount of time to wait for an idle object when the pool is exhausted an and codewhenExhaustedAction/code is [EMAIL PROTECTED] #WHEN_EXHAUSTED_BLOCK} (otherwise ignored) (see [EMAIL PROTECTED] #setMaxWait}) */ @@ -318,7 +316,7 @@ /** * Create a new codeGenericKeyedObjectPool/code using the specified values. * @param factory the codeKeyedPoolableObjectFactory/code to use to create, validate, and destroy objects if not codenull/code - * @param maxActive the maximum number of objects that can be borrowed from me at one time (per key) (see [EMAIL PROTECTED] #setMaxActive}) + * @param maxActive the maximum number of objects that can be borrowed from me at one time (see [EMAIL PROTECTED] #setMaxActive}) * @param
svn commit: r395102 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl: GenericKeyedObjectPool.java GenericObjectPool.java SoftReferenceObjectPool.java StackKeyedObjectPool.
Author: sandymac Date: Tue Apr 18 18:43:56 2006 New Revision: 395102 URL: http://svn.apache.org/viewcvs?rev=395102view=rev Log: The calls to BaseObjectPool.close() and BaseKeyedObjectPool.close() should not by synchronized. Those methods are implicitly thread-safe and requiring synchronization while calling them can introduce a high latency while trying to close a pool when a slow [Keyed]PoolableObjectFactory is being used, eg: one that does network IO. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java?rev=395102r1=395101r2=395102view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java Tue Apr 18 18:43:56 2006 @@ -1160,13 +1160,15 @@ } } -public synchronized void close() throws Exception { -clear(); -if (null != _evictor) { -_evictor.cancel(); -_evictor = null; -} +public void close() throws Exception { super.close(); +synchronized (this) { +clear(); +if (null != _evictor) { +_evictor.cancel(); +_evictor = null; +} +} } public synchronized void setFactory(KeyedPoolableObjectFactory factory) throws IllegalStateException { Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java?rev=395102r1=395101r2=395102view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java Tue Apr 18 18:43:56 2006 @@ -971,10 +971,12 @@ } } -public synchronized void close() throws Exception { -clear(); -startEvictor(-1L); +public void close() throws Exception { super.close(); +synchronized (this) { +clear(); +startEvictor(-1L); +} } /** Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java?rev=395102r1=395101r2=395102view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java Tue Apr 18 18:43:56 2006 @@ -234,9 +234,9 @@ pruneClearedReferences(); } -public synchronized void close() throws Exception { -clear(); +public void close() throws Exception { super.close(); +clear(); } /** Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java?rev=395102r1=395101r2=395102view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java Tue Apr 18 18:43:56 2006 @@ -401,9 +401,9 @@ * * @throws Exception strongdeprecated/strong: implementations should silently fail if not all resources can be freed. */ -public synchronized void close() throws Exception { -clear(); +public void close() throws Exception { super.close(); +clear(); } /** Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool
svn commit: r395115 - in /jakarta/commons/proper/pool/branches/performance-ideas/src: java/org/apache/commons/pool/composite/ java/org/apache/commons/pool/impl/ test/org/apache/commons/pool/ test/org/
Author: sandymac Date: Tue Apr 18 20:04:31 2006 New Revision: 395115 URL: http://svn.apache.org/viewcvs?rev=395115view=rev Log: Fixes some bugs from the initial refactor to reduce synchronization and implements the generator pattern for growing the pool when more objects are needed as suggested by Peter Steijn. Also includes the BaseObjectPool.close fixes from the trunk. Modified: jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFullSync.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/FailLimitManager.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/GrowManager.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/impl/StackObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/TestObjectPool.java jakarta/commons/proper/pool/branches/performance-ideas/src/test/org/apache/commons/pool/composite/PerformanceTest.java Modified: jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java?rev=395115r1=395114r2=395115view=diff == --- jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java (original) +++ jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java Tue Apr 18 20:04:31 2006 @@ -286,7 +286,7 @@ } } -protected boolean returnObjectToPool(Object obj) { +protected boolean returnObjectToPool(final Object obj) { // if the pool is closed, don't return objects if (isOpen()) { tracker.returned(obj); @@ -296,6 +296,10 @@ return false; } +protected void returnObjectToPoolManager(final Object obj) { +manager.returnToPool(obj); +} + /** * Invalidates an object from the pool * By contract, codeobj/code strongmust/strong have been obtained @@ -431,17 +435,13 @@ sb.append(, validateOnReturn=).append(validateOnReturn); } sb.append(, open=).append(open); -try { -final int numActive = getNumActive(); +final int numActive = getNumActive(); +if (numActive = 0) { sb.append(, activeObjects=).append(numActive); -} catch (Exception e) { -// ignored } -try { -final int numIdle = getNumIdle(); +final int numIdle = getNumIdle(); +if (numIdle = 0) { sb.append(, idleObjects=).append(numIdle); -} catch (Exception e) { -// ignored } sb.append('}'); return sb.toString(); Modified: jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java?rev=395115r1=395114r2=395115view=diff == --- jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/branches/performance-ideas/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Tue Apr 18 20:04:31 2006 @@ -256,8 +256,8 @@ } } -private static boolean needsFullSync(FactoryConfig config) { -return LimitPolicy.WAIT.equals(config.limitPolicy); +private static boolean needsFullSync(final FactoryConfig config) { +return config.maxActive 0 LimitPolicy.WAIT.equals(config.limitPolicy); } /** @@ -794,9 +794,11 @@ sb.append(factory=).append(factory); sb.append(, borrowPolicy=).append(borrowPolicy); sb.append
svn commit: r391535 - /jakarta/commons/proper/pool/branches/performance-ideas/
Author: sandymac Date: Tue Apr 4 23:19:46 2006 New Revision: 391535 URL: http://svn.apache.org/viewcvs?rev=391535view=rev Log: exploring some ideas for performance Added: jakarta/commons/proper/pool/branches/performance-ideas/ - copied from r391534, jakarta/commons/proper/pool/trunk/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r391545 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/composite/CompositeObjectPool.java test/org/apache/commons/pool/composite/TestDelegateManager.java
Author: sandymac Date: Tue Apr 4 23:36:06 2006 New Revision: 391545 URL: http://svn.apache.org/viewcvs?rev=391545view=rev Log: Javadoc fixes. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestDelegateManager.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java?rev=391545r1=391544r2=391545view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java Tue Apr 4 23:36:06 2006 @@ -31,7 +31,7 @@ * pInstances of this class should only be instantiated by [EMAIL PROTECTED] CompositeObjectPoolFactory} or other package-local * classes that are intimately familiar with it's proper usage./p * - * pComposit object pools are divided into three parts./p + * pComposite object pools are divided into three parts./p * * p[EMAIL PROTECTED] Lender}: a lender's sole responsibilty is to maintain idle objects. A lender will never touch an object * that is considered to be active with the possible exception of an idle object being validated for possible eviction. Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestDelegateManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestDelegateManager.java?rev=391545r1=391544r2=391545view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestDelegateManager.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestDelegateManager.java Tue Apr 4 23:36:06 2006 @@ -17,10 +17,9 @@ package org.apache.commons.pool.composite; /** - * TODO: Fix JavaDoc + * Tests for [EMAIL PROTECTED] DelegateManager}s. * - * @author sandymac - * @since Mar 29, 2006 + * @author Sandy McArthur * @version $Revision$ $Date$ */ public abstract class TestDelegateManager extends TestManager { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r390797 - in /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite: TestCompositeKeyedObjectPoolFactory.java TestCompositeObjectPoolFactory.java
Author: sandymac Date: Sun Apr 2 00:00:47 2006 New Revision: 390797 URL: http://svn.apache.org/viewcvs?rev=390797view=rev Log: More unit tests. Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeKeyedObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPoolFactory.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeKeyedObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeKeyedObjectPoolFactory.java?rev=390797r1=390796r2=390797view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeKeyedObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeKeyedObjectPoolFactory.java Sun Apr 2 00:00:47 2006 @@ -16,11 +16,17 @@ package org.apache.commons.pool.composite; -import org.apache.commons.pool.TestKeyedObjectPoolFactory; -import org.apache.commons.pool.KeyedObjectPoolFactory; -import org.apache.commons.pool.KeyedPoolableObjectFactory; import junit.framework.Test; import junit.framework.TestSuite; +import org.apache.commons.pool.KeyedObjectPoolFactory; +import org.apache.commons.pool.KeyedPoolableObjectFactory; +import org.apache.commons.pool.MethodCallPoolableObjectFactory; +import org.apache.commons.pool.PoolUtils; +import org.apache.commons.pool.PoolableObjectFactory; +import org.apache.commons.pool.TestKeyedObjectPoolFactory; +import org.apache.commons.pool.impl.StackObjectPoolFactory; + +import java.util.Random; /** * Tests for [EMAIL PROTECTED] CompositeKeyedObjectPoolFactory}. @@ -29,6 +35,8 @@ * @version $Revision$ $Date$ */ public class TestCompositeKeyedObjectPoolFactory extends TestKeyedObjectPoolFactory { +private final Random rnd = new Random(); + public TestCompositeKeyedObjectPoolFactory(final String name) { super(name); } @@ -39,5 +47,99 @@ protected KeyedObjectPoolFactory makeFactory(final KeyedPoolableObjectFactory objectFactory) throws UnsupportedOperationException { return new CompositeKeyedObjectPoolFactory(objectFactory); +} + +public void testConstructors() throws Exception { +CompositeKeyedObjectPoolFactory factory = new CompositeKeyedObjectPoolFactory(createObjectFactory()); +factory.createPool().close(); + +try { +new CompositeKeyedObjectPoolFactory((KeyedPoolableObjectFactory)null); +fail(); +} catch (IllegalArgumentException iae) { +// expected +} + +try { +new CompositeKeyedObjectPoolFactory((CompositeObjectPoolFactory)null); +fail(); +} catch (IllegalArgumentException iae) { +// expected +} +factory = new CompositeKeyedObjectPoolFactory(new CompositeObjectPoolFactory(new MethodCallPoolableObjectFactory())); +factory.createPool().close(); + +try { +new CompositeKeyedObjectPoolFactory((PoolableObjectFactory)null); +fail(); +} catch (IllegalArgumentException iae) { +// expected +} +factory = new CompositeKeyedObjectPoolFactory(new MethodCallPoolableObjectFactory()); +factory.createPool().close(); +} + +public void testStaticCreatePool() { +assertNotNull(CompositeKeyedObjectPoolFactory.createPool(new StackObjectPoolFactory())); +try { +CompositeKeyedObjectPoolFactory.createPool(null); +fail(); +} catch (IllegalArgumentException iae) { +// expected +} +} + +public void testFactory() { +CompositeKeyedObjectPoolFactory factory = (CompositeKeyedObjectPoolFactory)makeFactory(); +try { +factory.setFactory(null); +fail(); +} catch (IllegalArgumentException iae) { +// expected +} + +factory.setFactory(new MethodCallPoolableObjectFactory()); +assertNotNull(factory.getFactory()); +assertNull(factory.getKeyedFactory()); +} + +public void testKeyedFactory() { +CompositeKeyedObjectPoolFactory factory = (CompositeKeyedObjectPoolFactory)makeFactory(); +try { +factory.setKeyedFactory(null); +fail(); +} catch (IllegalArgumentException iae) { +// expected +} + +factory.setKeyedFactory(PoolUtils.adapt(new MethodCallPoolableObjectFactory())); +assertNotNull(factory.getKeyedFactory()); +assertNull(factory.getFactory()); +} + +public void testClone() throws CloneNotSupportedException { +CompositeKeyedObjectPoolFactory f1
svn commit: r390933 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH: build.xml project.xml xdocs/downloads.xml
Author: sandymac Date: Sun Apr 2 17:46:35 2006 New Revision: 390933 URL: http://svn.apache.org/viewcvs?rev=390933view=rev Log: Final changes for 1.3 release. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml?rev=390933r1=390932r2=390933view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml Sun Apr 2 17:46:35 2006 @@ -39,7 +39,7 @@ property name=name value=commons-pool/ property name=title value=Jakarta Commons Object Pooling Package/ - property name=version value=1.3-rc4/ + property name=version value=1.3/ property name=package value=org.apache.commons.pool.*/ property name=src.dir value=${basedir}/src/ Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml?rev=390933r1=390932r2=390933view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Sun Apr 2 17:46:35 2006 @@ -21,7 +21,7 @@ groupIdcommons-pool/groupId artifactIdcommons-pool/artifactId inceptionYear2001/inceptionYear - currentVersion1.3-rc4/currentVersion + currentVersion1.3/currentVersion shortDescriptionCommons Object Pooling Library/shortDescription descriptionCommons Object Pooling Library/description logo/images/pool-logo-white.png/logo Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml?rev=390933r1=390932r2=390933view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml Sun Apr 2 17:46:35 2006 @@ -25,7 +25,7 @@ section name=Releases pThe following releases are available:/p ul - liRelease 1.3 - ## April 2006 - a href=release-notes-1.3.html(release notes)/a/li + liRelease 1.3 - 3 April 2006 - a href=release-notes-1.3.html(release notes)/a/li liRelease 1.2 - 7 June 2004 - a href=release-notes-1.2.html(release notes)/a/li liRelease 1.1 - 20 October 2003 - a href=release-notes-1.1.html(release notes)/a/li liRelease 1.0.1 - 12 August 2002/li - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r390934 - /jakarta/commons/proper/pool/tags/POOL_1_3/
Author: sandymac Date: Sun Apr 2 17:49:26 2006 New Revision: 390934 URL: http://svn.apache.org/viewcvs?rev=390934view=rev Log: Taggin Pool 1.3 Added: jakarta/commons/proper/pool/tags/POOL_1_3/ - copied from r390933, jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r390792 - in /jakarta/commons/proper/pool: branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java trunk/src/java/org/apache/commons/pool/impl/
Author: sandymac Date: Sat Apr 1 23:13:42 2006 New Revision: 390792 URL: http://svn.apache.org/viewcvs?rev=390792view=rev Log: maxTotal parameter was sometimes ignored in GenericKeyedObjectPoolFactory Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java?rev=390792r1=390791r2=390792view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java Sat Apr 1 23:13:42 2006 @@ -68,7 +68,7 @@ } public GenericKeyedObjectPoolFactory(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, int maxTotal, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle) { -this(factory, maxActive, whenExhaustedAction, maxWait, maxIdle, GenericKeyedObjectPool.DEFAULT_MAX_TOTAL, GenericKeyedObjectPool.DEFAULT_MIN_IDLE , testOnBorrow, testOnReturn, timeBetweenEvictionRunsMillis, numTestsPerEvictionRun, minEvictableIdleTimeMillis, testWhileIdle); +this(factory, maxActive, whenExhaustedAction, maxWait, maxIdle, maxTotal, GenericKeyedObjectPool.DEFAULT_MIN_IDLE , testOnBorrow, testOnReturn, timeBetweenEvictionRunsMillis, numTestsPerEvictionRun, minEvictableIdleTimeMillis, testWhileIdle); } public GenericKeyedObjectPoolFactory(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, int maxTotal, int minIdle, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle) { Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java?rev=390792r1=390791r2=390792view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPoolFactory.java Sat Apr 1 23:13:42 2006 @@ -36,7 +36,7 @@ } public GenericKeyedObjectPoolFactory(KeyedPoolableObjectFactory factory, GenericKeyedObjectPool.Config config) { - this(factory,config.maxActive,config.whenExhaustedAction,config.maxWait,config.maxIdle,config.testOnBorrow,config.testOnReturn,config.timeBetweenEvictionRunsMillis,config.numTestsPerEvictionRun,config.minEvictableIdleTimeMillis,config.testWhileIdle); + this(factory,config.maxActive,config.whenExhaustedAction,config.maxWait,config.maxIdle,config.maxTotal,config.minIdle,config.testOnBorrow,config.testOnReturn,config.timeBetweenEvictionRunsMillis,config.numTestsPerEvictionRun,config.minEvictableIdleTimeMillis,config.testWhileIdle); } public GenericKeyedObjectPoolFactory(KeyedPoolableObjectFactory factory, int maxActive) { @@ -68,7 +68,7 @@ } public GenericKeyedObjectPoolFactory(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, int maxTotal, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle) { -this(factory, maxActive, whenExhaustedAction, maxWait, maxIdle, GenericKeyedObjectPool.DEFAULT_MAX_TOTAL, GenericKeyedObjectPool.DEFAULT_MIN_IDLE , testOnBorrow, testOnReturn, timeBetweenEvictionRunsMillis, numTestsPerEvictionRun, minEvictableIdleTimeMillis, testWhileIdle); +this(factory, maxActive, whenExhaustedAction, maxWait, maxIdle, maxTotal, GenericKeyedObjectPool.DEFAULT_MIN_IDLE , testOnBorrow, testOnReturn, timeBetweenEvictionRunsMillis, numTestsPerEvictionRun, minEvictableIdleTimeMillis, testWhileIdle); } public GenericKeyedObjectPoolFactory(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, int maxTotal, int minIdle, boolean testOnBorrow
svn commit: r390793 - in /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool: ./ composite/ impl/
Author: sandymac Date: Sat Apr 1 23:15:31 2006 New Revision: 390793 URL: http://svn.apache.org/viewcvs?rev=390793view=rev Log: Unit tests for KeyedObjectPoolFactory implementations. Added: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeKeyedObjectPoolFactory.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPoolFactory.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackKeyedObjectPoolFactory.java (with props) Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestAll.java Added: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java?rev=390793view=auto == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java (added) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java Sat Apr 1 23:15:31 2006 @@ -0,0 +1,68 @@ +/* + * Copyright 2006 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.pool; + +import junit.framework.TestCase; + +/** + * Tests for all [EMAIL PROTECTED] KeyedObjectPoolFactory}s. + * + * @author Sandy McArthur + * @version $Revision$ $Date$ + */ +public abstract class TestKeyedObjectPoolFactory extends TestCase { +protected TestKeyedObjectPoolFactory(final String name) { +super(name); +} + +/** + * @throws UnsupportedOperationException when this is unsupported by this KeyedPoolableObjectFactory type. + */ +protected KeyedObjectPoolFactory makeFactory() throws UnsupportedOperationException { +return makeFactory(createObjectFactory()); +} + +/** + * @throws UnsupportedOperationException when this is unsupported by this KeyedPoolableObjectFactory type. + */ +protected abstract KeyedObjectPoolFactory makeFactory(KeyedPoolableObjectFactory objectFactory) throws UnsupportedOperationException; + +protected static KeyedPoolableObjectFactory createObjectFactory() { +return PoolUtils.adapt(new MethodCallPoolableObjectFactory()); +} + +public void testCreatePool() throws Exception { +final KeyedObjectPoolFactory factory; +try { +factory = makeFactory(); +} catch (UnsupportedOperationException uoe) { +return; +} +final KeyedObjectPool pool = factory.createPool(); +pool.close(); +} + +public void testToString() { +final KeyedObjectPoolFactory factory; +try { +factory = makeFactory(); +} catch (UnsupportedOperationException uoe) { +return; +} +factory.toString(); +} +} Propchange: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java -- svn:eol-style = native Propchange: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPoolFactory.java -- svn:keywords = Date Author Id Revision HeadURL Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java?rev=390793r1=390792r2=390793view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java Sat Apr 1 23:15:31 2006 @@ -65,7 +65,7 @@ suite.addTest(TestCompositeKeyedObjectPool.suite()); suite.addTest(TestCompositeKeyedObjectPool2.suite
svn commit: r390563 - in /jakarta/commons/proper/pool: branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/ trunk/src/java/org/apache/commons/pool/impl/
Author: sandymac Date: Fri Mar 31 17:28:14 2006 New Revision: 390563 URL: http://svn.apache.org/viewcvs?rev=390563view=rev Log: GenericObjectPool mindIdle and GenericObjectPoolFactory softMinEvictableIdleTimeMillis bug fixes. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericObjectPool.java jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPoolFactory.java Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericObjectPool.java?rev=390563r1=390562r2=390563view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericObjectPool.java (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericObjectPool.java Fri Mar 31 17:28:14 2006 @@ -386,7 +386,7 @@ * @param testWhileIdle whether or not to validate objects in the idle object eviction thread, if any (see [EMAIL PROTECTED] #setTestWhileIdle}) */ public GenericObjectPool(PoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, int minIdle, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle) { -this(factory, maxActive, whenExhaustedAction, maxWait, maxIdle, DEFAULT_MIN_IDLE, testOnBorrow, testOnReturn, timeBetweenEvictionRunsMillis, numTestsPerEvictionRun, minEvictableIdleTimeMillis, testWhileIdle, DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS); +this(factory, maxActive, whenExhaustedAction, maxWait, maxIdle, minIdle, testOnBorrow, testOnReturn, timeBetweenEvictionRunsMillis, numTestsPerEvictionRun, minEvictableIdleTimeMillis, testWhileIdle, DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS); } /** Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericObjectPoolFactory.java?rev=390563r1=390562r2=390563view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericObjectPoolFactory.java Fri Mar 31 17:28:14 2006 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2004,2006 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. @@ -35,7 +35,7 @@ } public GenericObjectPoolFactory(PoolableObjectFactory factory, GenericObjectPool.Config config) { - this(factory,config.maxActive,config.whenExhaustedAction,config.maxWait,config.maxIdle,config.minIdle,config.testOnBorrow,config.testOnReturn,config.timeBetweenEvictionRunsMillis,config.numTestsPerEvictionRun,config.minEvictableIdleTimeMillis,config.testWhileIdle); + this(factory,config.maxActive,config.whenExhaustedAction,config.maxWait,config.maxIdle,config.minIdle,config.testOnBorrow,config.testOnReturn,config.timeBetweenEvictionRunsMillis,config.numTestsPerEvictionRun,config.minEvictableIdleTimeMillis,config.testWhileIdle,config.softMinEvictableIdleTimeMillis); } public GenericObjectPoolFactory(PoolableObjectFactory factory, int maxActive) { @@ -59,10 +59,14 @@ } public GenericObjectPoolFactory(PoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle) { - this(factory,maxActive,whenExhaustedAction,maxWait,maxIdle,GenericObjectPool.DEFAULT_MIN_IDLE,testOnBorrow,testOnReturn,GenericObjectPool.DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS,GenericObjectPool.DEFAULT_NUM_TESTS_PER_EVICTION_RUN,GenericObjectPool.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS,GenericObjectPool.DEFAULT_TEST_WHILE_IDLE); + this(factory,maxActive,whenExhaustedAction,maxWait,maxIdle,GenericObjectPool.DEFAULT_MIN_IDLE
svn commit: r390579 - /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPoolFactory.java
Author: sandymac Date: Fri Mar 31 19:09:41 2006 New Revision: 390579 URL: http://svn.apache.org/viewcvs?rev=390579view=rev Log: Self descriptive parameter names for StackObjectPoolFactory Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPoolFactory.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPoolFactory.java?rev=390579r1=390578r2=390579view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPoolFactory.java Fri Mar 31 19:09:41 2006 @@ -34,25 +34,25 @@ this((PoolableObjectFactory)null,StackObjectPool.DEFAULT_MAX_SLEEPING,StackObjectPool.DEFAULT_INIT_SLEEPING_CAPACITY); } -public StackObjectPoolFactory(int max) { - this((PoolableObjectFactory)null,max,StackObjectPool.DEFAULT_INIT_SLEEPING_CAPACITY); +public StackObjectPoolFactory(int maxIdle) { + this((PoolableObjectFactory)null,maxIdle,StackObjectPool.DEFAULT_INIT_SLEEPING_CAPACITY); } -public StackObjectPoolFactory(int max, int init) { -this((PoolableObjectFactory)null,max,init); +public StackObjectPoolFactory(int maxIdle, int init) { +this((PoolableObjectFactory)null,maxIdle,init); } public StackObjectPoolFactory(PoolableObjectFactory factory) { this(factory,StackObjectPool.DEFAULT_MAX_SLEEPING,StackObjectPool.DEFAULT_INIT_SLEEPING_CAPACITY); } -public StackObjectPoolFactory(PoolableObjectFactory factory, int max) { -this(factory,max,StackObjectPool.DEFAULT_INIT_SLEEPING_CAPACITY); +public StackObjectPoolFactory(PoolableObjectFactory factory, int maxIdle) { +this(factory,maxIdle,StackObjectPool.DEFAULT_INIT_SLEEPING_CAPACITY); } -public StackObjectPoolFactory(PoolableObjectFactory factory, int max, int init) { +public StackObjectPoolFactory(PoolableObjectFactory factory, int maxIdle, int init) { _factory = factory; -_maxSleeping = max; +_maxSleeping = maxIdle; _initCapacity = init; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r390581 - in /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl: TestGenericObjectPoolFactory.java TestStackObjectPoolFactory.java
Author: sandymac Date: Fri Mar 31 19:10:23 2006 New Revision: 390581 URL: http://svn.apache.org/viewcvs?rev=390581view=rev Log: Created more unit tests for ObjectPoolFactory and implementations. Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackObjectPoolFactory.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPoolFactory.java?rev=390581r1=390580r2=390581view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPoolFactory.java Fri Mar 31 19:10:23 2006 @@ -19,9 +19,12 @@ import org.apache.commons.pool.TestObjectPoolFactory; import org.apache.commons.pool.ObjectPoolFactory; import org.apache.commons.pool.PoolableObjectFactory; +import org.apache.commons.pool.MethodCallPoolableObjectFactory; import junit.framework.Test; import junit.framework.TestSuite; +import java.util.NoSuchElementException; + /** * Tests for [EMAIL PROTECTED] GenericObjectPoolFactory}. * @@ -39,5 +42,150 @@ protected ObjectPoolFactory makeFactory(final PoolableObjectFactory objectFactory) throws UnsupportedOperationException { return new GenericObjectPoolFactory(objectFactory); +} + +public void testConstructors() throws Exception { +GenericObjectPoolFactory factory = new GenericObjectPoolFactory(new MethodCallPoolableObjectFactory()); +GenericObjectPool pool; +factory.createPool().close(); + +final GenericObjectPool.Config config = new GenericObjectPool.Config(); +config.maxActive = 1; +config.maxIdle = 2; +config.maxWait = 3; +config.minIdle = 4; +config.minEvictableIdleTimeMillis = 5; +config.numTestsPerEvictionRun = 6; +config.softMinEvictableIdleTimeMillis = 7; +config.testOnBorrow = true; +config.testOnReturn = false; +config.testWhileIdle = true; +config.timeBetweenEvictionRunsMillis = 8; +config.whenExhaustedAction = GenericObjectPool.WHEN_EXHAUSTED_GROW; +factory = new GenericObjectPoolFactory(new MethodCallPoolableObjectFactory(), config); +pool = (GenericObjectPool)factory.createPool(); +assertEquals(1, pool.getMaxActive()); +assertEquals(2, pool.getMaxIdle()); +assertEquals(3, pool.getMaxWait()); +assertEquals(4, pool.getMinIdle()); +assertEquals(5, pool.getMinEvictableIdleTimeMillis()); +assertEquals(6, pool.getNumTestsPerEvictionRun()); +assertEquals(7, pool.getSoftMinEvictableIdleTimeMillis()); +assertEquals(true, pool.getTestOnBorrow()); +assertEquals(false, pool.getTestOnReturn()); +assertEquals(true, pool.getTestWhileIdle()); +assertEquals(8, pool.getTimeBetweenEvictionRunsMillis()); +assertEquals(GenericObjectPool.WHEN_EXHAUSTED_GROW, pool.getWhenExhaustedAction()); +pool.borrowObject(); +pool.close(); + + +factory = new GenericObjectPoolFactory(new MethodCallPoolableObjectFactory(), 1); +pool = (GenericObjectPool)factory.createPool(); +assertEquals(1, pool.getMaxActive()); +pool.borrowObject(); +pool.close(); + + +factory = new GenericObjectPoolFactory(new MethodCallPoolableObjectFactory(), 1, GenericObjectPool.WHEN_EXHAUSTED_BLOCK, 125); +pool = (GenericObjectPool)factory.createPool(); +assertEquals(1, pool.getMaxActive()); +assertEquals(GenericObjectPool.WHEN_EXHAUSTED_BLOCK, pool.getWhenExhaustedAction()); +assertEquals(125, pool.getMaxWait()); +pool.borrowObject(); +long startTime = System.currentTimeMillis(); +try { +pool.borrowObject(); +fail(); +} catch (NoSuchElementException nsee) { +// expected +} +long delay = System.currentTimeMillis() - startTime; +assertTrue(delay: + delay, delay 100); +pool.close(); + + +factory = new GenericObjectPoolFactory(new MethodCallPoolableObjectFactory(), 1, GenericObjectPool.WHEN_EXHAUSTED_GROW, 2, true, false); +pool = (GenericObjectPool)factory.createPool(); +assertEquals(1, pool.getMaxActive()); +assertEquals(2, pool.getMaxWait()); +assertEquals(true, pool.getTestOnBorrow()); +assertEquals(false, pool.getTestOnReturn()); +assertEquals(GenericObjectPool.WHEN_EXHAUSTED_GROW, pool.getWhenExhaustedAction()); +pool.borrowObject
svn commit: r390338 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite: CompositeKeyedObjectPoolFactory.java CompositeObjectPoolFactory.java TrackingPolicy.java
Author: sandymac Date: Thu Mar 30 21:56:54 2006 New Revision: 390338 URL: http://svn.apache.org/viewcvs?rev=390338view=rev Log: Previously missed some configure method renames. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingPolicy.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java?rev=390338r1=390337r2=390338view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java Thu Mar 30 21:56:54 2006 @@ -327,8 +327,8 @@ * * @return Type of tracking for active objects while they are borrowed from the pool. */ -public TrackingPolicy getTrackerType() { -return factory.getTrackerType(); +public TrackingPolicy getTrackingPolicy() { +return factory.getTrackingPolicy(); } /** @@ -337,8 +337,8 @@ * @param trackerPolicy type of tracking for active objects. * @throws IllegalArgumentException when codetrackerPolicy/code is codenull/code. */ -public void setTrackerType(final TrackingPolicy trackerPolicy) throws IllegalArgumentException { -factory.setTrackerType(trackerPolicy); +public void setTrackingPolicy(final TrackingPolicy trackerPolicy) throws IllegalArgumentException { +factory.setTrackingPolicy(trackerPolicy); } /** Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java?rev=390338r1=390337r2=390338view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Thu Mar 30 21:56:54 2006 @@ -43,7 +43,7 @@ * li[EMAIL PROTECTED] #setMaxWaitMillis(int) maxWaitMillis}: a non-positive value (wait forever) * (has no effect unless [EMAIL PROTECTED] #setLimitPolicy(LimitPolicy) limitPolicy} is * [EMAIL PROTECTED] LimitPolicy#WAIT WAIT})/li - * li[EMAIL PROTECTED] #setTrackerType(TrackingPolicy) trackingPolicy}: + * li[EMAIL PROTECTED] #setTrackingPolicy(TrackingPolicy) trackingPolicy}: * [EMAIL PROTECTED] TrackingPolicy#SIMPLE SIMPLE}/li * li[EMAIL PROTECTED] #setValidateOnReturn(boolean) validateOnReturn}: false (do not validate on return)/li * li[EMAIL PROTECTED] #setEvictIdleMillis(long) evictIdleMillis}: non-positive (do not evict objects for being idle)/li @@ -230,8 +230,9 @@ * Create and return a new codeObjectPool/code. * * @return a new [EMAIL PROTECTED] ObjectPool} + * @throws IllegalStateException when this pool factory is not configured properly */ -public ObjectPool createPool() { +public ObjectPool createPool() throws IllegalStateException { return createPool(getConfig()); } @@ -240,8 +241,9 @@ * * @param config the settings to use to construct said pool. * @return a new [EMAIL PROTECTED] ObjectPool} + * @throws IllegalStateException when this pool factory is not configured properly */ -static ObjectPool createPool(final FactoryConfig config) { +static ObjectPool createPool(final FactoryConfig config) throws IllegalStateException { if (config == null) { throw new IllegalArgumentException(config must not be null.); } @@ -593,7 +595,7 @@ * * @return Type of tracking for active objects while they are borrowed from the pool. */ -public TrackingPolicy getTrackerType() { +public TrackingPolicy getTrackingPolicy() { return trackerPolicy; } @@ -603,7 +605,7 @@ * @param trackerPolicy type of tracking for active objects. * @throws IllegalArgumentException when codetrackerPolicy/code is codenull/code. */ -public void setTrackerType(final TrackingPolicy trackerPolicy) throws IllegalArgumentException { +public void setTrackingPolicy(final TrackingPolicy trackerPolicy) throws IllegalArgumentException { if (trackerPolicy == null
svn commit: r390342 - /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java
Author: sandymac Date: Thu Mar 30 22:28:32 2006 New Revision: 390342 URL: http://svn.apache.org/viewcvs?rev=390342view=rev Log: Fix: optimization where EvictInvalidFrequencyMillis is less than EvictIdleMillis could be optimized out had the comparison backwards. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java?rev=390342r1=390341r2=390342view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Thu Mar 30 22:28:32 2006 @@ -315,7 +315,7 @@ if (!(lender instanceof NullLender)) { // If the evictIdleMillis were less than evictInvalidFrequencyMillis // then the InvalidEvictorLender would never run. -if (config.evictInvalidFrequencyMillis 0 config.evictIdleMillis config.evictInvalidFrequencyMillis) { +if (config.evictInvalidFrequencyMillis 0 config.evictIdleMillis config.evictInvalidFrequencyMillis) { lender = new InvalidEvictorLender(lender); ((InvalidEvictorLender)lender).setValidationFrequencyMillis(config.evictInvalidFrequencyMillis); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r390349 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/composite/ test/org/apache/commons/pool/ test/org/apache/commons/pool/composite/ test/org/apache/commons/p
Author: sandymac Date: Thu Mar 30 22:59:54 2006 New Revision: 390349 URL: http://svn.apache.org/viewcvs?rev=390349view=rev Log: Created unit tests for ObjectPoolFactory and implementations. Added: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPoolFactory.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPoolFactory.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPoolFactory.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackObjectPoolFactory.java (with props) Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/PerformanceTest.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestIdleEvictorLender.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestAll.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java?rev=390349r1=390348r2=390349view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java Thu Mar 30 22:59:54 2006 @@ -334,11 +334,11 @@ /** * Set the type of tracking for active objects while they are borrowed from the pool. * - * @param trackerPolicy type of tracking for active objects. - * @throws IllegalArgumentException when codetrackerPolicy/code is codenull/code. + * @param trackingPolicy type of tracking for active objects. + * @throws IllegalArgumentException when codetrackingPolicy/code is codenull/code. */ -public void setTrackingPolicy(final TrackingPolicy trackerPolicy) throws IllegalArgumentException { -factory.setTrackingPolicy(trackerPolicy); +public void setTrackingPolicy(final TrackingPolicy trackingPolicy) throws IllegalArgumentException { +factory.setTrackingPolicy(trackingPolicy); } /** Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java?rev=390349r1=390348r2=390349view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Thu Mar 30 22:59:54 2006 @@ -198,7 +198,7 @@ /** * Configured [EMAIL PROTECTED] Tracker} type. */ -private TrackingPolicy trackerPolicy = TrackingPolicy.SIMPLE; +private TrackingPolicy trackingPolicy = TrackingPolicy.SIMPLE; /** * Should the object pool validate borrowed objects when they are returned. @@ -352,7 +352,7 @@ final int maxActive = config.maxActive; if (maxActive 0) { -if (TrackingPolicy.NULL.equals(config.trackerPolicy)) { +if (TrackingPolicy.NULL.equals(config.trackingPolicy)) { throw new IllegalStateException(Using the NULL tracker and limiting pool size is not valid.); } final LimitPolicy limitPolicy = config.limitPolicy; @@ -382,17 +382,17 @@ */ private static Tracker getTracker(final FactoryConfig config) { final Tracker tracker; -final TrackingPolicy trackerPolicy = config.trackerPolicy; -if (TrackingPolicy.SIMPLE.equals(trackerPolicy)) { +final TrackingPolicy trackingPolicy = config.trackingPolicy; +if (TrackingPolicy.SIMPLE.equals(trackingPolicy)) { tracker = new SimpleTracker(); -} else if (TrackingPolicy.NULL.equals(trackerPolicy)) { +} else if (TrackingPolicy.NULL.equals(trackingPolicy)) { tracker = new NullTracker(); -} else if (TrackingPolicy.REFERENCE.equals(trackerPolicy)) { +} else if (TrackingPolicy.REFERENCE.equals(trackingPolicy)) { tracker = new ReferenceTracker
svn commit: r389839 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite: BorrowPolicy.java ExhaustionPolicy.java LimitPolicy.java TrackingPolicy.java
Author: sandymac Date: Wed Mar 29 09:23:00 2006 New Revision: 389839 URL: http://svn.apache.org/viewcvs?rev=389839view=rev Log: Updated composite enum's javadocs to hopefully be clearer. Tested to make sure when the enums are converted to Java 1.5 enums in pool 3 that code compiled against pool 2 will continue to work fine. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowPolicy.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ExhaustionPolicy.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/LimitPolicy.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingPolicy.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowPolicy.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowPolicy.java?rev=389839r1=389838r2=389839view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowPolicy.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowPolicy.java Wed Mar 29 09:23:00 2006 @@ -23,7 +23,7 @@ import java.lang.ref.SoftReference; /** - * Specifies the order in which objects are borrowed and returned to the pool. + * Configures how objects are borrowed and returned to the pool. * * @see CompositeObjectPoolFactory#setBorrowPolicy(BorrowPolicy) * @see CompositeKeyedObjectPoolFactory#setBorrowPolicy(BorrowPolicy) @@ -31,6 +31,7 @@ * @since #.# * @version $Revision$ $Date$ */ +/* XXX For Pool 3: public enum BorrowPolicy {FIFO, LIFO, SOFT_FIFO, SOFT_LIFO, NULL} but keep existing Javadoc. */ public final class BorrowPolicy implements Serializable { private static final long serialVersionUID = 3357921765798594792L; Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ExhaustionPolicy.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ExhaustionPolicy.java?rev=389839r1=389838r2=389839view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ExhaustionPolicy.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ExhaustionPolicy.java Wed Mar 29 09:23:00 2006 @@ -24,7 +24,7 @@ import java.util.NoSuchElementException; /** - * Specifies the behavior of the pool when the pool is out of idle objects. + * Configures the behavior of the pool when the pool is out of idle objects. * * @see CompositeObjectPoolFactory#setExhaustionPolicy(ExhaustionPolicy) * @see CompositeKeyedObjectPoolFactory#setExhaustionPolicy(ExhaustionPolicy) @@ -32,6 +32,7 @@ * @since #.# * @version $Revision$ $Date$ */ +/* XXX For Pool 3: public enum ExhaustionPolicy {GROW, FAIL} but keep existing Javadoc. */ public final class ExhaustionPolicy implements Serializable { private static final long serialVersionUID = -4895490364329810018L; Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/LimitPolicy.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/LimitPolicy.java?rev=389839r1=389838r2=389839view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/LimitPolicy.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/LimitPolicy.java Wed Mar 29 09:23:00 2006 @@ -24,7 +24,7 @@ import java.util.NoSuchElementException; /** - * Specifies the behavior of when the max number of active objects has been reached. + * Configures the behavior of the pool when there is a limit on the number of concurrently borrowed objects. * * @see CompositeObjectPoolFactory#setLimitPolicy(LimitPolicy) * @see CompositeKeyedObjectPoolFactory#setLimitPolicy(LimitPolicy) @@ -32,6 +32,7 @@ * @since #.# * @version $Revision$ $Date$ */ +/* XXX For Pool 3: public enum LimitPolicy {FAIL, WAIT} but keep existing Javadoc. */ public final class LimitPolicy implements Serializable { private static final long serialVersionUID = -4325661345028907604L; Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingPolicy.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingPolicy.java?rev=389839r1=389838r2=389839view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons
svn commit: r389965 - in /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool: TestObjectPool.java composite/TestCompositeObjectPool.java
Author: sandymac Date: Wed Mar 29 18:19:39 2006 New Revision: 389965 URL: http://svn.apache.org/viewcvs?rev=389965view=rev Log: Some more unit tests for CompositeObjectPool Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java?rev=389965r1=389964r2=389965view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java Wed Mar 29 18:19:39 2006 @@ -330,6 +330,31 @@ pool.close(); } +public void testSetFactory() throws Exception { +ObjectPool pool; +try { +pool = makeEmptyPool(new MethodCallPoolableObjectFactory()); +} catch (UnsupportedOperationException uoe) { +return; // test not supported +} +final MethodCallPoolableObjectFactory factory = new MethodCallPoolableObjectFactory(); +try { +pool.setFactory(factory); +} catch (UnsupportedOperationException uoe) { +return; +} +} + +public void testToString() { +ObjectPool pool; +try { +pool = makeEmptyPool(new MethodCallPoolableObjectFactory()); +} catch (UnsupportedOperationException uoe) { +return; // test not supported +} +pool.toString(); +} + static void removeDestroyObjectCall(List calls) { Iterator iter = calls.iterator(); while (iter.hasNext()) { Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java?rev=389965r1=389964r2=389965view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java Wed Mar 29 18:19:39 2006 @@ -66,6 +66,57 @@ return copf.createPool(); } +public void testConstructors() { +try { +new CompositeObjectPool(null, new GrowManager(), new FifoLender(), new SimpleTracker(), false); +fail(IllegalArgumentException expected on null PoolableObjectFactory.); +} catch (IllegalArgumentException iae) { +// expected +} + +try { +new CompositeObjectPool(new MethodCallPoolableObjectFactory(), null, new FifoLender(), new SimpleTracker(), false); +fail(IllegalArgumentException expected on null Manager.); +} catch (IllegalArgumentException iae) { +// expected +} + +try { +new CompositeObjectPool(new MethodCallPoolableObjectFactory(), new GrowManager(), null, new SimpleTracker(), false); +fail(IllegalArgumentException expected on null Lender.); +} catch (IllegalArgumentException iae) { +// expected +} + +try { +new CompositeObjectPool(new MethodCallPoolableObjectFactory(), new GrowManager(), new FifoLender(), null, false); +fail(IllegalArgumentException expected on null Tracker.); +} catch (IllegalArgumentException iae) { +// expected +} + +try { +new CompositeObjectPool(new MethodCallPoolableObjectFactory(), null, new GrowManager(), new FifoLender(), new SimpleTracker(), false, null); +fail(IllegalArgumentException expected on null List.); +} catch (IllegalArgumentException iae) { +// expected +} +} + +public void testSetFactory() throws Exception { +super.testSetFactory(); +final MethodCallPoolableObjectFactory factory = new MethodCallPoolableObjectFactory(); +final CompositeObjectPoolFactory copf = new CompositeObjectPoolFactory(factory); +final CompositeObjectPool pool = (CompositeObjectPool)copf.createPool(); +pool.setFactory(factory); +} + +public void testToString() { +super.testToString(); +final ObjectPool pool = new CompositeObjectPool(new MethodCallPoolableObjectFactory(), new FailManager(), new FifoLender(), new DebugTracker(), false); +pool.toString(); +} + // Test Managers
svn commit: r389995 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite: CompositeKeyedObjectPool.java CompositeObjectPool.java CompositeObjectPoolFactory.java
Author: sandymac Date: Wed Mar 29 21:42:45 2006 New Revision: 389995 URL: http://svn.apache.org/viewcvs?rev=389995view=rev Log: Removed clone support from the CompositeObjectPools as it didn't handle all corner cases and didn't provide any real benefit. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java?rev=389995r1=389994r2=389995view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java Wed Mar 29 21:42:45 2006 @@ -440,28 +440,6 @@ } /** - * Creates a new keyed object pool with the same settings as this one. The new instance will not contian any - * existing idle objects nor should you return active objects to it. - * - * @return a new keyed object pool with the same settings. - */ -public Object clone() throws CloneNotSupportedException { -if (!getClass().equals(CompositeKeyedObjectPool.class)) { -throw new CloneNotSupportedException(Subclasses must not call super.clone()); -} -if (poolFactory instanceof CompositeObjectPoolFactory) { -final PoolableObjectFactory pof = ((CompositeObjectPoolFactory)poolFactory).getFactory(); -if (pof instanceof KeyedPoolableObjectFactoryAdapter) { -final KeyedPoolableObjectFactory kopf = ((KeyedPoolableObjectFactoryAdapter)pof).getDelegate(); -final CompositeObjectPoolFactory opf = (CompositeObjectPoolFactory)((CompositeObjectPoolFactory)poolFactory).clone(); -opf.setFactory(new KeyedPoolableObjectFactoryAdapter(kopf)); -return new CompositeKeyedObjectPool(opf); -} -} -return new CompositeKeyedObjectPool(poolFactory); -} - -/** * The [EMAIL PROTECTED] ThreadLocal} keys is not serializable and final, must create a new instance for this to be correct. */ private Object readResolve() throws ObjectStreamException { Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java?rev=389995r1=389994r2=389995view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java Wed Mar 29 21:42:45 2006 @@ -441,17 +441,4 @@ sb.append('}'); return sb.toString(); } - -/** - * Create a new pool with the same settings. Active or Idle objects are not shared with the new pool. - * - * @return a new [EMAIL PROTECTED] CompositeObjectPool} with the same configuration. - * @throws CloneNotSupportedException when this pool was contstucted without a factoryConfig. - */ -public Object clone() throws CloneNotSupportedException { -if (factoryConfig == null) { -throw new CloneNotSupportedException(Cloning not supported without a factoryConfig.); -} -return CompositeObjectPoolFactory.createPool(factoryConfig); -} } Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java?rev=389995r1=389994r2=389995view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Wed Mar 29 21:42:45 2006 @@ -694,7 +694,13 @@ * @throws CloneNotSupportedException if [EMAIL PROTECTED] Object#clone()} does. */ public Object clone() throws CloneNotSupportedException { -return super.clone(); +final CompositeObjectPoolFactory copf = (CompositeObjectPoolFactory)super.clone
svn commit: r389997 - in /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool: ./ composite/ impl/
Author: sandymac Date: Wed Mar 29 21:44:13 2006 New Revision: 389997 URL: http://svn.apache.org/viewcvs?rev=389997view=rev Log: Reworked and created unit tests for KeyedObjectPool and implementations. Added: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeKeyedObjectPool.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeKeyedObjectPool2.java (with props) Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestWaitLimitManager.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackKeyedObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseKeyedObjectPool.java?rev=389997r1=389996r2=389997view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseKeyedObjectPool.java Wed Mar 29 21:44:13 2006 @@ -16,7 +16,6 @@ package org.apache.commons.pool; import junit.framework.Test; -import junit.framework.TestCase; import junit.framework.TestSuite; /** @@ -24,17 +23,71 @@ * @author Sandy McArthur * @version $Revision$ $Date$ */ -public class TestBaseKeyedObjectPool extends TestCase { -public TestBaseKeyedObjectPool(String testName) { +public class TestBaseKeyedObjectPool extends TestKeyedObjectPool { +private KeyedObjectPool _pool = null; + +public TestBaseKeyedObjectPool(final String testName) { super(testName); } +protected KeyedObjectPool makeEmptyPool(KeyedPoolableObjectFactory factory) { +if (this.getClass() != TestBaseKeyedObjectPool.class) { +throw new AssertionError(Subclasses of TestBaseKeyedObjectPool must reimplement this method.); +} +throw new UnsupportedOperationException(BaseKeyedObjectPool isn't a complete implementation.); +} + +/** + * Create an [EMAIL PROTECTED] KeyedObjectPool} instance + * that can contain at least imincapacity/i + * idle and active objects, or + * throw [EMAIL PROTECTED] IllegalArgumentException} + * if such a pool cannot be created. + */ +protected KeyedObjectPool makeEmptyPool(int mincapacity) { +if (this.getClass() != TestBaseKeyedObjectPool.class) { +throw new AssertionError(Subclasses of TestBaseKeyedObjectPool must reimplement this method.); +} +throw new UnsupportedOperationException(BaseKeyedObjectPool isn't a complete implementation.); +} + +/** + * Return what we expect to be the nsupth/sup + * object (zero indexed) created by the pool + * for the given key. + */ +protected Object getNthObject(Object key, int n) { +if (this.getClass() != TestBaseKeyedObjectPool.class) { +throw new AssertionError(Subclasses of TestBaseKeyedObjectPool must reimplement this method.); +} +throw new UnsupportedOperationException(BaseKeyedObjectPool isn't a complete implementation.); +} + +protected Object makeKey(int n) { +if (this.getClass() != TestBaseKeyedObjectPool.class) { +throw new AssertionError(Subclasses of TestBaseKeyedObjectPool must reimplement this method.); +} +throw new UnsupportedOperationException(BaseKeyedObjectPool isn't a complete implementation.); +} + public static Test suite() { return new TestSuite(TestBaseKeyedObjectPool.class); } - + // tests +public void setUp() throws Exception { +super.setUp(); +} + +public void tearDown() throws Exception { +_pool = null; +super.tearDown(); +} + public void testUnsupportedOperations() throws Exception { +if (!getClass().equals(TestBaseKeyedObjectPool.class)) { +return; // skip redundant tests +} KeyedObjectPool pool = new BaseKeyedObjectPool() { public Object borrowObject(Object key) throws Exception { return null; @@ -43,7 +96,7
svn commit: r390002 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java test/org/apache/commons/pool/impl/TestAll.java
Author: sandymac Date: Wed Mar 29 22:02:07 2006 New Revision: 390002 URL: http://svn.apache.org/viewcvs?rev=390002view=rev Log: Removed a comment about cloneability that should have been removed with a previous commit. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestAll.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java?rev=390002r1=390001r2=390002view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Wed Mar 29 22:02:07 2006 @@ -125,9 +125,6 @@ * liDeserialized [EMAIL PROTECTED] ObjectPool}s produced by this factory will not retain their idle objects. Active objects * borrowed from the serialized [EMAIL PROTECTED] ObjectPool} must not be returned to the deserialized [EMAIL PROTECTED] ObjectPool}. * All other behavior and settings of the [EMAIL PROTECTED] ObjectPool} will be maintained./li - * li[EMAIL PROTECTED] ObjectPool}s created by this factory are [EMAIL PROTECTED] Cloneable}. Cloned instances do not retain the idle - * objects of the original instance and any active objects borrowed from the original must not be returned to the - * new clone./li * /ul * /p * Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestAll.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestAll.java?rev=390002r1=390001r2=390002view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestAll.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestAll.java Wed Mar 29 22:02:07 2006 @@ -39,7 +39,7 @@ suite.addTest(TestGenericObjectPool.suite()); suite.addTest(TestGenericKeyedObjectPool.suite()); suite.addTest(TestSoftReferenceObjectPool.suite()); -//suite.addTest(TestSoftRefOutOfMemory.suite()); // isn't reliable +suite.addTest(TestSoftRefOutOfMemory.suite()); // isn't reliable return suite; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r389381 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/composite/ test/org/apache/commons/pool/ test/org/apache/commons/pool/composite/
Author: sandymac Date: Mon Mar 27 19:46:23 2006 New Revision: 389381 URL: http://svn.apache.org/viewcvs?rev=389381view=rev Log: Unit tests for the composite Lender implementations. Bug fix in EvictorLender where two EvictorLender instances chained would delay getNumIdle from detecting idle objects that have been evicted. Added: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestFifoLender.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestIdleEvictorLender.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestInvalidEvictorLender.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestLender.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestLifoLender.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestNullLender.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestSoftLender.java (with props) Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/NullLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/SoftLender.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestAll.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java?rev=389381r1=389380r2=389381view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java Mon Mar 27 19:46:23 2006 @@ -83,7 +83,7 @@ } /** - * Return the size of the idle object pool. Also removes any broken [EMAIL PROTECTED] EvictorLender.EvictorReference}s so the + * Return the size of the idle object pool. Also removes any broken [EMAIL PROTECTED] Lender.LenderReference}s so the * size is more accurate. * * @return the size of the idle object pool the lender is accessing. @@ -93,8 +93,12 @@ synchronized (getObjectPool().getPool()) { final Iterator iter = super.listIterator(); while (iter.hasNext()) { -final EvictorReference ref = (EvictorReference)iter.next(); -if (ref != null ref.get() == null) { +Object o = iter.next(); +// unwrap +while (o instanceof LenderReference) { +o = ((LenderReference)o).get(); +} +if (o == null) { iter.remove(); } } Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/NullLender.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/NullLender.java?rev=389381r1=389380r2=389381view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/NullLender.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/NullLender.java Mon Mar 27 19:46:23 2006 @@ -28,20 +28,9 @@ * @since #.# * @version $Revision$ $Date$ */ -final class NullLender implements Lender, Serializable { +final class NullLender extends AbstractLender implements Serializable { private static final long serialVersionUID = -135471856936204860L; - -/** - * Called once to associate this manager with an object pool by the [EMAIL PROTECTED] CompositeObjectPool} constructor. - * - * @param objectPool the pool to associate with. - * @throws IllegalArgumentException if codeobjectPool/code is codenull/code. - * @throws IllegalStateException if this method is called more than once. - */ -public void setCompositeObjectPool(final CompositeObjectPool objectPool) throws IllegalArgumentException, IllegalStateException { -// nothing -} /** * Return codenull/code. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/SoftLender.java URL: http
svn commit: r389394 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/composite/ test/org/apache/commons/pool/composite/
Author: sandymac Date: Mon Mar 27 21:04:36 2006 New Revision: 389394 URL: http://svn.apache.org/viewcvs?rev=389394view=rev Log: Unit tests for the composite Tracker implementations. Added: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestDebugTracker.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestNullTracker.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestReferenceTracker.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestSimpleTracker.java (with props) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestTracker.java (with props) Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ReferenceTracker.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Tracker.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestLender.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ReferenceTracker.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ReferenceTracker.java?rev=389394r1=389393r2=389394view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ReferenceTracker.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ReferenceTracker.java Mon Mar 27 21:04:36 2006 @@ -53,6 +53,9 @@ private transient int lost = 0; public void borrowed(final Object obj) { +if (obj == null) { +throw new IllegalArgumentException(Cannot track null borrowed from pool.); +} workQueue(); final IdentityReference ref; synchronized (rq) { @@ -79,6 +82,9 @@ * @throws IllegalStateException when an object that wasn't brorrowed from this pool is returned. */ public void returned(final Object obj) throws IllegalStateException { +if (obj == null) { +throw new IllegalArgumentException(Cannot track null returned to the pool.); +} workQueue(); final IdentityKey key = new IdentityKey(obj); final IdentityReference ref = (IdentityReference)map.remove(key); Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Tracker.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Tracker.java?rev=389394r1=389393r2=389394view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Tracker.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Tracker.java Mon Mar 27 21:04:36 2006 @@ -40,20 +40,20 @@ * [EMAIL PROTECTED] PoolableObjectFactory#activateObject(Object) activated} and * [EMAIL PROTECTED] PoolableObjectFactory#validateObject(Object) validated} and is about to be returned to the client. * - * pObjects created via [EMAIL PROTECTED] ObjectPool#addObject()} are also borrowed so that when - * [EMAIL PROTECTED] ObjectPool#returnObject(Object)} [EMAIL PROTECTED] #returned(Object) returns} that object it isn't unexpected. - * * @param obj was borrowed from the pool. + * @throws IllegalArgumentException may be thrown if codenull/code is not allowed. */ -public void borrowed(Object obj); +public void borrowed(Object obj) throws IllegalArgumentException; /** * An object is being [EMAIL PROTECTED] ObjectPool#returnObject(Object) returned} to the pool. * [EMAIL PROTECTED] ObjectPool#invalidateObject(Object) Invalid} objects are also returned via this method. * * @param obj being returned to the pool. + * @throws IllegalArgumentException may be thrown if codenull/code is not allowed. + * @throws IllegalStateException may be thrown if an object is returned that wasn't borrowed. */ -public void returned(Object obj); +public void returned(Object obj) throws IllegalArgumentException, IllegalStateException; /** * The number of borrowed or active objects from the pool. Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestAll.java?rev=389394r1=389393r2=389394view=diff == --- jakarta/commons/proper/pool
svn commit: r389401 - /jakarta/commons/proper/pool/trunk/doap_pool.rdf
Author: sandymac Date: Mon Mar 27 21:33:46 2006 New Revision: 389401 URL: http://svn.apache.org/viewcvs?rev=389401view=rev Log: Added releases. Modified: jakarta/commons/proper/pool/trunk/doap_pool.rdf Modified: jakarta/commons/proper/pool/trunk/doap_pool.rdf URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/doap_pool.rdf?rev=389401r1=389400r2=389401view=diff == --- jakarta/commons/proper/pool/trunk/doap_pool.rdf (original) +++ jakarta/commons/proper/pool/trunk/doap_pool.rdf Mon Mar 27 21:33:46 2006 @@ -18,11 +18,32 @@ /SVNRepository /repository release - revision + Version namecommons-pool/name created2004-06-07/created -version1.1/version - /revision +revision1.2/revision + /Version +/release +release + Version +namecommons-pool/name +created2004-10-20/created +revision1.1/revision + /Version +/release +release + Version +namecommons-pool/name +created2002-08-12/created +revision1.0.1/revision + /Version +/release +release + Version +namecommons-pool/name +created2002-05-04/created +revision1.0/revision + /Version /release mailing-list rdf:resource=http://jakarta.apache.org/site/mail2.html#Commons/ /Project - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388885 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite: CompositeKeyedObjectPool.java CompositeObjectPool.java GrowManager.java
Author: sandymac Date: Sun Mar 26 00:16:35 2006 New Revision: 35 URL: http://svn.apache.org/viewcvs?rev=35view=rev Log: Changes neesed for CompositeKeyedObjectPools to work: Detect when making new objects is relatively slow or expensive. When it is, try to anticipate demand and create idle objects while allowing concurrent pool access. The idea came from a discussion with Peter Steijn on ways to reduce pool latency. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java?rev=35r1=34r2=35view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java Sun Mar 26 00:16:35 2006 @@ -100,6 +100,10 @@ if (pool == null) { pool = poolFactory.createPool(); objectPools.put(key, pool); +// Tell CompositeObjectPools that we own them. +if (pool instanceof CompositeObjectPool) { + ((CompositeObjectPool)pool).setOwningCompositeKeyedObjectPool(this); +} } } return pool; Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java?rev=35r1=34r2=35view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java Sun Mar 26 00:16:35 2006 @@ -101,6 +101,11 @@ */ private final CompositeObjectPoolFactory.FactoryConfig factoryConfig; +/** + * When not-codenull/code this pool is part of a [EMAIL PROTECTED] CompositeKeyedObjectPool}. + */ +private CompositeKeyedObjectPool owningCompositeKeyedObjectPool = null; + CompositeObjectPool(final PoolableObjectFactory factory, final Manager manager, final Lender lender, final Tracker tracker, final boolean validateOnReturn) { this(factory, manager, lender, tracker, validateOnReturn, null); } @@ -169,6 +174,25 @@ */ List getPool() { return pool; +} + +/** + * Set the owner of this pool. + * @param ckop the owner of this pool + */ +void setOwningCompositeKeyedObjectPool(final CompositeKeyedObjectPool ckop) { +if (owningCompositeKeyedObjectPool != null) { +throw new IllegalStateException(CompositeObjectPools cannot change ownership.); +} +owningCompositeKeyedObjectPool = ckop; +} + +/** + * Get the owner of this pool or codenull/code. + * @return the owner of this pool or codenull/code + */ +CompositeKeyedObjectPool getOwningCompositeKeyedObjectPool() { +return owningCompositeKeyedObjectPool; } /** Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java?rev=35r1=34r2=35view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java Sun Mar 26 00:16:35 2006 @@ -155,7 +155,14 @@ */ private void schedulePrefill() { if (objectPool.getLender().size() == 0 isMakeObjectExpensive()) { -PREFILL_TIMER.schedule(new PrefillTask(), 0L); +// When we are part of a CompositeKeyedObjectPool we need to pass the key to the Timer's thread. +final CompositeKeyedObjectPool ckop = objectPool.getOwningCompositeKeyedObjectPool(); +if (ckop != null) { +final Object key = ckop.getKeys().get(); +PREFILL_TIMER.schedule(new KeyedPrefillTask(key), 0L); +} else { +PREFILL_TIMER.schedule(new PrefillTask(), 0L
svn commit: r388886 - /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java
Author: sandymac Date: Sun Mar 26 00:17:30 2006 New Revision: 36 URL: http://svn.apache.org/viewcvs?rev=36view=rev Log: Include full reasons for failure instead of just the first. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java?rev=36r1=35r2=36view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java Sun Mar 26 00:17:30 2006 @@ -119,15 +119,16 @@ } /** - * Set the [EMAIL PROTECTED] #cause} for failure if it hasn't been set yet. + * Set the [EMAIL PROTECTED] #cause} linking any previous causes. * * @param t the real [EMAIL PROTECTED] Throwable#initCause(Throwable) cause}. */ private void updateCause(final Throwable t) { final Throwable previousCause = (Throwable)cause.get(); -if (previousCause == null) { -cause.set(t); +if (previousCause != null) { +t.initCause(previousCause); } +cause.set(t); } public String toString() { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388975 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite: AbstractManager.java FailManager.java GrowManager.java
Author: sandymac Date: Sun Mar 26 14:09:16 2006 New Revision: 388975 URL: http://svn.apache.org/viewcvs?rev=388975view=rev Log: Implements object destruction deferral. When an object needs to be destroyed as a side effect of another requested operation, defer the object destruction briefly to reduce latency for the calling code. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java?rev=388975r1=388974r2=388975view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java Sun Mar 26 14:09:16 2006 @@ -17,9 +17,12 @@ package org.apache.commons.pool.composite; import org.apache.commons.pool.PoolableObjectFactory; +import org.apache.commons.pool.KeyedPoolableObjectFactory; import java.io.Serializable; import java.util.NoSuchElementException; +import java.util.Timer; +import java.util.TimerTask; /** * A base [EMAIL PROTECTED] Manager} implementation that provides the common implementations of methods. @@ -33,6 +36,16 @@ private static final long serialVersionUID = -1729636795986138892L; /** + * Timer to schedule object for deferred destroyal. + */ +private static final Timer DEFER_TIMER = CompositeObjectPool.COMPOSITE_TIMER; + +/** + * Number of milliseconds to delay destroying an object. + */ +private static final long DEFER_DELAY = 20L; + +/** * CompositeObjectPool this [EMAIL PROTECTED] Lender} is associated with. */ protected CompositeObjectPool objectPool; @@ -74,5 +87,67 @@ public void returnToPool(final Object obj) { assert Thread.holdsLock(objectPool.getPool()); objectPool.getLender().repay(obj); +} + +/** + * Schedule an object for [EMAIL PROTECTED] PoolableObjectFactory#destroyObject destruction} at a later time. + * @param obj the object to be destroyed. + */ +protected void deferDestroyObject(final Object obj) { +final CompositeKeyedObjectPool ckop = objectPool.getOwningCompositeKeyedObjectPool(); +if (ckop != null) { +final Object key = ckop.getKeys().get(); +DEFER_TIMER.schedule(new DeferredKeyedDestroyTask(key, obj), DEFER_DELAY); +} else { +DEFER_TIMER.schedule(new DeferredDestroyTask(obj), DEFER_DELAY); +} +} + +/** + * Schedule a [EMAIL PROTECTED] PoolableObjectFactory#destroyObject}. + */ +private class DeferredDestroyTask extends TimerTask { +private final Object obj; + +DeferredDestroyTask(final Object obj) { +this.obj = obj; +} + +public void run() { +try { +objectPool.getFactory().destroyObject(obj); +} catch (Exception e) { +// ignore +} +} +} + +/** + * Schedule a [EMAIL PROTECTED] KeyedPoolableObjectFactory#destroyObject}. + */ +private class DeferredKeyedDestroyTask extends TimerTask { +private final Object key; +private final Object obj; + +DeferredKeyedDestroyTask(final Object key, final Object obj) { +this.key = key; +this.obj = obj; +} + +public void run() { +ThreadLocal keys = null; +try { +keys = objectPool.getOwningCompositeKeyedObjectPool().getKeys(); +keys.set(key); +objectPool.getFactory().destroyObject(obj); +} catch (Exception e) { +// ignore +} finally { +// clear the key +if (keys != null) { +keys.set(null); +} +} +} } } Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java?rev=388975r1=388974r2=388975view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java Sun Mar 26 14:09:16 2006 @@ -68,13 +68,9
svn commit: r388977 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH: project.properties xdocs/navigation.xml
Author: sandymac Date: Sun Mar 26 14:41:36 2006 New Revision: 388977 URL: http://svn.apache.org/viewcvs?rev=388977view=rev Log: Changed maven.xdoc.date to left and changed API Docs to Javadocs. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/navigation.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties?rev=388977r1=388976r2=388977view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties Sun Mar 26 14:41:36 2006 @@ -31,7 +31,7 @@ maven.jar.manifest.attribute.X-Compile-Target-JDK=${maven.compile.target} -maven.xdoc.date=bottom +maven.xdoc.date=left maven.xdoc.poweredby.image=maven-feather.png maven.xdoc.version=${pom.currentVersion} maven.xdoc.developmentProcessUrl=http://jakarta.apache.org/commons/charter.html Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/navigation.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/navigation.xml?rev=388977r1=388976r2=388977view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/navigation.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/navigation.xml Sun Mar 26 14:41:36 2006 @@ -28,7 +28,7 @@ menu name=Commons#xA0;Pool item name=Overview href=/index.html / -item name=API#xA0;Documentation href=/apidocs/index.html/ +item name=Javadoc href=/apidocs/index.html/ item name=Developers#xA0;Guide href=/guide/index.html collapse=true item name=Class#xA0;Diagrams href=/guide/classdiagrams.html/ item name=Sequence#xA0;Diagrams href=/guide/sequencediagrams.html/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388979 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH: build.xml project.xml xdocs/downloads.xml
Author: sandymac Date: Sun Mar 26 14:45:09 2006 New Revision: 388979 URL: http://svn.apache.org/viewcvs?rev=388979view=rev Log: Updating to 1.3-rc4 Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml?rev=388979r1=388978r2=388979view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml Sun Mar 26 14:45:09 2006 @@ -39,7 +39,7 @@ property name=name value=commons-pool/ property name=title value=Jakarta Commons Object Pooling Package/ - property name=version value=1.3-rc3/ + property name=version value=1.3-rc4/ property name=package value=org.apache.commons.pool.*/ property name=src.dir value=${basedir}/src/ Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml?rev=388979r1=388978r2=388979view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Sun Mar 26 14:45:09 2006 @@ -21,7 +21,7 @@ groupIdcommons-pool/groupId artifactIdcommons-pool/artifactId inceptionYear2001/inceptionYear - currentVersion1.3-rc3/currentVersion + currentVersion1.3-rc4/currentVersion shortDescriptionCommons Object Pooling Library/shortDescription descriptionCommons Object Pooling Library/description logo/images/pool-logo-white.png/logo Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml?rev=388979r1=388978r2=388979view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml Sun Mar 26 14:45:09 2006 @@ -25,7 +25,7 @@ section name=Releases pThe following releases are available:/p ul - liRelease 1.3 - ## March 2006 - a href=release-notes-1.3.html(release notes)/a/li + liRelease 1.3 - ## April 2006 - a href=release-notes-1.3.html(release notes)/a/li liRelease 1.2 - 7 June 2004 - a href=release-notes-1.2.html(release notes)/a/li liRelease 1.1 - 20 October 2003 - a href=release-notes-1.1.html(release notes)/a/li liRelease 1.0.1 - 12 August 2002/li - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388985 - /jakarta/commons/proper/pool/tags/POOL_1_3_RC4/
Author: sandymac Date: Sun Mar 26 15:12:03 2006 New Revision: 388985 URL: http://svn.apache.org/viewcvs?rev=388985view=rev Log: Tagging 1.3-rc4 Added: jakarta/commons/proper/pool/tags/POOL_1_3_RC4/ - copied from r388984, jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r389017 - /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt
Author: sandymac Date: Sun Mar 26 20:21:03 2006 New Revision: 389017 URL: http://svn.apache.org/viewcvs?rev=389017view=rev Log: Fixed reference to io from a copy/paste of the release notes as a template. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt?rev=389017r1=389016r2=389017view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt Sun Mar 26 20:21:03 2006 @@ -30,10 +30,10 @@ Open source works best when you give feedback: http://jakarta.apache.org/commons/pool/ -Please direct all bug reports to Bugzilla (prefix bug reports by [io]) +Please direct all bug reports to Bugzilla (prefix bug reports by [Pool]) http://issues.apache.org/bugzilla/buglist.cgi?product=Commonscomponent=Pool -Or subscribe to the commons-user mailing list (prefix emails by [io]) +Or subscribe to the commons-user mailing list (prefix emails by [Pool]) http://jakarta.apache.org/site/mail.html The Commons-Pool Team - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388727 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite: EvictorLender.java IdleEvictorLender.java InvalidEvictorLender.java
Author: sandymac Date: Sat Mar 25 00:01:42 2006 New Revision: 388727 URL: http://svn.apache.org/viewcvs?rev=388727view=rev Log: Made idle object eviction synchronize on just the one idle object and not on the whole pool. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/IdleEvictorLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java?rev=388727r1=388726r2=388727view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java Sat Mar 25 00:01:42 2006 @@ -60,8 +60,10 @@ final EvictorReference ref = (EvictorReference)super.borrow(); Object obj = null; if (ref != null) { -obj = ref.get(); -ref.clear(); +synchronized (ref) { +obj = ref.get(); +ref.clear(); +} } return obj; } @@ -92,7 +94,7 @@ final Iterator iter = super.listIterator(); while (iter.hasNext()) { final EvictorReference ref = (EvictorReference)iter.next(); -if (ref.get() == null) { +if (ref != null ref.get() == null) { iter.remove(); } } @@ -124,6 +126,9 @@ /** * This is designed to mimick the [EMAIL PROTECTED] Reference} api. * The only reason a [EMAIL PROTECTED] Reference} subclass isn't used is there is no StrongReference implementation. + * Because evictors run in a different thread, implementations must be thread safe and callers need to + * synchronize on the codeEvictorReference/code if they need to call more than one method in a thread + * safe manner. */ protected interface EvictorReference extends LenderReference { /** Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/IdleEvictorLender.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/IdleEvictorLender.java?rev=388727r1=388726r2=388727view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/IdleEvictorLender.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/IdleEvictorLender.java Sat Mar 25 00:01:42 2006 @@ -100,15 +100,19 @@ } public Object get() { -return referant; +synchronized (this) { +return referant; +} } public void clear() { -task.cancel(); -if (referant instanceof EvictorReference) { -((EvictorReference)referant).clear(); +synchronized (this) { +task.cancel(); +if (referant instanceof EvictorReference) { +((EvictorReference)referant).clear(); +} +referant = null; } -referant = null; } /** @@ -120,8 +124,8 @@ * Evict the idle object. */ public void run() { -synchronized(getObjectPool().getPool()) { -referant = null; +synchronized(IdleEvictorReference.this) { +clear(); } } } Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java?rev=388727r1=388726r2=388727view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java Sat Mar 25 00:01:42 2006 @@ -113,15 +113,19 @@ } public Object get() { -return referant; +synchronized (this) { +return referant; +} } public void clear() { -task.cancel(); -if (referant instanceof
svn commit: r388728 - in /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool: composite/TestCompositeObjectPool.java impl/TestSoftRefOutOfMemory.java
Author: sandymac Date: Sat Mar 25 00:27:52 2006 New Revision: 388728 URL: http://svn.apache.org/viewcvs?rev=388728view=rev Log: Improve robustness of memory pressure tests. Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestSoftRefOutOfMemory.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java?rev=388728r1=388727r2=388728view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java Sat Mar 25 00:27:52 2006 @@ -421,7 +421,11 @@ List garbage = new LinkedList(); Runtime runtime = Runtime.getRuntime(); while (pool.getNumIdle() 0) { -garbage.add(new byte[Math.min(1024 * 1024, (int)runtime.freeMemory()/4)]); +try { +garbage.add(new byte[Math.min(1024 * 1024, (int)runtime.freeMemory()/2)]); +} catch (OutOfMemoryError oome) { +System.gc(); +} System.gc(); } garbage.clear(); Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestSoftRefOutOfMemory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestSoftRefOutOfMemory.java?rev=388728r1=388727r2=388728view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestSoftRefOutOfMemory.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestSoftRefOutOfMemory.java Sat Mar 25 00:27:52 2006 @@ -62,7 +62,11 @@ final List garbage = new LinkedList(); final Runtime runtime = Runtime.getRuntime(); while (pool.getNumIdle() 0) { -garbage.add(new byte[Math.min(1024 * 1024, (int)runtime.freeMemory()/4)]); +try { +garbage.add(new byte[Math.min(1024 * 1024, (int)runtime.freeMemory()/2)]); +} catch (OutOfMemoryError oome) { +System.gc(); +} System.gc(); } garbage.clear(); @@ -93,7 +97,11 @@ final List garbage = new LinkedList(); final Runtime runtime = Runtime.getRuntime(); while (pool.getNumIdle() 0) { -garbage.add(new byte[Math.min(1024 * 1024, (int)runtime.freeMemory()/4)]); +try { +garbage.add(new byte[Math.min(1024 * 1024, (int)runtime.freeMemory()/2)]); +} catch (OutOfMemoryError oome) { +System.gc(); +} System.gc(); } garbage.clear(); @@ -120,7 +128,11 @@ final List garbage = new LinkedList(); final Runtime runtime = Runtime.getRuntime(); while (pool.getNumIdle() 0) { -garbage.add(new byte[Math.min(1024 * 1024, (int)runtime.freeMemory()/4)]); +try { +garbage.add(new byte[Math.min(1024 * 1024, (int)runtime.freeMemory()/2)]); +} catch (OutOfMemoryError oome) { +System.gc(); +} System.gc(); } garbage.clear(); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388729 - /jakarta/commons/proper/pool/tags/POOL_1_3_RC3/
Author: sandymac Date: Sat Mar 25 00:30:54 2006 New Revision: 388729 URL: http://svn.apache.org/viewcvs?rev=388729view=rev Log: Tagging 1.3-rc3 Added: jakarta/commons/proper/pool/tags/POOL_1_3_RC3/ - copied from r388728, jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388880 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite: CompositeObjectPool.java GrowManager.java
Author: sandymac Date: Sat Mar 25 23:13:22 2006 New Revision: 30 URL: http://svn.apache.org/viewcvs?rev=30view=rev Log: Detect when making new objects is relatively slow or expensive. When it is, try to anticipate demand and create idle objects while allowing concurrent pool access. The idea came from a discussion with Peter Steijn on ways to reduce pool latency. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java?rev=30r1=388879r2=30view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java Sat Mar 25 23:13:22 2006 @@ -179,10 +179,10 @@ */ public void addObject() throws Exception { assertOpen(); +final Object obj = factory.makeObject(); +factory.passivateObject(obj); synchronized (pool) { -final Object obj = factory.makeObject(); -factory.passivateObject(obj); -// if the pool is closed, discard returned objects +// if the pool was closed between the asserOpen and the synchronize then discard returned objects if (isOpen()) { manager.returnToPool(obj); } else { Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java?rev=30r1=388879r2=30view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java Sat Mar 25 23:13:22 2006 @@ -19,6 +19,8 @@ import org.apache.commons.pool.PoolableObjectFactory; import java.io.Serializable; +import java.util.TimerTask; +import java.util.Timer; /** * Grows the pool automatically when it is exhausted. @@ -33,6 +35,11 @@ final class GrowManager extends AbstractManager implements Serializable { private static final long serialVersionUID = 1225746308358794900L; +private static final Timer PREFILL_TIMER = CompositeObjectPool.COMPOSITE_TIMER; + +private final Object avgLock = new Object(); +private long activateAvg = 0; +private long makeAvg = 0; /** * Retreives the next object from the pool, creating new objects if the pool has been exhausted. @@ -43,6 +50,8 @@ public Object nextFromPool() throws Exception { assert Thread.holdsLock(objectPool.getPool()); Object obj = null; + +final long startActivateTime = System.currentTimeMillis(); // Drain until good or empty while (objectPool.getLender().size() 0 obj == null) { obj = objectPool.getLender().borrow(); @@ -65,10 +74,15 @@ } } } - -if (obj == null) { +if (obj != null) { +updateActivateTimings(startActivateTime, System.currentTimeMillis()); +} else { +final long startMakeTime = System.currentTimeMillis(); obj = objectPool.getFactory().makeObject(); +updateMakeTimings(startMakeTime, System.currentTimeMillis()); } + +schedulePrefill(); return obj; } @@ -93,7 +107,74 @@ return obj; } +/** + * Update the moving average of how long it takes to activate and validate idle objects. + * @param start start of activation and validation + * @param end end of activation and validation + */ +private void updateActivateTimings(final long start, final long end) { +final long elapsed = end - start; +if (elapsed 0L) { +synchronized (avgLock) { +activateAvg = (activateAvg * 9L + elapsed) / 10L; +} +} +} + +/** + * Update the moving average of how long it takes to make a new objects. + * @param start start of makeObject + * @param end end of makeObject + */ +private void updateMakeTimings(final long start, final long end) { +final long elapsed = end - start; +if (elapsed 0L) { +synchronized (avgLock) { +makeAvg = (makeAvg * 9L + elapsed) / 10L
svn commit: r388571 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH: RELEASE-NOTES.txt build.xml project.xml
Author: sandymac Date: Fri Mar 24 08:33:14 2006 New Revision: 388571 URL: http://svn.apache.org/viewcvs?rev=388571view=rev Log: Added RELEASE-NOTES.txt and updated to rc3 Added: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt (with props) Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Added: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt?rev=388571view=auto == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt (added) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt Fri Mar 24 08:33:14 2006 @@ -0,0 +1,39 @@ +$Id$ + +Commons Pool Package + Version 1.3 + Release Notes + +Full Release Notes can be found online at +http://jakarta.apache.org/commons/pool/release-notes-1.3.html +or in the binary distrobution in the docs/release-notes-1.3.html + + +Compatibility with 1.2 +-- + +Binary compatible - Yes + +Source compatible - Yes + +Semantic compatible - Yes* + + +* GenericObjectPool and GenericKeyedObjectPool have always + been documented to be a FIFO but it was actually + implemented as a LIFO. Code that depends on the previous + LIFO behavior may have issues. + + +Feedback + +Open source works best when you give feedback: +http://jakarta.apache.org/commons/pool/ + +Please direct all bug reports to Bugzilla (prefix bug reports by [io]) +http://issues.apache.org/bugzilla/buglist.cgi?product=Commonscomponent=Pool + +Or subscribe to the commons-user mailing list (prefix emails by [io]) +http://jakarta.apache.org/site/mail.html + +The Commons-Pool Team \ No newline at end of file Propchange: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt -- svn:eol-style = native Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml?rev=388571r1=388570r2=388571view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml Fri Mar 24 08:33:14 2006 @@ -39,7 +39,7 @@ property name=name value=commons-pool/ property name=title value=Jakarta Commons Object Pooling Package/ - property name=version value=1.3-rc2/ + property name=version value=1.3-rc3/ property name=package value=org.apache.commons.pool.*/ property name=src.dir value=${basedir}/src/ Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml?rev=388571r1=388570r2=388571view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Fri Mar 24 08:33:14 2006 @@ -21,7 +21,7 @@ groupIdcommons-pool/groupId artifactIdcommons-pool/artifactId inceptionYear2001/inceptionYear - currentVersion1.3-rc2/currentVersion + currentVersion1.3-rc3/currentVersion shortDescriptionCommons Object Pooling Library/shortDescription descriptionCommons Object Pooling Library/description logo/images/pool-logo-white.png/logo - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388573 - /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt
Author: sandymac Date: Fri Mar 24 08:34:40 2006 New Revision: 388573 URL: http://svn.apache.org/viewcvs?rev=388573view=rev Log: updated svn:keywords property Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt (props changed) Propchange: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/RELEASE-NOTES.txt -- svn:keywords = Date Author Id Revision HeadURL - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388578 - /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml
Author: sandymac Date: Fri Mar 24 08:53:54 2006 New Revision: 388578 URL: http://svn.apache.org/viewcvs?rev=388578view=rev Log: include RELEASE-NOTES.txt in dist archives. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml?rev=388578r1=388577r2=388578view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml Fri Mar 24 08:53:54 2006 @@ -26,6 +26,7 @@ ant:copy todir=${maven.dist.bin.assembly.dir} ant:fileset dir=. ant:include name=NOTICE.txt/ +ant:include name=RELEASE-NOTES.txt/ /ant:fileset /ant:copy @@ -45,6 +46,7 @@ ant:copy todir=${maven.dist.src.assembly.dir} ant:fileset dir=. ant:include name=NOTICE.txt/ +ant:include name=RELEASE-NOTES.txt/ ant:include name=build.properties.sample/ /ant:fileset /ant:copy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388619 - in /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool: ./ composite/ impl/
Author: sandymac Date: Fri Mar 24 11:51:47 2006 New Revision: 388619 URL: http://svn.apache.org/viewcvs?rev=388619view=rev Log: unit test improvements and refactoring Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestSoftRefOutOfMemory.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestSoftReferenceObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseObjectPool.java?rev=388619r1=388618r2=388619view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseObjectPool.java Fri Mar 24 11:51:47 2006 @@ -16,7 +16,6 @@ package org.apache.commons.pool; import junit.framework.Test; -import junit.framework.TestCase; import junit.framework.TestSuite; /** @@ -24,7 +23,9 @@ * @author Sandy McArthur * @version $Revision$ $Date$ */ -public class TestBaseObjectPool extends TestCase { +public class TestBaseObjectPool extends TestObjectPool { +private ObjectPool _pool = null; + public TestBaseObjectPool(String testName) { super(testName); } @@ -33,6 +34,41 @@ return new TestSuite(TestBaseObjectPool.class); } +protected ObjectPool makeEmptyPool(int mincapacity) { +if (this.getClass() != TestBaseObjectPool.class) { +throw new AssertionError(Subclasses of TestBaseObjectPool must reimplement this method.); +} +throw new UnsupportedOperationException(BaseObjectPool isn't a complete implementation.); +} + +protected ObjectPool makeEmptyPool(final PoolableObjectFactory factory) { +if (this.getClass() != TestBaseObjectPool.class) { +throw new AssertionError(Subclasses of TestBaseObjectPool must reimplement this method.); +} +throw new UnsupportedOperationException(BaseObjectPool isn't a complete implementation.); +} + +protected Object getNthObject(final int n) { +if (this.getClass() != TestBaseObjectPool.class) { +throw new AssertionError(Subclasses of TestBaseObjectPool must reimplement this method.); +} +throw new UnsupportedOperationException(BaseObjectPool isn't a complete implementation.); +} + +protected boolean isLifo() { +if (this.getClass() != TestBaseObjectPool.class) { +throw new AssertionError(Subclasses of TestBaseObjectPool must reimplement this method.); +} +return false; +} + +protected boolean isFifo() { +if (this.getClass() != TestBaseObjectPool.class) { +throw new AssertionError(Subclasses of TestBaseObjectPool must reimplement this method.); +} +return false; +} + // tests public void testUnsupportedOperations() throws Exception { ObjectPool pool = new BaseObjectPool() { @@ -83,5 +119,160 @@ pool.close(); pool.close(); // should not error as of Pool 2.0. +} + +public void testBaseBorrow() throws Exception { +try { +_pool = makeEmptyPool(3); +} catch(UnsupportedOperationException e) { +return; // skip this test if unsupported +} +assertEquals(getNthObject(0),_pool.borrowObject()); +assertEquals(getNthObject(1),_pool.borrowObject()); +assertEquals(getNthObject(2),_pool.borrowObject()); +} + +public void testBaseAddObject() throws Exception { +try { +_pool = makeEmptyPool(3); +} catch(UnsupportedOperationException e) { +return; // skip this test if unsupported +} +try { +assertEquals(0,_pool.getNumIdle()); +assertEquals(0,_pool.getNumActive()); +_pool.addObject(); +assertEquals(1,_pool.getNumIdle()); +assertEquals(0,_pool.getNumActive()); +Object obj = _pool.borrowObject(); +assertEquals(getNthObject(0),obj); +assertEquals(0,_pool.getNumIdle()); +assertEquals(1,_pool.getNumActive()); +_pool.returnObject(obj); +assertEquals(1,_pool.getNumIdle
svn commit: r388706 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/composite/CompositeObjectPool.java test/org/apache/commons/pool/composite/TestCompositeObjectPool.java
Author: sandymac Date: Fri Mar 24 21:30:47 2006 New Revision: 388706 URL: http://svn.apache.org/viewcvs?rev=388706view=rev Log: Updates TestCompositeObjectPool to use Pool 2 contract tests in TestObjectPool. CompositeObjectPool.addObject shouldn't swallow exceptions from PoolableObjectFactory.passivateObject Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java?rev=388706r1=388705r2=388706view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java Fri Mar 24 21:30:47 2006 @@ -174,8 +174,14 @@ assertOpen(); synchronized (pool) { final Object obj = factory.makeObject(); -tracker.borrowed(obj); // pretend it was borrowed so it can be returned. -returnObject(obj); +factory.passivateObject(obj); +// if the pool is closed, discard returned objects +if (isOpen()) { +manager.returnToPool(obj); +} else { +tracker.borrowed(obj); // pretend it was borrowed so it can be invalidated. +invalidateObject(obj); +} } } @@ -243,10 +249,12 @@ } synchronized (pool) { -tracker.returned(obj); // if the pool is closed, discard returned objects if (isOpen()) { +tracker.returned(obj); manager.returnToPool(obj); +} else { +invalidateObject(obj); } } } Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java?rev=388706r1=388705r2=388706view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java Fri Mar 24 21:30:47 2006 @@ -16,17 +16,17 @@ package org.apache.commons.pool.composite; -import junit.framework.TestCase; import org.apache.commons.pool.BasePoolableObjectFactory; +import org.apache.commons.pool.ObjectPool; import org.apache.commons.pool.PoolableObjectFactory; import org.apache.commons.pool.TestObjectPool; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; import java.util.NoSuchElementException; import java.util.SortedSet; import java.util.TreeSet; -import java.util.List; -import java.util.ArrayList; -import java.util.LinkedList; /** * Test [EMAIL PROTECTED] CompositeObjectPool} and it's components. @@ -35,9 +35,13 @@ * @since #.# * @version $Revision$ $Date$ */ -public class TestCompositeObjectPool extends TestCase { +public class TestCompositeObjectPool extends TestObjectPool { private CompositeObjectPool pool = null; +public TestCompositeObjectPool(final String testName) { +super(testName); +} + public void setUp() throws Exception { } @@ -46,6 +50,11 @@ pool.close(); pool = null; } +} + +protected ObjectPool makeEmptyPool(final PoolableObjectFactory factory) { +final CompositeObjectPoolFactory copf = new CompositeObjectPoolFactory(factory); +return copf.createPool(); } // Test Managers -- - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388715 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite: EvictorLender.java InvalidEvictorLender.java Lender.java SoftLender.java
Author: sandymac Date: Fri Mar 24 23:00:41 2006 New Revision: 388715 URL: http://svn.apache.org/viewcvs?rev=388715view=rev Log: Fixed a bug where the InvalidEvictorLender didn't properly unwrap objects before passing them to the PoolableObjectFactory. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Lender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/SoftLender.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java?rev=388715r1=388714r2=388715view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java Fri Mar 24 23:00:41 2006 @@ -130,7 +130,7 @@ * This is designed to mimick the [EMAIL PROTECTED] Reference} api. * The only reason a [EMAIL PROTECTED] Reference} subclass isn't used is there is no StrongReference implementation. */ -protected interface EvictorReference { +protected interface EvictorReference extends LenderReference { /** * Returns this evictor reference's referent. * Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java?rev=388715r1=388714r2=388715view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java Fri Mar 24 23:00:41 2006 @@ -144,16 +144,23 @@ final PoolableObjectFactory factory = getObjectPool().getFactory(); synchronized(getObjectPool().getPool()) { -if (referant == null) { +// Unwrap any LenderReferences +Object r = referant; +while (r instanceof LenderReference) { +r = ((LenderReference)r).get(); +} + +if (r == null) { cancel(); return; } + try { -factory.activateObject(referant); -if (factory.validateObject(referant)) { -factory.passivateObject(referant); +factory.activateObject(r); +if (factory.validateObject(r)) { +factory.passivateObject(r); } else { -factory.destroyObject(referant); +factory.destroyObject(r); clear(); } } catch (Exception e) { Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Lender.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Lender.java?rev=388715r1=388714r2=388715view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Lender.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Lender.java Fri Mar 24 23:00:41 2006 @@ -17,6 +17,7 @@ package org.apache.commons.pool.composite; import java.util.ListIterator; +import java.lang.ref.Reference; /** * Handles how idle objects are added and removed from the idle object pool. @@ -75,4 +76,14 @@ * @return the size of the idle object pool the lender is accessing. */ public int size(); + +/** + * Like a [EMAIL PROTECTED] Reference} but allows a strong reference. + */ +interface LenderReference { +/** + * Like [EMAIL PROTECTED] Reference#get}. + */ +public Object get(); +} } Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/SoftLender.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/SoftLender.java?rev=388715r1=388714r2=388715view=diff
svn commit: r388716 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite: CompositeObjectPool.java EvictorLender.java
Author: sandymac Date: Fri Mar 24 23:03:00 2006 New Revision: 388716 URL: http://svn.apache.org/viewcvs?rev=388716view=rev Log: Move the shared timer to the CompositeObjectPool class. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java?rev=388716r1=388715r2=388716view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java Fri Mar 24 23:03:00 2006 @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.Timer; /** * An object pool who's behavior and functionality is determined by composition. @@ -51,6 +52,12 @@ final class CompositeObjectPool implements ObjectPool, Cloneable, Serializable { private static final long serialVersionUID = -5874499972956918952L; + +/** + * Shared Timer for use by various parts of the composite implementation. + * XXX: When Java 1.5 is acceptable convert this to a java.util.concurrent.ScheduledThreadPoolExecutor + */ +static final Timer COMPOSITE_TIMER = new Timer(true); /** * Factory used by this pool. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java?rev=388716r1=388715r2=388716view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java Fri Mar 24 23:03:00 2006 @@ -35,11 +35,6 @@ private static final long serialVersionUID = 4040627184050939757L; /** - * Shared evictor timer used by all [EMAIL PROTECTED] EvictorLender}s. - */ -private static final Timer EVICTOR = new Timer(true); - -/** * If this evictor delegates to another evictor then don't bother pruning when [EMAIL PROTECTED] #size()} is called because the * delegate will do that too. */ @@ -123,7 +118,7 @@ */ protected final Timer getTimer() { // Future version may want to manage more than one TimerTask. For now one is fine. -return EVICTOR; +return CompositeObjectPool.COMPOSITE_TIMER; } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388382 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/composite/ test/org/apache/commons/pool/composite/
Author: sandymac Date: Thu Mar 23 21:30:41 2006 New Revision: 388382 URL: http://svn.apache.org/viewcvs?rev=388382view=rev Log: many JavaDoc clean ups behavior chages for pool 2 contracts key handling fixes for close and clear methods in CompositeKeyedObjectPool Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/DelegateManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/IdleLimitManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/KeyedPoolableObjectFactoryAdapter.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Manager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/NullTracker.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Tracker.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java?rev=388382r1=388381r2=388382view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java Thu Mar 23 21:30:41 2006 @@ -70,9 +70,8 @@ * Return an object to the pool. Object will be [EMAIL PROTECTED] PoolableObjectFactory#passivateObject(Object) passivated}. * * @param obj the object to return to the pool. - * @throws Exception as thrown by [EMAIL PROTECTED] PoolableObjectFactory#passivateObject(Object)}. */ -public void returnToPool(final Object obj) throws Exception { +public void returnToPool(final Object obj) { assert Thread.holdsLock(objectPool.getPool()); objectPool.getLender().repay(obj); } Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java?rev=388382r1=388381r2=388382view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java Thu Mar 23 21:30:41 2006 @@ -106,18 +106,15 @@ } /** - * Obtain an instance from my pool - * for the specified ikey/i. - * By contract, clients MUST return - * the borrowed object using - * [EMAIL PROTECTED] #returnObject(Object,Object) ttreturnObject/tt}, - * or a related method as defined in an implementation - * or sub-interface, - * using a ikey/i that is equivalent to the one used to + * Obtain an instance from this pool for the specified codekey/code. + * By contract, clients strongmust/strong return the borrowed object using + * [EMAIL PROTECTED] #returnObject(Object,Object) codereturnObject/code}, + * or a related method as defined in an implementation or sub-interface, + * using a codekey/code that is equivalent to the one used to * borrow the instance in the first place. * * @param key the key used to obtain the object - * @return an instance from my pool. + * @return an instance from this pool. * @throws Exception if there is an unexpected problem. */ public Object borrowObject(final Object key) throws Exception { @@ -136,26 +133,26 @@ } /** - * Return an instance to my pool. - * By contract, iobj/i MUST have been obtained - * using [EMAIL PROTECTED] #borrowObject(Object) ttborrowObject/tt} - * or a related method as defined in an implementation - * or sub-interface - * using a ikey/i that is equivalent to the one used to - * borrow the ttObject/tt in the first place. + * Return an instance to this pool. By contract, codeobj/code + * strongmust/strong have been obtained using + * [EMAIL PROTECTED] #borrowObject borrowObject} or a related method as defined + * in an implementation or sub-interface using a codekey/code that + * is equivalent to the one used to borrow the codeObject/code
svn commit: r387888 - in /jakarta/commons/proper/pool: branches/1_3_RELEASE_BRANCH/maven.xml trunk/maven.xml
Author: sandymac Date: Wed Mar 22 08:46:52 2006 New Revision: 387888 URL: http://svn.apache.org/viewcvs?rev=387888view=rev Log: include *filename in the generated .md5 files. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml jakarta/commons/proper/pool/trunk/maven.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml?rev=387888r1=387887r2=387888view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml Wed Mar 22 08:46:52 2006 @@ -66,15 +66,27 @@ postGoal name=dist:build-bin j:set var=distDir value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.dist.dir')}/ j:set var=finalName value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.final.name')}/ -ant:checksum file=${distDir}/${finalName}.tar.gz algorithm=MD5 fileext=.md5/ -ant:checksum file=${distDir}/${finalName}.zip algorithm=MD5 fileext=.md5/ + +!-- create checksum for binary tar.gz -- +ant:checksum file=${distDir}/${finalName}.tar.gz property=tar.gz.md5/ +ant:echo message=${tar.gz.md5} *${finalName}.tar.gz file=${distDir}/${finalName}.tar.gz.md5 / + +!-- create checksum for binary zip -- +ant:checksum file=${distDir}/${finalName}.zip property=zip.md5/ +ant:echo message=${zip.md5} *${finalName}.zip file=${distDir}/${finalName}.zip.md5 / /postGoal postGoal name=dist:build-src j:set var=distDir value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.dist.dir')}/ j:set var=finalName value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.final.name')}/ -ant:checksum file=${distDir}/${finalName}-src.tar.gz algorithm=MD5 fileext=.md5/ -ant:checksum file=${distDir}/${finalName}-src.zip algorithm=MD5 fileext=.md5/ + +!-- create checksum for source tar.gz -- +ant:checksum file=${distDir}/${finalName}-src.tar.gz property=src.tar.gz.md5/ +ant:echo message=${src.tar.gz.md5} *${finalName}-src.tar.gz file=${distDir}/${finalName}-src.tar.gz.md5 / + +!-- create checksum for source zip -- +ant:checksum file=${distDir}/${finalName}-src.zip property=src.zip.md5/ +ant:echo message=${src.zip.md5} *${finalName}-src.zip file=${distDir}/${finalName}-src.zip.md5 / /postGoal /project Modified: jakarta/commons/proper/pool/trunk/maven.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/maven.xml?rev=387888r1=387887r2=387888view=diff == --- jakarta/commons/proper/pool/trunk/maven.xml (original) +++ jakarta/commons/proper/pool/trunk/maven.xml Wed Mar 22 08:46:52 2006 @@ -65,15 +65,27 @@ postGoal name=dist:build-bin j:set var=distDir value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.dist.dir')}/ j:set var=finalName value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.final.name')}/ -ant:checksum file=${distDir}/${finalName}.tar.gz algorithm=MD5 fileext=.md5/ -ant:checksum file=${distDir}/${finalName}.zip algorithm=MD5 fileext=.md5/ + +!-- create checksum for binary tar.gz -- +ant:checksum file=${distDir}/${finalName}.tar.gz property=tar.gz.md5/ +ant:echo message=${tar.gz.md5} *${finalName}.tar.gz file=${distDir}/${finalName}.tar.gz.md5 / + +!-- create checksum for binary zip -- +ant:checksum file=${distDir}/${finalName}.zip property=zip.md5/ +ant:echo message=${zip.md5} *${finalName}.zip file=${distDir}/${finalName}.zip.md5 / /postGoal postGoal name=dist:build-src j:set var=distDir value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.dist.dir')}/ j:set var=finalName value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.final.name')}/ -ant:checksum file=${distDir}/${finalName}-src.tar.gz algorithm=MD5 fileext=.md5/ -ant:checksum file=${distDir}/${finalName}-src.zip algorithm=MD5 fileext=.md5/ + +!-- create checksum for source tar.gz -- +ant:checksum file=${distDir}/${finalName}-src.tar.gz property=src.tar.gz.md5/ +ant:echo message=${src.tar.gz.md5} *${finalName}-src.tar.gz file=${distDir}/${finalName}-src.tar.gz.md5 / + +!-- create checksum for source zip -- +ant:checksum file=${distDir}/${finalName}-src.zip property=src.zip.md5/ +ant:echo message=${src.zip.md5} *${finalName}-src.zip file=${distDir}/${finalName}-src.zip.md5 / /postGoal /project - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r387892 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH: README.txt xdocs/release-notes-1.3.xml
Author: sandymac Date: Wed Mar 22 09:13:02 2006 New Revision: 387892 URL: http://svn.apache.org/viewcvs?rev=387892view=rev Log: Updated README with a release notes summary. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/README.txt jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.3.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/README.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/README.txt?rev=387892r1=387891r2=387892view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/README.txt (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/README.txt Wed Mar 22 09:13:02 2006 @@ -1,2 +1,23 @@ See http://jakarta.apache.org/commons/pool/ for additional and up-to-date information on Commons Pool. + +Pool 1.3 is largely a bug fix only release. For a complete set of release +notes see: http://jakarta.apache.org/commons/pool/release-notes-1.3.html + +Notable Bugfixes since 1.2: + +* GenericObjectPools are now a FIFOs. Previously they was documented as such + but actually implemented as a LIFOs. + +* Synchronizations improvements across all implementations. + +Notable Additions since 1.2: + +* GenericObjectPool introduced a SoftMinEvictableIdleTimeMillis property + which can be used to evict idle objects so long as their eviction + would maintain the requested minIdle count. + +* PoolUtils contains a number of utility methods to decorate pools. + +* The one dependency on Commons Collections has been removed (okay, + technically a deletion) and the only requirement is Java 1.3 or above. \ No newline at end of file Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.3.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.3.xml?rev=387892r1=387891r2=387892view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.3.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.3.xml Wed Mar 22 09:13:02 2006 @@ -47,6 +47,11 @@ /li li p +The PoolUtils class with a number static decorator methods has been added. +/p +/li +li +p The following issues were resolved since v1.2: (see Bugzilla for complete description) /p table - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r387977 - /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/README.txt
Author: sandymac Date: Wed Mar 22 16:16:19 2006 New Revision: 387977 URL: http://svn.apache.org/viewcvs?rev=387977view=rev Log: Added blurb about non-determinist unit tests for the source distribution. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/README.txt Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/README.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/README.txt?rev=387977r1=387976r2=387977view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/README.txt (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/README.txt Wed Mar 22 16:16:19 2006 @@ -20,4 +20,15 @@ * PoolUtils contains a number of utility methods to decorate pools. * The one dependency on Commons Collections has been removed (okay, - technically a deletion) and the only requirement is Java 1.3 or above. \ No newline at end of file + technically a deletion) and the only requirement is Java 1.3 or above. + +Miscellaneous issues: + +Some of the unit tests may fail spuriously because they are trying to test +behavior that depends on the thread scheduler or the garbage collector. If +you get a test failure that has evictor or thread in the test name, +please run this test a few times before reporting a bug report for it. If +you know how to make one of these unit tests better, please submit a patch. + + +The Apache Jakarta Commons Team, March 2006 \ No newline at end of file - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388017 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite: CompositeKeyedObjectPoolFactory.java CompositeObjectPoolFactory.java
Author: sandymac Date: Wed Mar 22 19:56:22 2006 New Revision: 388017 URL: http://svn.apache.org/viewcvs?rev=388017view=rev Log: Renamed maxActive and maxIdle to maxActivePerKey and maxIdlePerKey properties in CompositeKeyedObjectPoolFactory so their name fit thier function. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java?rev=388017r1=388016r2=388017view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java Wed Mar 22 19:56:22 2006 @@ -236,44 +236,46 @@ } /** - * Maximum number of idle objects in the pool. + * Maximum number of idle objects in the pool for each key. * A negative value means unlimited. * Zero means the pool will behave like a factory. * A positve value limits the number of idle objects. * - * @return a non-negative value is the maximum number of idle objects in the pool, else unlimited. + * @return a non-negative value is the maximum number of idle objects in the pool for each key, else unlimited. */ -public int getMaxIdle() { +public int getMaxIdlePerKey() { return factory.getMaxIdle(); } /** - * Set the maximum number of idle objects in the pool. + * Set the maximum number of idle objects in the pool for each key. * A negative value means unlimited. * Zero means the pool will behave like a factory. * A positve value limits the number of idle objects. * - * @param maxIdle a non-negative value is the maximum number of idle objects in the pool, else unlimited. + * @param maxIdle a non-negative value is the maximum number of idle objects in the pool for each key, else unlimited. */ -public void setMaxIdle(final int maxIdle) { +public void setMaxIdlePerKey(final int maxIdle) { factory.setMaxIdle(maxIdle); } /** - * Maximum number of active objects borrowed from this pool. A non-positive value means there is no limit. + * Maximum number of active objects borrowed from this pool for each key. + * A non-positive value means there is no limit. * - * @return if gt; 0 the the maximum number of active objects else unlimited. + * @return if gt; 0 the the maximum number of active objects for each key else unlimited. */ -public int getMaxActive() { +public int getMaxActivePerKey() { return factory.getMaxActive(); } /** - * Set the maximum active objects borrowed from this pool. Any non-positive value means there is no limit. + * Set the maximum number of active objects borrowed from this pool for each key. + * Any non-positive value means there is no limit. * - * @param maxActive the limit of active objects from the pool or lt;= 0 for unlimited. + * @param maxActive the limit for each key of active objects from the pool or lt;= 0 for unlimited. */ -public void setMaxActive(final int maxActive) { +public void setMaxActivePerKey(final int maxActive) { factory.setMaxActive(maxActive); } Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java?rev=388017r1=388016r2=388017view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Wed Mar 22 19:56:22 2006 @@ -526,7 +526,7 @@ } /** - * Set the maximum objects associated with this pool. Any non-positive value means there is no limit. + * Set the maximum number of objects associated with this pool. Any non-positive value means there is no limit. * * @param maxActive the limit of active and idle objects in the pool or lt;= 0 for no limit. */ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r388022 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/composite/ test/org/apache/commons/pool/composite/
Author: sandymac Date: Wed Mar 22 20:01:52 2006 New Revision: 388022 URL: http://svn.apache.org/viewcvs?rev=388022view=rev Log: added svn:keywords and svn:eol-style properties Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractLender.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ActiveLimitManager.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowType.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/DebugTracker.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/DelegateLender.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/DelegateManager.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ExhaustionBehavior.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailLimitManager.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FifoLender.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/IdleEvictorLender.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/IdleLimitManager.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/KeyedPoolableObjectFactoryAdapter.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Lender.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/LifoLender.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/LimitBehavior.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Manager.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/NullLender.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/NullTracker.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ReferenceTracker.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/SimpleTracker.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/SoftLender.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Tracker.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingType.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/WaitLimitManager.java (props changed) jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/package.html (props changed) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/PerformanceTest.java (props changed) jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java (props changed) Propchange: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractLender.java -- svn:eol-style = native Propchange: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractLender.java
svn commit: r388047 - /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/
Author: sandymac Date: Wed Mar 22 21:34:56 2006 New Revision: 388047 URL: http://svn.apache.org/viewcvs?rev=388047view=rev Log: JavaDoc clean ups and speeling corrections. :-) Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowType.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ExhaustionBehavior.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/IdleEvictorLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/LimitBehavior.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingType.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/WaitLimitManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/package.html Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowType.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowType.java?rev=388047r1=388046r2=388047view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowType.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowType.java Wed Mar 22 21:34:56 2006 @@ -60,7 +60,7 @@ public static final BorrowType SOFT_LIFO = new BorrowType(SOFT_LIFO); /** - * Never returns an object from the pool nor returns one to the pool. This basicly turns the pool into a factory, + * Never returns an object from the pool nor returns one to the pool. This basically turns the pool into a factory, * it may have some utility if used with [EMAIL PROTECTED] CompositeObjectPoolFactory#setMaxActive(int) maxActive}. * This is not compatible with [EMAIL PROTECTED] ExhaustionBehavior#FAIL}. */ Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java?rev=388047r1=388046r2=388047view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java Wed Mar 22 21:34:56 2006 @@ -26,12 +26,11 @@ import java.io.Serializable; /** - * [EMAIL PROTECTED] KeyedObjectPoolFactory} that builds a custom [EMAIL PROTECTED] KeyedObjectPool} via composition of custom - * [EMAIL PROTECTED] ObjectPool}s. + * codeKeyedObjectPoolFactory/code that builds an optimized custom codeKeyedObjectPool/code with the requested feature set. * - * pNote: Currently the default values and behavior is effectivly inherited from [EMAIL PROTECTED] CompositeObjectPoolFactory}, - * review it if you are uncertian about the behavior of this factory. Future verions of this factory may not inherit - * behavior from the [EMAIL PROTECTED] CompositeObjectPoolFactory}. + * pNote: Currently the default values and behavior is effectively inherited from [EMAIL PROTECTED] CompositeObjectPoolFactory}, + * review it if you are uncertain about the behavior of this factory. Future versions of this factory may not inherit + * behavior from the codeCompositeObjectPoolFactory/code. * /p * * @see CompositeObjectPoolFactory @@ -53,9 +52,9 @@ private final CompositeObjectPoolFactory factory; /** - * Create a new keyed object pool factory witht he specific keyed object factory. + * Create a new keyed object pool factory with the specified keyed poolable object factory. * - * @param factory the keyed object factory for this pool, must not be null. + * @param factory the factory for created pools, must not be codenull/code. * @throws IllegalArgumentException if codefactory/code is codenull/code. * @see #setKeyedFactory(KeyedPoolableObjectFactory) */ @@ -67,11 +66,11 @@ } /** - * Create a new keyed object pool factory with the specific object factory. This is a convenience constructor for - * when you have a [EMAIL PROTECTED] PoolableObjectFactory} but want a [EMAIL PROTECTED] KeyedObjectPool} and the - * [EMAIL PROTECTED] PoolableObjectFactory object
svn commit: r387692 - /jakarta/commons/proper/pool/trunk/project.properties
Author: sandymac Date: Tue Mar 21 18:43:01 2006 New Revision: 387692 URL: http://svn.apache.org/viewcvs?rev=387692view=rev Log: Specifiy jdiff range so maven builds. Modified: jakarta/commons/proper/pool/trunk/project.properties Modified: jakarta/commons/proper/pool/trunk/project.properties URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/project.properties?rev=387692r1=387691r2=387692view=diff == --- jakarta/commons/proper/pool/trunk/project.properties (original) +++ jakarta/commons/proper/pool/trunk/project.properties Tue Mar 21 18:43:01 2006 @@ -41,8 +41,8 @@ maven.dist.src.assembly.dir=${maven.dist.assembly.dir}/src/${maven.final.name}-src -#maven.jdiff.new.tag=CURRENT -#maven.jdiff.old.tag=POOL_1_3 +maven.jdiff.new.tag=CURRENT +maven.jdiff.old.tag=POOL_1_2 maven.jarResources.basedir=src/java maven.jar.excludes=**/package.html - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r387695 - in /jakarta/commons/proper/pool: branches/1_3_RELEASE_BRANCH/build.properties.sample trunk/build.properties.sample
Author: sandymac Date: Tue Mar 21 18:58:40 2006 New Revision: 387695 URL: http://svn.apache.org/viewcvs?rev=387695view=rev Log: Remove commons collections references. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.properties.sample jakarta/commons/proper/pool/trunk/build.properties.sample Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.properties.sample URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.properties.sample?rev=387695r1=387694r2=387695view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.properties.sample (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.properties.sample Tue Mar 21 18:58:40 2006 @@ -1,4 +1,4 @@ -# Copyright 2003-2004 The Apache Software Foundation +# Copyright 2003-2004,2006 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. @@ -12,8 +12,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -# commons-collections.jar - Commons-Collections Classpath -commons-collections.home=${basedir}/../collections/dist -commons-collections.jar=${commons-collections.home}/commons-collections.jar # junit.jar - JUnit 3.2+ Classpath junit.jar=/java/junit/junit.jar Modified: jakarta/commons/proper/pool/trunk/build.properties.sample URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/build.properties.sample?rev=387695r1=387694r2=387695view=diff == --- jakarta/commons/proper/pool/trunk/build.properties.sample (original) +++ jakarta/commons/proper/pool/trunk/build.properties.sample Tue Mar 21 18:58:40 2006 @@ -1,4 +1,4 @@ -# Copyright 2003-2004 The Apache Software Foundation +# Copyright 2003-2004,2006 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. @@ -12,8 +12,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -# commons-collections.jar - Commons-Collections Classpath -commons-collections.home=${basedir}/../collections/dist -commons-collections.jar=${commons-collections.home}/commons-collections.jar # junit.jar - JUnit 3.2+ Classpath junit.jar=/java/junit/junit.jar - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r387718 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH: build.xml maven.xml project.xml xdocs/index.xml
Author: sandymac Date: Tue Mar 21 20:54:59 2006 New Revision: 387718 URL: http://svn.apache.org/viewcvs?rev=387718view=rev Log: preping for 1.3-rc2: bummped revision, removed some broken reports, include a link to the release notes on the main page. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/index.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml?rev=387718r1=387717r2=387718view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml Tue Mar 21 20:54:59 2006 @@ -39,7 +39,7 @@ property name=name value=commons-pool/ property name=title value=Jakarta Commons Object Pooling Package/ - property name=version value=1.3-rc1/ + property name=version value=1.3-rc2/ property name=package value=org.apache.commons.pool.*/ property name=src.dir value=${basedir}/src/ Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml?rev=387718r1=387717r2=387718view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml Tue Mar 21 20:54:59 2006 @@ -45,6 +45,7 @@ ant:copy todir=${maven.dist.src.assembly.dir} ant:fileset dir=. ant:include name=NOTICE.txt/ +ant:include name=build.properties.sample/ /ant:fileset /ant:copy Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml?rev=387718r1=387717r2=387718view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Tue Mar 21 20:54:59 2006 @@ -21,7 +21,7 @@ groupIdcommons-pool/groupId artifactIdcommons-pool/artifactId inceptionYear2001/inceptionYear - currentVersion1.3-rc1/currentVersion + currentVersion1.3-rc2/currentVersion shortDescriptionCommons Object Pooling Library/shortDescription descriptionCommons Object Pooling Library/description logo/images/pool-logo-white.png/logo @@ -213,48 +213,6 @@ /properties /dependency -dependency - groupIdmaven/groupId - artifactIdmaven-changelog-plugin/artifactId - version1.9/version - urlhttp://maven.apache.org/maven-1.x/plugins/changelog//url - typeplugin/type - properties - comment - lt;stronggt;Site Onlylt;/stronggt; - v1.9 (minimum) - /comment - /properties -/dependency - -dependency - groupIdmaven/groupId - artifactIdmaven-file-activity-plugin/artifactId - version1.6/version - urlhttp://maven.apache.org/maven-1.x/plugins/file-activity//url - typeplugin/type - properties - comment - lt;stronggt;Site Onlylt;/stronggt; - v1.6 (minimum) - /comment - /properties -/dependency - -!-- This dependency isn't needed when the maven-developer-activity-plugin is disabled. -- -!-- -dependency - groupIdmaven/groupId - artifactIdmaven-developer-activity-plugin/artifactId - version1.5.1/version - urlhttp://maven.apache.org/maven-1.x/plugins/developer-activity//url - typeplugin/type - properties - comment - lt;stronggt;Site Onlylt;/stronggt; - v1.5.2 (minimum) - /comment - /properties -/dependency --- - /dependencies build @@ -283,11 +241,7 @@ /build reports -reportmaven-changelog-plugin/report reportmaven-changes-plugin/report -!-- This report is suspected not to accurate when run against the ASF repository -- -!--reportmaven-developer-activity-plugin/report-- -reportmaven-file-activity-plugin/report reportmaven-javadoc-plugin/report reportmaven-jdepend-plugin/report reportmaven-jdiff-plugin/report Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/index.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/index.xml?rev=387718r1=387717r2=387718view=diff
svn commit: r387757 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/composite/ test/org/apache/commons/pool/composite/
Author: sandymac Date: Tue Mar 21 22:33:59 2006 New Revision: 387757 URL: http://svn.apache.org/viewcvs?rev=387757view=rev Log: Copied composite pool contribution into trunk. Replaced org.mcarthur.sandy.commons.pool.composite package references with org.apache.commons.pool.composite package references. Added: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ - copied from r387741, jakarta/commons/proper/pool/contrib/composite-pool/java/org/mcarthur/sandy/commons/pool/composite/ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/ - copied from r387741, jakarta/commons/proper/pool/contrib/composite-pool/test/org/mcarthur/sandy/commons/pool/composite/ Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ActiveLimitManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/BorrowType.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/DebugTracker.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/DelegateLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/DelegateManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/EvictorLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ExhaustionBehavior.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailLimitManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FailManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/FifoLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/GrowManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/IdleEvictorLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/IdleLimitManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/InvalidEvictorLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/KeyedPoolableObjectFactoryAdapter.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Lender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/LifoLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/LimitBehavior.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Manager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/NullLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/NullTracker.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/ReferenceTracker.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/SimpleTracker.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/SoftLender.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/Tracker.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/TrackingType.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/WaitLimitManager.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/package.html jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/PerformanceTest.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/composite/TestCompositeObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractLender.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractLender.java?rev=387757r1=387741r2=387757view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/AbstractLender.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool
svn commit: r387360 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH: maven.xml project.properties project.xml xdocs/downloads.xml
Author: sandymac Date: Mon Mar 20 16:47:21 2006 New Revision: 387360 URL: http://svn.apache.org/viewcvs?rev=387360view=rev Log: Maven build related changes: Updated download link. Added JDiff report. Added maven plugin dependencies. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml?rev=387360r1=387359r2=387360view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/maven.xml Mon Mar 20 16:47:21 2006 @@ -65,15 +65,15 @@ postGoal name=dist:build-bin j:set var=distDir value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.dist.dir')}/ j:set var=finalName value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.final.name')}/ -ant:checksum file=${distDir}/${finalName}.tar.gz/ -ant:checksum file=${distDir}/${finalName}.zip/ +ant:checksum file=${distDir}/${finalName}.tar.gz algorithm=MD5 fileext=.md5/ +ant:checksum file=${distDir}/${finalName}.zip algorithm=MD5 fileext=.md5/ /postGoal postGoal name=dist:build-src j:set var=distDir value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.dist.dir')}/ j:set var=finalName value=${pom.getPluginContext('maven-dist-plugin').getVariable('maven.final.name')}/ -ant:checksum file=${distDir}/${finalName}-src.tar.gz/ -ant:checksum file=${distDir}/${finalName}-src.zip/ +ant:checksum file=${distDir}/${finalName}-src.tar.gz algorithm=MD5 fileext=.md5/ +ant:checksum file=${distDir}/${finalName}-src.zip algorithm=MD5 fileext=.md5/ /postGoal /project Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties?rev=387360r1=387359r2=387360view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties Mon Mar 20 16:47:21 2006 @@ -42,6 +42,9 @@ maven.compile.source=1.3 maven.compile.target=1.3 +maven.jdiff.new.tag=CURRENT +maven.jdiff.old.tag=POOL_1_2 + maven.jarResources.basedir=src/java maven.jar.excludes=**/package.html maven.junit.fork=true Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml?rev=387360r1=387359r2=387360view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Mon Mar 20 16:47:21 2006 @@ -163,13 +163,78 @@ dependency groupIdmaven/groupId + artifactIdmaven-plugin-plugin/artifactId + version1.7/version + urlhttp://maven.apache.org/maven-1.x/plugins/plugin//url + typeplugin/type + properties + comment + lt;stronggt;Site Onlylt;/stronggt; - v1.7 (minimum) + /comment + /properties +/dependency + +dependency + groupIdmaven/groupId + artifactIdmaven-scm-plugin/artifactId + version1.5/version + urlhttp://maven.apache.org/maven-1.x/plugins/scm//url + typeplugin/type + properties + comment + lt;stronggt;Site Onlylt;/stronggt; - v1.5 (minimum) + /comment + /properties +/dependency + +dependency + groupIdmaven/groupId + artifactIdmaven-jdiff-plugin/artifactId + version1.5/version + urlhttp://maven.apache.org/maven-1.x/plugins/jdiff//url + typeplugin/type + properties + comment + lt;stronggt;Site Onlylt;/stronggt; - v1.5 (minimum) + /comment + /properties +/dependency + +dependency + groupIdmaven/groupId + artifactIdmaven-changes-plugin/artifactId + version1.6/version + urlhttp://maven.apache.org/maven-1.x/plugins/changes//url + typeplugin/type + properties + comment + lt;stronggt;Site Onlylt;/stronggt; - v1.6 (minimum) + /comment + /properties +/dependency + +dependency + groupIdmaven/groupId artifactIdmaven-changelog-plugin/artifactId - version1.8.2/version + version1.9/version
svn commit: r387367 - /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml
Author: sandymac Date: Mon Mar 20 17:00:31 2006 New Revision: 387367 URL: http://svn.apache.org/viewcvs?rev=387367view=rev Log: grammer correction. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml?rev=387367r1=387366r2=387367view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml Mon Mar 20 17:00:31 2006 @@ -33,7 +33,7 @@ /ul br/ p -The latest release binaries and source is always available on the +The latest release binary and source releases are always available on the a href=http://jakarta.apache.org/site/downloads/downloads_commons-pool.cgi; Jakarta Commons Pool Downloads page/a. /p - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r387381 - in /jakarta/commons/proper/pool: branches/1_3_RELEASE_BRANCH/project.properties trunk/project.properties
Author: sandymac Date: Mon Mar 20 17:59:45 2006 New Revision: 387381 URL: http://svn.apache.org/viewcvs?rev=387381view=rev Log: make source archive expand to a different directory than the binary archive. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties jakarta/commons/proper/pool/trunk/project.properties Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties?rev=387381r1=387380r2=387381view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties Mon Mar 20 17:59:45 2006 @@ -42,6 +42,8 @@ maven.compile.source=1.3 maven.compile.target=1.3 +maven.dist.src.assembly.dir=${maven.dist.assembly.dir}/src/${maven.final.name}-src + maven.jdiff.new.tag=CURRENT maven.jdiff.old.tag=POOL_1_2 Modified: jakarta/commons/proper/pool/trunk/project.properties URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/project.properties?rev=387381r1=387380r2=387381view=diff == --- jakarta/commons/proper/pool/trunk/project.properties (original) +++ jakarta/commons/proper/pool/trunk/project.properties Mon Mar 20 17:59:45 2006 @@ -39,6 +39,8 @@ maven.compile.source=1.4 maven.compile.target=1.4 +maven.dist.src.assembly.dir=${maven.dist.assembly.dir}/src/${maven.final.name}-src + #maven.jdiff.new.tag=CURRENT #maven.jdiff.old.tag=POOL_1_3 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r387394 - /jakarta/commons/proper/pool/tags/POOL_1_3_RC1/
Author: sandymac Date: Mon Mar 20 19:48:11 2006 New Revision: 387394 URL: http://svn.apache.org/viewcvs?rev=387394view=rev Log: Tagging release candidate 1 for Pool 1.3 Added: jakarta/commons/proper/pool/tags/POOL_1_3_RC1/ - copied from r387392, jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r387079 - /jakarta/commons/proper/pool/trunk/KEYS
Author: sandymac Date: Sun Mar 19 16:05:08 2006 New Revision: 387079 URL: http://svn.apache.org/viewcvs?rev=387079view=rev Log: Added public PGP keys file for signing releases. Added: jakarta/commons/proper/pool/trunk/KEYS Added: jakarta/commons/proper/pool/trunk/KEYS URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/KEYS?rev=387079view=auto == --- jakarta/commons/proper/pool/trunk/KEYS (added) +++ jakarta/commons/proper/pool/trunk/KEYS Sun Mar 19 16:05:08 2006 @@ -0,0 +1,48 @@ +This file contains the PGP keys of various developers. +Please don't use them for email unless you have to. Their main +purpose is code signing. + +Users: pgp KEYS + gpg --import KEYS +Developers: +pgp -kxa your name and append it to this file. +(pgpk -ll your name pgpk -xa your name) this file. +(gpg --list-sigs your name + gpg --armor --export your name) this file. + +pub 1024D/BB0AEFAC 2006-03-19 +uid Sandy McArthur (For release signing) [EMAIL PROTECTED] +sig 3BB0AEFAC 2006-03-19 Sandy McArthur (For release signing) [EMAIL PROTECTED] +sub 2048g/6319D8AF 2006-03-19 +sig BB0AEFAC 2006-03-19 Sandy McArthur (For release signing) [EMAIL PROTECTED] + +-BEGIN PGP PUBLIC KEY BLOCK- +Version: GnuPG v1.4.1 (Darwin) + +mQGiBEQd5BERBACB5iAinxlYEJtI3CugYup05Gyby508CvEsKwFB7PSztWDHUhfG +pOf8mvQBGamkIklaLTqSOB/2qkVCHps3JTEIpJQd5LL2F3Lr8bnUrsVUr+UTBJwM +kSlfLblQ63G3NKB/ZlHXThqHGlZXR7lrDLaM4PfAJ3sEElHE7riVBKvbawCg3Dw3 +eb0YoGKrDnVmVOP906YTZ5sD/RvtELcnMExuDc8Gc4huoVQfq79uynV5c0eQbp9w +zHiTcimoxaiLYZNyiAIf1XWvdfe6p5jX/D6WwlaD7qQctfWXYkPF2PtK9IRjuE49 +Pzo1NEiPjUYSPtXYitCn43G2Si94vzz3dgUv7dTXswIsg0JDVSIaXitxQHrHX2fh +M3w+A/9dpHk5zmjuP+/Z+GGJlOUGiHMBeul8S9+F5Z+2rtlUvVwReR7AvRxWPlZc +PaY+YU+JVLxq4HEI1fAvuPTRIeQwB7SDi0y1mqL6jQ1BCDSKgUTcfq9VUTY8Cstk +OnskmaDHO3YN2dqMyoKTmyEKqdVRShBjU5tcWfIXImeo7GCAK7Q6U2FuZHkgTWNB +cnRodXIgKEZvciByZWxlYXNlIHNpZ25pbmcpIDxzYW5keW1hY0BhcGFjaGUub3Jn +PoheBBMRAgAeBQJEHeQRAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEJEAmLG7 +Cu+sVsoAoJxXV2P5P+oY/s70ACTJtB9GYexIAJ0UhoCkwwVPUeJib6toPsdTCTf8 +97kCDQREHeROEAgA5kiZY/yEdggRz6+juwXiCuojeOcmX9cEiXBFA1Qw6RInHyvN +yShrqgGexv4qpbxtxNOwaKzK0fFo9QmJnPs2yNibjpW1dyT6cFsPUj6kTFX5fBIY +BEg6fTxLrVL8X2/GQYL8ezAT1BPBf3X+fb9t/mlsTR5OzhGBtgZ8xMYpt6g4HVNC +4wK6r4UGortVdl3V9nV+JpIa382LTmWvKr+75AQ5x85u9eBwv6BApov6Dpiyhfu4 +G/juKqoseoW+lKbPZOp+CxOqVw+gUim3SXfam6nhMZdbqz3pNyPfEIDXWtZp9GTa +6y/NsrAFUob1cQq9rQ3GGfCH/7/kXimGbxaCLwAECwf9F/BE6HGuBo5HOkIrmOFM +lnhPSjWCBk/P9mt+eHRLVQi60JBCJBLn2ekfuCo8mpGT4Ui79IpKxzBI+t4giaht +7XjW2ioFWWYfIHEHMr1WggnEln8G/c1/9u7WdoINNAlZV/3FM+WzFsvdEFamZ1IV +0CFW232clFil1wxoVrBC5htK5QRPb0E7W7iKIRpp2ma/IYApHaBPdsuAYcQtznsp +ox9hkDxQJ1/XGjNT6L9b9NuzOr6UgEzHQ1hhSmvGOv6gAUedTCbuetsc63iINd4H +O2h/eIAFYdHCo9epfZE6IVnbBV6dzJR8eleVKk2HNWsd2vmEw+HvlQMIBOgGFHz0 +ZYhJBBgRAgAJBQJEHeROAhsMAAoJEJEAmLG7Cu+sZHcAniWGesbVaRYHBsOBGBZp +cLr0HpkVAJ9OqH9BC/r029bgbvkxaNrHNQNdiw== +=CeIo +-END PGP PUBLIC KEY BLOCK- - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r387082 - /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/KEYS
Author: sandymac Date: Sun Mar 19 16:10:20 2006 New Revision: 387082 URL: http://svn.apache.org/viewcvs?rev=387082view=rev Log: Added public PGP keys file for signing releases. Added: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/KEYS - copied unchanged from r387079, jakarta/commons/proper/pool/trunk/KEYS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r387103 - /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java
Author: sandymac Date: Sun Mar 19 17:48:49 2006 New Revision: 387103 URL: http://svn.apache.org/viewcvs?rev=387103view=rev Log: Make testEvictionSoftMinIdle unit test reliable. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java?rev=387103r1=387102r2=387103view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java Sun Mar 19 17:48:49 2006 @@ -637,11 +637,9 @@ pool.setMaxActive(5); pool.setNumTestsPerEvictionRun(5); pool.setMinEvictableIdleTimeMillis(3000L); -pool.setTimeBetweenEvictionRunsMillis(250L); -pool.setTestWhileIdle(true); pool.setSoftMinEvictableIdleTimeMillis(1000L); pool.setMinIdle(2); - + Object[] active = new Object[5]; Long[] creationTime = new Long[5] ; for(int i=0;i5;i++) { @@ -652,16 +650,16 @@ for(int i=0;i5;i++) { pool.returnObject(active[i]); } - -try { Thread.sleep(1500L); } catch(Exception e) { } -assertTrue(Should be 2 OLD idle, found + pool.getNumIdle(),pool.getNumIdle() == 2 -((TimeTest)pool.borrowObject()).getCreateTime() == creationTime[3].longValue() -((TimeTest)pool.borrowObject()).getCreateTime() == creationTime[4].longValue()); - -try { Thread.sleep(2000L); } catch(Exception e) { } -assertTrue(Should be 2 NEW idle , found + pool.getNumIdle(),pool.getNumIdle() == 2 -((TimeTest)pool.borrowObject()).getCreateTime() != creationTime[0].longValue() -((TimeTest)pool.borrowObject()).getCreateTime() != creationTime[1].longValue()); + +// Soft evict all but minIdle(2) +Thread.sleep(1500L); +pool.evict(); +assertEquals(Idle count different than expected., 2, pool.getNumIdle()); + +// Hard evict the rest. +Thread.sleep(2000L); +pool.evict(); +assertEquals(Idle count different than expected., 0, pool.getNumIdle()); } public void testMinIdle() throws Exception { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r387107 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH: build.xml project.xml
Author: sandymac Date: Sun Mar 19 18:19:08 2006 New Revision: 387107 URL: http://svn.apache.org/viewcvs?rev=387107view=rev Log: Update build numbers for 1.3-rc1 Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml?rev=387107r1=387106r2=387107view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml Sun Mar 19 18:19:08 2006 @@ -1,5 +1,5 @@ !-- - Copyright 2003-2004 The Apache Software Foundation + Copyright 2003-2004,2006 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. @@ -39,7 +39,7 @@ property name=name value=commons-pool/ property name=title value=Jakarta Commons Object Pooling Package/ - property name=version value=Nightly-${DSTAMP}${TSTAMP}/ + property name=version value=1.3-rc1/ property name=package value=org.apache.commons.pool.*/ property name=src.dir value=${basedir}/src/ @@ -49,7 +49,7 @@ property name=build.classes.dir value=${build.dir}/classes/ property name=build.test-classes.dir value=${build.dir}/test-classes/ property name=dist.dir value=${basedir}/dist/ - property name=dist.jar value=${dist.dir}/${name}.jar/ + property name=dist.jar value=${dist.dir}/${name}-${version}.jar/ property name=test.entry value=org.apache.commons.pool.TestAll/ property name=test.failonerror value=true / Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml?rev=387107r1=387106r2=387107view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Sun Mar 19 18:19:08 2006 @@ -21,7 +21,7 @@ groupIdcommons-pool/groupId artifactIdcommons-pool/artifactId inceptionYear2001/inceptionYear - currentVersion1.3-dev/currentVersion + currentVersion1.3-rc1/currentVersion shortDescriptionCommons Object Pooling Library/shortDescription descriptionCommons Object Pooling Library/description logo/images/pool-logo-white.png/logo - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r386281 - in /jakarta/commons/proper/pool/trunk: src/java/org/apache/commons/pool/impl/ xdocs/
Author: sandymac Date: Thu Mar 16 00:03:28 2006 New Revision: 386281 URL: http://svn.apache.org/viewcvs?rev=386281view=rev Log: Where there is no factory calling addObject is bogus so throw an IllegalStateExecption. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java jakarta/commons/proper/pool/trunk/xdocs/changes.xml Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java?rev=386281r1=386280r2=386281view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java Thu Mar 16 00:03:28 2006 @@ -1084,6 +1084,9 @@ */ public synchronized void addObject() throws Exception { assertOpen(); +if (_factory == null) { +throw new IllegalStateException(Cannot add objects without a factory.); +} Object obj = _factory.makeObject(); addObjectToPool(obj, false); } Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java?rev=386281r1=386280r2=386281view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java Thu Mar 16 00:03:28 2006 @@ -175,6 +175,9 @@ */ public synchronized void addObject() throws Exception { assertOpen(); +if (_factory == null) { +throw new IllegalStateException(Cannot add objects without a factory.); +} Object obj = _factory.makeObject(); boolean success = true; Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java?rev=386281r1=386280r2=386281view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java Thu Mar 16 00:03:28 2006 @@ -276,14 +276,12 @@ } else { staleObj = obj; } -if(null != _factory) { -try { -_factory.destroyObject(key, staleObj); -} catch (Exception e) { -// Don't swallow destroying the newly created object. -if (obj == staleObj) { -throw e; -} +try { +_factory.destroyObject(key, staleObj); +} catch (Exception e) { +// Don't swallow destroying the newly created object. +if (obj == staleObj) { +throw e; } } } else { Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java?rev=386281r1=386280r2=386281view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java Thu Mar 16 00:03:28 2006 @@ -286,12 +286,13 @@ */ public synchronized void addObject() throws Exception { assertOpen(); +if (_factory == null) { +throw new IllegalStateException(Cannot add objects without a factory.); +} Object obj = _factory.makeObject(); boolean success = true; -if(null != _factory) { -_factory.passivateObject(obj); -} +_factory.passivateObject(obj); boolean shouldDestroy = !success; Modified
svn commit: r386471 - /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java
Author: sandymac Date: Thu Mar 16 14:16:14 2006 New Revision: 386471 URL: http://svn.apache.org/viewcvs?rev=386471view=rev Log: Impoves unit test code coverage for PoolUtils. TestPoolUtils now tests every code path that can be tested using the public interface of PoolUtils. Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java?rev=386471r1=386470r2=386471view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java Thu Mar 16 14:16:14 2006 @@ -34,6 +34,9 @@ import java.util.Iterator; import java.util.Arrays; +import org.apache.commons.pool.impl.GenericObjectPool; +import org.apache.commons.pool.impl.GenericKeyedObjectPool; + /** * Unit tests for [EMAIL PROTECTED] PoolUtils}. * @@ -273,13 +276,32 @@ // expected } -// Because this isn't determinist and you can get false failures, try more than once. +final List calledMethods = new ArrayList(); + +// Test that the minIdle check doesn't add too many idle objects +final PoolableObjectFactory pof = (PoolableObjectFactory)createProxy(PoolableObjectFactory.class, calledMethods); +final ObjectPool op = new GenericObjectPool(pof); +PoolUtils.checkMinIdle(op, 2, 100); +Thread.sleep(400); +assertEquals(2, op.getNumIdle()); +op.close(); +int makeObjectCount = 0; +final Iterator iter = calledMethods.iterator(); +while (iter.hasNext()) { +final String methodName = (String)iter.next(); +if (makeObject.equals(methodName)) { +makeObjectCount++; +} +} +assertEquals(makeObject should have been called two time, 2, makeObjectCount); + +// Because this isn't deterministic and you can get false failures, try more than once. AssertionFailedError afe = null; int triesLeft = 3; do { afe = null; try { -final List calledMethods = new ArrayList(); +calledMethods.clear(); final ObjectPool pool = (ObjectPool)createProxy(ObjectPool.class, calledMethods); final TimerTask task = PoolUtils.checkMinIdle(pool, 1, CHECK_PERIOD); // checks minIdle immediately @@ -325,15 +347,35 @@ // expected } -// Because this isn't determinist and you can get false failures, try more than once. +final List calledMethods = new ArrayList(); +final Object key = new Object(); + +// Test that the minIdle check doesn't add too many idle objects +final KeyedPoolableObjectFactory kpof = (KeyedPoolableObjectFactory)createProxy(KeyedPoolableObjectFactory.class, calledMethods); +final KeyedObjectPool kop = new GenericKeyedObjectPool(kpof); +PoolUtils.checkMinIdle(kop, key, 2, 100); +Thread.sleep(400); +assertEquals(2, kop.getNumIdle(key)); +assertEquals(2, kop.getNumIdle()); +kop.close(); +int makeObjectCount = 0; +final Iterator iter = calledMethods.iterator(); +while (iter.hasNext()) { +final String methodName = (String)iter.next(); +if (makeObject.equals(methodName)) { +makeObjectCount++; +} +} +assertEquals(makeObject should have been called two time, 2, makeObjectCount); + +// Because this isn't deterministic and you can get false failures, try more than once. AssertionFailedError afe = null; int triesLeft = 3; do { afe = null; try { -final List calledMethods = new ArrayList(); +calledMethods.clear(); final KeyedObjectPool pool = (KeyedObjectPool)createProxy(KeyedObjectPool.class, calledMethods); -final Object key = new Object(); final TimerTask task = PoolUtils.checkMinIdle(pool, key, 1, CHECK_PERIOD); // checks minIdle immediately Thread.sleep(CHECK_SLEEP_PERIOD); // will check CHECK_COUNT more times. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r386562 - /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java
Author: sandymac Date: Thu Mar 16 23:49:24 2006 New Revision: 386562 URL: http://svn.apache.org/viewcvs?rev=386562view=rev Log: Impoves unit test code coverage for GenericObjectPool. Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java?rev=386562r1=386561r2=386562view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java Thu Mar 16 23:49:24 2006 @@ -22,6 +22,7 @@ import org.apache.commons.pool.ObjectPool; import org.apache.commons.pool.PoolableObjectFactory; import org.apache.commons.pool.TestObjectPool; +import org.apache.commons.pool.PoolUtils; import java.util.NoSuchElementException; @@ -119,6 +120,31 @@ pool.close(); } +public void testEvict() throws Exception { +// yea this is hairy but it tests all the code paths in GOP.evict() +final SimpleFactory factory = new SimpleFactory(); +final GenericObjectPool pool = new GenericObjectPool(factory); +pool.setSoftMinEvictableIdleTimeMillis(10); +pool.setMinIdle(2); +pool.setTestWhileIdle(true); +PoolUtils.prefill(pool, 5); +pool.evict(); +factory.setEvenValid(false); +factory.setOddValid(false); +factory.setThrowExceptionOnActivate(true); +pool.evict(); +PoolUtils.prefill(pool, 5); +factory.setThrowExceptionOnActivate(false); +factory.setThrowExceptionOnPassivate(true); +pool.evict(); +factory.setThrowExceptionOnPassivate(false); +factory.setEvenValid(true); +factory.setOddValid(true); +Thread.sleep(125); +pool.evict(); +assertEquals(2, pool.getNumIdle()); +} + public void testExceptionOnPassivateDuringReturn() throws Exception { SimpleFactory factory = new SimpleFactory(); GenericObjectPool pool = new GenericObjectPool(factory); @@ -304,6 +330,10 @@ assertEquals(11235L,pool.getTimeBetweenEvictionRunsMillis()); } { +pool.setSoftMinEvictableIdleTimeMillis(12135L); +assertEquals(12135L,pool.getSoftMinEvictableIdleTimeMillis()); +} +{ pool.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_BLOCK); assertEquals(GenericObjectPool.WHEN_EXHAUSTED_BLOCK,pool.getWhenExhaustedAction()); pool.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_FAIL); @@ -811,6 +841,15 @@ pool.returnObject(obj); assertEquals(should be one idle, 1, pool.getNumIdle()); assertEquals(should be zero active, 0, pool.getNumActive()); + +ObjectPool op = new GenericObjectPool(); +try { +op.addObject(); +fail(Expected IllegalStateException when there is no factory.); +} catch (IllegalStateException ise) { +//expected +} +op.close(); } private GenericObjectPool pool = null; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r386116 - /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java
Author: sandymac Date: Wed Mar 15 09:15:58 2006 New Revision: 386116 URL: http://svn.apache.org/viewcvs?rev=386116view=rev Log: Fixed one of the constructors that was ignoring a maxTotal parameter. Fixed some JavaDoc @links to the KeyedPoolableObjectFactory Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java?rev=386116r1=386115r2=386116view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java Wed Mar 15 09:15:58 2006 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2004,2006 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. @@ -82,7 +82,7 @@ *When [EMAIL PROTECTED] #setTestOnBorrow itestOnBorrow/i} is set, the pool will *attempt to validate each object before it is returned from the *[EMAIL PROTECTED] #borrowObject} method. (Using the provided factory's - *[EMAIL PROTECTED] org.apache.commons.pool.PoolableObjectFactory#validateObject} method.) Objects that fail + *[EMAIL PROTECTED] KeyedPoolableObjectFactory#validateObject} method.) Objects that fail *to validate will be dropped from the pool, and a different object will *be borrowed. * /li @@ -90,7 +90,7 @@ *When [EMAIL PROTECTED] #setTestOnReturn itestOnReturn/i} is set, the pool will *attempt to validate each object before it is returned to the pool in the *[EMAIL PROTECTED] #returnObject} method. (Using the provided factory's - *[EMAIL PROTECTED] org.apache.commons.pool.PoolableObjectFactory#validateObject} + *[EMAIL PROTECTED] KeyedPoolableObjectFactory#validateObject} *method.) Objects that fail to validate will be dropped from the pool. * /li * /ul @@ -114,7 +114,7 @@ * li * [EMAIL PROTECTED] #setTestWhileIdle itestWhileIdle/i} indicates whether or not idle * objects should be validated using the factory's - * [EMAIL PROTECTED] org.apache.commons.pool.PoolableObjectFactory#validateObject} method. Objects + * [EMAIL PROTECTED] KeyedPoolableObjectFactory#validateObject} method. Objects * that fail to validate will be dropped from the pool. * /li * /ul @@ -384,7 +384,7 @@ * @param testWhileIdle whether or not to validate objects in the idle object eviction thread, if any (see [EMAIL PROTECTED] #setTestWhileIdle}) */ public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, int maxTotal, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle) { -this(factory, maxActive, whenExhaustedAction, maxWait, maxIdle, GenericKeyedObjectPool.DEFAULT_MAX_TOTAL, GenericKeyedObjectPool.DEFAULT_MIN_IDLE, testOnBorrow, testOnReturn, timeBetweenEvictionRunsMillis, numTestsPerEvictionRun, minEvictableIdleTimeMillis, testWhileIdle); +this(factory, maxActive, whenExhaustedAction, maxWait, maxIdle, maxTotal, GenericKeyedObjectPool.DEFAULT_MIN_IDLE, testOnBorrow, testOnReturn, timeBetweenEvictionRunsMillis, numTestsPerEvictionRun, minEvictableIdleTimeMillis, testWhileIdle); } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r386186 [2/2] - in /jakarta/commons/proper/pool/trunk: src/java/org/apache/commons/pool/ src/java/org/apache/commons/pool/impl/ src/test/org/apache/commons/pool/ src/test/org/apache/common
Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackKeyedObjectPool.java?rev=386186r1=386185r2=386186view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackKeyedObjectPool.java Wed Mar 15 14:28:20 2006 @@ -44,7 +44,11 @@ StackKeyedObjectPool pool = new StackKeyedObjectPool(new SimpleFactory(),mincapacity); return pool; } - + +protected KeyedObjectPool makeEmptyPool(KeyedPoolableObjectFactory factory) { +return new StackKeyedObjectPool(factory); +} + protected Object getNthObject(Object key, int n) { return String.valueOf(key) + String.valueOf(n); } @@ -228,8 +232,7 @@ } public void testBorrowReturnWithSometimesInvalidObjects() throws Exception { -KeyedObjectPool pool = new StackKeyedObjectPool(); -pool.setFactory( +KeyedObjectPool pool = new StackKeyedObjectPool( new KeyedPoolableObjectFactory() { int counter = 0; public Object makeObject(Object key) { return new Integer(counter++); } @@ -261,7 +264,7 @@ for(int i=0;i10;i++) { pool.returnObject(key,obj[i]); } -assertEquals(3,pool.getNumIdle(key)); +assertEquals(6,pool.getNumIdle(key)); } class SimpleFactory implements KeyedPoolableObjectFactory { Modified: jakarta/commons/proper/pool/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/xdocs/changes.xml?rev=386186r1=386185r2=386186view=diff == --- jakarta/commons/proper/pool/trunk/xdocs/changes.xml (original) +++ jakarta/commons/proper/pool/trunk/xdocs/changes.xml Wed Mar 15 14:28:20 2006 @@ -23,6 +23,26 @@ release version=2.0 date=pending description=Significant clean ups action dev=sandymac type=fix +Edited all KeyedObjectPool related JavaDocs to have meaningful and correct content. + /action + action dev=sandymac type=fix +Implemented until tests to verify KeyedObjectPool implementations conformed to Pool 2 contracts. +Updated GenericKeyedObjectPool and StackKeyedObjectPool to conformant behavior. + /action + action dev=sandymac type=fix +Don't ignore maxTotal parameter in +codeGenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, + long maxWait, int maxIdle, int maxTotal, boolean testOnBorrow, boolean testOnReturn, + long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, + boolean testWhileIdle)/code + /action + action dev=sandymac type=fix +Change StackKeyedObjectPool to discard stalest, not freshest, idle object when maxSleeping is reached. + /action + action dev=sandymac type=fix +Edited all ObjectPool related JavaDocs to have meaningful and correct content. + /action + action dev=sandymac type=fix Implemented until tests to verify ObjectPool implementations conformed to Pool 2 contracts. Updated GenericObjectPool, StackObjectPool, and SoftReferenceObjectPool to conformant behavior. /action - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r385683 - /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml
Author: sandymac Date: Mon Mar 13 14:31:33 2006 New Revision: 385683 URL: http://svn.apache.org/viewcvs?rev=385683view=rev Log: Removed the developer activity dependency since the same report is disabled. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml?rev=385683r1=385682r2=385683view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Mon Mar 13 14:31:33 2006 @@ -174,6 +174,8 @@ /properties /dependency +!-- This dependency isn't needed when the maven-developer-activity-plugin is disabled. -- +!-- dependency groupIdmaven/groupId artifactIdmaven-developer-activity-plugin/artifactId @@ -186,6 +188,7 @@ /comment /properties /dependency +-- /dependencies - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r385734 - in /jakarta/commons/proper/pool/trunk: maven.xml project.properties xdocs/issue-tracking.xml xdocs/navigation.xml xdocs/style/ xdocs/style/project.css
Author: sandymac Date: Mon Mar 13 20:55:27 2006 New Revision: 385734 URL: http://svn.apache.org/viewcvs?rev=385734view=rev Log: Merged new site build changes from 1.3 branch to trunk. Added: jakarta/commons/proper/pool/trunk/xdocs/issue-tracking.xml - copied unchanged from r385727, jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/issue-tracking.xml jakarta/commons/proper/pool/trunk/xdocs/style/ jakarta/commons/proper/pool/trunk/xdocs/style/project.css - copied unchanged from r385727, jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/style/project.css Modified: jakarta/commons/proper/pool/trunk/maven.xml jakarta/commons/proper/pool/trunk/project.properties jakarta/commons/proper/pool/trunk/xdocs/navigation.xml Modified: jakarta/commons/proper/pool/trunk/maven.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/maven.xml?rev=385734r1=385733r2=385734view=diff == --- jakarta/commons/proper/pool/trunk/maven.xml (original) +++ jakarta/commons/proper/pool/trunk/maven.xml Mon Mar 13 20:55:27 2006 @@ -1,5 +1,5 @@ !-- - Copyright 2002-2004 The Apache Software Foundation + Copyright 2002-2004,2006 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. @@ -16,23 +16,6 @@ project xmlns:j=jelly:core xmlns:ant=jelly:ant - - !-- == -- - !-- START : C O M M O N S - B U I L D -- - !-- == -- - !-- Required: Look and Feel for documentation within distributions -- - !-- == -- - postGoal name=xdoc:copy-resources -copy todir=${basedir}/target/docs/style/ failonerror=false - fileset dir=${basedir}/../commons-build/xdocs/style - include name='**/*'/ - exclude name='**/CVS/**'/ - /fileset -/copy - /postGoal - !-- == -- - !-- END: C O M M O N S - B U I L D -- - !-- == -- !-- == DIST == -- !-- Copied from Commons-Collections-- Modified: jakarta/commons/proper/pool/trunk/project.properties URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/project.properties?rev=385734r1=385733r2=385734view=diff == --- jakarta/commons/proper/pool/trunk/project.properties (original) +++ jakarta/commons/proper/pool/trunk/project.properties Mon Mar 13 20:55:27 2006 @@ -1,4 +1,4 @@ -# Copyright 2003-2004 The Apache Software Foundation +# Copyright 2003-2004,2006 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. @@ -19,6 +19,7 @@ maven.changelog.factory=org.apache.maven.svnlib.SvnChangeLogFactory maven.javadoc.author=false +maven.javadoc.overview=src/java/org/apache/commons/pool/overview.html maven.javadoc.links=http://java.sun.com/j2se/1.4.2/docs/api # Jar Manifest Additional Attributes @@ -27,9 +28,6 @@ maven.jar.manifest.attribute.X-Compile-Source-JDK=${maven.compile.source} maven.jar.manifest.attribute.X-Compile-Target-JDK=${maven.compile.target} -# commons site LF -maven.xdoc.jsl=../commons-build/commons-site.jsl - maven.xdoc.date=bottom maven.xdoc.poweredby.image=maven-feather.png maven.xdoc.version=${pom.currentVersion} @@ -38,6 +36,8 @@ maven.compile.debug=on maven.compile.deprecation=off maven.compile.optimize=off +maven.compile.source=1.4 +maven.compile.target=1.4 maven.jarResources.basedir=src/java maven.jar.excludes=**/package.html Modified: jakarta/commons/proper/pool/trunk/xdocs/navigation.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/xdocs/navigation.xml?rev=385734r1=385733r2=385734view=diff == --- jakarta/commons/proper/pool/trunk/xdocs/navigation.xml (original) +++ jakarta/commons/proper/pool/trunk/xdocs/navigation.xml Mon Mar 13 20:55:27 2006 @@ -1,6 +1,6 @@ ?xml version=1.0 encoding=ISO-8859-1? !-- - Copyright 2003-2004 The Apache Software Foundation + Copyright 2003-2004,2006 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. @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. -- -!DOCTYPE org.apache.commons.menus SYSTEM '../../commons
svn commit: r385736 - /jakarta/commons/proper/pool/trunk/build.xml
Author: sandymac Date: Mon Mar 13 20:57:48 2006 New Revision: 385736 URL: http://svn.apache.org/viewcvs?rev=385736view=rev Log: Remove commons collections references and target Java 1.4. Modified: jakarta/commons/proper/pool/trunk/build.xml Modified: jakarta/commons/proper/pool/trunk/build.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/build.xml?rev=385736r1=385735r2=385736view=diff == --- jakarta/commons/proper/pool/trunk/build.xml (original) +++ jakarta/commons/proper/pool/trunk/build.xml Mon Mar 13 20:57:48 2006 @@ -1,5 +1,5 @@ !-- - Copyright 2003-2004 The Apache Software Foundation + Copyright 2003-2004,2006 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. @@ -31,13 +31,11 @@ property name=user-propfile value=${user.home}/build.properties/ property file=${user-propfile}/ - property name=commons-collections.jar value=${basedir}/../collections/dist/commons-collections.jar/ - !-- command line classpath, if any -- property name=cp value=/ !-- now combine the classpaths -- - property name=classpath value=${cp}:${commons-collections.jar}:${junit.jar}/ + property name=classpath value=${cp}:${junit.jar}/ property name=name value=commons-pool/ property name=title value=Jakarta Commons Object Pooling Package/ @@ -93,7 +91,8 @@ noindex=false nohelp=true nonavbar=false - serialwarn=false + serialwarn=false + source=1.4 link href=http://java.sun.com/j2se/1.4.2/docs/api/ /javadoc /target @@ -107,7 +106,8 @@ classpath=${classpath} debug=${javac.debug} deprecation=${javac.deprecation} - optimize=${javac.optimize}/ + optimize=${javac.optimize} + source=1.4/ /target target name=compile-test depends=compile @@ -116,7 +116,8 @@ srcdir=${src.test.dir} debug=${javac.debug} deprecation=${javac.deprecation} - optimize=${javac.optimize} + optimize=${javac.optimize} + source=1.4 classpath pathelement location=${build.classes.dir} / pathelement location=${build.test-classes.dir} / - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r385739 - in /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool: KeyedObjectPool.java ObjectPool.java
Author: sandymac Date: Mon Mar 13 21:15:16 2006 New Revision: 385739 URL: http://svn.apache.org/viewcvs?rev=385739view=rev Log: JavaDoc contract clarification. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/KeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/ObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/KeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/KeyedObjectPool.java?rev=385739r1=385738r2=385739view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/KeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/KeyedObjectPool.java Mon Mar 13 21:15:16 2006 @@ -124,7 +124,7 @@ /** * Create an object using the [EMAIL PROTECTED] KeyedPoolableObjectFactory factory} or other - * implementation dependent mechanism, and place it into the pool. + * implementation dependent mechanism, passivated, and then placed in the idle object pool. * addObject() is useful for pre-loading a pool with idle objects. * (Optional operation). * Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/ObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/ObjectPool.java?rev=385739r1=385738r2=385739view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/ObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/ObjectPool.java Mon Mar 13 21:15:16 2006 @@ -112,7 +112,7 @@ /** * Create an object using the [EMAIL PROTECTED] PoolableObjectFactory factory} or other - * implementation dependent mechanism, and place it into the pool. + * implementation dependent mechanism, passivated, and then placed in the idle object pool. * addObject() is useful for pre-loading a pool with idle objects. * (Optional operation). * - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r385740 - /jakarta/commons/proper/pool/trunk/xdocs/changes.xml
Author: sandymac Date: Mon Mar 13 21:18:55 2006 New Revision: 385740 URL: http://svn.apache.org/viewcvs?rev=385740view=rev Log: Created Maven changes log. Added: jakarta/commons/proper/pool/trunk/xdocs/changes.xml (with props) Added: jakarta/commons/proper/pool/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/xdocs/changes.xml?rev=385740view=auto == --- jakarta/commons/proper/pool/trunk/xdocs/changes.xml (added) +++ jakarta/commons/proper/pool/trunk/xdocs/changes.xml Mon Mar 13 21:18:55 2006 @@ -0,0 +1,75 @@ +?xml version=1.0? +!-- + Copyright 2006 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. + -- +document + properties +titleCommons Pool Changes/title +author email=[EMAIL PROTECTED]Sandy McArthur/author + /properties + body + +release version=2.0 date=pending description=Significant clean ups + action dev=sandymac type=fix +Fix JavaDocs to conform to Pool 2 contracts. + /action + action dev=sandymac type=update +Improved SoftReferenceObjectPool getNumIdle accuracy. + /action + action dev=rdonkin type=update +descriptionUpdates to javadoc contracts for 2.0./description +fixes issue=38660/ +fixes issue=38664/ +fixes issue=38666/ +fixes issue=38667/ +fixes issue=38669/ +fixes issue=38746/ +dueto name=Sandy McArthur/ + /action +/release + +release version=1.3 date=2006-pending description=1.x bugfix release + action type=fixA large number of bug fixes. See release notes for changes./action +/release + +release version=1.2 date=2004-06-07 description=bugfixes + action dev=dirkv type=fix +descriptionGenericKeyedObjectPoolFactory Config Constructor is incorrect/description +fixes issue=24864/ + /action + action dev=dirkv type=fix +descriptionNot possible to extend GenericObjectPool.returnObject() without affecting addObject()/description +fixes issue=28638/ + /action +/release + +release version=1.1 date=2003-10-20 + action type=fixA lot of corner cases were fixed/action + action type=fixPerformance improvement by optimizing pool synchronization, the critical code paths were optimized by reducing pool synchronization but we also added more synchronization where needed/action + action type=fixNew minIdle feature: the minimum number of objects allowed in the pool before the evictor thread (if active) spawns new objects. (Note no objects are created when: numActive + numIdle = maxActive)/action + action type=fixNew maxTotal feature: a cap on the total number of instances controlled by a pool. Only for GenericKeyedObjectPool where maxActive is a cap on the number of active instances from the pool (per key)./action + action type=fixUML Class and sequence diagrams/action + action type=fixSee bugzilla for more changes/action +/release + +release version=1.0.1 date=2002-08-12 + action type=fixNo change log available./action +/release + +release version=1.0 date=2002-05-04 + action type=addNo change log available./action +/release + /body +/document \ No newline at end of file Propchange: jakarta/commons/proper/pool/trunk/xdocs/changes.xml -- svn:eol-style = native - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r385296 - in /jakarta/commons/proper/pool: branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/PoolUtils.java trunk/src/java/org/apache/commons/pool/PoolUtils.java
Author: sandymac Date: Sun Mar 12 07:28:08 2006 New Revision: 385296 URL: http://svn.apache.org/viewcvs?rev=385296view=rev Log: Add @since Pool 1.3 to PoolUtils Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/PoolUtils.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/PoolUtils.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/PoolUtils.java?rev=385296r1=385295r2=385296view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/PoolUtils.java (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/PoolUtils.java Sun Mar 12 07:28:08 2006 @@ -29,6 +29,7 @@ * * @author Sandy McArthur * @version $Revision$ $Date$ + * @since Pool 1.3 */ public final class PoolUtils { @@ -55,6 +56,7 @@ * @return a [EMAIL PROTECTED] PoolableObjectFactory} that delegates to codekeyedFactory/code with an internal key. * @throws IllegalArgumentException when codekeyedFactory/code is codenull/code. * @see #adapt(KeyedPoolableObjectFactory, Object) + * @since Pool 1.3 */ public static PoolableObjectFactory adapt(final KeyedPoolableObjectFactory keyedFactory) throws IllegalArgumentException { return adapt(keyedFactory, new Object()); @@ -69,6 +71,7 @@ * @return a [EMAIL PROTECTED] PoolableObjectFactory} that delegates to codekeyedFactory/code with the specified key. * @throws IllegalArgumentException when codekeyedFactory/code or codekey/code is codenull/code. * @see #adapt(KeyedPoolableObjectFactory) + * @since Pool 1.3 */ public static PoolableObjectFactory adapt(final KeyedPoolableObjectFactory keyedFactory, final Object key) throws IllegalArgumentException { return new PoolableObjectFactoryAdaptor(keyedFactory, key); @@ -81,6 +84,7 @@ * @param factory the [EMAIL PROTECTED] PoolableObjectFactory} to delegate to. * @return a [EMAIL PROTECTED] KeyedPoolableObjectFactory} that delegates to codefactory/code ignoring the key. * @throws IllegalArgumentException when codefactory/code is codenull/code. + * @since Pool 1.3 */ public static KeyedPoolableObjectFactory adapt(final PoolableObjectFactory factory) throws IllegalArgumentException { return new KeyedPoolableObjectFactoryAdaptor(factory); @@ -94,6 +98,7 @@ * @return an [EMAIL PROTECTED] ObjectPool} that delegates to codekeyedPool/code with an internal key. * @throws IllegalArgumentException when codekeyedPool/code is codenull/code. * @see #adapt(KeyedObjectPool, Object) + * @since Pool 1.3 */ public static ObjectPool adapt(final KeyedObjectPool keyedPool) throws IllegalArgumentException { return adapt(keyedPool, new Object()); @@ -108,6 +113,7 @@ * @return an [EMAIL PROTECTED] ObjectPool} that delegates to codekeyedPool/code with the specified key. * @throws IllegalArgumentException when codekeyedPool/code or codekey/code is codenull/code. * @see #adapt(KeyedObjectPool) + * @since Pool 1.3 */ public static ObjectPool adapt(final KeyedObjectPool keyedPool, final Object key) throws IllegalArgumentException { return new ObjectPoolAdaptor(keyedPool, key); @@ -120,6 +126,7 @@ * @param pool the [EMAIL PROTECTED] ObjectPool} to delegate to. * @return a [EMAIL PROTECTED] KeyedObjectPool} that delegates to codekeyedPool/code ignoring the key. * @throws IllegalArgumentException when codekeyedPool/code is codenull/code. + * @since Pool 1.3 */ public static KeyedObjectPool adapt(final ObjectPool pool) throws IllegalArgumentException { return new KeyedObjectPoolAdaptor(pool); @@ -131,6 +138,7 @@ * * @param pool the keyedPool to enforce type safety on * @return an codeObjectPool/code that will only allow objects of codetype/code + * @since Pool 1.3 */ public static ObjectPool checkedPool(final ObjectPool pool, final Class type) { if (pool == null) { @@ -148,6 +156,7 @@ * * @param keyedPool the keyedPool to enforce type safety on * @return an codeKeyedObjectPool/code that will only allow objects of codetype/code + * @since Pool 1.3 */ public static KeyedObjectPool checkedPool(final KeyedObjectPool keyedPool, final Class type) { if (keyedPool == null) { @@ -171,6 +180,7 @@ * @throws IllegalArgumentException when codekeyedPool/code is codenull/code or * when codeminIdle/code is negative or when codeperiod/code isn't * valid for [EMAIL PROTECTED] Timer#schedule
svn commit: r385298 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH: build.xml project.properties
Author: sandymac Date: Sun Mar 12 07:37:00 2006 New Revision: 385298 URL: http://svn.apache.org/viewcvs?rev=385298view=rev Log: Set source and target properties to Java 1.3. Removed references to no longer needed commons collections. Linked overview page so it's included in JavaDocs. Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml?rev=385298r1=385297r2=385298view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/build.xml Sun Mar 12 07:37:00 2006 @@ -31,13 +31,11 @@ property name=user-propfile value=${user.home}/build.properties/ property file=${user-propfile}/ - property name=commons-collections.jar value=${basedir}/../collections/dist/commons-collections.jar/ - !-- command line classpath, if any -- property name=cp value=/ !-- now combine the classpaths -- - property name=classpath value=${cp}:${commons-collections.jar}:${junit.jar}/ + property name=classpath value=${cp}:${junit.jar}/ property name=name value=commons-pool/ property name=title value=Jakarta Commons Object Pooling Package/ @@ -93,8 +91,9 @@ noindex=false nohelp=true nonavbar=false - serialwarn=false - link href=http://java.sun.com/j2se/1.4.2/docs/api/ + serialwarn=false + source=1.3 + link href=http://java.sun.com/j2se/1.3/docs/api/ /javadoc /target @@ -107,7 +106,9 @@ classpath=${classpath} debug=${javac.debug} deprecation=${javac.deprecation} - optimize=${javac.optimize}/ + optimize=${javac.optimize} + source=1.3 + target=1.3/ /target target name=compile-test depends=compile @@ -116,7 +117,9 @@ srcdir=${src.test.dir} debug=${javac.debug} deprecation=${javac.deprecation} - optimize=${javac.optimize} + optimize=${javac.optimize} + source=1.3 + target=1.3 classpath pathelement location=${build.classes.dir} / pathelement location=${build.test-classes.dir} / Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties?rev=385298r1=385297r2=385298view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties Sun Mar 12 07:37:00 2006 @@ -19,7 +19,8 @@ maven.changelog.factory=org.apache.maven.svnlib.SvnChangeLogFactory maven.javadoc.author=false -maven.javadoc.links=http://java.sun.com/j2se/1.4.2/docs/api +maven.javadoc.overview=src/java/org/apache/commons/pool/overview.html +maven.javadoc.links=http://java.sun.com/j2se/1.3/docs/api # Jar Manifest Additional Attributes maven.jar.manifest.attributes.list=Implementation-Vendor-Id,X-Compile-Source-JDK,X-Compile-Target-JDK @@ -38,6 +39,8 @@ maven.compile.debug=on maven.compile.deprecation=off maven.compile.optimize=off +maven.compile.source=1.3 +maven.compile.target=1.3 maven.jarResources.basedir=src/java maven.jar.excludes=**/package.html - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r385316 - in /jakarta/commons/proper/pool: branches/1_3_RELEASE_BRANCH/project.xml trunk/project.xml
Author: sandymac Date: Sun Mar 12 09:18:15 2006 New Revision: 385316 URL: http://svn.apache.org/viewcvs?rev=385316view=rev Log: Add PoolUtils unit tests to project.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml jakarta/commons/proper/pool/trunk/project.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml?rev=385316r1=385315r2=385316view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Sun Mar 12 09:18:15 2006 @@ -191,6 +191,7 @@ includeorg/apache/commons/pool/Test*Factory.java/include includeorg/apache/commons/pool/TestBaseObjectPool.java/include includeorg/apache/commons/pool/TestBaseKeyedObjectPool.java/include +includeorg/apache/commons/pool/TestPoolUtils.java/include includeorg/apache/commons/pool/impl/Test*Pool.java/include /includes /unitTest Modified: jakarta/commons/proper/pool/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/project.xml?rev=385316r1=385315r2=385316view=diff == --- jakarta/commons/proper/pool/trunk/project.xml (original) +++ jakarta/commons/proper/pool/trunk/project.xml Sun Mar 12 09:18:15 2006 @@ -191,6 +191,7 @@ includeorg/apache/commons/pool/Test*Factory.java/include includeorg/apache/commons/pool/TestBaseObjectPool.java/include includeorg/apache/commons/pool/TestBaseKeyedObjectPool.java/include +includeorg/apache/commons/pool/TestPoolUtils.java/include includeorg/apache/commons/pool/impl/Test*Pool.java/include /includes /unitTest - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r385317 - in /jakarta/commons/proper/pool: branches/1_3_RELEASE_BRANCH/project.xml trunk/project.xml
Author: sandymac Date: Sun Mar 12 09:19:09 2006 New Revision: 385317 URL: http://svn.apache.org/viewcvs?rev=385317view=rev Log: Eliminated obsolete dependencies (maven now requires 1.4). Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml jakarta/commons/proper/pool/trunk/project.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml?rev=385317r1=385316r2=385317view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Sun Mar 12 09:19:09 2006 @@ -161,25 +161,6 @@ /properties /dependency -!-- these two are required by maven -- -dependency -groupIdxml-apis/groupId -artifactIdxml-apis/artifactId -version2.0.2/version -properties - commentAny JAXP compliant parser (1.2 or later)./comment -/properties -/dependency -dependency -groupIdxerces/groupId -artifactIdxerces/artifactId -version2.0.2/version -properties - commentAny JAXP compliant parser (1.2 or later)./comment -/properties -/dependency -!-- /these two are required by maven -- - /dependencies build Modified: jakarta/commons/proper/pool/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/project.xml?rev=385317r1=385316r2=385317view=diff == --- jakarta/commons/proper/pool/trunk/project.xml (original) +++ jakarta/commons/proper/pool/trunk/project.xml Sun Mar 12 09:19:09 2006 @@ -161,25 +161,6 @@ /properties /dependency -!-- these two are required by maven -- -dependency -groupIdxml-apis/groupId -artifactIdxml-apis/artifactId -version2.0.2/version -properties - commentAny JAXP compliant parser (1.2 or later)./comment -/properties -/dependency -dependency -groupIdxerces/groupId -artifactIdxerces/artifactId -version2.0.2/version -properties - commentAny JAXP compliant parser (1.2 or later)./comment -/properties -/dependency -!-- /these two are required by maven -- - /dependencies build - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r385431 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH: project.properties project.xml
Author: sandymac Date: Sun Mar 12 21:36:23 2006 New Revision: 385431 URL: http://svn.apache.org/viewcvs?rev=385431view=rev Log: Help Maven auto extract a changelog but it isn't perfect. See the bottom of: http://www.apache.org/dev/version-control.html Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties?rev=385431r1=385430r2=385431view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.properties Sun Mar 12 21:36:23 2006 @@ -17,6 +17,8 @@ # uncomment the next line to work in offline mode (no jar download no linkcheck) #maven.mode.online= maven.changelog.factory=org.apache.maven.svnlib.SvnChangeLogFactory +maven.changelog.type=date +maven.changelog.date=2004-06-07 maven.javadoc.author=false maven.javadoc.overview=src/java/org/apache/commons/pool/overview.html Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml?rev=385431r1=385430r2=385431view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/project.xml Sun Mar 12 21:36:23 2006 @@ -161,6 +161,32 @@ /properties /dependency +dependency + groupIdmaven/groupId + artifactIdmaven-changelog-plugin/artifactId + version1.8.2/version + urlhttp://maven.apache.org/maven-1.x/plugins/changelog//url + typeplugin/type + properties + comment + lt;stronggt;Site Onlylt;/stronggt; - v1.8.2 (minimum) + /comment + /properties +/dependency + +dependency + groupIdmaven/groupId + artifactIdmaven-developer-activity-plugin/artifactId + version1.5.1/version + urlhttp://maven.apache.org/maven-1.x/plugins/developer-activity//url + typeplugin/type + properties + comment + lt;stronggt;Site Onlylt;/stronggt; - v1.5.2 (minimum) + /comment + /properties +/dependency + /dependencies build - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r385437 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs: downloads.xml release-notes-1.3.xml
Author: sandymac Date: Sun Mar 12 22:06:52 2006 New Revision: 385437 URL: http://svn.apache.org/viewcvs?rev=385437view=rev Log: Created 1.3 release notes and linked to them from the download page. Added: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.3.xml - copied, changed from r384429, jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.2.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml?rev=385437r1=385436r2=385437view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/downloads.xml Sun Mar 12 22:06:52 2006 @@ -25,6 +25,7 @@ section name=Releases pThe following releases are available:/p ul + liRelease 1.3 - ## March 2006 - a href=release-notes-1.3.html(release notes)/a/li liRelease 1.2 - 7 June 2004 - a href=release-notes-1.2.html(release notes)/a/li liRelease 1.1 - 20 October 2003 - a href=release-notes-1.1.html(release notes)/a/li liRelease 1.0.1 - 12 August 2002/li @@ -40,7 +41,10 @@ Jakarta Source Downloads page/a. /p p -Commons-pool depends at runtime on +Commons-pool 1.3 only depends at runtime on a Java 1.3 JVM. + /p + p +Commons-pool 1.2 depends at runtime on a href=http://jakarta.apache.org/commons/collections/;commons-collections/a. /p p Copied: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.3.xml (from r384429, jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.2.xml) URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.3.xml?p2=jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.3.xmlp1=jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.2.xmlr1=384429r2=385437rev=385437view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.2.xml (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/xdocs/release-notes-1.3.xml Sun Mar 12 22:06:52 2006 @@ -1,6 +1,6 @@ ?xml version=1.0? !-- - Copyright 2003-2004 The Apache Software Foundation + Copyright 2003-2006 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. @@ -16,25 +16,618 @@ -- document properties - titleRelease notes for Commons-Pool 1.2/title + titleRelease notes for Commons-Pool 1.3/title author email=commons-dev@jakarta.apache.orgCommons Documentation Team/author - revision$Id$/revision + revision$Id: $/revision /properties body - section name=Release notes for Commons-Pool 1.2 -p -There were no mayor changes since the 1.1 release on 20 October 2003. + section name=Release notes for Commons-Pool 1.3 + p + This is a long overdue maintence release of the Pool 1.x branch. + This should be a drop in upgrade for anyone using Pool 1.2. + /p ul -liThe following issues were resolved since v1.1: (see Bugzilla for complete description) +li +p +Dependency on Commons Collections has been removed. Pool 1.3 has no requirements other than +a 1.3 JVM. +/p +/li +li +p +Thanks to an audit by Mayur Naik many potential synchronizations issues have been fixed. +/p +/li +li +p +GenericObjectPool and GenericKeyedObjectPool were incorrectly implemented as a LIFO (stack) +as opposed to a FIFO as documented. This has been fixed. +/p +/li +li +p +The following issues were resolved since v1.2: (see Bugzilla for complete description) +/p table -trthID/ththDate/ththSev/ththState/ththSummary/th/tr -trtda href=http://issues.apache.org/bugzilla/show_bug.cgi?id=24864;24864/a/tdtd2004-01-19/tdtdNor/tdtdFIXE/tdtdGenericKeyedObjectPoolFactory Config Constructor is incorrect/td/tr -trtda href=http://issues.apache.org/bugzilla/show_bug.cgi?id=28638;28638/a/tdtd2004-04-27/tdtdMin/tdtdFIXE/tdtdNot possible to extend GenericObjectPool.returnObject() without affecting addObject()/td/tr -/table +tr +thID/th +thDate/th +thSev/th +thState/th
svn commit: r384536 - /jakarta/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolableConnection.java
Author: sandymac Date: Thu Mar 9 07:42:23 2006 New Revision: 384536 URL: http://svn.apache.org/viewcvs?rev=384536view=rev Log: Document future changes that should be made in a non-point release. Modified: jakarta/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolableConnection.java Modified: jakarta/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolableConnection.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolableConnection.java?rev=384536r1=384535r2=384536view=diff == --- jakarta/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolableConnection.java (original) +++ jakarta/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolableConnection.java Thu Mar 9 07:42:23 2006 @@ -32,6 +32,7 @@ */ public class PoolableConnection extends DelegatingConnection { /** The pool to which I should return. */ +// TODO: Correct use of the pool requires that this connection is only every returned to the pool once. protected ObjectPool _pool = null; /** @@ -67,7 +68,7 @@ isClosed = isClosed(); } catch (SQLException e) { try { -_pool.invalidateObject(this); +_pool.invalidateObject(this); // XXX should be guarded to happen at most once } catch (Exception ie) { // DO NOTHING the original exception will be rethrown } @@ -75,14 +76,14 @@ } if (isClosed) { try { -_pool.invalidateObject(this); +_pool.invalidateObject(this); // XXX should be guarded to happen at most once } catch (Exception ie) { // DO NOTHING, Already closed exception thrown below } throw new SQLException(Already closed.); } else { try { -_pool.returnObject(this); +_pool.returnObject(this); // XXX should be guarded to happen at most once } catch(SQLException e) { throw e; } catch(RuntimeException e) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r384427 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/PoolUtils.java test/org/apache/commons/pool/TestPoolUtils.java
Author: sandymac Date: Wed Mar 8 20:40:10 2006 New Revision: 384427 URL: http://svn.apache.org/viewcvs?rev=384427view=rev Log: Added type checking wrappers to PoolUtils. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java?rev=384427r1=384426r2=384427view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java Wed Mar 8 20:40:10 2006 @@ -25,7 +25,7 @@ import java.util.TimerTask; /** - * This class consists exclusively of static methods that operate on or return pool related interfaces. + * This class consists exclusively of static methods that operate on or return keyedPool related interfaces. * * @author Sandy McArthur * @version $Revision$ $Date$ @@ -118,29 +118,63 @@ * The key is ignored. * * @param pool the [EMAIL PROTECTED] ObjectPool} to delegate to. - * @return a [EMAIL PROTECTED] KeyedObjectPool} that delegates to codepool/code ignoring the key. - * @throws IllegalArgumentException when codepool/code is codenull/code. + * @return a [EMAIL PROTECTED] KeyedObjectPool} that delegates to codekeyedPool/code ignoring the key. + * @throws IllegalArgumentException when codekeyedPool/code is codenull/code. */ public static KeyedObjectPool adapt(final ObjectPool pool) throws IllegalArgumentException { return new KeyedObjectPoolAdaptor(pool); } /** - * Periodically check the idle object count for the pool. At most one idle object will be added per period. + * Wraps an codeObjectPool/code and dynamically checks the type of objects borrowed and returned to the keyedPool. + * If an object is passed to the keyedPool that isn't of type codetype/code a [EMAIL PROTECTED] ClassCastException} will be thrown. + * + * @param pool the keyedPool to enforce type safety on + * @return an codeObjectPool/code that will only allow objects of codetype/code + */ +public static ObjectPool checkedPool(final ObjectPool pool, final Class type) { +if (pool == null) { +throw new IllegalArgumentException(pool must not be null.); +} +if (type == null) { +throw new IllegalArgumentException(type must not be null.); +} +return new CheckedObjectPool(pool, type); +} + +/** + * Wraps an codeKeyedObjectPool/code and dynamically checks the type of objects borrowed and returned to the keyedPool. + * If an object is passed to the keyedPool that isn't of type codetype/code a [EMAIL PROTECTED] ClassCastException} will be thrown. + * + * @param keyedPool the keyedPool to enforce type safety on + * @return an codeKeyedObjectPool/code that will only allow objects of codetype/code + */ +public static KeyedObjectPool checkedPool(final KeyedObjectPool keyedPool, final Class type) { +if (keyedPool == null) { +throw new IllegalArgumentException(keyedPool must not be null.); +} +if (type == null) { +throw new IllegalArgumentException(type must not be null.); +} +return new CheckedKeyedObjectPool(keyedPool, type); +} + +/** + * Periodically check the idle object count for the keyedPool. At most one idle object will be added per period. * If there is an exception when calling [EMAIL PROTECTED] ObjectPool#addObject()} then no more checks will be performed. * - * @param pool the pool to check periodically. + * @param pool the keyedPool to check periodically. * @param minIdle if the [EMAIL PROTECTED] ObjectPool#getNumIdle()} is less than this then add an idle object. - * @param period the frequency to check the number of idle objects in a pool, see + * @param period the frequency to check the number of idle objects in a keyedPool, see * [EMAIL PROTECTED] Timer#schedule(TimerTask, long, long)}. * @return the [EMAIL PROTECTED] TimerTask} that will periodically check the pools idle object count. - * @throws IllegalArgumentException when codepool/code is codenull/code or + * @throws IllegalArgumentException when codekeyedPool/code is codenull/code or * when codeminIdle/code is negative or when codeperiod/code isn't * valid for [EMAIL PROTECTED] Timer#schedule(TimerTask, long, long)}. */ public static TimerTask checkMinIdle(final ObjectPool pool, final int minIdle, final long period) throws IllegalArgumentException
svn commit: r384428 - /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/
Author: sandymac Date: Wed Mar 8 20:43:46 2006 New Revision: 384428 URL: http://svn.apache.org/viewcvs?rev=384428view=rev Log: Edited all JavaDocs in the pool package. Fixed spelling mistakes. Improved consistancy. Updated examples. Clarified expectations. etc. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedPoolableObjectFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BasePoolableObjectFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/KeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/KeyedPoolableObjectFactory.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/ObjectPool.java jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolableObjectFactory.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java?rev=384428r1=384427r2=384428view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java Wed Mar 8 20:43:46 2006 @@ -86,12 +86,13 @@ } /** - * Does nothing this base implementation. + * Close this pool. + * This affects the behavior of codeisClosed/code and codeassertOpen/code. */ public void close() throws Exception { +closed = true; } - /** * Not supported in this base implementation. * Always throws an [EMAIL PROTECTED] UnsupportedOperationException}, @@ -101,4 +102,24 @@ throw new UnsupportedOperationException(); } +/** + * Has this pool instance been closed. + * @return codetrue/code when this pool has been closed. + */ +protected final boolean isClosed() { +return closed; +} + +/** + * Throws an codeIllegalStateException/code when this pool has been closed. + * @throws IllegalStateException when this pool has been closed. + * @see #isClosed() + */ +protected final void assertOpen() throws IllegalStateException { +if(isClosed()) { +throw new IllegalStateException(Pool not open); +} +} + +private volatile boolean closed = false; } Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedPoolableObjectFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedPoolableObjectFactory.java?rev=384428r1=384427r2=384428view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedPoolableObjectFactory.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedPoolableObjectFactory.java Wed Mar 8 20:43:46 2006 @@ -17,7 +17,7 @@ package org.apache.commons.pool; /** - * A base implemenation of [EMAIL PROTECTED] KeyedPoolableObjectFactory KeyedPoolableObjectFactory}. + * A base implementation of codeKeyedPoolableObjectFactory/code. * p * All operations defined here are essentially no-op's. * Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseObjectPool.java?rev=384428r1=384427r2=384428view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseObjectPool.java Wed Mar 8 20:43:46 2006 @@ -62,6 +62,10 @@ throw new UnsupportedOperationException(); } +/** + * Close this pool. + * This affects the behavior of codeisClosed/code and codeassertOpen/code. + */ public void close() throws Exception { closed = true; } Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BasePoolableObjectFactory.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BasePoolableObjectFactory.java?rev=384428r1=384427r2=384428view=diff == --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BasePoolableObjectFactory.java (original
svn commit: r384433 - in /jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src: java/org/apache/commons/pool/PoolUtils.java test/org/apache/commons/pool/TestAll.java test/org/apache/commons/poo
Author: sandymac Date: Wed Mar 8 21:19:21 2006 New Revision: 384433 URL: http://svn.apache.org/viewcvs?rev=384433view=rev Log: Added PoolUtils to 1.3 branch. PoolUtils works with the 1.3 JDK and introduces no new dependencies. Added: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/java/org/apache/commons/pool/PoolUtils.java - copied unchanged from r384428, jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/PoolUtils.java jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/TestPoolUtils.java - copied unchanged from r384428, jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/TestAll.java Modified: jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/TestAll.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/TestAll.java?rev=384433r1=384432r2=384433view=diff == --- jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/TestAll.java (original) +++ jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/src/test/org/apache/commons/pool/TestAll.java Wed Mar 8 21:19:21 2006 @@ -35,6 +35,7 @@ suite.addTest(org.apache.commons.pool.TestBaseKeyedObjectPool.suite()); suite.addTest(org.apache.commons.pool.TestBasePoolableObjectFactory.suite()); suite.addTest(org.apache.commons.pool.TestBaseKeyedPoolableObjectFactory.suite()); +suite.addTest(org.apache.commons.pool.TestPoolUtils.suite()); suite.addTest(org.apache.commons.pool.impl.TestAll.suite()); return suite; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r384017 - /jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringUtils.java
Author: sandymac Date: Tue Mar 7 13:17:46 2006 New Revision: 384017 URL: http://svn.apache.org/viewcvs?rev=384017view=rev Log: Removed PADDING cache which leaked memory. Issue #38792. Updated padding(int,char) JavaDoc about it's I18N incompatabilities. Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringUtils.java Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringUtils.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringUtils.java?rev=384017r1=384016r2=384017view=diff == --- jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringUtils.java (original) +++ jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringUtils.java Tue Mar 7 13:17:46 2006 @@ -150,18 +150,6 @@ private static final int PAD_LIMIT = 8192; /** - * pAn array of codeString/codes used for padding./p - * - * pUsed for efficient space padding. The length of each String expands as needed./p - */ -private static final String[] PADDING = new String[Character.MAX_VALUE + 1]; - -static { -// space padding is most common, start with 64 chars -PADDING[32] = ; -} - -/** * pcodeStringUtils/code instances should NOT be constructed in * standard programming. Instead, the class should be used as * codeStringUtils.trim( foo );/code./p @@ -3515,23 +3503,28 @@ * StringUtils.padding(-2, 'e') = IndexOutOfBoundsException * /pre * + * pNote: this method doesn't not support padding with + * a href=http://www.unicode.org/glossary/#supplementary_character;Unicode Supplementary Characters/a + * as they require a pair of codechar/codes to be represented. + * If you are needing to support full I18N of your applications + * consider using [EMAIL PROTECTED] #repeat(String, int)} instead. + * /p + * * @param repeat number of times to repeat delim * @param padChar character to repeat * @return String with repeated character * @throws IndexOutOfBoundsException if coderepeat lt; 0/code + * @see #repeat(String, int) */ -private static String padding(int repeat, char padChar) { -// be careful of synchronization in this method -// we are assuming that get and set from an array index is atomic -String pad = PADDING[padChar]; -if (pad == null) { -pad = String.valueOf(padChar); +private static String padding(int repeat, char padChar) throws IndexOutOfBoundsException { +if (repeat 0) { +throw new IndexOutOfBoundsException(Cannot pad a negative amount: + repeat); } -while (pad.length() repeat) { -pad = pad.concat(pad); +final char[] buf = new char[repeat]; +for (int i=0; i buf.length; i++) { +buf[i] = padChar; } -PADDING[padChar] = pad; -return pad.substring(0, repeat); +return new String(buf); } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r383680 - in /jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool: TestAll.java TestPoolUtils.java
Author: sandymac Date: Mon Mar 6 13:32:02 2006 New Revision: 383680 URL: http://svn.apache.org/viewcvs?rev=383680view=rev Log: Added TestPoolUtils to the TestAll TestSuit Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestAll.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestAll.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestAll.java?rev=383680r1=383679r2=383680view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestAll.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestAll.java Mon Mar 6 13:32:02 2006 @@ -35,6 +35,7 @@ suite.addTest(org.apache.commons.pool.TestBaseKeyedObjectPool.suite()); suite.addTest(org.apache.commons.pool.TestBasePoolableObjectFactory.suite()); suite.addTest(org.apache.commons.pool.TestBaseKeyedPoolableObjectFactory.suite()); +suite.addTest(org.apache.commons.pool.TestPoolUtils.suite()); suite.addTest(org.apache.commons.pool.impl.TestAll.suite()); return suite; } Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java?rev=383680r1=383679r2=383680view=diff == --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestPoolUtils.java Mon Mar 6 13:32:02 2006 @@ -18,6 +18,8 @@ import junit.framework.TestCase; import junit.framework.AssertionFailedError; +import junit.framework.Test; +import junit.framework.TestSuite; import java.lang.reflect.Proxy; import java.lang.reflect.InvocationHandler; @@ -48,6 +50,10 @@ /** Sleep time to let the minIdle tests run CHECK_COUNT times. */ private static final int CHECK_SLEEP_PERIOD = CHECK_PERIOD * (CHECK_COUNT - 1) + CHECK_PERIOD / 2; + +public static Test suite() { +return new TestSuite(TestPoolUtils.class); +} public void testJavaBeanInstantiation() { new PoolUtils(); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]