diff --git a/pom.xml b/pom.xml index be3529b73..2fe9ad827 100644 --- a/pom.xml +++ b/pom.xml @@ -99,7 +99,7 @@ io.ebean ebean-datasource - 4.9.2 + 5.1 diff --git a/src/main/java/io/ebeaninternal/server/core/InitDataSource.java b/src/main/java/io/ebeaninternal/server/core/InitDataSource.java index 70f280765..001ad820e 100644 --- a/src/main/java/io/ebeaninternal/server/core/InitDataSource.java +++ b/src/main/java/io/ebeaninternal/server/core/InitDataSource.java @@ -117,12 +117,8 @@ class InitDataSource { } private DataSource create(DataSourceConfig dsConfig, boolean readOnly) { - DataSourceFactory factory = DataSourceFactory.get(); - if (factory == null) { - throw new IllegalStateException("No DataSourceFactory service implementation found in class path. Missing dependency to ebean-datasource?"); - } String poolName = config.getName() + (readOnly ? "-ro" : ""); - return factory.createPool(poolName, dsConfig); + return DataSourceFactory.create(poolName, dsConfig); } /** diff --git a/src/main/java/io/ebeaninternal/server/core/MultiTenantDbCatalogSupplier.java b/src/main/java/io/ebeaninternal/server/core/MultiTenantDbCatalogSupplier.java index 936a79c3b..8b369d25a 100644 --- a/src/main/java/io/ebeaninternal/server/core/MultiTenantDbCatalogSupplier.java +++ b/src/main/java/io/ebeaninternal/server/core/MultiTenantDbCatalogSupplier.java @@ -57,14 +57,14 @@ public class MultiTenantDbCatalogSupplier implements DataSourceSupplier { @Override public void shutdown(boolean deregisterDriver) { if (readOnlyDataSource instanceof DataSourcePool) { - ((DataSourcePool) readOnlyDataSource).shutdown(false); + ((DataSourcePool) readOnlyDataSource).shutdown(); } if (dataSource instanceof DataSourcePool) { - ((DataSourcePool) dataSource).shutdown(deregisterDriver); + ((DataSourcePool) dataSource).shutdown(); } } - private class CatalogDataSource implements DataSource { + private static class CatalogDataSource implements DataSource { final DataSource dataSource; final CurrentTenantProvider tenantProvider; diff --git a/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSchemaSupplier.java b/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSchemaSupplier.java index a31f48896..f37ce202e 100644 --- a/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSchemaSupplier.java +++ b/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSchemaSupplier.java @@ -57,10 +57,10 @@ class MultiTenantDbSchemaSupplier implements DataSourceSupplier { @Override public void shutdown(boolean deregisterDriver) { if (readOnlyDataSource instanceof DataSourcePool) { - ((DataSourcePool) readOnlyDataSource).shutdown(false); + ((DataSourcePool) readOnlyDataSource).shutdown(); } if (dataSource instanceof DataSourcePool) { - ((DataSourcePool) dataSource).shutdown(deregisterDriver); + ((DataSourcePool) dataSource).shutdown(); } } diff --git a/src/main/java/io/ebeaninternal/server/core/SimpleDataSourceProvider.java b/src/main/java/io/ebeaninternal/server/core/SimpleDataSourceProvider.java index 556a5ab6d..f9a11f14d 100644 --- a/src/main/java/io/ebeaninternal/server/core/SimpleDataSourceProvider.java +++ b/src/main/java/io/ebeaninternal/server/core/SimpleDataSourceProvider.java @@ -44,10 +44,10 @@ class SimpleDataSourceProvider implements DataSourceSupplier { @Override public void shutdown(boolean deregisterDriver) { if (readOnlyDataSource instanceof DataSourcePool){ - ((DataSourcePool) readOnlyDataSource).shutdown(false); + ((DataSourcePool) readOnlyDataSource).shutdown(); } if (dataSource instanceof DataSourcePool){ - ((DataSourcePool) dataSource).shutdown(deregisterDriver); + ((DataSourcePool) dataSource).shutdown(); } } } diff --git a/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java b/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java index 24b856835..5a2c6c4b1 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java +++ b/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java @@ -191,6 +191,7 @@ public class TransactionManager implements SpiTransactionManager { this.txnMain = metricFactory.createTimedMetric("txn.main"); this.txnReadOnly = metricFactory.createTimedMetric("txn.readonly"); this.txnNamed = metricFactory.createTimedMetricMap("txn.named."); + // Add gauges for db pool size scopeManager.register(this); }