diff --git a/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java b/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java
index 3da2f3eee..4dd36034a 100644
--- a/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java
+++ b/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java
@@ -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));
}
}
diff --git a/ebean-test/src/main/java/io/ebean/test/config/platform/OracleSetup.java b/ebean-test/src/main/java/io/ebean/test/config/platform/OracleSetup.java
index b93660615..db50d60be 100644
--- a/ebean-test/src/main/java/io/ebean/test/config/platform/OracleSetup.java
+++ b/ebean-test/src/main/java/io/ebean/test/config/platform/OracleSetup.java
@@ -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();
}
diff --git a/ebean-test/src/main/java/io/ebean/test/config/platform/PostgisSetup.java b/ebean-test/src/main/java/io/ebean/test/config/platform/PostgisSetup.java
index 3a9cc34e3..b254aad60 100644
--- a/ebean-test/src/main/java/io/ebean/test/config/platform/PostgisSetup.java
+++ b/ebean-test/src/main/java/io/ebean/test/config/platform/PostgisSetup.java
@@ -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
diff --git a/ebean-test/src/test/java/io/ebean/test/config/platform/ConfigTest.java b/ebean-test/src/test/java/io/ebean/test/config/platform/ConfigTest.java
index 7971c2bb7..3537954ed 100644
--- a/ebean-test/src/test/java/io/ebean/test/config/platform/ConfigTest.java
+++ b/ebean-test/src/test/java/io/ebean/test/config/platform/ConfigTest.java
@@ -35,6 +35,43 @@ class ConfigTest {
assertThat(config.trimExtensions(" a , , b ")).isEqualTo("a,b");
}
+ @Test
+ void extensions_whenNoSetValues() {
+ DatabaseConfig databaseConfig = new DatabaseConfig();
+ databaseConfig.loadFromProperties(new Properties());
+
+ Config config = new Config("db", "postgis", "db", databaseConfig);
+
+ config.setUsernameDefault();
+ config.setPasswordDefault();
+ config.setDefaultPort(42);
+ config.setExtensions("a,b");
+ config.setExtraExtensions("c,d");
+
+ Properties dockerProperties = config.getDockerProperties();
+ assertThat(dockerProperties.getProperty("postgis.extensions")).isEqualTo("a,b");
+ assertThat(dockerProperties.getProperty("postgis.extraDb.extensions")).isEqualTo("c,d");
+ }
+
+ @Test
+ void extensions_whenSetValues() {
+ DatabaseConfig databaseConfig = new DatabaseConfig();
+ Properties properties = new Properties();
+ properties.setProperty("ebean.test.extensions", "x,y");
+ properties.setProperty("ebean.test.extraDb.extensions", "z");
+ databaseConfig.loadFromProperties(properties);
+
+ Config config = new Config("db", "postgis", "db", databaseConfig);
+
+ config.setExtensions("a,b");
+ config.setExtraExtensions("c,d");
+
+ Properties dockerProperties = config.getDockerProperties();
+ assertThat(dockerProperties.getProperty("postgis.extensions")).isEqualTo("x,y");
+ assertThat(dockerProperties.getProperty("postgis.extraDb.extensions")).isEqualTo("z");
+ }
+
+
@Test
void extraDbProperties_basic() {
Properties p = new Properties();
diff --git a/pom.xml b/pom.xml
index 931075c17..56f1e40bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,7 +44,7 @@
2.0
1.2
13.6.0
- 6.0
+ 6.1
8.0
13.6.3
13.6.3