Class JtaAwareConnectionProviderImpl

java.lang.Object
org.hibernate.testing.jta.JtaAwareConnectionProviderImpl
All Implemented Interfaces:
Serializable, ConnectionProvider, Service, Configurable, ServiceRegistryAwareService, Stoppable, Wrapped

public class JtaAwareConnectionProviderImpl extends Object implements ConnectionProvider, Configurable, Stoppable, ServiceRegistryAwareService
A ConnectionProvider implementation intended for testing Hibernate/JTA interaction. In that limited scope we only ever have one single resource (the database connection) so we do not at all care about full-blown XA semantics. This class behaves accordingly. This class also assumes usage of and access to JBossTS/Arjuna.
See Also:
  • Constructor Details

    • JtaAwareConnectionProviderImpl

      public JtaAwareConnectionProviderImpl()
  • Method Details

    • injectServices

      public void injectServices(ServiceRegistryImplementor serviceRegistry)
      Description copied from interface: ServiceRegistryAwareService
      Callback to inject the registry.
      Specified by:
      injectServices in interface ServiceRegistryAwareService
      Parameters:
      serviceRegistry - The registry
    • configure

      public void configure(Map<String,Object> configurationValues)
      Description copied from interface: Configurable
      Configure the service.
      Specified by:
      configure in interface Configurable
      Parameters:
      configurationValues - The configuration properties.
    • stop

      public void stop()
      Description copied from interface: Stoppable
      Stop phase notification
      Specified by:
      stop in interface Stoppable
    • getConnection

      public Connection getConnection() throws SQLException
      Description copied from interface: ConnectionProvider
      Obtains a connection for Hibernate use according to the underlying strategy of this provider.
      Specified by:
      getConnection in interface ConnectionProvider
      Returns:
      The obtained JDBC connection
      Throws:
      SQLException - Indicates a problem opening a connection
    • closeConnection

      public void closeConnection(Connection connection) throws SQLException
      Description copied from interface: ConnectionProvider
      Release a connection from Hibernate use.
      Specified by:
      closeConnection in interface ConnectionProvider
      Parameters:
      connection - The JDBC connection to release
      Throws:
      SQLException - Indicates a problem closing the connection
    • supportsAggressiveRelease

      public boolean supportsAggressiveRelease()
      Description copied from interface: ConnectionProvider
      Does this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?

      This is used in conjunction with ConnectionReleaseMode.AFTER_STATEMENT to aggressively release JDBC connections. However, the configured ConnectionProvider must support re-acquisition of the same underlying connection for that semantic to work.

      Typically, this is only true in managed environments where a container tracks connections by transaction or thread.

      Note that JTA semantic depends on the fact that the underlying connection provider does support aggressive release.

      Specified by:
      supportsAggressiveRelease in interface ConnectionProvider
      Returns:
      true if aggressive releasing is supported; false otherwise.
    • getDatabaseConnectionInfo

      public DatabaseConnectionInfo getDatabaseConnectionInfo(Dialect dialect)
      Specified by:
      getDatabaseConnectionInfo in interface ConnectionProvider
    • findCurrentTransaction

      protected Transaction findCurrentTransaction()
    • isUnwrappableAs

      public boolean isUnwrappableAs(Class<?> unwrapType)
      Description copied from interface: Wrapped
      Can this wrapped service be unwrapped as the indicated type?
      Specified by:
      isUnwrappableAs in interface Wrapped
      Parameters:
      unwrapType - The type to check.
      Returns:
      True/false.
    • unwrap

      public <T> T unwrap(Class<T> unwrapType)
      Description copied from interface: Wrapped
      Unproxy the service proxy
      Specified by:
      unwrap in interface Wrapped
      Parameters:
      unwrapType - The java type as which to unwrap this instance.
      Returns:
      The unwrapped reference