mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#2715 - [ebean-test-containers] Fix for Postgis to support extraDb (second database), Update Oracle container
This commit is contained in:
@@ -17,7 +17,7 @@ class Config {
|
||||
/**
|
||||
* Common optional docker parameters that we just transfer to docker properties.
|
||||
*/
|
||||
private static final String[] DOCKER_TEST_PARAMS = {"fastStartMode", "inMemory", "initSqlFile", "seedSqlFile", "adminUser", "adminPassword", "extraDb", "extraDb.dbName", "extraDb.username", "extraDb.password", "extraDb.initSqlFile", "extraDb.seedSqlFile"};
|
||||
private static final String[] DOCKER_TEST_PARAMS = {"fastStartMode", "inMemory", "initSqlFile", "seedSqlFile", "adminUser", "adminPassword", "extraDb", "extraDb.dbName", "extraDb.username", "extraDb.password", "extraDb.extensions", "extraDb.initSqlFile", "extraDb.seedSqlFile"};
|
||||
private static final String[] DOCKER_PLATFORM_PARAMS = {"containerName", "image", "internalPort", "startMode", "shutdownMode", "maxReadyAttempts", "tmpfs", "collation", "characterSet"};
|
||||
|
||||
private static final String DDL_MODE_OPTIONS = "dropCreate, create, none, migration, createOnly or migrationDropCreate";
|
||||
@@ -224,14 +224,22 @@ class Config {
|
||||
properties.setProperty(dsKey, val);
|
||||
}
|
||||
|
||||
void setUrl(String urlPattern) {
|
||||
String val = getKey("url", urlPattern);
|
||||
private void setUrl(String key, String urlPattern) {
|
||||
String val = getKey(key, urlPattern);
|
||||
val = val.replace("${host}", host());
|
||||
val = val.replace("${port}", String.valueOf(port));
|
||||
val = val.replace("${databaseName}", databaseName);
|
||||
this.url = val;
|
||||
}
|
||||
|
||||
void setUrl(String urlPattern) {
|
||||
setUrl("url", urlPattern);
|
||||
}
|
||||
|
||||
void setExtraUrl(String urlPattern) {
|
||||
setUrl("extraDb.url", urlPattern);
|
||||
}
|
||||
|
||||
String host() {
|
||||
String explicitDockerHost = getKey("dockerHost", null);
|
||||
return getKey("host", dockerHost.dockerHost(explicitDockerHost));
|
||||
@@ -343,9 +351,17 @@ class Config {
|
||||
|
||||
void setExtensions(String defaultValue) {
|
||||
// ebean.test.postgres.extensions=hstore,pgcrypto
|
||||
String val = getKey("extensions", defaultValue);
|
||||
setExtensionsInternal("extensions", defaultValue);
|
||||
}
|
||||
|
||||
void setExtraExtensions(String defaultValue) {
|
||||
setExtensionsInternal("extraDb.extensions", defaultValue);
|
||||
}
|
||||
|
||||
void setExtensionsInternal(String key, String defaultValue) {
|
||||
String val = getKey(key, defaultValue);
|
||||
if (val != null) {
|
||||
dockerProperties.setProperty(dockerKey("extensions"), trimExtensions(val));
|
||||
dockerProperties.setProperty(dockerKey(key), trimExtensions(val));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,25 +6,21 @@ class OracleSetup implements PlatformSetup {
|
||||
|
||||
@Override
|
||||
public Properties setup(Config config) {
|
||||
|
||||
config.ddlMode("dropCreate");
|
||||
config.setDefaultPort(1521);
|
||||
config.setUsernameDefault();
|
||||
config.setPasswordDefault();
|
||||
config.setDatabaseName("XE");
|
||||
config.setUrl("jdbc:oracle:thin:@localhost:${port}:${databaseName}");
|
||||
config.setDriver("oracle.jdbc.driver.OracleDriver");
|
||||
config.datasourceDefaults();
|
||||
return dockerProperties(config);
|
||||
}
|
||||
|
||||
private Properties dockerProperties(Config dbConfig) {
|
||||
|
||||
if (!dbConfig.isUseDocker()) {
|
||||
return new Properties();
|
||||
}
|
||||
|
||||
dbConfig.setDockerVersion("latest");
|
||||
dbConfig.setDockerVersion("21.3.0-slim");
|
||||
return dbConfig.getDockerProperties();
|
||||
}
|
||||
|
||||
|
||||
@@ -12,8 +12,7 @@ class PostgisSetup implements PlatformSetup {
|
||||
@Override
|
||||
public Properties setup(Config config) {
|
||||
int defaultPort = config.isUseDocker() ? 7432 : 5432;
|
||||
|
||||
config.setDockerPlatform("postgres");
|
||||
config.setDockerPlatform("postgis");
|
||||
config.ddlMode("dropCreate");
|
||||
config.setDefaultPort(defaultPort);
|
||||
config.setUsernameDefault();
|
||||
@@ -35,14 +34,18 @@ class PostgisSetup implements PlatformSetup {
|
||||
}
|
||||
config.setExtensions("hstore,pgcrypto,postgis");
|
||||
config.setDockerContainerName("ut_postgis");
|
||||
config.setDockerImage("postgis/postgis");
|
||||
config.setDockerVersion("14");
|
||||
config.setDockerVersion("14-3.2");
|
||||
return config.getDockerProperties();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupExtraDbDataSource(Config config) {
|
||||
// not supported yet
|
||||
int defaultPort = config.isUseDocker() ? 7432 : 5432;
|
||||
config.setDefaultPort(defaultPort);
|
||||
config.setExtraUsernameDefault();
|
||||
config.setExtraDbPasswordDefault();
|
||||
config.setExtraUrl("jdbc:postgresql_lwgis://${host}:${port}/${databaseName}");
|
||||
config.extraDatasourceDefaults();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user