Class DatasourceFactory

java.lang.Object
io.micronaut.jdbc.BaseDatasourceFactory
io.micronaut.configuration.jdbc.dbcp.DatasourceFactory
All Implemented Interfaces:
io.micronaut.context.event.ApplicationEventListener<io.micronaut.runtime.context.scope.refresh.RefreshEvent>, io.micronaut.core.order.Ordered, io.micronaut.runtime.context.scope.refresh.RefreshEventListener, EventListener

@Context @Factory public class DatasourceFactory extends BaseDatasourceFactory
Creates a dbcp data source for each configuration bean.
Since:
1.0
Author:
Christian Oestreich
  • Constructor Details

    • DatasourceFactory

      public DatasourceFactory(@Nullable DataSourceResolver dataSourceResolver, io.micronaut.context.ApplicationContext applicationContext)
      Default constructor.
      Parameters:
      dataSourceResolver - The data source resolver
      applicationContext - The application context
  • Method Details

    • dbcpDataSourcePoolMetadata

      @EachBean(DataSource.class) public @Nullable DataSourcePoolMetadata<org.apache.commons.dbcp2.BasicDataSource> dbcpDataSourcePoolMetadata(DataSource dataSource)
      Method to create a metadata object that allows pool value lookup for each datasource object.
      Parameters:
      dataSource - The actual datasource
      Returns:
      a DataSourcePoolMetadata
    • dataSourceCredentialsChanged

      protected void dataSourceCredentialsChanged(String dataSourceName, BaseDatasourceFactory.DataSourceCredentials dataSourceCredentials) throws SQLException
      Description copied from class: BaseDatasourceFactory
      Called when the datasource credentials have changed.

      Subclasses must implement this method to handle the updated credentials. If the pool can not be updated, the method must throw, so the change is not recorded as applied and a later refresh event retries it.

      Specified by:
      dataSourceCredentialsChanged in class BaseDatasourceFactory
      Parameters:
      dataSourceName - the name of the datasource
      dataSourceCredentials - the updated datasource credentials
      Throws:
      SQLException - if the pool could not be updated