org.springframework.jca.cci.connection
Class ConnectionFactoryUtils

java.lang.Object
  extended by org.springframework.jca.cci.connection.ConnectionFactoryUtils

public abstract class ConnectionFactoryUtils
extends Object

Helper class that provides static methods for obtaining CCI Connections from a ConnectionFactory. Has special support for Spring-managed Connections, e.g. for use with CciLocalTransactionManager or JtaTransactionManager.

Used internally by CciTemplate, Spring's CCI operation objects and the CciLocalTransactionManager. Can also be used directly in application code.

Since:
1.2
Author:
Thierry Templier, Juergen Hoeller
See Also:
getConnection(javax.resource.cci.ConnectionFactory), releaseConnection(javax.resource.cci.Connection, javax.resource.cci.ConnectionFactory), CciLocalTransactionManager, JtaTransactionManager, TransactionSynchronizationManager

Constructor Summary
ConnectionFactoryUtils()
           
 
Method Summary
static Connection doGetConnection(ConnectionFactory cf)
          Actually obtain a CCI Connection from the given ConnectionFactory.
static void doReleaseConnection(Connection con, ConnectionFactory cf)
          Actually close the given Connection, obtained from the given ConnectionFactory.
static Connection getConnection(ConnectionFactory cf)
          Obtain a Connection from the given ConnectionFactory.
static void releaseConnection(Connection con, ConnectionFactory cf)
          Close the given Connection, obtained from the given ConnectionFactory, if it is not managed externally (that is, not bound to the thread).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConnectionFactoryUtils

public ConnectionFactoryUtils()
Method Detail

getConnection

public static Connection getConnection(ConnectionFactory cf)
                                throws CannotGetCciConnectionException
Obtain a Connection from the given ConnectionFactory. Translates ResourceExceptions into the Spring hierarchy of unchecked generic data access exceptions, simplifying calling code and making any exception that is thrown more meaningful.

Is aware of a corresponding Connection bound to the current thread, for example when using CciLocalTransactionManager. Will bind a Connection to the thread if transaction synchronization is active (e.g. if in a JTA transaction).

Parameters:
cf - the ConnectionFactory to obtain Connection from
Returns:
a CCI Connection from the given ConnectionFactory
Throws:
CannotGetCciConnectionException - if the attempt to get a Connection failed
See Also:
releaseConnection(javax.resource.cci.Connection, javax.resource.cci.ConnectionFactory)

doGetConnection

public static Connection doGetConnection(ConnectionFactory cf)
                                  throws ResourceException
Actually obtain a CCI Connection from the given ConnectionFactory. Same as getConnection(javax.resource.cci.ConnectionFactory), but throwing the original ResourceException.

Is aware of a corresponding Connection bound to the current thread, for example when using CciLocalTransactionManager. Will bind a Connection to the thread if transaction synchronization is active (e.g. if in a JTA transaction).

Directly accessed by TransactionAwareConnectionFactoryProxy.

Parameters:
cf - the ConnectionFactory to obtain Connection from
Returns:
a CCI Connection from the given ConnectionFactory
Throws:
ResourceException - if thrown by CCI API methods
See Also:
doReleaseConnection(javax.resource.cci.Connection, javax.resource.cci.ConnectionFactory)

releaseConnection

public static void releaseConnection(Connection con,
                                     ConnectionFactory cf)
Close the given Connection, obtained from the given ConnectionFactory, if it is not managed externally (that is, not bound to the thread).

Parameters:
con - the Connection to close if necessary (if this is null, the call will be ignored)
cf - the ConnectionFactory that the Connection was obtained from (can be null)
See Also:
getConnection(javax.resource.cci.ConnectionFactory)

doReleaseConnection

public static void doReleaseConnection(Connection con,
                                       ConnectionFactory cf)
                                throws ResourceException
Actually close the given Connection, obtained from the given ConnectionFactory. Same as releaseConnection(javax.resource.cci.Connection, javax.resource.cci.ConnectionFactory), but throwing the original ResourceException.

Directly accessed by TransactionAwareConnectionFactoryProxy.

Parameters:
con - the Connection to close if necessary (if this is null, the call will be ignored)
cf - the ConnectionFactory that the Connection was obtained from (can be null)
Throws:
ResourceException - if thrown by JCA CCI methods
See Also:
doGetConnection(javax.resource.cci.ConnectionFactory)


Copyright (c) 2002-2007 The Spring Framework Project.