You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ps...@apache.org on 2009/10/22 12:27:43 UTC

svn commit: r828639 - in /commons/proper/dbcp/trunk/src: java/org/apache/commons/dbcp/BasicDataSourceFactory.java test/org/apache/commons/dbcp/TestBasicDataSourceFactory.java

Author: psteitz
Date: Thu Oct 22 10:27:43 2009
New Revision: 828639

URL: http://svn.apache.org/viewvc?rev=828639&view=rev
Log:
Added validationQueryTimeout to properties set by BasicDataSourceFactory (should have been included in r756628).  Thanks to Roshan Gunasekara. JIRA: DBCP-226.

Modified:
    commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSourceFactory.java
    commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSourceFactory.java

Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSourceFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSourceFactory.java?rev=828639&r1=828638&r2=828639&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSourceFactory.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSourceFactory.java Thu Oct 22 10:27:43 2009
@@ -65,6 +65,7 @@
     private final static String PROP_URL = "url";
     private final static String PROP_USERNAME = "username";
     private final static String PROP_VALIDATIONQUERY = "validationQuery";
+    private final static String PROP_VALIDATIONQUERY_TIMEOUT = "validationQueryTimeout";
     /**
      * The property name for initConnectionSqls.
      * The associated value String must be of the form [query;]*
@@ -100,6 +101,7 @@
         PROP_URL,
         PROP_USERNAME,
         PROP_VALIDATIONQUERY,
+        PROP_VALIDATIONQUERY_TIMEOUT,
         PROP_INITCONNECTIONSQLS,
         PROP_ACCESSTOUNDERLYINGCONNECTIONALLOWED,
         PROP_REMOVEABANDONED,
@@ -291,6 +293,11 @@
             dataSource.setValidationQuery(value);
         }
 
+        value = properties.getProperty(PROP_VALIDATIONQUERY_TIMEOUT);
+        if (value != null) {
+            dataSource.setValidationQueryTimeout(Integer.parseInt(value));
+        }
+        
         value = properties.getProperty(PROP_ACCESSTOUNDERLYINGCONNECTIONALLOWED);
         if (value != null) {
             dataSource.setAccessToUnderlyingConnectionAllowed(Boolean.valueOf(value).booleanValue());

Modified: commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSourceFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSourceFactory.java?rev=828639&r1=828638&r2=828639&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSourceFactory.java (original)
+++ commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSourceFactory.java Thu Oct 22 10:27:43 2009
@@ -17,6 +17,7 @@
 
 package org.apache.commons.dbcp;
 
+import java.sql.Connection;
 import java.util.Properties;
 
 import javax.sql.DataSource;
@@ -53,24 +54,64 @@
         properties.setProperty("driverClassName", "org.apache.commons.dbcp.TesterDriver");
         properties.setProperty("url", "jdbc:apache:commons:testdriver");
         properties.setProperty("maxActive", "10");
+        properties.setProperty("maxIdle", "8");
+        properties.setProperty("minIdle", "0");
         properties.setProperty("maxWait", "500");
+        properties.setProperty("initialSize", "5");
         properties.setProperty("defaultAutoCommit", "true");
         properties.setProperty("defaultReadOnly", "false");
         properties.setProperty("defaultTransactionIsolation", "READ_COMMITTED");
         properties.setProperty("defaultCatalog", "test");
+        properties.setProperty("testOnBorrow", "true");
+        properties.setProperty("testOnReturn", "false");
         properties.setProperty("username", "username");
         properties.setProperty("password", "password");
         properties.setProperty("validationQuery", "SELECT DUMMY FROM DUAL");
+        properties.setProperty("validationQueryTimeout", "100");
         properties.setProperty("initConnectionSqls", "SELECT 1;SELECT 2");
+        properties.setProperty("timeBetweenEvictionRunsMillis", "1000");
+        properties.setProperty("minEvictableIdleTimeMillis", "2000");
+        properties.setProperty("numTestsPerEvictionRun", "2");
+        properties.setProperty("testWhileIdle", "true");
+        properties.setProperty("accessToUnderlyingConnectionAllowed", "true");
+        properties.setProperty("removeAbandoned", "true");
+        properties.setProperty("removeAbandonedTimeout", "3000");
+        properties.setProperty("logAbandoned", "true");
+        properties.setProperty("poolPreparedStatements", "true");
+        properties.setProperty("maxOpenPreparedStatements", "10");
 
         BasicDataSource ds = (BasicDataSource) BasicDataSourceFactory.createDataSource(properties);
         
+        assertEquals("org.apache.commons.dbcp.TesterDriver", ds.getDriverClassName());
         assertEquals("jdbc:apache:commons:testdriver", ds.getUrl());
         assertEquals(10, ds.getMaxActive());
+        assertEquals(8, ds.getMaxIdle());
+        assertEquals(0, ds.getMinIdle());
+        assertEquals(500, ds.getMaxWait());
+        assertEquals(5, ds.getInitialSize());
+        assertEquals(5, ds.getNumIdle());
         assertEquals(true, ds.getDefaultAutoCommit());
-
+        assertEquals(false, ds.getDefaultReadOnly());
+        assertEquals(Connection.TRANSACTION_READ_COMMITTED, ds.getDefaultTransactionIsolation());
+        assertEquals("test", ds.getDefaultCatalog());
+        assertEquals(true, ds.getTestOnBorrow());
+        assertEquals(false, ds.getTestOnReturn());
+        assertEquals("username", ds.getUsername());
+        assertEquals("password", ds.getPassword());
+        assertEquals("SELECT DUMMY FROM DUAL", ds.getValidationQuery());
+        assertEquals(100, ds.getValidationQueryTimeout());
         assertEquals(2, ds.connectionInitSqls.size());
         assertEquals("SELECT 1", ds.connectionInitSqls.get(0));
         assertEquals("SELECT 2", ds.connectionInitSqls.get(1));
+        assertEquals(1000, ds.getTimeBetweenEvictionRunsMillis());
+        assertEquals(2000, ds.getMinEvictableIdleTimeMillis());
+        assertEquals(2, ds.getNumTestsPerEvictionRun());
+        assertEquals(true, ds.getTestWhileIdle());
+        assertEquals(true, ds.isAccessToUnderlyingConnectionAllowed());
+        assertEquals(true, ds.getRemoveAbandoned());
+        assertEquals(3000, ds.getRemoveAbandonedTimeout());
+        assertEquals(true, ds.getLogAbandoned());
+        assertEquals(true, ds.isPoolPreparedStatements());
+        assertEquals(10, ds.getMaxOpenPreparedStatements());
     }
 }