public class JtaAwareConnectionProviderImpl extends Object implements ConnectionProvider, Configurable, Stoppable
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.| Modifier and Type | Class and Description |
|---|---|
static class |
JtaAwareConnectionProviderImpl.XAResourceWrapper |
| Constructor and Description |
|---|
JtaAwareConnectionProviderImpl() |
| Modifier and Type | Method and Description |
|---|---|
void |
closeConnection(Connection conn)
Release a connection from Hibernate use.
|
void |
configure(Map configurationValues)
Configure the service.
|
protected Transaction |
findCurrentTransaction() |
Connection |
getConnection()
Obtains a connection for Hibernate use according to the underlying strategy of this provider.
|
boolean |
isUnwrappableAs(Class unwrapType)
Can this wrapped service be unwrapped as the indicated type?
|
void |
stop()
Stop phase notification
|
boolean |
supportsAggressiveRelease()
Does this connection provider support aggressive release of JDBC
connections and re-acquisition of those connections (if need be) later?
This is used in conjunction with
AvailableSettings.RELEASE_CONNECTIONS
to aggressively release JDBC connections. |
<T> T |
unwrap(Class<T> unwrapType)
Unproxy the service proxy
|
public void configure(Map configurationValues)
Configurableconfigure in interface ConfigurableconfigurationValues - The configuration properties.public void stop()
Stoppablepublic Connection getConnection() throws SQLException
ConnectionProvidergetConnection in interface ConnectionProviderSQLException - Indicates a problem opening a connectionpublic void closeConnection(Connection conn) throws SQLException
ConnectionProvidercloseConnection in interface ConnectionProviderconn - The JDBC connection to releaseSQLException - Indicates a problem closing the connectionpublic boolean supportsAggressiveRelease()
ConnectionProviderAvailableSettings.RELEASE_CONNECTIONS
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.supportsAggressiveRelease in interface ConnectionProvidertrue if aggressive releasing is supported; false otherwise.protected Transaction findCurrentTransaction()
public boolean isUnwrappableAs(Class unwrapType)
WrappedisUnwrappableAs in interface WrappedunwrapType - The type to check.Copyright © 2001-2022 Red Hat, Inc. All Rights Reserved.