Class 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 the hibernate.vibur prefix.

    See Also:
    ConnectionProvider, Serialized Form
    • Constructor Detail

      • ViburDBCPConnectionProvider

        public ViburDBCPConnectionProvider()
    • Method Detail

      • 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
      • 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.
      • 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
      • getDataSource

        public org.vibur.dbcp.ViburDBCPDataSource getDataSource()
        Visible for testing purposes.