com.gargoylesoftware.base.resource.jdbc
Class JDBCResourceFactory

java.lang.Object
  extended bycom.gargoylesoftware.base.resource.ResourceFactory
      extended bycom.gargoylesoftware.base.resource.jdbc.JDBCResourceFactory

public class JDBCResourceFactory
extends ResourceFactory

A ResourceFactory for JDBC connections

Version:
$Revision: 1.5 $
Author:
Mike Bowler

Constructor Summary
JDBCResourceFactory(String databaseName, String userName, String password)
          Create the factory.
JDBCResourceFactory(String databaseName, String userName, String password, boolean verifyThatConnectionCanBeOpened)
          Create the factory.
 
Method Summary
protected  Connection allocateRealConnection(String databaseName, String userName, String password)
          Allocate a real database connection from the DriverManager
protected  void freeRealConnection(Connection connection)
          Free a real database connection
protected  ManagedResource getResourceImpl(ResourceManager resourceManager)
          Allocate a resource for the specified store
 boolean reinitializeResourceIfPossible(ManagedResource resource)
          Reinitialize the resource to a known state.
protected  void releaseResourceImpl(ResourceManager resourceManager, ManagedResource resource)
          Release the specified resource.
 
Methods inherited from class com.gargoylesoftware.base.resource.ResourceFactory
getResource, releaseAllResources, releaseResource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JDBCResourceFactory

public JDBCResourceFactory(String databaseName,
                           String userName,
                           String password)
                    throws SQLException
Create the factory. The database driver must have been registered prior to creating an instance of this class. This constructor will always try to allocate one connection right away to ensure that the database information was entered correctly.

Parameters:
databaseName - The name of the database
userName - The user id that we will use to connect to the database
password - The password for the specified user
Throws:
SQLException - If an error occurs

JDBCResourceFactory

public JDBCResourceFactory(String databaseName,
                           String userName,
                           String password,
                           boolean verifyThatConnectionCanBeOpened)
                    throws SQLException
Create the factory. The database driver must have been registered prior to creating an instance of this class.

Parameters:
databaseName - The name of the database
userName - The user id that we will use to connect to the database
password - The password for the specified user
verifyThatConnectionCanBeOpened - If true than one connection will be immediately allocated and then freed from the specified database
Throws:
SQLException - If an error occurs
Method Detail

reinitializeResourceIfPossible

public boolean reinitializeResourceIfPossible(ManagedResource resource)
Reinitialize the resource to a known state. This is required for resource pooling as all resources being returned from a pool must have been initialized to a known state.

Specified by:
reinitializeResourceIfPossible in class ResourceFactory
Parameters:
resource - the resource to reinitialize
Returns:
true if the resource was successfully reinitialized

getResourceImpl

protected ManagedResource getResourceImpl(ResourceManager resourceManager)
                                   throws Exception
Allocate a resource for the specified store

Specified by:
getResourceImpl in class ResourceFactory
Parameters:
resourceManager - The resource manager that owns this factory
Returns:
The new resource
Throws:
Exception - If an error occurs

releaseResourceImpl

protected void releaseResourceImpl(ResourceManager resourceManager,
                                   ManagedResource resource)
                            throws Exception
Release the specified resource. It must have been allocated by the specified store

Specified by:
releaseResourceImpl in class ResourceFactory
Parameters:
resource - The resource that we are releasing
resourceManager - The manager that is controlling this factory
Throws:
Exception - If an error occurs

allocateRealConnection

protected final Connection allocateRealConnection(String databaseName,
                                                  String userName,
                                                  String password)
                                           throws SQLException
Allocate a real database connection from the DriverManager

Parameters:
databaseName - The name of the database
userName - The user id that we will use to connect to the database
password - The password for the specified user
Returns:
A new connection
Throws:
SQLException - If an error occurs

freeRealConnection

protected final void freeRealConnection(Connection connection)
                                 throws SQLException
Free a real database connection

Parameters:
connection - The connection to release
Throws:
SQLException - If an error occurs


Copyright © 1998-2005 Gargoyle Software Inc.. All Rights Reserved.