Skip to content

Commit df3ed30

Browse files
Add support to clickhouse JDBC V2 (#10280)
Fixes #10279 --------- Co-authored-by: Eddú Meléndez Gonzales <eddu.melendez@gmail.com>
1 parent 2e0ef57 commit df3ed30

File tree

6 files changed

+22
-12
lines changed

6 files changed

+22
-12
lines changed

docs/modules/databases/r2dbc.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ So that the URL becomes:
3535

3636
#### Using ClickHouse
3737

38-
`r2dbc:tc:clickhouse:///databasename?TC_IMAGE_TAG=21.9.2-alpine`
38+
`r2dbc:tc:clickhouse:///databasename?TC_IMAGE_TAG=21.11.11-alpine`
3939

4040
#### Using MySQL
4141

modules/clickhouse/build.gradle

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ dependencies {
55
api project(':jdbc')
66

77
compileOnly project(':r2dbc')
8-
compileOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.7.0', classifier: 'http')
8+
compileOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.7.2', classifier: 'http')
99

1010
testImplementation project(':jdbc-test')
11-
testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-jdbc', version: '0.7.0', classifier: 'http')
11+
testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-jdbc', version: '0.7.2', classifier: 'http')
12+
testRuntimeOnly(group: 'com.clickhouse', name: 'jdbc-v2', version: '0.7.2', classifier: 'http')
13+
1214
testImplementation 'org.apache.httpcomponents.client5:httpclient5:5.4.2'
1315
testImplementation 'org.assertj:assertj-core:3.26.3'
1416
testImplementation testFixtures(project(':r2dbc'))
15-
testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.7.0', classifier: 'http')
17+
testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.7.2', classifier: 'http')
1618
}

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ public class ClickHouseContainer extends JdbcDatabaseContainer<ClickHouseContain
2929

3030
static final Integer NATIVE_PORT = 9000;
3131

32-
private static final String DRIVER_CLASS_NAME = "com.clickhouse.jdbc.ClickHouseDriver";
32+
private static final String LEGACY_V1_DRIVER_CLASS_NAME = "com.clickhouse.jdbc.ClickHouseDriver";
33+
34+
private static final String DRIVER_CLASS_NAME = "com.clickhouse.jdbc.Driver";
3335

3436
private static final String JDBC_URL_PREFIX = "jdbc:clickhouse://";
3537

@@ -78,7 +80,12 @@ public Set<Integer> getLivenessCheckPortNumbers() {
7880

7981
@Override
8082
public String getDriverClassName() {
81-
return DRIVER_CLASS_NAME;
83+
try {
84+
Class.forName(DRIVER_CLASS_NAME);
85+
return DRIVER_CLASS_NAME;
86+
} catch (ClassNotFoundException e) {
87+
return LEGACY_V1_DRIVER_CLASS_NAME;
88+
}
8289
}
8390

8491
@Override

modules/clickhouse/src/test/java/org/testcontainers/ClickhouseTestImages.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import org.testcontainers.utility.DockerImageName;
44

55
public interface ClickhouseTestImages {
6-
DockerImageName CLICKHOUSE_IMAGE = DockerImageName.parse("clickhouse/clickhouse-server:21.9.2-alpine");
6+
DockerImageName CLICKHOUSE_IMAGE = DockerImageName.parse("clickhouse/clickhouse-server:21.11.11-alpine");
77

88
DockerImageName CLICKHOUSE_24_12_IMAGE = DockerImageName.parse("clickhouse/clickhouse-server:24.12-alpine");
99
}

modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class ClickHouseContainerTest extends AbstractContainerDatabaseTest {
1313

1414
@Test
1515
public void testSimple() throws SQLException {
16-
try (ClickHouseContainer clickhouse = new ClickHouseContainer("clickhouse/clickhouse-server:21.9.2-alpine")) {
16+
try (ClickHouseContainer clickhouse = new ClickHouseContainer("clickhouse/clickhouse-server:21.11-alpine")) {
1717
clickhouse.start();
1818

1919
ResultSet resultSet = performQuery(clickhouse, "SELECT 1");
@@ -26,11 +26,12 @@ public void testSimple() throws SQLException {
2626
@Test
2727
public void customCredentialsWithUrlParams() throws SQLException {
2828
try (
29-
ClickHouseContainer clickhouse = new ClickHouseContainer("clickhouse/clickhouse-server:21.9.2-alpine")
29+
ClickHouseContainer clickhouse = new ClickHouseContainer("clickhouse/clickhouse-server:21.11.2-alpine")
3030
.withUsername("default")
3131
.withPassword("")
3232
.withDatabaseName("test")
33-
.withUrlParam("max_result_rows", "5")
33+
// The new driver uses the prefix `clickhouse_setting_` for session settings
34+
.withUrlParam("clickhouse_setting_max_result_rows", "5")
3435
) {
3536
clickhouse.start();
3637

modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseR2DBCDatabaseContainerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ protected ConnectionFactoryOptions getOptions(ClickHouseContainer container) {
1212

1313
@Override
1414
protected String createR2DBCUrl() {
15-
return "r2dbc:tc:clickhouse:///db?TC_IMAGE_TAG=21.9.2-alpine";
15+
return "r2dbc:tc:clickhouse:///db?TC_IMAGE_TAG=21.11.11-alpine";
1616
}
1717

1818
@Override
1919
protected ClickHouseContainer createContainer() {
20-
return new ClickHouseContainer("clickhouse/clickhouse-server:21.9.2-alpine");
20+
return new ClickHouseContainer("clickhouse/clickhouse-server:21.11.11-alpine");
2121
}
2222
}

0 commit comments

Comments
 (0)