Refactor extract interface DatabaseBuilder from DatabaseConfig

First step in supporting the builder pattern for creating Database
This commit is contained in:
Rob Bygrave
2023-11-03 21:17:55 +13:00
parent 89741b9312
commit 12029ed06e
115 changed files with 2659 additions and 1684 deletions
@@ -2,7 +2,7 @@ package io.ebean.test.config;
import io.avaje.applog.AppLog;
import io.ebean.config.AutoConfigure;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.datasource.DataSourceBuilder;
import io.ebean.test.config.platform.PlatformAutoConfig;
import io.ebean.test.config.provider.ProviderAutoConfig;
@@ -31,7 +31,7 @@ public class AutoConfigureForTesting implements AutoConfigure {
private final String environmentDb = System.getProperty("db");
@Override
public void preConfigure(DatabaseConfig config) {
public void preConfigure(DatabaseBuilder config) {
Properties properties = config.getProperties();
if (properties != null) {
// trigger determination of docker.host system property if not already done
@@ -55,7 +55,7 @@ public class AutoConfigureForTesting implements AutoConfigure {
}
@Override
public void postConfigure(DatabaseConfig config) {
public void postConfigure(DatabaseBuilder config) {
if (!config.isDefaultServer()) {
return;
}
@@ -87,7 +87,7 @@ public class AutoConfigureForTesting implements AutoConfigure {
/**
* Check if this is not the primary server and return true if that is the case.
*/
private boolean isExtraServer(DatabaseConfig config, Properties properties) {
private boolean isExtraServer(DatabaseBuilder config, Properties properties) {
String extraDb = properties.getProperty("ebean.test.extraDb.dbName", properties.getProperty("ebean.test.extraDb"));
if (extraDb != null && extraDb.equals(config.getName())) {
config.setDefaultServer(false);
@@ -99,7 +99,7 @@ public class AutoConfigureForTesting implements AutoConfigure {
/**
* Setup the DataSource on the extra database if necessary.
*/
private void setupExtraDataSourceIfNecessary(DatabaseConfig config) {
private void setupExtraDataSourceIfNecessary(DatabaseBuilder config) {
DataSourceBuilder dataSourceConfig = config.getDataSourceConfig();
if (dataSourceConfig == null || dataSourceConfig.settings().getUsername() == null) {
new PlatformAutoConfig(environmentDb, config)
@@ -110,14 +110,14 @@ public class AutoConfigureForTesting implements AutoConfigure {
/**
* Setup support for Who, Multi-Tenant and DB encryption if they are not already set.
*/
private void setupProviders(DatabaseConfig config) {
private void setupProviders(DatabaseBuilder config) {
new ProviderAutoConfig(config).run();
}
/**
* Setup the platform for testing including docker as needed and adjusting datasource config as needed.
*/
private void setupPlatform(String db, DatabaseConfig config) {
private void setupPlatform(String db, DatabaseBuilder config) {
new PlatformAutoConfig(db, config).run();
}
}
@@ -1,7 +1,7 @@
package io.ebean.test.config.platform;
import io.avaje.applog.AppLog;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.datasource.DataSourceConfig;
import io.ebean.test.containers.DockerHost;
@@ -37,11 +37,11 @@ class Config {
private String schema;
private String username;
private String password;
private final DatabaseConfig config;
private final DatabaseBuilder config;
private boolean containerDropCreate;
private final Properties dockerProperties = new Properties();
Config(String db, String platform, String databaseName, DatabaseConfig config) {
Config(String db, String platform, String databaseName, DatabaseBuilder config) {
this.db = db;
this.platform = platform;
this.dockerPlatform = platform;
@@ -1,7 +1,7 @@
package io.ebean.test.config.platform;
import io.avaje.applog.AppLog;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.test.containers.ContainerFactory;
import java.util.HashMap;
@@ -38,14 +38,14 @@ public class PlatformAutoConfig {
KNOWN_PLATFORMS.put("yugabyte", new YugabyteSetup());
}
private final DatabaseConfig config;
private final DatabaseBuilder config;
private final Properties properties;
private String db;
private String platform;
private PlatformSetup platformSetup;
private String databaseName;
public PlatformAutoConfig(String db, DatabaseConfig config) {
public PlatformAutoConfig(String db, DatabaseBuilder config) {
this.db = db;
this.config = config;
this.properties = config.getProperties();
@@ -1,10 +1,8 @@
package io.ebean.test.config.provider;
import io.avaje.applog.AppLog;
import io.ebean.config.CurrentTenantProvider;
import io.ebean.config.CurrentUserProvider;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.EncryptKeyManager;
import io.ebean.DatabaseBuilder;
import io.ebean.config.*;
import java.util.Properties;
@@ -18,10 +16,10 @@ public class ProviderAutoConfig {
private static final System.Logger log = AppLog.getLogger("io.ebean.test");
private final DatabaseConfig config;
private final DatabaseBuilder config;
private final Properties properties;
public ProviderAutoConfig(DatabaseConfig config) {
public ProviderAutoConfig(DatabaseBuilder config) {
this.config = config;
this.properties = config.getProperties();
}