Author: markt
Date: Fri Jun  3 10:05:40 2011
New Revision: 1130971

URL: http://svn.apache.org/viewvc?rev=1130971&view=rev
Log:
Add ObjectFactory support into the PoolConfig classes which allows them to 
completely replace the ObjectPoolFactory classes

Added:
    
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java
   (with props)
Modified:
    
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.java
    
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericObjectPoolConfig.java

Added: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java?rev=1130971&view=auto
==============================================================================
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java
 (added)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java
 Fri Jun  3 10:05:40 2011
@@ -0,0 +1,238 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.pool2.impl;
+
+/**
+ * Provides the common configuration attributes used by object pool
+ * configurations.
+ */
+public abstract class BaseObjectPoolConfig {
+
+    /**
+     * The default cap on the total number of active instances from the pool.
+     */
+    public static final int DEFAULT_MAX_TOTAL = 8;
+
+    /**
+     * The default LIFO status. True means that borrowObject returns the most
+     * recently used ("last in") idle object in the pool (if there are idle
+     * instances available). False means that the pool behaves as a FIFO queue 
-
+     * objects are taken from the idle object pool in the order that they are
+     * returned to the pool.
+     */
+    public static final boolean DEFAULT_LIFO = true;
+
+    /**
+     * The default maximum amount of time (in milliseconds) the
+     * {@link #borrowObject} method should block before throwing an exception
+     * when the pool is exhausted and the {@link #getWhenExhaustedAction
+     * "when exhausted" action} is {@link #WHEN_EXHAUSTED_BLOCK}.
+     */
+    public static final long DEFAULT_MAX_WAIT = -1L;
+
+    /**
+     * The default cap on the number of "sleeping" instances in the pool.
+     */
+    public static final int DEFAULT_MAX_IDLE = 8;
+
+    /**
+     * The default value for {@link #getMinEvictableIdleTimeMillis}.
+     */
+    public static final long DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS =
+            1000L * 60L * 30L;
+
+    /**
+     * The default minimum number of "sleeping" instances in the pool before
+     * before the evictor thread (if active) spawns new objects.
+     */
+    public static final int DEFAULT_MIN_IDLE = 0;
+
+    /**
+     * The default number of objects to examine per run in the idle object
+     * evictor.
+     */
+    public static final int DEFAULT_NUM_TESTS_PER_EVICTION_RUN = 3;
+
+    /**
+     * The default value for {@link #getSoftMinEvictableIdleTimeMillis}.
+     */
+    public static final long DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS = -1;
+
+    /**
+     * The default "test on borrow" value.
+     */
+    public static final boolean DEFAULT_TEST_ON_BORROW = false;
+
+    /**
+     * The default "test on return" value.
+     */
+    public static final boolean DEFAULT_TEST_ON_RETURN = false;
+
+    /**
+     * The default "test while idle" value.
+     */
+    public static final boolean DEFAULT_TEST_WHILE_IDLE = false;
+
+    /**
+     * The default "time between eviction runs" value.
+     */
+    public static final long DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS = -1L;
+
+    /**
+     * The default "when exhausted action" for the pool.
+     */
+    public static final WhenExhaustedAction DEFAULT_WHEN_EXHAUSTED_ACTION =
+        WhenExhaustedAction.BLOCK;
+    
+
+    private int maxTotal = DEFAULT_MAX_TOTAL;
+
+    private boolean lifo = DEFAULT_LIFO;
+
+    private int maxIdle = DEFAULT_MAX_IDLE;
+
+    private long maxWait = DEFAULT_MAX_WAIT;
+
+    private long minEvictableIdleTimeMillis =
+        DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS;
+
+    private int minIdle = DEFAULT_MIN_IDLE;
+
+    private int numTestsPerEvictionRun =
+        DEFAULT_NUM_TESTS_PER_EVICTION_RUN;
+
+    private long softMinEvictableIdleTimeMillis =
+        DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS;
+
+    private boolean testOnBorrow = DEFAULT_TEST_ON_BORROW;
+
+    private boolean testOnReturn = DEFAULT_TEST_ON_RETURN;
+
+    private boolean testWhileIdle = DEFAULT_TEST_WHILE_IDLE;
+
+    private long timeBetweenEvictionRunsMillis =
+        DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS;
+
+    private WhenExhaustedAction whenExhaustedAction =
+        DEFAULT_WHEN_EXHAUSTED_ACTION;
+
+
+    public int getMaxTotal() {
+        return maxTotal;
+    }
+
+    public void setMaxTotal(int maxTotal) {
+        this.maxTotal = maxTotal;
+    }
+
+    public boolean getLifo() {
+        return lifo;
+    }
+
+    public void setLifo(boolean lifo) {
+        this.lifo = lifo;
+    }
+
+    public int getMaxIdle() {
+        return maxIdle;
+    }
+
+    public void setMaxIdle(int maxIdle) {
+        this.maxIdle = maxIdle;
+    }
+
+    public long getMaxWait() {
+        return maxWait;
+    }
+
+    public void setMaxWait(long maxWait) {
+        this.maxWait = maxWait;
+    }
+
+    public long getMinEvictableIdleTimeMillis() {
+        return minEvictableIdleTimeMillis;
+    }
+
+    public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) 
{
+        this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
+    }
+
+    public int getMinIdle() {
+        return minIdle;
+    }
+
+    public void setMinIdle(int minIdle) {
+        this.minIdle = minIdle;
+    }
+
+    public int getNumTestsPerEvictionRun() {
+        return numTestsPerEvictionRun;
+    }
+
+    public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) {
+        this.numTestsPerEvictionRun = numTestsPerEvictionRun;
+    }
+
+    public long getSoftMinEvictableIdleTimeMillis() {
+        return softMinEvictableIdleTimeMillis;
+    }
+
+    public void setSoftMinEvictableIdleTimeMillis(
+            long softMinEvictableIdleTimeMillis) {
+        this.softMinEvictableIdleTimeMillis = softMinEvictableIdleTimeMillis;
+    }
+
+    public boolean getTestOnBorrow() {
+        return testOnBorrow;
+    }
+
+    public void setTestOnBorrow(boolean testOnBorrow) {
+        this.testOnBorrow = testOnBorrow;
+    }
+
+    public boolean getTestOnReturn() {
+        return testOnReturn;
+    }
+
+    public void setTestOnReturn(boolean testOnReturn) {
+        this.testOnReturn = testOnReturn;
+    }
+
+    public boolean getTestWhileIdle() {
+        return testWhileIdle;
+    }
+
+    public void setTestWhileIdle(boolean testWhileIdle) {
+        this.testWhileIdle = testWhileIdle;
+    }
+
+    public long getTimeBetweenEvictionRunsMillis() {
+        return timeBetweenEvictionRunsMillis;
+    }
+
+    public void setTimeBetweenEvictionRunsMillis(long 
timeBetweenEvictionRunsMillis) {
+        this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
+    }
+
+    public WhenExhaustedAction getWhenExhaustedAction() {
+        return whenExhaustedAction;
+    }
+
+    public void setWhenExhaustedAction(WhenExhaustedAction 
whenExhaustedAction) {
+        this.whenExhaustedAction = whenExhaustedAction;
+    }
+}

