Package org.hibernate.vibur.internal
Class ViburDBCPConnectionProvider
- java.lang.Object
-
- org.hibernate.vibur.internal.ViburDBCPConnectionProvider
-
- All Implemented Interfaces:
Serializable
,ConnectionProvider
,Service
,Configurable
,Stoppable
,Wrapped
public class ViburDBCPConnectionProvider extends Object implements ConnectionProvider, Configurable, Stoppable
ViburDBCP connection provider for Hibernate integration.
To use this connection provider set:
hibernate.connection.provider_class ViburDBCPConnectionProvider
Supported Hibernate properties are:
hibernate.connection.driver_class hibernate.connection.url hibernate.connection.username hibernate.connection.password hibernate.connection.isolation hibernate.connection.autocommit
All
ViburConfig
properties are also supported via using thehibernate.vibur
prefix.- See Also:
ConnectionProvider
, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ViburDBCPConnectionProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
closeConnection(Connection connection)
Release a connection from Hibernate use.void
configure(Map<String,Object> configurationValues)
Configure the service.Connection
getConnection()
Obtains a connection for Hibernate use according to the underlying strategy of this provider.DatabaseConnectionInfo
getDatabaseConnectionInfo(Dialect dialect)
org.vibur.dbcp.ViburDBCPDataSource
getDataSource()
Visible for testing purposes.boolean
isUnwrappableAs(Class<?> unwrapType)
Can this wrapped service be unwrapped as the indicated type?void
stop()
Stop phase notificationboolean
supportsAggressiveRelease()
Does this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?<T> T
unwrap(Class<T> unwrapType)
Unproxy the service proxy
-
-
-
Method Detail
-
configure
public void configure(Map<String,Object> configurationValues)
Description copied from interface:Configurable
Configure the service.- Specified by:
configure
in interfaceConfigurable
- Parameters:
configurationValues
- The configuration properties.
-
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 interfaceConnectionProvider
- 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 interfaceConnectionProvider
- Parameters:
connection
- The JDBC connection to release- Throws:
SQLException
- Indicates a problem closing the connection
-
stop
public void stop()
Description copied from interface:Stoppable
Stop phase notification
-
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 configuredConnectionProvider
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 interfaceConnectionProvider
- Returns:
true
if aggressive releasing is supported;false
otherwise.
-
getDatabaseConnectionInfo
public DatabaseConnectionInfo getDatabaseConnectionInfo(Dialect dialect)
- Specified by:
getDatabaseConnectionInfo
in interfaceConnectionProvider
-
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 interfaceWrapped
- 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
-
getDataSource
public org.vibur.dbcp.ViburDBCPDataSource getDataSource()
Visible for testing purposes.
-
-