Author: markt
Date: Thu Jul  7 19:01:59 2011
New Revision: 1143978

URL: http://svn.apache.org/viewvc?rev=1143978&view=rev
Log:
Update DBCP to take account of GKOP.setFactory removal

Modified:
    
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
    
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java
    
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolingConnection.java
    
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java
    
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
    
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java
    
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java
    
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestDelegatingConnection.java
    
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestPStmtPooling.java
    
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestPoolingDriver.java
    
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/datasources/TestKeyedCPDSConnectionFactory.java

Modified: 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java?rev=1143978&r1=1143977&r2=1143978&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
 Thu Jul  7 19:01:59 2011
@@ -1530,27 +1530,17 @@ public class BasicDataSource implements 
             // create factory which returns raw physical connections
             ConnectionFactory driverConnectionFactory = 
createConnectionFactory();
     
-            // Set up statement pool, if desired
-            GenericKeyedObjectPoolFactory statementPoolFactory = null;
-            if (isPoolPreparedStatements()) {
-                GenericKeyedObjectPoolConfig config =
-                    new GenericKeyedObjectPoolConfig();
-                config.setMaxTotalPerKey(-1);
-                config.setWhenExhaustedAction(WhenExhaustedAction.FAIL);
-                config.setMaxWait(0);
-                config.setMaxIdlePerKey(1);
-                config.setMaxTotal(maxOpenPreparedStatements);
-                statementPoolFactory =
-                    new GenericKeyedObjectPoolFactory(config);
-            }
-    
             // Set up the poolable connection factory
             boolean success = false;
             PoolableConnectionFactory poolableConnectionFactory;
             try {
                 poolableConnectionFactory = createPoolableConnectionFactory(
-                        driverConnectionFactory, statementPoolFactory,
+                        driverConnectionFactory,
                         abandonedConfig);
+                poolableConnectionFactory.setPoolStatements(
+                        poolPreparedStatements);
+                poolableConnectionFactory.setMaxOpenPrepatedStatements(
+                        maxOpenPreparedStatements);
                 success = true;
             } catch (SQLException se) {
                 throw se;
@@ -1765,17 +1755,16 @@ public class BasicDataSource implements 
      * so subclasses can replace the default implementation.
      * 
      * @param driverConnectionFactory JDBC connection factory
-     * @param statementPoolFactory statement pool factory (null if statement 
pooling is turned off)
      * @param configuration abandoned connection tracking configuration (null 
if no tracking)
      * @throws SQLException if an error occurs creating the 
PoolableConnectionFactory
      */
-    protected PoolableConnectionFactory 
createPoolableConnectionFactory(ConnectionFactory driverConnectionFactory,
-            KeyedObjectPoolFactory statementPoolFactory, AbandonedConfig 
configuration) throws SQLException {
+    protected PoolableConnectionFactory createPoolableConnectionFactory(
+            ConnectionFactory driverConnectionFactory,
+            AbandonedConfig configuration) throws SQLException {
         PoolableConnectionFactory connectionFactory = null;
         try {
             connectionFactory =
                 new PoolableConnectionFactory(driverConnectionFactory);
-            connectionFactory.setStatementPoolFactory(statementPoolFactory);
             connectionFactory.setValidationQuery(validationQuery);
             
connectionFactory.setValidationQueryTimeout(validationQueryTimeout);
             connectionFactory.setConnectionInitSql(connectionInitSqls);
@@ -1787,6 +1776,9 @@ public class BasicDataSource implements 
             connectionFactory.setDefaultCatalog(defaultCatalog);
             connectionFactory.setAbandonedConfig(configuration);
             connectionFactory.setCacheState(cacheState);
+            connectionFactory.setPoolStatements(poolPreparedStatements);
+            connectionFactory.setMaxOpenPrepatedStatements(
+                    maxOpenPreparedStatements);
             validateConnectionFactory(connectionFactory);
         } catch (RuntimeException e) {
             throw e;

Modified: 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java?rev=1143978&r1=1143977&r2=1143978&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java
 Thu Jul  7 19:01:59 2011
@@ -27,6 +27,9 @@ import org.apache.commons.pool2.KeyedObj
 import org.apache.commons.pool2.KeyedObjectPoolFactory;
 import org.apache.commons.pool2.PoolableObjectFactory;
 import org.apache.commons.pool2.ObjectPool;
+import org.apache.commons.pool2.impl.GenericKeyedObjectPool;
+import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig;
+import org.apache.commons.pool2.impl.WhenExhaustedAction;
 
 /**
  * A {@link PoolableObjectFactory} that creates
@@ -113,16 +116,6 @@ public class PoolableConnectionFactory i
     }
 
     /**
-     * Sets the {@link KeyedObjectPoolFactory} I use to create {@link 
KeyedObjectPool}s
-     * for pooling {@link java.sql.PreparedStatement}s.
-     * Set to <tt>null</tt> to disable {@link java.sql.PreparedStatement} 
pooling.
-     * @param stmtPoolFactory the {@link KeyedObjectPoolFactory} to use to 
create {@link KeyedObjectPool}s for pooling {@link java.sql.PreparedStatement}s
-     */
-    public void setStatementPoolFactory(KeyedObjectPoolFactory 
stmtPoolFactory) {
-        _stmtPoolFactory = stmtPoolFactory;
-    }
-
-    /**
      * Sets the default "read only" setting for borrowed {@link Connection}s
      * @param defaultReadOnly the default "read only" setting for borrowed 
{@link Connection}s
      */
@@ -162,6 +155,14 @@ public class PoolableConnectionFactory i
         this._cacheState = cacheState;
     }
 
+    public void setPoolStatements(boolean poolStatements) {
+        this.poolStatements = poolStatements;
+    }
+
+    public void setMaxOpenPrepatedStatements(int maxOpenPreparedStatements) {
+        this.maxOpenPreparedStatements = maxOpenPreparedStatements;
+    }
+
     @Override
     public Object makeObject() throws Exception {
         Connection conn = _connFactory.createConnection();
@@ -169,11 +170,19 @@ public class PoolableConnectionFactory i
             throw new IllegalStateException("Connection factory returned null 
from createConnection");
         }
         initializeConnection(conn);
-        if(null != _stmtPoolFactory) {
-            KeyedObjectPool stmtpool = _stmtPoolFactory.createPool();
-            conn = new PoolingConnection(conn,stmtpool);
+        if(poolStatements) {
+            conn = new PoolingConnection(conn);
+            GenericKeyedObjectPoolConfig config =
+                new GenericKeyedObjectPoolConfig();
+            config.setMaxTotalPerKey(-1);
+            config.setWhenExhaustedAction(WhenExhaustedAction.FAIL);
+            config.setMaxWait(0);
+            config.setMaxIdlePerKey(1);
+            config.setMaxTotal(maxOpenPreparedStatements);
+            KeyedObjectPool stmtPool =
+                new GenericKeyedObjectPool((PoolingConnection)conn, config);
+            ((PoolingConnection)conn).setStatementPool(stmtPool);
             ((PoolingConnection) conn).setCacheState(_cacheState);
-            stmtpool.setFactory((PoolingConnection)conn);
         }
         return new PoolableConnection(conn,_pool,_config);
     }
@@ -314,12 +323,14 @@ public class PoolableConnectionFactory i
     protected volatile int _validationQueryTimeout = -1;
     protected Collection _connectionInitSqls = null;
     protected volatile ObjectPool _pool = null;
-    protected volatile KeyedObjectPoolFactory _stmtPoolFactory = null;
     protected Boolean _defaultReadOnly = null;
     protected boolean _defaultAutoCommit = true;
     protected int _defaultTransactionIsolation = UNKNOWN_TRANSACTIONISOLATION;
     protected String _defaultCatalog;
-    private boolean _cacheState;
+    protected boolean _cacheState;
+    protected boolean poolStatements = false;
+    protected int maxOpenPreparedStatements =
+        GenericKeyedObjectPoolConfig.DEFAULT_MAX_TOTAL_PER_KEY;
 
     /**
      * Configuration for removing abandoned connections.

Modified: 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolingConnection.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolingConnection.java?rev=1143978&r1=1143977&r2=1143978&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolingConnection.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolingConnection.java
 Thu Jul  7 19:01:59 2011
@@ -61,13 +61,8 @@ public class PoolingConnection extends D
         super(c);
     }
 
-    /**
-     * Constructor.
-     * @param c the underlying {@link Connection}.
-     * @param pool {@link KeyedObjectPool} of {@link PreparedStatement}s and 
{@link CallableStatement}s.
-     */
-    public PoolingConnection(Connection c, KeyedObjectPool pool) {
-        super(c);
+
+    public void setStatementPool(KeyedObjectPool pool) {
         _pstmtPool = pool;
     }
 

Modified: 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java?rev=1143978&r1=1143977&r2=1143978&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java
 Thu Jul  7 19:01:59 2011
@@ -215,8 +215,7 @@ public class DriverAdapterCPDS
                 config.setNumTestsPerEvictionRun(0);
                 config.setMinEvictableIdleTimeMillis(0);
             }
-            stmtPool = new GenericKeyedObjectPool(config);
-            stmtPool.setFactory(pci);
+            stmtPool = new GenericKeyedObjectPool(pci, config);
             pci.setStatementPool(stmtPool);
         }
         return pci;

Modified: 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java?rev=1143978&r1=1143977&r2=1143978&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
 Thu Jul  7 19:01:59 2011
@@ -215,7 +215,10 @@ public class SharedPoolDataSource
         ConnectionPoolDataSource cpds = testCPDS(username, password);
 
         // Create an object pool to contain our PooledConnections
-        GenericKeyedObjectPool tmpPool = new GenericKeyedObjectPool();
+        factory = new KeyedCPDSConnectionFactory(cpds, getValidationQuery(),
+                isRollbackAfterValidation());
+        GenericKeyedObjectPool tmpPool = new GenericKeyedObjectPool(factory);
+        factory.setPool(tmpPool);
         tmpPool.setMaxTotalPerKey(getMaxTotal());
         tmpPool.setMaxIdlePerKey(getMaxIdle());
         tmpPool.setMaxWait(getMaxWait());
@@ -234,10 +237,6 @@ public class SharedPoolDataSource
         tmpPool.setNumTestsPerEvictionRun(getNumTestsPerEvictionRun());
         tmpPool.setMinEvictableIdleTimeMillis(getMinEvictableIdleTimeMillis());
         tmpPool.setTestWhileIdle(getTestWhileIdle());
-        factory = new KeyedCPDSConnectionFactory(cpds, getValidationQuery(),
-                                       isRollbackAfterValidation());
-        factory.setPool(tmpPool);
-        tmpPool.setFactory(factory);
         pool = tmpPool;
     }
 

Modified: 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java?rev=1143978&r1=1143977&r2=1143978&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java
 Thu Jul  7 19:01:59 2011
@@ -22,7 +22,6 @@ import org.apache.commons.dbcp2.BasicDat
 import org.apache.commons.dbcp2.ConnectionFactory;
 import org.apache.commons.dbcp2.PoolableConnectionFactory;
 import org.apache.commons.dbcp2.PoolingDataSource;
-import org.apache.commons.pool2.KeyedObjectPoolFactory;
 
 import javax.sql.XADataSource;
 import javax.transaction.TransactionManager;
@@ -175,20 +174,17 @@ public class BasicManagedDataSource exte
      * Creates the PoolableConnectionFactory and attaches it to the connection 
pool.
      *
      * @param driverConnectionFactory JDBC connection factory created by 
{@link #createConnectionFactory()}
-     * @param statementPoolFactory statement pool factory (null if statement 
pooling is turned off)
      * @param abandonedConfig abandoned connection tracking configuration 
(null if no tracking)
      * @throws SQLException if an error occurs creating the 
PoolableConnectionFactory
      */
     @Override
     protected PoolableConnectionFactory createPoolableConnectionFactory(
             ConnectionFactory driverConnectionFactory,
-            KeyedObjectPoolFactory statementPoolFactory,
             AbandonedConfig abandonedConfig) throws SQLException {
         PoolableConnectionFactory connectionFactory = null;
         try {
             connectionFactory = new PoolableManagedConnectionFactory(
                     (XAConnectionFactory) driverConnectionFactory);
-            connectionFactory.setStatementPoolFactory(statementPoolFactory);
             connectionFactory.setValidationQuery(validationQuery);
             
connectionFactory.setValidationQueryTimeout(validationQueryTimeout);
             connectionFactory.setConnectionInitSql(connectionInitSqls);
@@ -199,6 +195,9 @@ public class BasicManagedDataSource exte
             
connectionFactory.setDefaultTransactionIsolation(defaultTransactionIsolation);
             connectionFactory.setDefaultCatalog(defaultCatalog);
             connectionFactory.setAbandonedConfig(abandonedConfig);
+            connectionFactory.setPoolStatements(poolPreparedStatements);
+            connectionFactory.setMaxOpenPrepatedStatements(
+                    maxOpenPreparedStatements);
             validateConnectionFactory(connectionFactory);
         } catch (RuntimeException e) {
             throw e;

Modified: 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java?rev=1143978&r1=1143977&r2=1143978&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java
 Thu Jul  7 19:01:59 2011
@@ -21,6 +21,9 @@ import java.sql.Connection;
 import org.apache.commons.dbcp2.PoolableConnectionFactory;
 import org.apache.commons.dbcp2.PoolingConnection;
 import org.apache.commons.pool2.KeyedObjectPool;
+import org.apache.commons.pool2.impl.GenericKeyedObjectPool;
+import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig;
+import org.apache.commons.pool2.impl.WhenExhaustedAction;
 
 /**
  * A {@link PoolableConnectionFactory} that creates {@link 
PoolableManagedConnection}s.
@@ -56,12 +59,22 @@ public class PoolableManagedConnectionFa
             throw new IllegalStateException("Connection factory returned null 
from createConnection");
         }
         initializeConnection(conn);
-        if(null != _stmtPoolFactory) {
-            KeyedObjectPool stmtpool = _stmtPoolFactory.createPool();
-            conn = new PoolingConnection(conn,stmtpool);
-            stmtpool.setFactory((PoolingConnection)conn);
+        if(poolStatements) {
+            conn = new PoolingConnection(conn);
+            GenericKeyedObjectPoolConfig config =
+                new GenericKeyedObjectPoolConfig();
+            config.setMaxTotalPerKey(-1);
+            config.setWhenExhaustedAction(WhenExhaustedAction.FAIL);
+            config.setMaxWait(0);
+            config.setMaxIdlePerKey(1);
+            config.setMaxTotal(maxOpenPreparedStatements);
+            KeyedObjectPool stmtPool =
+                new GenericKeyedObjectPool((PoolingConnection)conn, config);
+            ((PoolingConnection)conn).setStatementPool(stmtPool);
+            ((PoolingConnection) conn).setCacheState(_cacheState);
         }
-        return new 
PoolableManagedConnection(transactionRegistry,conn,_pool,_config);
+        return new PoolableManagedConnection(transactionRegistry, conn, _pool,
+                _config);
     }
 
 }

Modified: 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestDelegatingConnection.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestDelegatingConnection.java?rev=1143978&r1=1143977&r2=1143978&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestDelegatingConnection.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestDelegatingConnection.java
 Thu Jul  7 19:01:59 2011
@@ -118,8 +118,8 @@ public class TestDelegatingConnection ex
         }
 
         try {
-            PoolingConnection pc = new PoolingConnection
-                (delegateConn2, new GenericKeyedObjectPool());
+            PoolingConnection pc = new PoolingConnection(delegateConn2);
+            pc.setStatementPool(new GenericKeyedObjectPool(pc));
             conn = new DelegatingConnection(pc);
             pc.close();
             conn.close();

Modified: 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestPStmtPooling.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestPStmtPooling.java?rev=1143978&r1=1143977&r2=1143978&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestPStmtPooling.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestPStmtPooling.java
 Thu Jul  7 19:01:59 2011
@@ -53,13 +53,9 @@ public class TestPStmtPooling extends Te
         ConnectionFactory connFactory = new DriverManagerConnectionFactory(
                 "jdbc:apache:commons:testdriver","u1","p1");
 
-        KeyedObjectPoolFactory stmtPoolFactory =
-            new GenericKeyedObjectPoolFactory(
-                    new GenericKeyedObjectPoolConfig());
-
         PoolableConnectionFactory pcf =
             new PoolableConnectionFactory(connFactory);
-        pcf.setStatementPoolFactory(stmtPoolFactory);
+        pcf.setPoolStatements(true);
         pcf.setDefaultReadOnly(false);
         pcf.setDefaultAutoCommit(true);
         ObjectPool connPool = new GenericObjectPool(pcf);
@@ -81,13 +77,9 @@ public class TestPStmtPooling extends Te
         ConnectionFactory connFactory = new DriverManagerConnectionFactory(
                 "jdbc:apache:commons:testdriver","u1","p1");
 
-        KeyedObjectPoolFactory stmtPoolFactory =
-            new GenericKeyedObjectPoolFactory(
-                    new GenericKeyedObjectPoolConfig());
-
         PoolableConnectionFactory pcf =
             new PoolableConnectionFactory(connFactory);
-        pcf.setStatementPoolFactory(stmtPoolFactory);
+        pcf.setPoolStatements(true);
         pcf.setDefaultReadOnly(false);
         pcf.setDefaultAutoCommit(true);
 
@@ -123,13 +115,9 @@ public class TestPStmtPooling extends Te
         ConnectionFactory connFactory = new DriverManagerConnectionFactory(
                 "jdbc:apache:commons:testdriver","u1","p1");
 
-        KeyedObjectPoolFactory stmtPoolFactory =
-            new GenericKeyedObjectPoolFactory(
-                    new GenericKeyedObjectPoolConfig());
-
         PoolableConnectionFactory pcf =
             new PoolableConnectionFactory(connFactory);
-        pcf.setStatementPoolFactory(stmtPoolFactory);
+        pcf.setPoolStatements(true);
         pcf.setDefaultReadOnly(false);
         pcf.setDefaultAutoCommit(true);
 

Modified: 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestPoolingDriver.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestPoolingDriver.java?rev=1143978&r1=1143977&r2=1143978&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestPoolingDriver.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestPoolingDriver.java
 Thu Jul  7 19:01:59 2011
@@ -62,22 +62,9 @@ public class TestPoolingDriver extends T
         super.setUp();
         DriverConnectionFactory cf = new DriverConnectionFactory(new 
TesterDriver(),"jdbc:apache:commons:testdriver",null);
 
-        GenericKeyedObjectPoolConfig keyedPoolConfig =
-            new GenericKeyedObjectPoolConfig();
-        keyedPoolConfig.setMaxTotalPerKey(10);
-        keyedPoolConfig.setMaxWait(2000);
-        keyedPoolConfig.setMaxIdlePerKey(10);
-        keyedPoolConfig.setTestOnBorrow(true);
-        keyedPoolConfig.setTestOnReturn(true);
-        keyedPoolConfig.setTestWhileIdle(true);
-        keyedPoolConfig.setTimeBetweenEvictionRunsMillis(10000);
-        keyedPoolConfig.setNumTestsPerEvictionRun(5);
-        keyedPoolConfig.setMinEvictableIdleTimeMillis(5000);
-        GenericKeyedObjectPoolFactory opf =
-            new GenericKeyedObjectPoolFactory(keyedPoolConfig);
-
         PoolableConnectionFactory pcf = new PoolableConnectionFactory(cf);
-        pcf.setStatementPoolFactory(opf);
+        pcf.setPoolStatements(true);
+        pcf.setMaxOpenPrepatedStatements(10);
         pcf.setValidationQuery("SELECT COUNT(*) FROM DUAL");
         pcf.setDefaultReadOnly(false);
         pcf.setDefaultAutoCommit(true);

Modified: 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/datasources/TestKeyedCPDSConnectionFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/datasources/TestKeyedCPDSConnectionFactory.java?rev=1143978&r1=1143977&r2=1143978&view=diff
==============================================================================
--- 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/datasources/TestKeyedCPDSConnectionFactory.java
 (original)
+++ 
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/datasources/TestKeyedCPDSConnectionFactory.java
 Thu Jul  7 19:01:59 2011
@@ -89,11 +89,10 @@ public class TestKeyedCPDSConnectionFact
     public void testConnectionErrorCleanup() throws Exception {
         // Setup factory
         UserPassKey key = new UserPassKey("username", "password");
-        GenericKeyedObjectPool pool = new GenericKeyedObjectPool();
         KeyedCPDSConnectionFactory factory = 
             new KeyedCPDSConnectionFactory(cpds, null, false);
+        GenericKeyedObjectPool pool = new GenericKeyedObjectPool(factory);
         factory.setPool(pool);
-        pool.setFactory(factory);
         
         // Checkout a pair of connections
         PooledConnection pcon1 = 


Reply via email to