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 4e87c77ee5b..d9879402ebb 100644 --- a/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java +++ b/modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java @@ -1,6 +1,7 @@ package org.testcontainers.containers; import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; +import org.testcontainers.utility.ComparableVersion; import org.testcontainers.utility.DockerImageName; import java.time.Duration; @@ -25,7 +26,9 @@ public class ClickHouseContainer extends JdbcDatabaseContainer getLivenessCheckPortNumbers() { @Override public String getDriverClassName() { try { - Class.forName(DRIVER_CLASS_NAME); - return DRIVER_CLASS_NAME; + if (supportsNewDriver) { + Class.forName(DRIVER_CLASS_NAME); + return DRIVER_CLASS_NAME; + } else { + return LEGACY_DRIVER_CLASS_NAME; + } } catch (ClassNotFoundException e) { - return "com.clickhouse.jdbc.ClickHouseDriver"; + return LEGACY_DRIVER_CLASS_NAME; } } + private static boolean isNewDriverSupported(DockerImageName dockerImageName) { + // New driver supports versions 20.7+. Check the version part of the tag + return new ComparableVersion(dockerImageName.getVersionPart()).isGreaterThanOrEqualTo("20.7"); + } + @Override public String getJdbcUrl() { return JDBC_URL_PREFIX + getHost() + ":" + getMappedPort(HTTP_PORT) + "/" + databaseName;