mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
Refactor extract interface DatabaseBuilder from DatabaseConfig
First step in supporting the builder pattern for creating Database
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user