public class

SingleConnectionFactory

extends DelegatingConnectionFactory
implements DisposableBean
java.lang.Object
   ↳ org.springframework.jca.cci.connection.DelegatingConnectionFactory
     ↳ org.springframework.jca.cci.connection.SingleConnectionFactory

Class Overview

A CCI ConnectionFactory adapter that returns the same Connection on all getConnection calls, and ignores calls to Connection.close().

Useful for testing and standalone environments, to keep using the same Connection for multiple CciTemplate calls, without having a pooling ConnectionFactory, also spanning any number of transactions.

You can either pass in a CCI Connection directly, or let this factory lazily create a Connection via a given target ConnectionFactory.

See Also

Summary

Fields
protected final Log logger
Public Constructors
SingleConnectionFactory()
Create a new SingleConnectionFactory for bean-style usage.
SingleConnectionFactory(Connection target)
Create a new SingleConnectionFactory that always returns the given Connection.
SingleConnectionFactory(ConnectionFactory targetConnectionFactory)
Create a new SingleConnectionFactory that always returns a single Connection which it will lazily create via the given target ConnectionFactory.
Public Methods
void afterPropertiesSet()
Make sure a Connection or ConnectionFactory has been set.
void destroy()
Close the underlying Connection.
Connection getConnection(ConnectionSpec connectionSpec)
Connection getConnection()
void initConnection()
Initialize the single underlying Connection.
void resetConnection()
Reset the underlying shared Connection, to be reinitialized on next access.
Protected Methods
void closeConnection(Connection con)
Close the given Connection.
Connection doCreateConnection()
Create a CCI Connection via this template's ConnectionFactory.
Connection getCloseSuppressingConnectionProxy(Connection target)
Wrap the given Connection with a proxy that delegates every method call to it but suppresses close calls.
void prepareConnection(Connection con)
Prepare the given Connection before it is exposed.
[Expand]
Inherited Methods
From class org.springframework.jca.cci.connection.DelegatingConnectionFactory
From class java.lang.Object
From interface org.springframework.beans.factory.DisposableBean
From interface org.springframework.beans.factory.InitializingBean

Fields

protected final Log logger

Public Constructors

public SingleConnectionFactory ()

Create a new SingleConnectionFactory for bean-style usage.

public SingleConnectionFactory (Connection target)

Create a new SingleConnectionFactory that always returns the given Connection.

Parameters
target the single Connection

public SingleConnectionFactory (ConnectionFactory targetConnectionFactory)

Create a new SingleConnectionFactory that always returns a single Connection which it will lazily create via the given target ConnectionFactory.

Parameters
targetConnectionFactory the target ConnectionFactory

Public Methods

public void afterPropertiesSet ()

Make sure a Connection or ConnectionFactory has been set.

public void destroy ()

Close the underlying Connection. The provider of this ConnectionFactory needs to care for proper shutdown.

As this bean implements DisposableBean, a bean factory will automatically invoke this on destruction of its cached singletons.

public Connection getConnection (ConnectionSpec connectionSpec)

Throws
ResourceException

public Connection getConnection ()

Throws
ResourceException

public void initConnection ()

Initialize the single underlying Connection.

Closes and reinitializes the Connection if an underlying Connection is present already.

Throws
if thrown by CCI API methods
ResourceException

public void resetConnection ()

Reset the underlying shared Connection, to be reinitialized on next access.

Protected Methods

protected void closeConnection (Connection con)

Close the given Connection.

Parameters
con the Connection to close

protected Connection doCreateConnection ()

Create a CCI Connection via this template's ConnectionFactory.

Returns
  • the new CCI Connection
Throws
if thrown by CCI API methods
ResourceException

protected Connection getCloseSuppressingConnectionProxy (Connection target)

Wrap the given Connection with a proxy that delegates every method call to it but suppresses close calls. This is useful for allowing application code to handle a special framework Connection just like an ordinary Connection from a CCI ConnectionFactory.

Parameters
target the original Connection to wrap
Returns
  • the wrapped Connection

protected void prepareConnection (Connection con)

Prepare the given Connection before it is exposed.

The default implementation is empty. Can be overridden in subclasses.

Parameters
con the Connection to prepare
Throws
ResourceException