Propchange: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.java?rev=1130971&r1=1130970&r2=1130971&view=diff
==============================================================================
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.java
 Fri Jun  3 10:05:40 2011
@@ -16,13 +16,15 @@
  */
 package org.apache.commons.pool2.impl;
 
+import org.apache.commons.pool2.KeyedObjectPoolFactory;
+
 /**
  * A simple "struct" encapsulating the configuration for a
- * {@link GenericKeyedObjectPool} excluding the factory used to create objects.
+ * {@link GenericKeyedObjectPool}.
  * 
  * @since Pool 2.0
  */
-public class GenericKeyedObjectPoolConfig extends GenericObjectPoolConfig {
+public class GenericKeyedObjectPoolConfig extends BaseObjectPoolConfig {
 
     public static final int DEFAULT_MAX_TOTAL_PER_KEY = 8;
 
@@ -31,13 +33,23 @@ public class GenericKeyedObjectPoolConfi
     
     private int maxTotalPerKey = DEFAULT_MAX_TOTAL_PER_KEY;
     
+    private KeyedObjectPoolFactory<?,?> factory = null;
 
+    
     public GenericKeyedObjectPoolConfig() {
         // Uses a different default for maxTotal
         setMaxTotal(DEFAULT_MAX_TOTAL);
     }
-    
-    
+
+
+    public KeyedObjectPoolFactory<?,?> getFactory() {
+        return factory;
+    }
+
+    public void setFactory(KeyedObjectPoolFactory<?,?> factory) {
+        this.factory = factory;
+    }
+
     public int getMaxTotalPerKey() {
         return maxTotalPerKey;
     }

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericObjectPoolConfig.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericObjectPoolConfig.java?rev=1130971&r1=1130970&r2=1130971&view=diff
==============================================================================
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericObjectPoolConfig.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericObjectPoolConfig.java
 Fri Jun  3 10:05:40 2011
@@ -16,225 +16,24 @@
  */
 package org.apache.commons.pool2.impl;
 
+import org.apache.commons.pool2.ObjectPoolFactory;
+
 /**
  * A simple "struct" encapsulating the configuration for a
- * {@link GenericObjectPool} excluding the factory used to create objects.
+ * {@link GenericObjectPool}.
  * 
  * @since Pool 2.0
  */
-public class GenericObjectPoolConfig {
-
-    /**
-     * The default LIFO status. True means that borrowObject returns the most
-     * recently used ("last in") idle object in the pool (if there are idle
-     * instances available). False means that the pool behaves as a FIFO queue 
-
-     * objects are taken from the idle object pool in the order that they are
-     * returned to the pool.
-     */
-    public static final boolean DEFAULT_LIFO = true;
-
-    /**
-     * The default cap on the total number of active instances from the pool.
-     */
-    public static final int DEFAULT_MAX_TOTAL = 8;
-
-    /**
-     * The default maximum amount of time (in milliseconds) the
-     * {@link #borrowObject} method should block before throwing an exception
-     * when the pool is exhausted and the {@link #getWhenExhaustedAction
-     * "when exhausted" action} is {@link #WHEN_EXHAUSTED_BLOCK}.
-     */
-    public static final long DEFAULT_MAX_WAIT = -1L;
-
-    /**
-     * The default cap on the number of "sleeping" instances in the pool.
-     */
-    public static final int DEFAULT_MAX_IDLE = 8;
-
-    /**
-     * The default value for {@link #getMinEvictableIdleTimeMillis}.
-     */
-    public static final long DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS =
-            1000L * 60L * 30L;
-
-    /**
-     * The default minimum number of "sleeping" instances in the pool before
-     * before the evictor thread (if active) spawns new objects.
-     */
-    public static final int DEFAULT_MIN_IDLE = 0;
-
-    /**
-     * The default number of objects to examine per run in the idle object
-     * evictor.
-     */
-    public static final int DEFAULT_NUM_TESTS_PER_EVICTION_RUN = 3;
-
-    /**
-     * The default value for {@link #getSoftMinEvictableIdleTimeMillis}.
-     */
-    public static final long DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS = -1;
-
-    /**
-     * The default "test on borrow" value.
-     */
-    public static final boolean DEFAULT_TEST_ON_BORROW = false;
-
-    /**
-     * The default "test on return" value.
-     */
-    public static final boolean DEFAULT_TEST_ON_RETURN = false;
-
-    /**
-     * The default "test while idle" value.
-     */
-    public static final boolean DEFAULT_TEST_WHILE_IDLE = false;
-
-    /**
-     * The default "time between eviction runs" value.
-     */
-    public static final long DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS = -1L;
-
-    /**
-     * The default "when exhausted action" for the pool.
-     */
-    public static final WhenExhaustedAction DEFAULT_WHEN_EXHAUSTED_ACTION =
-        WhenExhaustedAction.BLOCK;
-
-
-    private boolean lifo = DEFAULT_LIFO;
-
-    private int maxIdle = DEFAULT_MAX_IDLE;
-
-    private int maxTotal = DEFAULT_MAX_TOTAL;
-
-    private long maxWait = DEFAULT_MAX_WAIT;
+public class GenericObjectPoolConfig extends BaseObjectPoolConfig {
 
-    private long minEvictableIdleTimeMillis =
-        DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS;
-
-    private int minIdle = DEFAULT_MIN_IDLE;
-
-    private int numTestsPerEvictionRun =
-        DEFAULT_NUM_TESTS_PER_EVICTION_RUN;
-
-    private long softMinEvictableIdleTimeMillis =
-        DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS;
-
-    private boolean testOnBorrow = DEFAULT_TEST_ON_BORROW;
-
-    private boolean testOnReturn = DEFAULT_TEST_ON_RETURN;
-
-    private boolean testWhileIdle = DEFAULT_TEST_WHILE_IDLE;
-
-    private long timeBetweenEvictionRunsMillis =
-        DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS;
-
-    private WhenExhaustedAction whenExhaustedAction =
-        DEFAULT_WHEN_EXHAUSTED_ACTION;
-
-
-    public boolean getLifo() {
-        return lifo;
-    }
-
-    public void setLifo(boolean lifo) {
-        this.lifo = lifo;
-    }
-
-    public int getMaxIdle() {
-        return maxIdle;
-    }
-
-    public void setMaxIdle(int maxIdle) {
-        this.maxIdle = maxIdle;
-    }
-
-    public int getMaxTotal() {
-        return maxTotal;
-    }
+    private ObjectPoolFactory<?> factory = null;
 
-    public void setMaxTotal(int maxTotal) {
-        this.maxTotal = maxTotal;
-    }
-
-    public long getMaxWait() {
-        return maxWait;
-    }
-
-    public void setMaxWait(long maxWait) {
-        this.maxWait = maxWait;
-    }
-
-    public long getMinEvictableIdleTimeMillis() {
-        return minEvictableIdleTimeMillis;
-    }
-
-    public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) 
{
-        this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
-    }
-
-    public int getMinIdle() {
-        return minIdle;
-    }
-
-    public void setMinIdle(int minIdle) {
-        this.minIdle = minIdle;
-    }
-
-    public int getNumTestsPerEvictionRun() {
-        return numTestsPerEvictionRun;
-    }
-
-    public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) {
-        this.numTestsPerEvictionRun = numTestsPerEvictionRun;
-    }
-
-    public long getSoftMinEvictableIdleTimeMillis() {
-        return softMinEvictableIdleTimeMillis;
-    }
-
-    public void setSoftMinEvictableIdleTimeMillis(
-            long softMinEvictableIdleTimeMillis) {
-        this.softMinEvictableIdleTimeMillis = softMinEvictableIdleTimeMillis;
-    }
-
-    public boolean getTestOnBorrow() {
-        return testOnBorrow;
-    }
-
-    public void setTestOnBorrow(boolean testOnBorrow) {
-        this.testOnBorrow = testOnBorrow;
-    }
-
-    public boolean getTestOnReturn() {
-        return testOnReturn;
-    }
-
-    public void setTestOnReturn(boolean testOnReturn) {
-        this.testOnReturn = testOnReturn;
-    }
-
-    public boolean getTestWhileIdle() {
-        return testWhileIdle;
-    }
-
-    public void setTestWhileIdle(boolean testWhileIdle) {
-        this.testWhileIdle = testWhileIdle;
-    }
-
-    public long getTimeBetweenEvictionRunsMillis() {
-        return timeBetweenEvictionRunsMillis;
-    }
-
-    public void setTimeBetweenEvictionRunsMillis(long 
timeBetweenEvictionRunsMillis) {
-        this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
-    }
 
-    public WhenExhaustedAction getWhenExhaustedAction() {
-        return whenExhaustedAction;
+    public ObjectPoolFactory<?> getFactory() {
+        return factory;
     }
 
-    public void setWhenExhaustedAction(WhenExhaustedAction 
whenExhaustedAction) {
-        this.whenExhaustedAction = whenExhaustedAction;
+    public void setFactory(ObjectPoolFactory<?> factory) {
+        this.factory = factory;
     }
 }


Reply via email to