@@ -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