From a13e1cf074e96c59d1f31fefcc3c93a491011b27 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 12 May 2022 16:43:41 +1200 Subject: [PATCH 1/3] Bump to ebean-test-docker 5.2 - Supports random ports - Simplified shutdownMode --- .../io/ebean/test/config/platform/Config.java | 31 +++------------- .../config/platform/ElasticSearchSetup.java | 6 +-- .../test/config/platform/ConfigTest.java | 37 ------------------- .../src/test/resources/logback-test.xml | 2 +- pom.xml | 2 +- 5 files changed, 10 insertions(+), 68 deletions(-) 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 0e6a276b8..3da2f3eee 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 @@ -4,7 +4,7 @@ import io.ebean.config.DatabaseConfig; import io.ebean.datasource.DataSourceConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; + import java.util.Properties; /** @@ -18,7 +18,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_PLATFORM_PARAMS = {"containerName", "image", "internalPort", "startMode", "stopMode", "shutdown", "maxReadyAttempts", "tmpfs", "collation", "characterSet"}; + 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"; @@ -388,11 +388,10 @@ class Config { } private void setDockerOptionalParameters() { - // check for shutdown mode on all containers - String mode = properties.getProperty("ebean.test.shutdown"); - if (mode != null && !ignoreDockerShutdown()) { - dockerProperties.setProperty(dockerKey("shutdown"), mode); + String mode = properties.getProperty("ebean.test.shutdownMode"); + if (mode != null) { + dockerProperties.setProperty(dockerKey("shutdownMode"), mode); } for (String key : DOCKER_TEST_PARAMS) { String val = getKey(key, null); @@ -410,26 +409,6 @@ class Config { } } - /** - * For local development we might want to ignore docker shutdown. - *

- * So we just want the shutdown mode to be used on the CI server. - */ - boolean ignoreDockerShutdown() { - String localDev = properties.getProperty("ebean.test.localDevelopment", "~/.ebean/ignore-docker-shutdown"); - return ignoreDockerShutdown(localDev); - } - - boolean ignoreDockerShutdown(String localDev) { - - if (localDev.startsWith("~/")) { - File homeDir = new File(System.getProperty("user.home")); - return new File(homeDir, localDev.substring(2)).exists(); - } - - return new File(localDev).exists(); - } - private String dockerKey(String key) { return dockerPlatform + "." + key; } diff --git a/ebean-test/src/main/java/io/ebean/test/config/platform/ElasticSearchSetup.java b/ebean-test/src/main/java/io/ebean/test/config/platform/ElasticSearchSetup.java index c8324d868..94799d009 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/platform/ElasticSearchSetup.java +++ b/ebean-test/src/main/java/io/ebean/test/config/platform/ElasticSearchSetup.java @@ -9,7 +9,7 @@ import java.util.Properties; */ class ElasticSearchSetup { - private static final String[] DOCKER_PARAMS = {"containerName", "image", "internalPort", "startMode", "shutdown"}; + private static final String[] DOCKER_PARAMS = {"containerName", "image", "internalPort", "startMode", "shutdownMode"}; private final Properties config; @@ -30,9 +30,9 @@ class ElasticSearchSetup { private Properties populateDockerProperties(String version) { PropertiesBuilder properties = new PropertiesBuilder(); - String mode = config.getProperty("ebean.test.shutdown"); + String mode = config.getProperty("ebean.test.shutdownMode"); if (mode != null) { - properties.set("shutdown", mode); + properties.set("shutdownMode", mode); } properties.set("version", version); 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 e84ae203b..7971c2bb7 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 @@ -6,7 +6,6 @@ import io.ebean.datasource.DataSourceConfig; import io.ebeaninternal.api.DbOffline; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import java.util.Properties; @@ -140,42 +139,6 @@ class ConfigTest { assertThat(centralProps.getProperty("datasource.central.username")).isEqualTo("central"); } - @Test - void ignoreDockerShutdown() { - Properties sourceProperties = new Properties(); - DatabaseConfig serverConfig = new DatabaseConfig(); - serverConfig.loadFromProperties(sourceProperties); - - Config config = new Config("main", "postgres", "main", serverConfig); - - assertThat(config.ignoreDockerShutdown("./src/test/resources/logback-test.xml")).isTrue(); - assertThat(config.ignoreDockerShutdown("./src/test/resources/file-does-not-exist")).isFalse(); - } - - @Disabled - @Test - void run_local_only_ignoreDockerShutdown() { - Properties sourceProperties = new Properties(); - DatabaseConfig serverConfig = new DatabaseConfig(); - serverConfig.loadFromProperties(sourceProperties); - - Config config = new Config("main", "postgres", "main", serverConfig); - assertThat(config.ignoreDockerShutdown("~/.ebean/ignore-docker-shutdown")).isTrue(); - assertThat(config.ignoreDockerShutdown()).isTrue(); - } - - @Test - void ignoreDockerShutdown_viaProperties() { - Properties sourceProperties = new Properties(); - sourceProperties.setProperty("ebean.test.localDevelopment", "./src/test/resources/logback-test.xml"); - - DatabaseConfig serverConfig = new DatabaseConfig(); - serverConfig.loadFromProperties(sourceProperties); - - Config config = new Config("main", "postgres", "main", serverConfig); - assertThat(config.ignoreDockerShutdown()).isTrue(); - } - @Test void readImage_fromPlatform() { Properties p = new Properties(); diff --git a/ebean-test/src/test/resources/logback-test.xml b/ebean-test/src/test/resources/logback-test.xml index 3f022e12c..e95579b21 100644 --- a/ebean-test/src/test/resources/logback-test.xml +++ b/ebean-test/src/test/resources/logback-test.xml @@ -75,7 +75,7 @@ - + diff --git a/pom.xml b/pom.xml index c81a546c7..452bd0ebd 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ 2.0 1.2 13.6.0 - 5.1 + 5.2 8.0 13.6.0 13.6.0 From 6a575cb1bfa98cf5f8931f97377d8db9c70e90d3 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 12 May 2022 17:05:23 +1200 Subject: [PATCH 2/3] Change ebean-test postgis image to `postgis/postgis` from `mdillon/postgis` - Also bump default version to 14 --- .../io/ebean/test/config/platform/PostgisSetup.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) 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 bd5a38387..3a9cc34e3 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 @@ -5,13 +5,12 @@ import java.util.Properties; /** * A variation of Postgres that expected Postgis extension support. * - * Uses mdillon/postgis image by default. + * Uses postgis/postgis image by default. */ class PostgisSetup implements PlatformSetup { @Override public Properties setup(Config config) { - int defaultPort = config.isUseDocker() ? 7432 : 5432; config.setDockerPlatform("postgres"); @@ -27,20 +26,17 @@ class PostgisSetup implements PlatformSetup { config.urlAppend("?currentSchema=" + schema); } config.datasourceDefaults(); - return dockerProperties(config); } private Properties dockerProperties(Config config) { - if (!config.isUseDocker()) { return new Properties(); } - config.setExtensions("hstore,pgcrypto,postgis"); - config.setDockerImage("mdillon/postgis"); - config.setDockerContainerName("postgis"); - config.setDockerVersion("10"); + config.setDockerContainerName("ut_postgis"); + config.setDockerImage("postgis/postgis"); + config.setDockerVersion("14"); return config.getDockerProperties(); } From 317ad8de9ceea9ac439e5457fc9cabdbc9faeba1 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 12 May 2022 18:43:38 +1200 Subject: [PATCH 3/3] Bump to ebean-test-docker 5.3 - Supports random ports - Simplified shutdownMode - Improved logging on shutdown --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 452bd0ebd..f1b892bb7 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ 2.0 1.2 13.6.0 - 5.2 + 5.3 8.0 13.6.0 13.6.0