org.outerj.xreporter.connectionprovider.pooling
Class PoolingConnectionProvider

java.lang.Object
  extended byorg.apache.avalon.framework.logger.AbstractLogEnabled
      extended byorg.outerj.xreporter.connectionprovider.pooling.PoolingConnectionProvider
All Implemented Interfaces:
ConnectionProvider, org.apache.avalon.framework.logger.LogEnabled

public class PoolingConnectionProvider
extends org.apache.avalon.framework.logger.AbstractLogEnabled
implements ConnectionProvider

ConnectionProvider that pools its connections. See the description of PoolingConnectionProviderManager.


Field Summary
protected  java.util.ArrayList connectionsAvailable
           
protected  java.util.List connectionsInUse
           
protected  org.apache.avalon.excalibur.concurrent.Mutex mutex
           
protected  java.util.Properties properties
           
protected  PoolingConnectionProviderManager providerManager
           
protected  java.lang.String url
           
 
Constructor Summary
PoolingConnectionProvider(java.util.Properties properties, PoolingConnectionProviderManager providerManager)
           
 
Method Summary
protected  java.sql.Connection createConnection()
           
 void dispose()
          This method should be called when this ConnectionProvider is no longer needed.
protected  void doMaintenance()
           
 java.sql.Connection getConnection()
          Returns a Connection.
protected  void release(PooledConnection conn)
           
 java.lang.String toString()
           
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

properties

protected java.util.Properties properties

url

protected java.lang.String url

providerManager

protected PoolingConnectionProviderManager providerManager

connectionsInUse

protected java.util.List connectionsInUse

connectionsAvailable

protected java.util.ArrayList connectionsAvailable

mutex

protected org.apache.avalon.excalibur.concurrent.Mutex mutex
Constructor Detail

PoolingConnectionProvider

public PoolingConnectionProvider(java.util.Properties properties,
                                 PoolingConnectionProviderManager providerManager)
Method Detail

getConnection

public java.sql.Connection getConnection()
                                  throws java.sql.SQLException
Description copied from interface: ConnectionProvider
Returns a Connection. Do not forget to close this connection when you're done with it! This usually means that you should use a try-finally block.

Specified by:
getConnection in interface ConnectionProvider
Throws:
java.sql.SQLException

release

protected void release(PooledConnection conn)
                throws java.lang.Exception
Throws:
java.lang.Exception

doMaintenance

protected void doMaintenance()
                      throws java.lang.Exception
Throws:
java.lang.Exception

createConnection

protected java.sql.Connection createConnection()
                                        throws java.sql.SQLException
Throws:
java.sql.SQLException

dispose

public void dispose()
Description copied from interface: ConnectionProvider
This method should be called when this ConnectionProvider is no longer needed. It allows ConnectionProviders that pool connections to clean them up.

Specified by:
dispose in interface ConnectionProvider

toString

public java.lang.String toString()