cvs commit: jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/jdbc2pool TestJdbc2PoolDataSource.java

2003-08-14 Thread jmcnally
jmcnally2003/08/11 23:09:21

  Modified:dbcp/src/test/org/apache/commons/dbcp TestAll.java
  Added:   dbcp/src/java/org/apache/commons/dbcp/datasources
CPDSConnectionFactory.java
InstanceKeyDataSource.java
InstanceKeyObjectFactory.java
KeyedCPDSConnectionFactory.java
PerUserPoolDataSource.java PoolKey.java
PooledConnectionAndInfo.java
SharedPoolDataSource.java UserPassKey.java
   dbcp/src/test/org/apache/commons/dbcp/datasources
TestPerUserPoolDataSource.java
TestSharedPoolDataSource.java
  Removed: dbcp/src/java/org/apache/commons/dbcp/jdbc2pool
CPDSConnectionFactory.java Jdbc2PoolDataSource.java
PoolKey.java PooledConnectionAndInfo.java
UserPassKey.java package.html
   dbcp/src/test/org/apache/commons/dbcp/jdbc2pool
TestJdbc2PoolDataSource.java
  Log:
  removed jdbc2 from package and class names.  jdbc2pool package renamed to
  datasources. Split Jdbc2PoolDataSource into
  two separate DataSources.  One which uses a single pool keyed by username
  and another which uses a separate pool for each user.  This simplifies the
  code in each.  Moved the ObjectFactory implementation into a separate class
  and simplified the jndi code considerably in the process.
  
  Revision  ChangesPath
  1.1  
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/CPDSConnectionFactory.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/CPDSConnectionFactory.java?rev=1.1
  
  
  1.1  
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/InstanceKeyDataSource.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/InstanceKeyDataSource.java?rev=1.1
  
  
  1.1  
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/InstanceKeyObjectFactory.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/InstanceKeyObjectFactory.java?rev=1.1
  
  
  1.1  
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/KeyedCPDSConnectionFactory.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/KeyedCPDSConnectionFactory.java?rev=1.1
  
  
  1.1  
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/PerUserPoolDataSource.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/PerUserPoolDataSource.java?rev=1.1
  
  
  1.1  
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/PoolKey.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/PoolKey.java?rev=1.1
  
  
  1.1  
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/PooledConnectionAndInfo.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/PooledConnectionAndInfo.java?rev=1.1
  
  
  1.1  
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/SharedPoolDataSource.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/SharedPoolDataSource.java?rev=1.1
  
  
  1.1  
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/UserPassKey.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/datasources/UserPassKey.java?rev=1.1
  
  
  1.7   +8 -6  
jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/TestAll.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/TestAll.java.diff?r1=1.6r2=1.7
  
  
  1.1  
jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/datasources/TestPerUserPoolDataSource.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/datasources/TestPerUserPoolDataSource.java?rev=1.1
  
  
  1.1  
jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/datasources/TestSharedPoolDataSource.java
  
  
http://cvs.apache.org/viewcvs/jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/datasources/TestSharedPoolDataSource.java?rev=1.1
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/jdbc2pool TestJdbc2PoolDataSource.java

2003-08-14 Thread dirkv
dirkv   2003/08/11 16:34:52

  Modified:dbcp/src/test/org/apache/commons/dbcp/jdbc2pool
TestJdbc2PoolDataSource.java
  Log:
  Bugzilla Bug 1892: Per User methods not working in Jdbc2PoolDataSource
  - add junit test to make sure everything is ok
  
  Revision  ChangesPath
  1.9   +54 -4 
jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/jdbc2pool/TestJdbc2PoolDataSource.java
  
  Index: TestJdbc2PoolDataSource.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/jdbc2pool/TestJdbc2PoolDataSource.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- TestJdbc2PoolDataSource.java  2 Jun 2003 04:54:12 -   1.8
  +++ TestJdbc2PoolDataSource.java  11 Aug 2003 23:34:52 -  1.9
  @@ -76,6 +76,7 @@
   
   /**
* @author John McNally
  + * @author Dirk Verbeeck
* @version $Revision$ $Date$
*/
   public class TestJdbc2PoolDataSource extends TestConnectionPool {
  @@ -333,6 +334,55 @@
   {
   c[i].close();
   }
  +}
  +
  +public void testPerUserMethods() throws Exception {
  +Jdbc2PoolDataSource tds = (Jdbc2PoolDataSource) ds;
  +
  +// you need to set maxActive otherwise there is no accounting
  +tds.setPerUserMaxActive(u1, new Integer(5));
  +tds.setPerUserMaxActive(u2, new Integer(5));
  +
  +assertEquals(0, tds.getNumActive());
  +assertEquals(0, tds.getNumActive(u1, p1));
  +assertEquals(0, tds.getNumActive(u2, p2));
  +assertEquals(0, tds.getNumIdle());
  +assertEquals(0, tds.getNumIdle(u1, p1));
  +assertEquals(0, tds.getNumIdle(u2, p2));
  +
  +Connection conn = tds.getConnection();
  +assertNotNull(conn);
  +assertEquals(1, tds.getNumActive());
  +assertEquals(0, tds.getNumActive(u1, p1));
  +assertEquals(0, tds.getNumActive(u2, p2));
  +assertEquals(0, tds.getNumIdle());
  +assertEquals(0, tds.getNumIdle(u1, p1));
  +assertEquals(0, tds.getNumIdle(u2, p2));
  +
  +conn.close();
  +assertEquals(0, tds.getNumActive());
  +assertEquals(0, tds.getNumActive(u1, p1));
  +assertEquals(0, tds.getNumActive(u2, p2));
  +assertEquals(1, tds.getNumIdle());
  +assertEquals(0, tds.getNumIdle(u1, p1));
  +assertEquals(0, tds.getNumIdle(u2, p2));
  +
  +conn = tds.getConnection(u1, p1);
  +assertNotNull(conn);
  +assertEquals(0, tds.getNumActive());
  +assertEquals(1, tds.getNumActive(u1, p1));
  +assertEquals(0, tds.getNumActive(u2, p2));
  +assertEquals(1, tds.getNumIdle());
  +assertEquals(0, tds.getNumIdle(u1, p1));
  +assertEquals(0, tds.getNumIdle(u2, p2));
  +
  +conn.close();
  +assertEquals(0, tds.getNumActive());
  +assertEquals(0, tds.getNumActive(u1, p1));
  +assertEquals(0, tds.getNumActive(u2, p2));
  +assertEquals(1, tds.getNumIdle());
  +assertEquals(1, tds.getNumIdle(u1, p1));
  +assertEquals(0, tds.getNumIdle(u2, p2));
   }
   
   public void testMultipleThreads() throws Exception {
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/jdbc2pool TestJdbc2PoolDataSource.java

2003-03-06 Thread rwaldhoff
rwaldhoff2003/03/06 13:41:47

  Modified:dbcp/src/test/org/apache/commons/dbcp
TestConnectionPool.java
   dbcp/src/test/org/apache/commons/dbcp/jdbc2pool
TestJdbc2PoolDataSource.java
  Log:
  remove unneccessary calls to Thread.currentThread()
  
  Revision  ChangesPath
  1.4   +7 -7  
jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/TestConnectionPool.java
  
  Index: TestConnectionPool.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/TestConnectionPool.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestConnectionPool.java   8 Nov 2002 19:37:26 -   1.3
  +++ TestConnectionPool.java   6 Mar 2003 21:41:47 -   1.4
  @@ -367,7 +367,7 @@
   for(int i=0;ithreads.length;i++) {
   while(!(threads[i]).complete()) {
   try {
  -Thread.currentThread().sleep(100L);
  +Thread.sleep(100L);
   } catch(Exception e) {
   // ignored
   }
  @@ -408,7 +408,7 @@
   public void run() {
   for(int i=0;i_iter;i++) {
   try {
  -Thread.currentThread().sleep((long)_random.nextInt(_delay));
  +Thread.sleep((long)_random.nextInt(_delay));
   } catch(Exception e) {
   // ignored
   }
  @@ -420,7 +420,7 @@
   stmt = conn.prepareStatement(select 'literal', SYSDATE from 
dual);
   rset = stmt.executeQuery();
   try {
  -Thread.currentThread().sleep((long)_random.nextInt(_delay));
  +Thread.sleep((long)_random.nextInt(_delay));
   } catch(Exception e) {
   // ignored
   }
  
  
  
  1.5   +7 -7  
jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/jdbc2pool/TestJdbc2PoolDataSource.java
  
  Index: TestJdbc2PoolDataSource.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/jdbc2pool/TestJdbc2PoolDataSource.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TestJdbc2PoolDataSource.java  16 Nov 2002 19:18:27 -  1.4
  +++ TestJdbc2PoolDataSource.java  6 Mar 2003 21:41:47 -   1.5
  @@ -347,7 +347,7 @@
   for (int i = 0; i  pts.length; i++) {
   pts[i] = new PoolTest(threadGroup, holdTime);
   }
  -Thread.currentThread().sleep(10 * holdTime);
  +Thread.sleep(10 * holdTime);
   for (int i = 0; i  pts.length; i++) {
   pts[i].stop();
   }
  @@ -355,7 +355,7 @@
   // - (pts.length*10*holdTime);
   System.out.println(Multithread test time =  + time +  ms);
   
  -Thread.currentThread().sleep(holdTime);
  +Thread.sleep(holdTime);
   return success[0];
   }
   
  @@ -396,7 +396,7 @@
   assertTrue(null != rset);
   assertTrue(rset.next());
   state = Holding Connection;
  -thread.sleep(connHoldTime);
  +Thread.sleep(connHoldTime);
   state = Returning Connection;
   rset.close();
   stmt.close();
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/jdbc2pool TestJdbc2PoolDataSource.java

2002-11-16 Thread jmcnally
jmcnally2002/11/16 11:18:28

  Modified:dbcp/src/java/org/apache/commons/dbcp/jdbc2pool
CPDSConnectionFactory.java Jdbc2PoolDataSource.java
KeyedCPDSConnectionFactory.java PoolKey.java
UserPassKey.java
   dbcp/src/test/org/apache/commons/dbcp/jdbc2pool
TestJdbc2PoolDataSource.java
  Added:   dbcp/src/java/org/apache/commons/dbcp/jdbc2pool
PooledConnectionAndInfo.java
  Log:
  Removed pools of PoolKey and UserPassKey and made the keys immutable.
  
  Storing the username and password used to obtain a PooledConnection along
  with the connection, so that it can be checked on later requests for the
  same connection.
  
  Revision  ChangesPath
  1.3   +34 -13
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/jdbc2pool/CPDSConnectionFactory.java
  
  Index: CPDSConnectionFactory.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/jdbc2pool/CPDSConnectionFactory.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CPDSConnectionFactory.java1 Nov 2002 16:03:20 -   1.2
  +++ CPDSConnectionFactory.java16 Nov 2002 19:18:27 -  1.3
  @@ -63,6 +63,7 @@
   
   import java.util.Map;
   import java.util.HashMap;
  +import java.util.WeakHashMap;
   import java.sql.*;
   import javax.sql.ConnectionPoolDataSource;
   import javax.sql.PooledConnection;
  @@ -153,9 +154,10 @@
   
   
   synchronized public Object makeObject() {
  -PooledConnection pc = null;
  +Object obj;
   try
   {
  +PooledConnection pc = null;
   if ( _username == null ) 
   {
   pc = _cpds.getPooledConnection();
  @@ -167,18 +169,21 @@
   // should we add this object as a listener or the pool.
   // consider the validateObject method in decision
   pc.addConnectionEventListener(this);
  +obj = new PooledConnectionAndInfo(pc, _username, _password);
  +pcMap.put(pc, obj);
   }
   catch (SQLException e)
   {
   throw new RuntimeException(e.getMessage());
   }
  -return pc;
  +return obj;
   }
   
   public void destroyObject(Object obj) {
  -if(obj instanceof PooledConnection) {
  +if(obj instanceof PooledConnectionAndInfo) {
   try {
  -((PooledConnection)obj).close();
  +((PooledConnectionAndInfo)obj)
  +.getPooledConnection().close();
   } catch(RuntimeException e) {
   throw e;
   } catch(SQLException e) {
  @@ -189,8 +194,9 @@
   
   public boolean validateObject(Object obj) {
   boolean valid = false;
  -if(obj instanceof PooledConnection) {
  -PooledConnection pconn = (PooledConnection)obj;
  +if(obj instanceof PooledConnectionAndInfo) {
  +PooledConnection pconn = 
  +((PooledConnectionAndInfo)obj).getPooledConnection();
   String query = _validationQuery;
   if(null != query) {
   Connection conn = null;
  @@ -264,13 +270,19 @@
   // otherwise return the connection to the pool.
   if (!validatingMap.containsKey(pc)) 
   {
  +Object info = pcMap.get(pc);
  +if (info == null) 
  +{
  +throw new IllegalStateException(NO_KEY_MESSAGE);
  +}
  +
   try
   {
  -_pool.returnObject(pc);
  +_pool.returnObject(info);
   }
   catch (Exception e)
   {
  -destroyObject(pc);
  +destroyObject(info);
   System.err.println(CLOSING DOWN CONNECTION AS IT COULD  + 
  NOT BE RETURNED TO THE POOL);
   }
  @@ -300,9 +312,17 @@
   // ignore
   }
   
  -destroyObject(pc);
  +Object info = pcMap.get(pc);
  +if (info == null) 
  +{
  +throw new IllegalStateException(NO_KEY_MESSAGE);
  +}
  +destroyObject(info);
   }
   
  +private static final String NO_KEY_MESSAGE = 
  +close() was called on a Connection, but  + 
  +I have no record of the underlying PooledConnection.;
   
   protected ConnectionPoolDataSource _cpds = null;
   protected String _validationQuery = null;
  @@ -310,4 +330,5 @@
   protected String _username = null;
   protected String _password = null;
   private Map validatingMap = new HashMap();
  +private WeakHashMap pcMap = new WeakHashMap();
   }
  
  
  
  1.7   +65 -63

cvs commit: jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/jdbc2pool TestJdbc2PoolDataSource.java

2002-11-08 Thread rwaldhoff
rwaldhoff2002/11/08 10:51:07

  Modified:dbcp build.xml maven.xml
   dbcp/doc test.jocl
   dbcp/src/java/org/apache/commons/dbcp/cpdsadapter
ConnectionImpl.java
PoolablePreparedStatementStub.java
PooledConnectionImpl.java
   dbcp/src/test/org/apache/commons/dbcp TestAll.java
TestJOCLed.java TestManual.java
TesterStatement.java
   dbcp/src/test/org/apache/commons/dbcp/jdbc2pool
TestJdbc2PoolDataSource.java
  Added:   dbcp/src/test testpool.jocl
   dbcp/src/test/org/apache/commons/dbcp
TestConnectionPool.java
  Log:
  refactor/cleanup test suite a bit
  apply generic tests to more configurations
  fix a couple of bugs that revealed
  
  Revision  ChangesPath
  1.16  +6 -1  jakarta-commons/dbcp/build.xml
  
  Index: build.xml
  ===
  RCS file: /home/cvs/jakarta-commons/dbcp/build.xml,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- build.xml 5 Sep 2002 23:38:49 -   1.15
  +++ build.xml 8 Nov 2002 18:51:06 -   1.16
  @@ -239,6 +239,11 @@
debug=true
deprecation=true
optimize=true/
  +  copy todir=${dest.classes} filtering=no
  +fileset dir=${source.src.test} defaultexcludes=no
  +  include name=testpool.jocl/
  +/fileset
  +  /copy
  /target
   
  !-- # --
  
  
  
  1.2   +9 -2  jakarta-commons/dbcp/maven.xml
  
  Index: maven.xml
  ===
  RCS file: /home/cvs/jakarta-commons/dbcp/maven.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- maven.xml 23 Jul 2002 16:43:14 -  1.1
  +++ maven.xml 8 Nov 2002 18:51:06 -   1.2
  @@ -1,4 +1,11 @@
  -project default=java:jar
  -  xmlns:j=jelly:core
  +project default=java:jar xmlns:j=jelly:core
  +
  +postGoal name=test:compile
  +  copy todir=target/test-classes
  +fileset dir=src/test
  +  include name=testpool.jocl/
  +/fileset
  +  /copy
  +/postGoal
   
   /project
  
  
  
  1.2   +2 -2  jakarta-commons/dbcp/doc/test.jocl
  
  Index: test.jocl
  ===
  RCS file: /home/cvs/jakarta-commons/dbcp/doc/test.jocl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- test.jocl 14 Apr 2001 17:16:57 -  1.1
  +++ test.jocl 8 Nov 2002 18:51:07 -   1.2
  @@ -19,10 +19,10 @@
  /object
  object class=org.apache.commons.pool.impl.GenericKeyedObjectPoolFactory
 object class=org.apache.commons.pool.KeyedPoolableObjectFactory 
null=true/
  -  int value=5/
  +  int value=10/
 byte value=1/
 long value=2000/
  -  int value=5/
  +  int value=10/
 boolean value=true/
 boolean value=true/
 long value=1/
  
  
  
  1.2   +3 -2  
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/cpdsadapter/ConnectionImpl.java
  
  Index: ConnectionImpl.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/cpdsadapter/ConnectionImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ConnectionImpl.java   5 Aug 2002 06:42:01 -   1.1
  +++ ConnectionImpl.java   8 Nov 2002 18:51:07 -   1.2
  @@ -3,7 +3,7 @@
   /* 
* The Apache Software License, Version 1.1
*
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
  @@ -170,6 +170,7 @@
   public void close()
   throws SQLException
   {
  +assertOpen();
   isClosed = true;
   pooledConnection.notifyListeners();
   }
  
  
  
  1.2   +8 -8  
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/cpdsadapter/PoolablePreparedStatementStub.java
  
  Index: PoolablePreparedStatementStub.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/cpdsadapter/PoolablePreparedStatementStub.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PoolablePreparedStatementStub.java5 Aug 2002 06:42:01 -   1.1
  +++ PoolablePreparedStatementStub.java8 Nov 2002 18:51:07 -   1.2
  @@ -1,5 +1,5 @@
   /*