Skip to content

Commit c713cd6

Browse files
authored
#10279 Add Support to new ClickHouse JDBC Driver V2
Update ClickHouseContainer.java
1 parent 2e0ef57 commit c713cd6

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ public class ClickHouseContainer extends JdbcDatabaseContainer<ClickHouseContain
3333

3434
private static final String LEGACY_DRIVER_CLASS_NAME = "ru.yandex.clickhouse.ClickHouseDriver";
3535

36-
private static final String DRIVER_CLASS_NAME = "com.clickhouse.jdbc.ClickHouseDriver";
36+
private static final String LEGACY_V1_DRIVER_CLASS_NAME = "com.clickhouse.jdbc.ClickHouseDriver";
37+
38+
private static final String DRIVER_CLASS_NAME = "com.clickhouse.jdbc.Driver.java"
3739

3840
private static final String JDBC_URL_PREFIX = "jdbc:" + NAME + "://";
3941

@@ -80,9 +82,10 @@ public Set<Integer> getLivenessCheckPortNumbers() {
8082
@Override
8183
public String getDriverClassName() {
8284
try {
83-
if (supportsNewDriver) {
84-
Class.forName(DRIVER_CLASS_NAME);
85+
if (supportsNewDriver && isClassLoaded(DRIVER_CLASS_NAME)) {
8586
return DRIVER_CLASS_NAME;
87+
} else if (isClassLoaded(LEGACY_V1_DRIVER_CLASS_NAME)) {
88+
return LEGACY_V1_DRIVER_CLASS_NAME;
8689
} else {
8790
return LEGACY_DRIVER_CLASS_NAME;
8891
}
@@ -91,6 +94,15 @@ public String getDriverClassName() {
9194
}
9295
}
9396

97+
public static boolean isClassLoaded(String driverClassName) {
98+
try {
99+
Class.forName(driverClassName);
100+
return true;
101+
} catch (ClassNotFoundException e) {
102+
return false;
103+
}
104+
}
105+
94106
private static boolean isNewDriverSupported(DockerImageName dockerImageName) {
95107
// New driver supports versions 20.7+. Check the version part of the tag
96108
return new ComparableVersion(dockerImageName.getVersionPart()).isGreaterThanOrEqualTo("20.7");

0 commit comments

Comments
 (0)