Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.jca.cci.connection
Class SingleConnectionFactory

    java.lang.Object
      org.springframework.jca.cci.connection.DelegatingConnectionFactory
          org.springframework.jca.cci.connection.SingleConnectionFactory

All Implemented Interfaces:
  java.io.Serializable, javax.naming.Referenceable, javax.resource.cci.ConnectionFactory, DisposableBean, InitializingBean

    public class SingleConnectionFactory

extends DelegatingConnectionFactory
implements DisposableBean

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.

Since:
  1.2
Author:
  Juergen Hoeller
See Also:
  `getConnection()`, `Connection.close()`, `CciTemplate`, Serialized Form

Field Summary
`protected org.apache.commons.logging.Log` | `logger`

Constructor Summary
`SingleConnectionFactory()` Create a new SingleConnectionFactory for bean-style usage.
`SingleConnectionFactory(javax.resource.cci.Connection target)` Create a new SingleConnectionFactory that always returns the given Connection.
`SingleConnectionFactory(javax.resource.cci.ConnectionFactory targetConnectionFactory)` Create a new SingleConnectionFactory that always returns a single Connection which it will lazily create via the given target ConnectionFactory.

Method Summary
`void` | `afterPropertiesSet()` Make sure a Connection or ConnectionFactory has been set.
`protected void` | `closeConnection(javax.resource.cci.Connection con)` Close the given Connection.
`void` | `destroy()` Close the underlying Connection.
`protected javax.resource.cci.Connection` | `doCreateConnection()` Create a CCI Connection via this template's ConnectionFactory.
`protected javax.resource.cci.Connection` | `getCloseSuppressingConnectionProxy(javax.resource.cci.Connection target)` Wrap the given Connection with a proxy that delegates every method call to it but suppresses close calls.
`javax.resource.cci.Connection` | `getConnection()`
`javax.resource.cci.Connection` | `getConnection(javax.resource.cci.ConnectionSpec connectionSpec)`
`void` | `initConnection()` Initialize the single underlying Connection.
`protected void` | `prepareConnection(javax.resource.cci.Connection con)` Prepare the given Connection before it is exposed.
`void` | `resetConnection()` Reset the underlying shared Connection, to be reinitialized on next access.

Methods inherited from class org.springframework.jca.cci.connection.DelegatingConnectionFactory
`getMetaData, getRecordFactory, getReference, getTargetConnectionFactory, setReference, setTargetConnectionFactory`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### logger

    protected final org.apache.commons.logging.Log logger

Constructor Detail

### SingleConnectionFactory

    public SingleConnectionFactory()

  Create a new SingleConnectionFactory for bean-style usage.

  See Also:
    `DelegatingConnectionFactory.setTargetConnectionFactory(javax.resource.cci.ConnectionFactory)`

### SingleConnectionFactory

    public SingleConnectionFactory(javax.resource.cci.Connection target)

  Create a new SingleConnectionFactory that always returns the given Connection.

  Parameters:
    `target` - the single Connection

### SingleConnectionFactory

    public SingleConnectionFactory(javax.resource.cci.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

Method Detail

### afterPropertiesSet

    public void afterPropertiesSet()

  Make sure a Connection or ConnectionFactory has been set.

  Specified by:
    `afterPropertiesSet` in interface `InitializingBean`
  Overrides:
    `afterPropertiesSet` in class `DelegatingConnectionFactory`

### getConnection

    public javax.resource.cci.Connection getConnection()
                                                throws javax.resource.ResourceException

  Specified by:
    `getConnection` in interface `javax.resource.cci.ConnectionFactory`
  Overrides:
    `getConnection` in class `DelegatingConnectionFactory`
  Throws:
    `javax.resource.ResourceException`

### getConnection

    public javax.resource.cci.Connection getConnection(javax.resource.cci.ConnectionSpec connectionSpec)
                                                throws javax.resource.ResourceException

  Specified by:
    `getConnection` in interface `javax.resource.cci.ConnectionFactory`
  Overrides:
    `getConnection` in class `DelegatingConnectionFactory`
  Throws:
    `javax.resource.ResourceException`

### destroy

    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.

  Specified by:
    `destroy` in interface `DisposableBean`

### initConnection

    public void initConnection()
                        throws javax.resource.ResourceException

  Initialize the single underlying Connection.

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

  Throws:
    `javax.resource.ResourceException` - if thrown by CCI API methods

### resetConnection

    public void resetConnection()

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

### doCreateConnection

    protected javax.resource.cci.Connection doCreateConnection()
                                                        throws javax.resource.ResourceException

  Create a CCI Connection via this template's ConnectionFactory.

  Returns:
    the new CCI Connection
  Throws:
    `javax.resource.ResourceException` - if thrown by CCI API methods

### prepareConnection

    protected void prepareConnection(javax.resource.cci.Connection con)
                              throws javax.resource.ResourceException

  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:
    `javax.resource.ResourceException`

### closeConnection

    protected void closeConnection(javax.resource.cci.Connection con)

  Close the given Connection.

  Parameters:
    `con` - the Connection to close

### getCloseSuppressingConnectionProxy

    protected javax.resource.cci.Connection getCloseSuppressingConnectionProxy(javax.resource.cci.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

Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD