From 09bcfd29ca367e2f2ff555f2a348b26d2f5ff4e0 Mon Sep 17 00:00:00 2001 From: Andrei Navrotski Date: Fri, 3 Jun 2022 22:46:10 +0300 Subject: [PATCH 1/4] fix(modules/clickhouse): JDBC driver name changed, liveness port and some minor changes --- modules/clickhouse/build.gradle | 2 +- .../containers/ClickHouseContainer.java | 24 +++++++++---------- .../containers/ClickHouseProvider.java | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/modules/clickhouse/build.gradle b/modules/clickhouse/build.gradle index 914ee7efbd4..ad5f2ab8387 100644 --- a/modules/clickhouse/build.gradle +++ b/modules/clickhouse/build.gradle @@ -5,5 +5,5 @@ dependencies { api project(':jdbc') testImplementation project(':jdbc-test') - testImplementation 'ru.yandex.clickhouse:clickhouse-jdbc:0.3.2' + testImplementation 'com.clickhouse:clickhouse-jdbc:0.3.2' } diff --git a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java index 4528c48e935..251fb8c127d 100644 --- a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java +++ b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java @@ -1,13 +1,13 @@ package org.testcontainers.containers; -import com.google.common.collect.Sets; import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; import org.testcontainers.utility.DockerImageName; import java.time.Duration; +import java.util.HashSet; import java.util.Set; -public class ClickHouseContainer extends JdbcDatabaseContainer { +public class ClickHouseContainer> extends JdbcDatabaseContainer { public static final String NAME = "clickhouse"; @@ -23,7 +23,7 @@ public class ClickHouseContainer extends JdbcDatabaseContainer { public static final Integer NATIVE_PORT = 9000; - private static final String DRIVER_CLASS_NAME = "ru.yandex.clickhouse.ClickHouseDriver"; + private static final String DRIVER_CLASS_NAME = "com.clickhouse.jdbc.ClickHouseDriver"; private static final String JDBC_URL_PREFIX = "jdbc:" + NAME + "://"; @@ -51,18 +51,18 @@ public ClickHouseContainer(final DockerImageName dockerImageName) { super(dockerImageName); dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME); - withExposedPorts(HTTP_PORT, NATIVE_PORT); - waitingFor( - new HttpWaitStrategy() - .forStatusCode(200) - .forResponsePredicate(responseBody -> "Ok.".equals(responseBody)) - .withStartupTimeout(Duration.ofMinutes(1)) - ); + this.withExposedPorts(HTTP_PORT, NATIVE_PORT); + this.waitingFor( + new HttpWaitStrategy() + .forStatusCode(200) + .forResponsePredicate("Ok."::equals) + .withStartupTimeout(Duration.ofMinutes(1)) + ); } @Override public Set getLivenessCheckPortNumbers() { - return Sets.newHashSet(HTTP_PORT); + return new HashSet<>(getMappedPort(HTTP_PORT)); } @Override @@ -91,7 +91,7 @@ public String getTestQueryString() { } @Override - public ClickHouseContainer withUrlParam(String paramName, String paramValue) { + public SELF withUrlParam(String paramName, String paramValue) { throw new UnsupportedOperationException("The ClickHouse does not support this"); } } diff --git a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseProvider.java b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseProvider.java index 80fb71bd5da..6b7a15318b1 100644 --- a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseProvider.java +++ b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseProvider.java @@ -11,6 +11,6 @@ public boolean supports(String databaseType) { @Override public JdbcDatabaseContainer newInstance(String tag) { - return new ClickHouseContainer(DockerImageName.parse(ClickHouseContainer.IMAGE).withTag(tag)); + return new ClickHouseContainer<>(DockerImageName.parse(ClickHouseContainer.IMAGE).withTag(tag)); } } From 19286d15313b016c4816034c0ac195d3baeec851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Mon, 27 Jun 2022 15:29:01 -0500 Subject: [PATCH 2/4] Support both drivers --- modules/clickhouse/build.gradle | 2 +- .../containers/ClickHouseContainer.java | 22 +++++++++++-------- .../containers/ClickHouseProvider.java | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/modules/clickhouse/build.gradle b/modules/clickhouse/build.gradle index ad5f2ab8387..914ee7efbd4 100644 --- a/modules/clickhouse/build.gradle +++ b/modules/clickhouse/build.gradle @@ -5,5 +5,5 @@ dependencies { api project(':jdbc') testImplementation project(':jdbc-test') - testImplementation 'com.clickhouse:clickhouse-jdbc:0.3.2' + testImplementation 'ru.yandex.clickhouse:clickhouse-jdbc:0.3.2' } diff --git a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java index 37b1a54d0e3..15153e73eed 100644 --- a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java +++ b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java @@ -25,7 +25,7 @@ public class ClickHouseContainer> extends public static final Integer NATIVE_PORT = 9000; - private static final String DRIVER_CLASS_NAME = "com.clickhouse.jdbc.ClickHouseDriver"; + private static final String DRIVER_CLASS_NAME = "ru.yandex.clickhouse.ClickHouseDriver"; private static final String JDBC_URL_PREFIX = "jdbc:" + NAME + "://"; @@ -53,13 +53,12 @@ public ClickHouseContainer(final DockerImageName dockerImageName) { super(dockerImageName); dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME, CLICKHOUSE_IMAGE_NAME); - this.withExposedPorts(HTTP_PORT, NATIVE_PORT); - this.waitingFor( - new HttpWaitStrategy() - .forStatusCode(200) - .forResponsePredicate("Ok."::equals) - .withStartupTimeout(Duration.ofMinutes(1)) - ); + addExposedPorts(HTTP_PORT, NATIVE_PORT); + this.waitStrategy = + new HttpWaitStrategy() + .forStatusCode(200) + .forResponsePredicate("Ok."::equals) + .withStartupTimeout(Duration.ofMinutes(1)); } @Override @@ -69,7 +68,12 @@ public Set getLivenessCheckPortNumbers() { @Override public String getDriverClassName() { - return DRIVER_CLASS_NAME; + try { + Class.forName(DRIVER_CLASS_NAME); + return DRIVER_CLASS_NAME; + } catch (ClassNotFoundException e) { + return "com.clickhouse.jdbc.ClickHouseDriver"; + } } @Override diff --git a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseProvider.java b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseProvider.java index 6b7a15318b1..80fb71bd5da 100644 --- a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseProvider.java +++ b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseProvider.java @@ -11,6 +11,6 @@ public boolean supports(String databaseType) { @Override public JdbcDatabaseContainer newInstance(String tag) { - return new ClickHouseContainer<>(DockerImageName.parse(ClickHouseContainer.IMAGE).withTag(tag)); + return new ClickHouseContainer(DockerImageName.parse(ClickHouseContainer.IMAGE).withTag(tag)); } } From b286bada25206cca86c47b885babe49985319c8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Tue, 28 Jun 2022 00:19:12 -0500 Subject: [PATCH 3/4] Update modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java Co-authored-by: Sergei Egorov --- .../java/org/testcontainers/containers/ClickHouseContainer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java index 15153e73eed..caa21e16c23 100644 --- a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java +++ b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java @@ -7,7 +7,7 @@ import java.util.HashSet; import java.util.Set; -public class ClickHouseContainer> extends JdbcDatabaseContainer { +public class ClickHouseContainer extends JdbcDatabaseContainer { public static final String NAME = "clickhouse"; From 0045f22847a8c3bd7c8ac521536695713362d070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez=20Gonzales?= Date: Tue, 28 Jun 2022 00:20:44 -0500 Subject: [PATCH 4/4] Update modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java Co-authored-by: Sergei Egorov --- .../java/org/testcontainers/containers/ClickHouseContainer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java index caa21e16c23..4e87c77ee5b 100644 --- a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java +++ b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java @@ -97,7 +97,7 @@ public String getTestQueryString() { } @Override - public SELF withUrlParam(String paramName, String paramValue) { + public ClickHouseContainer withUrlParam(String paramName, String paramValue) { throw new UnsupportedOperationException("The ClickHouse does not support this"); } }