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);
}