commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Phil Steitz <phil.ste...@gmail.com>
Subject Re: svn commit: r746849 - in /commons/proper/dbcp/trunk: src/java/org/apache/commons/dbcp/ src/java/org/apache/commons/jocl/ src/test/ src/test/org/apache/commons/dbcp/ src/test/org/apache/commons/jocl/ xdocs/
Date Mon, 23 Feb 2009 04:30:36 GMT
sebb wrote:
> On 22/02/2009, psteitz@apache.org <psteitz@apache.org> wrote:
>   
>> Author: psteitz
>>  Date: Sun Feb 22 23:43:52 2009
>>  New Revision: 746849
>>
>>  URL: http://svn.apache.org/viewvc?rev=746849&view=rev
>>  Log:
>>  Added a connectionInitSqls configuration parameter to BasicDataSource allowing
>>  the user to specify a collection of SQL statements to execute one time when
>>  a physical database connection is first opened.
>>  JIRA: DBCP-175
>>  Thanks to Jiri Melichna and Jerome Lacoste.
>>
>>
>>  Modified:
>>     commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSource.java
>>     commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSourceFactory.java
>>     commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolableConnectionFactory.java
>>     commons/proper/dbcp/trunk/src/java/org/apache/commons/jocl/JOCLContentHandler.java
>>     commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSource.java
>>     commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestBasicDataSourceFactory.java
>>     commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TesterStatement.java
>>     commons/proper/dbcp/trunk/src/test/org/apache/commons/jocl/TestJOCLContentHandler.java
>>     commons/proper/dbcp/trunk/src/test/testpool.jocl
>>     commons/proper/dbcp/trunk/xdocs/changes.xml
>>     commons/proper/dbcp/trunk/xdocs/configuration.xml
>>
>>  Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSource.java
>>  URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSource.java?rev=746849&r1=746848&r2=746849&view=diff
>>  ==============================================================================
>>  --- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSource.java
(original)
>>  +++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/BasicDataSource.java
Sun Feb 22 23:43:52 2009
>>  @@ -19,6 +19,11 @@
>>
>>   import java.io.PrintWriter;
>>   import java.util.Properties;
>>  +import java.util.Collection;
>>  +import java.util.List;
>>  +import java.util.ArrayList;
>>  +import java.util.Iterator;
>>  +import java.util.Collections;
>>   import java.sql.Connection;
>>   import java.sql.Driver;
>>   import java.sql.DriverManager;
>>  @@ -801,6 +806,60 @@
>>          }
>>          this.restartNeeded = true;
>>      }
>>  +
>>  +    /**
>>  +     * These SQL statements run once after a Connection is created.
>>  +     * <p>
>>  +     * This property can be used for example to run ALTER SESSION SET
>>  +     * NLS_SORT=XCYECH in an Oracle Database only once after connection
>>  +     * creation.
>>  +     * </p>
>>  +     *
>>  +     * @since 1.3
>>  +     */
>>  +    protected List connectionInitSqls;
>>  +
>>     
>
> Why protected and not private?
>
> This allows sub-classes to break the thread-safety provided by the
> synch. get and set methods.
>   
Good point.   All of BasicDataSource's properties are set up like 
this.   I was not there at the beginning, but if you look at the earlier 
revisions, you can see that BasicDataSource was not initially set up to 
support "dynamic reconfiguration" so the property getters/setters were 
not synchronized.  Support for dynamic reconfiguration was started in 
r132132 , but never really completed (the "restartNeeded" field is never 
read).  It is not clear to me how exactly this would ever work, to be 
honest.  The current setup is a little funny in that some setters have 
no effect once the pool has been initialized.  See comments in the 
javadoc for e.g. setDriverClassName.  None of this really answers your 
question though.  For backward compatability, the existing fields need 
to remain protected, but I guess we could make this new one private.

Phil 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message