From 301b6e88f31e479278094f684c9b0823913c492e Mon Sep 17 00:00:00 2001 From: hantmac Date: Mon, 26 Aug 2024 15:10:14 +0800 Subject: [PATCH 01/19] feat: support databend --- .github/dependabot.yml | 4 + .github/settings.yml | 3 + docs/modules/databases/databend.md | 24 ++++ modules/databend/build.gradle | 10 ++ .../containers/DatabendContainerProvider.java | 16 +++ .../databend/DatabendContainer.java | 126 ++++++++++++++++++ ...s.containers.JdbcDatabaseContainerProvider | 1 + .../testcontainers/DatabendTestImages.java | 7 + .../databend/DatabendContainerTest.java | 45 +++++++ .../jdbc/databend/DatabendJDBCDriverTest.java | 21 +++ .../junit/databend/SimpleDatabendTest.java | 43 ++++++ .../src/test/resources/logback-test.xml | 16 +++ 12 files changed, 316 insertions(+) create mode 100644 docs/modules/databases/databend.md create mode 100644 modules/databend/build.gradle create mode 100644 modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java create mode 100644 modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java create mode 100644 modules/databend/src/main/resources/META-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider create mode 100644 modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java create mode 100644 modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java create mode 100644 modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java create mode 100644 modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java create mode 100644 modules/databend/src/test/resources/logback-test.xml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 0239be10168..22977397e03 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -90,6 +90,10 @@ updates: directory: "/modules/database-commons" schedule: interval: "weekly" + - package-ecosystem: "gradle" + directory: "/modules/databend" + schedule: + interval: "weekly" open-pull-requests-limit: 10 - package-ecosystem: "gradle" directory: "/modules/db2" diff --git a/.github/settings.yml b/.github/settings.yml index 06b1c06e72f..d02aee1c7da 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -271,6 +271,9 @@ labels: - name: modules/yugabytedb color: '#006b75' + - name: modules/databend + color: '#006b75' + - name: os/linux color: '#1d76db' diff --git a/docs/modules/databases/databend.md b/docs/modules/databases/databend.md new file mode 100644 index 00000000000..ce48f341950 --- /dev/null +++ b/docs/modules/databases/databend.md @@ -0,0 +1,24 @@ +# Databend Module + +## Adding this module to your project dependencies + +Add the following dependency to your `pom.xml`/`build.gradle` file: + +=== "Gradle" +```groovy +testImplementation "org.testcontainers:databend:{{latest_version}}" +``` + +=== "Maven" +```xml + +org.testcontainers +databend +{{latest_version}} +test + +``` + +!!! hint +Adding this Testcontainers library JAR will not automatically add a database driver JAR to your project. You should ensure that your project also has a suitable database driver as a dependency. + diff --git a/modules/databend/build.gradle b/modules/databend/build.gradle new file mode 100644 index 00000000000..522d3201894 --- /dev/null +++ b/modules/databend/build.gradle @@ -0,0 +1,10 @@ +description = "Testcontainers :: JDBC :: Databend" + +dependencies { + api project(':testcontainers') + api project(':jdbc') + + testImplementation project(':jdbc-test') + testRuntimeOnly 'com.databend.databend-jdbc:0.2.9' + testImplementation 'org.assertj:assertj-core:3.26.3' +} diff --git a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java new file mode 100644 index 00000000000..2fefa6f915b --- /dev/null +++ b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java @@ -0,0 +1,16 @@ +package org.testcontainers.containers; + +import org.testcontainers.utility.DockerImageName; + +public class DatabendContainerProvider extends JdbcDatabaseContainerProvider { + + @Override + public boolean supports(String databaseType) { + return databaseType.equals(DatabendContainer.NAME); + } + + @Override + public JdbcDatabaseContainer newInstance(String tag) { + return new DatabendContainer(DockerImageName.parse(DatabendContainer.IMAGE).withTag(tag)); + } +} diff --git a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java new file mode 100644 index 00000000000..27c36114d8f --- /dev/null +++ b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java @@ -0,0 +1,126 @@ +package org.testcontainers.databendhouse; + +import org.testcontainers.containers.JdbcDatabaseContainer; +import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; +import org.testcontainers.utility.DockerImageName; + +import java.time.Duration; +import java.util.HashSet; +import java.util.Set; + +/** + * Testcontainers implementation for databend. + *

+ * Supported image: {@code datafuselabs/databend} + *

+ * Exposed ports: + *

+ */ +public class DatabendContainer extends JdbcDatabaseContainer { + + private static final String NAME = "databend"; + + private static final DockerImageName Databend_IMAGE_NAME = DockerImageName.parse("datafuselabs/databend"); + + private static final Integer HTTP_PORT = 8000; + + private static final Integer NATIVE_PORT = 8000; + + private static final String DRIVER_CLASS_NAME = "com.databend.jdbc.DatabendDriver"; + + private static final String JDBC_URL_PREFIX = "jdbc:" + NAME + "://"; + + private static final String TEST_QUERY = "SELECT 1"; + + private String databaseName = "default"; + + private String username = "databend"; + + private String password = "databend"; + + public DatabendContainer(String dockerImageName) { + this(DockerImageName.parse(dockerImageName)); + } + + public DatabendContainer(final DockerImageName dockerImageName) { + super(dockerImageName); + dockerImageName.assertCompatibleWith(DATABEND_IMAGE_NAME); + + addExposedPorts(HTTP_PORT); + this.waitStrategy = + new HttpWaitStrategy() + .forStatusCode(200) + .forResponsePredicate("Ok."::equals) + .withStartupTimeout(Duration.ofMinutes(1)); + } + + @Override + protected void configure() { + withEnv("Databend_DB", this.databaseName); + withEnv("Databend_USER", this.username); + withEnv("Databend_PASSWORD", this.password); + } + + @Override + public Set getLivenessCheckPortNumbers() { + return new HashSet<>(getMappedPort(HTTP_PORT)); + } + + @Override + public String getDriverClassName() { + return DRIVER_CLASS_NAME; + } + + @Override + public String getJdbcUrl() { + return ( + JDBC_URL_PREFIX + + getHost() + + ":" + + getMappedPort(HTTP_PORT) + + "/" + + this.databaseName + + constructUrlParameters("?", "&") + ); + } + + @Override + public String getUsername() { + return username; + } + + @Override + public String getPassword() { + return password; + } + + @Override + public String getDatabaseName() { + return databaseName; + } + + @Override + public String getTestQueryString() { + return TEST_QUERY; + } + + @Override + public DatabendContainer withUsername(String username) { + this.username = username; + return this; + } + + @Override + public DatabendContainer withPassword(String password) { + this.password = password; + return this; + } + + @Override + public DatabendContainer withDatabaseName(String databaseName) { + this.databaseName = databaseName; + return this; + } +} diff --git a/modules/databend/src/main/resources/META-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider b/modules/databend/src/main/resources/META-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider new file mode 100644 index 00000000000..231c2510390 --- /dev/null +++ b/modules/databend/src/main/resources/META-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider @@ -0,0 +1 @@ +org.testcontainers.containers.DatabendContainerProvider diff --git a/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java b/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java new file mode 100644 index 00000000000..7b5f11acfca --- /dev/null +++ b/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java @@ -0,0 +1,7 @@ +package org.testcontainers; + +import org.testcontainers.utility.DockerImageName; + +public interface DatabendTestImages { + DockerImageName DATABEND_IMAGE = DockerImageName.parse("datafuselabs/databend:latest"); +} diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java new file mode 100644 index 00000000000..ce11cb256bf --- /dev/null +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -0,0 +1,45 @@ +package org.testcontainers.databend; + +import org.junit.Test; +import org.testcontainers.db.AbstractContainerDatabaseTest; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import static org.assertj.core.api.Assertions.assertThat; + +public class DatabendContainerTest extends AbstractContainerDatabaseTest { + + @Test + public void testSimple() throws SQLException { + try (DatabendContainer databend = new DatabendContainer("datafuselabs/databend:latest")) { + databend.start(); + + ResultSet resultSet = performQuery(databend, "SELECT 1"); + + int resultSetInt = resultSet.getInt(1); + assertThat(resultSetInt).isEqualTo(1); + } + } + + @Test + public void customCredentialsWithUrlParams() throws SQLException { + try ( + DatabendContainer databend = new DatabendContainer("datafuselabs/databend:latest") + .withUsername("databend") + .withPassword("databend") + .withDatabaseName("default") + .withUrlParam("ssl", false) + ) { + databend.start(); + + ResultSet resultSet = performQuery( + databend, + "SELECT 1'" + ); + + int resultSetInt = resultSet.getInt(1); + assertThat(resultSetInt).isEqualTo(1); + } + } +} diff --git a/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java b/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java new file mode 100644 index 00000000000..0348a9668ab --- /dev/null +++ b/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java @@ -0,0 +1,21 @@ +package org.testcontainers.jdbc.databend; + +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.testcontainers.jdbc.AbstractJDBCDriverTest; + +import java.util.Arrays; +import java.util.EnumSet; + +@RunWith(Parameterized.class) +public class DatabendJDBCDriverTest extends AbstractJDBCDriverTest { + + @Parameterized.Parameters(name = "{index} - {0}") + public static Iterable data() { + return Arrays.asList( + new Object[][] { // + { "jdbc:tc:databend://hostname/databasename", EnumSet.of(Options.PmdKnownBroken) }, + } + ); + } +} diff --git a/modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java b/modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java new file mode 100644 index 00000000000..25b4800da1e --- /dev/null +++ b/modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java @@ -0,0 +1,43 @@ +package org.testcontainers.junit.databend; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.testcontainers.DatabendTestImages; +import org.testcontainers.containers.DatabendContainer; +import org.testcontainers.db.AbstractContainerDatabaseTest; +import org.testcontainers.utility.DockerImageName; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import static org.assertj.core.api.Assertions.assertThat; + +@RunWith(Parameterized.class) +public class SimpleDatabendTest extends AbstractContainerDatabaseTest { + + private final DockerImageName imageName; + + public SimpleDatabendTest(DockerImageName imageName) { + this.imageName = imageName; + } + + @Parameterized.Parameters(name = "{0}") + public static Object[][] data() { + return new Object[][] { // + { DatabendTestImages.DATABEND_IMAGE }, + }; + } + + @Test + public void testSimple() throws SQLException { + try (DatabendContainer databend = new DatabendContainer(this.imageName)) { + databend.start(); + + ResultSet resultSet = performQuery(databend, "SELECT 1"); + + int resultSetInt = resultSet.getInt(1); + assertThat(resultSetInt).as("A basic SELECT query succeeds").isEqualTo(1); + } + } +} diff --git a/modules/databend/src/test/resources/logback-test.xml b/modules/databend/src/test/resources/logback-test.xml new file mode 100644 index 00000000000..83ef7a1a3ef --- /dev/null +++ b/modules/databend/src/test/resources/logback-test.xml @@ -0,0 +1,16 @@ + + + + + + %d{HH:mm:ss.SSS} %-5level %logger - %msg%n + + + + + + + + + From ee556a9610c190354e95961609d4d2fc6f7d6984 Mon Sep 17 00:00:00 2001 From: hantmac Date: Mon, 26 Aug 2024 16:14:03 +0800 Subject: [PATCH 02/19] update docs --- .github/ISSUE_TEMPLATE/bug_report.yaml | 1 + .github/ISSUE_TEMPLATE/enhancement.yaml | 1 + .github/ISSUE_TEMPLATE/feature.yaml | 1 + .github/labeler.yml | 4 ++++ 4 files changed, 7 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 284e2c561fb..4251a2db853 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -23,6 +23,7 @@ body: - Consul - Couchbase - CrateDB + - Databend - DB2 - Dynalite - Elasticsearch diff --git a/.github/ISSUE_TEMPLATE/enhancement.yaml b/.github/ISSUE_TEMPLATE/enhancement.yaml index 2ca7de6bc3c..24d6b33ffdd 100644 --- a/.github/ISSUE_TEMPLATE/enhancement.yaml +++ b/.github/ISSUE_TEMPLATE/enhancement.yaml @@ -23,6 +23,7 @@ body: - Consul - Couchbase - CrateDB + - Databend - DB2 - Dynalite - Elasticsearch diff --git a/.github/ISSUE_TEMPLATE/feature.yaml b/.github/ISSUE_TEMPLATE/feature.yaml index 311ec8ca2c6..d36532b7d9d 100644 --- a/.github/ISSUE_TEMPLATE/feature.yaml +++ b/.github/ISSUE_TEMPLATE/feature.yaml @@ -23,6 +23,7 @@ body: - CrateDB - Consul - Couchbase + - Databend - DB2 - Dynalite - Elasticsearch diff --git a/.github/labeler.yml b/.github/labeler.yml index 875e996c428..e88811fd50a 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -55,6 +55,10 @@ - changed-files: - any-glob-to-any-file: - modules/cratedb/**/* +"modules/databend": + - changed-files: + - any-glob-to-any-file: + - modules/databend/**/* "modules/db2": - changed-files: - any-glob-to-any-file: From 9e16e8a0c85cc29ba7fafdfb4620dd007facdf6f Mon Sep 17 00:00:00 2001 From: hantmac Date: Mon, 26 Aug 2024 17:46:28 +0800 Subject: [PATCH 03/19] fix jdbc dsn --- .../testcontainers/jdbc/databend/DatabendJDBCDriverTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java b/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java index 0348a9668ab..8bcc9d327e8 100644 --- a/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java +++ b/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java @@ -14,7 +14,7 @@ public class DatabendJDBCDriverTest extends AbstractJDBCDriverTest { public static Iterable data() { return Arrays.asList( new Object[][] { // - { "jdbc:tc:databend://hostname/databasename", EnumSet.of(Options.PmdKnownBroken) }, + { "jdbc:databend://hostname/databasename", EnumSet.of(Options.PmdKnownBroken) }, } ); } From 7d4d20d1daca9c8c7418a10712fcf82de9341008 Mon Sep 17 00:00:00 2001 From: hantmac Date: Tue, 27 Aug 2024 17:14:58 +0800 Subject: [PATCH 04/19] fix comment --- mkdocs.yml | 1 + .../containers/DatabendContainerProvider.java | 14 ++++++++++++-- .../testcontainers/databend/DatabendContainer.java | 12 +++++------- .../org/testcontainers/DatabendTestImages.java | 2 +- .../databend/DatabendContainerTest.java | 4 ++-- 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 2e1c60c7dcc..f3cd49bab30 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -56,6 +56,7 @@ nav: - modules/databases/couchbase.md - modules/databases/clickhouse.md - modules/databases/cratedb.md + - modules/databases/databend.md - modules/databases/db2.md - modules/databases/dynalite.md - modules/databases/influxdb.md diff --git a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java index 2fefa6f915b..1e067ea53cf 100644 --- a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java +++ b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java @@ -1,16 +1,26 @@ package org.testcontainers.containers; import org.testcontainers.utility.DockerImageName; +import org.testcontainers.containers.DatabendContainer; public class DatabendContainerProvider extends JdbcDatabaseContainerProvider { - + private static final String DEFAULT_TAG = "v1.2.623-nightly"; @Override public boolean supports(String databaseType) { return databaseType.equals(DatabendContainer.NAME); } + @Override + public JdbcDatabaseContainer newInstance() { + return newInstance(DEFAULT_TAG); + } + @Override public JdbcDatabaseContainer newInstance(String tag) { - return new DatabendContainer(DockerImageName.parse(DatabendContainer.IMAGE).withTag(tag)); + if (tag != null) { + return new DatabendContainer(DockerImageName.parse(DatabendContainer.DOCKER_IMAGE_NAME).withTag(tag)); + } else { + return newInstance(); + } } } diff --git a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java index 27c36114d8f..89f53614113 100644 --- a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java +++ b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java @@ -1,4 +1,4 @@ -package org.testcontainers.databendhouse; +package org.testcontainers.databend; import org.testcontainers.containers.JdbcDatabaseContainer; import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; @@ -22,7 +22,7 @@ public class DatabendContainer extends JdbcDatabaseContainer private static final String NAME = "databend"; - private static final DockerImageName Databend_IMAGE_NAME = DockerImageName.parse("datafuselabs/databend"); + private static final DockerImageName DATABEND_IMAGE_NAME = DockerImageName.parse("datafuselabs/databend"); private static final Integer HTTP_PORT = 8000; @@ -49,11 +49,9 @@ public DatabendContainer(final DockerImageName dockerImageName) { dockerImageName.assertCompatibleWith(DATABEND_IMAGE_NAME); addExposedPorts(HTTP_PORT); - this.waitStrategy = - new HttpWaitStrategy() - .forStatusCode(200) - .forResponsePredicate("Ok."::equals) - .withStartupTimeout(Duration.ofMinutes(1)); + waitingFor( + Wait.forHttp("/").forResponsePredicate(response -> response.equals("Ok.")) + ); } @Override diff --git a/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java b/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java index 7b5f11acfca..29c8cbf7bf1 100644 --- a/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java +++ b/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java @@ -3,5 +3,5 @@ import org.testcontainers.utility.DockerImageName; public interface DatabendTestImages { - DockerImageName DATABEND_IMAGE = DockerImageName.parse("datafuselabs/databend:latest"); + DockerImageName DATABEND_IMAGE = DockerImageName.parse("datafuselabs/databend:v1.2.623-nightly"); } diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java index ce11cb256bf..36090415d4f 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -12,7 +12,7 @@ public class DatabendContainerTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (DatabendContainer databend = new DatabendContainer("datafuselabs/databend:latest")) { + try (DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.623-nightly")) { databend.start(); ResultSet resultSet = performQuery(databend, "SELECT 1"); @@ -25,7 +25,7 @@ public void testSimple() throws SQLException { @Test public void customCredentialsWithUrlParams() throws SQLException { try ( - DatabendContainer databend = new DatabendContainer("datafuselabs/databend:latest") + DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.623-nightly") .withUsername("databend") .withPassword("databend") .withDatabaseName("default") From 7340f7a1c7ba84acb94c344015dace6eda60b18c Mon Sep 17 00:00:00 2001 From: hantmac Date: Wed, 28 Aug 2024 10:20:02 +0800 Subject: [PATCH 05/19] fix --- .../java/org/testcontainers/databend/DatabendContainer.java | 5 ++--- .../org/testcontainers/databend/DatabendContainerTest.java | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java index 89f53614113..56ada38aa0f 100644 --- a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java +++ b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java @@ -56,9 +56,8 @@ public DatabendContainer(final DockerImageName dockerImageName) { @Override protected void configure() { - withEnv("Databend_DB", this.databaseName); - withEnv("Databend_USER", this.username); - withEnv("Databend_PASSWORD", this.password); + withEnv("QUERY_DEFAULT_USER", this.username); + withEnv("QUERY_DEFAULT_PASSWORD", this.password); } @Override diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java index 36090415d4f..a50315f89f4 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -19,6 +19,7 @@ public void testSimple() throws SQLException { int resultSetInt = resultSet.getInt(1); assertThat(resultSetInt).isEqualTo(1); + assertThat(databend.getJdbcUrl).contains("?ssl=false"); } } From d970ddb10e1bfd4b9ce32480c99d351b10fe9f9f Mon Sep 17 00:00:00 2001 From: hantmac Date: Wed, 28 Aug 2024 10:31:13 +0800 Subject: [PATCH 06/19] use databend stable version docker image --- .../testcontainers/containers/DatabendContainerProvider.java | 2 +- .../src/test/java/org/testcontainers/DatabendTestImages.java | 2 +- .../org/testcontainers/databend/DatabendContainerTest.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java index 1e067ea53cf..55e803d9ff1 100644 --- a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java +++ b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java @@ -4,7 +4,7 @@ import org.testcontainers.containers.DatabendContainer; public class DatabendContainerProvider extends JdbcDatabaseContainerProvider { - private static final String DEFAULT_TAG = "v1.2.623-nightly"; + private static final String DEFAULT_TAG = "v1.2.615"; @Override public boolean supports(String databaseType) { return databaseType.equals(DatabendContainer.NAME); diff --git a/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java b/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java index 29c8cbf7bf1..12cf0173077 100644 --- a/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java +++ b/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java @@ -3,5 +3,5 @@ import org.testcontainers.utility.DockerImageName; public interface DatabendTestImages { - DockerImageName DATABEND_IMAGE = DockerImageName.parse("datafuselabs/databend:v1.2.623-nightly"); + DockerImageName DATABEND_IMAGE = DockerImageName.parse("datafuselabs/databend:v1.2.615"); } diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java index a50315f89f4..38f3d5c6895 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -12,7 +12,7 @@ public class DatabendContainerTest extends AbstractContainerDatabaseTest { @Test public void testSimple() throws SQLException { - try (DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.623-nightly")) { + try (DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.615")) { databend.start(); ResultSet resultSet = performQuery(databend, "SELECT 1"); @@ -26,7 +26,7 @@ public void testSimple() throws SQLException { @Test public void customCredentialsWithUrlParams() throws SQLException { try ( - DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.623-nightly") + DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.615") .withUsername("databend") .withPassword("databend") .withDatabaseName("default") From f4b94c20311dd94cf3af5d35e33ee0fd73641ba8 Mon Sep 17 00:00:00 2001 From: hantmac Date: Fri, 30 Aug 2024 11:07:21 +0800 Subject: [PATCH 07/19] fix compile --- .../testcontainers/containers/DatabendContainerProvider.java | 5 ++--- .../org/testcontainers/databend/DatabendContainerTest.java | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java index 55e803d9ff1..f070a3fe091 100644 --- a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java +++ b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java @@ -1,7 +1,6 @@ -package org.testcontainers.containers; - +package org.testcontainers.databend; import org.testcontainers.utility.DockerImageName; -import org.testcontainers.containers.DatabendContainer; +import org.testcontainers.databaend.DatabendContainer; public class DatabendContainerProvider extends JdbcDatabaseContainerProvider { private static final String DEFAULT_TAG = "v1.2.615"; diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java index 38f3d5c6895..e19bc422295 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -41,6 +41,7 @@ public void customCredentialsWithUrlParams() throws SQLException { int resultSetInt = resultSet.getInt(1); assertThat(resultSetInt).isEqualTo(1); + assertThat(databend.getJdbcUrl).contains("?ssl=false"); } } } From d6ca8c9be36100a805fe85799807251c077d914f Mon Sep 17 00:00:00 2001 From: hantmac Date: Fri, 30 Aug 2024 11:20:03 +0800 Subject: [PATCH 08/19] fix --- .../testcontainers/containers/DatabendContainerProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java index f070a3fe091..c8fdfb34973 100644 --- a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java +++ b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java @@ -1,6 +1,6 @@ package org.testcontainers.databend; import org.testcontainers.utility.DockerImageName; -import org.testcontainers.databaend.DatabendContainer; +import org.testcontainers.databend.DatabendContainer; public class DatabendContainerProvider extends JdbcDatabaseContainerProvider { private static final String DEFAULT_TAG = "v1.2.615"; From 8202f5475d4d0525fd4cbb50cafc6008776a7dec Mon Sep 17 00:00:00 2001 From: hantmac Date: Wed, 4 Sep 2024 10:11:43 +0800 Subject: [PATCH 09/19] fix compile --- .../testcontainers/containers/DatabendContainerProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java index c8fdfb34973..2e9ef40a993 100644 --- a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java +++ b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java @@ -1,4 +1,4 @@ -package org.testcontainers.databend; +package org.testcontainers.containers; import org.testcontainers.utility.DockerImageName; import org.testcontainers.databend.DatabendContainer; From 2c2fef99fd0d24f4697fdaf58181aac3b7137e05 Mon Sep 17 00:00:00 2001 From: hantmac Date: Wed, 4 Sep 2024 15:34:00 +0800 Subject: [PATCH 10/19] fix --- .../java/org/testcontainers/databend/DatabendContainer.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java index 56ada38aa0f..870ebdb02d4 100644 --- a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java +++ b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java @@ -2,6 +2,7 @@ import org.testcontainers.containers.JdbcDatabaseContainer; import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; +import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.utility.DockerImageName; import java.time.Duration; @@ -20,7 +21,8 @@ */ public class DatabendContainer extends JdbcDatabaseContainer { - private static final String NAME = "databend"; + public static final String NAME = "databend"; + public static final String DOCKER_IMAGE_NAME = "datafuselabs/databend"; private static final DockerImageName DATABEND_IMAGE_NAME = DockerImageName.parse("datafuselabs/databend"); From df77b4824b6cadb8e12eab417547083daad158d7 Mon Sep 17 00:00:00 2001 From: hantmac Date: Thu, 5 Sep 2024 09:15:42 +0800 Subject: [PATCH 11/19] fix ci complile --- .../testcontainers/containers/DatabendContainerProvider.java | 2 ++ .../java/org/testcontainers/databend/DatabendContainer.java | 1 + .../org/testcontainers/junit/databend/SimpleDatabendTest.java | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java index 2e9ef40a993..806ff4d1a5a 100644 --- a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java +++ b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java @@ -1,9 +1,11 @@ package org.testcontainers.containers; + import org.testcontainers.utility.DockerImageName; import org.testcontainers.databend.DatabendContainer; public class DatabendContainerProvider extends JdbcDatabaseContainerProvider { private static final String DEFAULT_TAG = "v1.2.615"; + @Override public boolean supports(String databaseType) { return databaseType.equals(DatabendContainer.NAME); diff --git a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java index 870ebdb02d4..70a69f6a610 100644 --- a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java +++ b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java @@ -22,6 +22,7 @@ public class DatabendContainer extends JdbcDatabaseContainer { public static final String NAME = "databend"; + public static final String DOCKER_IMAGE_NAME = "datafuselabs/databend"; private static final DockerImageName DATABEND_IMAGE_NAME = DockerImageName.parse("datafuselabs/databend"); diff --git a/modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java b/modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java index 25b4800da1e..001c7ab90f3 100644 --- a/modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java +++ b/modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java @@ -4,7 +4,7 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.testcontainers.DatabendTestImages; -import org.testcontainers.containers.DatabendContainer; +import org.testcontainers.databend.DatabendContainer; import org.testcontainers.db.AbstractContainerDatabaseTest; import org.testcontainers.utility.DockerImageName; From d7811eeee2ebd90547bc946f46d00a4fdbc2a701 Mon Sep 17 00:00:00 2001 From: hantmac Date: Thu, 5 Sep 2024 10:51:12 +0800 Subject: [PATCH 12/19] fix tests --- .../org/testcontainers/databend/DatabendContainerTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java index e19bc422295..3ae979a742c 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -2,6 +2,7 @@ import org.junit.Test; import org.testcontainers.db.AbstractContainerDatabaseTest; +import org.testcontainers.databend.DatabendContainer; import java.sql.ResultSet; import java.sql.SQLException; @@ -30,7 +31,7 @@ public void customCredentialsWithUrlParams() throws SQLException { .withUsername("databend") .withPassword("databend") .withDatabaseName("default") - .withUrlParam("ssl", false) + .withUrlParam("ssl", "false") ) { databend.start(); From 5cefcb18ec6bbea71cbe2499385a60070f008e9b Mon Sep 17 00:00:00 2001 From: hantmac Date: Tue, 10 Sep 2024 14:56:32 +0800 Subject: [PATCH 13/19] fix getJdbcUrl --- .../java/org/testcontainers/databend/DatabendContainer.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java index 70a69f6a610..fe7b145b011 100644 --- a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java +++ b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java @@ -75,15 +75,13 @@ public String getDriverClassName() { @Override public String getJdbcUrl() { - return ( - JDBC_URL_PREFIX + + return JDBC_URL_PREFIX + getHost() + ":" + getMappedPort(HTTP_PORT) + "/" + this.databaseName + - constructUrlParameters("?", "&") - ); + constructUrlParameters("?", "&"); } @Override From eb66ccf71b3a3ffbfdee90c42992e09f5f00fb05 Mon Sep 17 00:00:00 2001 From: hantmac Date: Thu, 12 Sep 2024 10:10:37 +0800 Subject: [PATCH 14/19] fix compile --- .../databend/DatabendContainerTest.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java index 3ae979a742c..2452fd877ec 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -20,29 +20,25 @@ public void testSimple() throws SQLException { int resultSetInt = resultSet.getInt(1); assertThat(resultSetInt).isEqualTo(1); - assertThat(databend.getJdbcUrl).contains("?ssl=false"); } } @Test public void customCredentialsWithUrlParams() throws SQLException { try ( - DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.615") - .withUsername("databend") - .withPassword("databend") - .withDatabaseName("default") - .withUrlParam("ssl", "false") - ) { + DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.615") + .withUsername("databend") + .withPassword("databend") + .withDatabaseName("default") + .withUrlParam("ssl", "false")) { databend.start(); ResultSet resultSet = performQuery( - databend, - "SELECT 1'" - ); + databend, + "SELECT 1'"); int resultSetInt = resultSet.getInt(1); assertThat(resultSetInt).isEqualTo(1); - assertThat(databend.getJdbcUrl).contains("?ssl=false"); } } } From dd718b0403c132c2cbe946ece2dde51eb8ba42e5 Mon Sep 17 00:00:00 2001 From: hantmac Date: Thu, 12 Sep 2024 12:44:34 +0800 Subject: [PATCH 15/19] make spotlessApply --- .../containers/DatabendContainerProvider.java | 3 ++- .../databend/DatabendContainer.java | 12 +++++------- .../databend/DatabendContainerTest.java | 16 +++++++--------- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java index 806ff4d1a5a..b20b11e85bd 100644 --- a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java +++ b/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java @@ -1,9 +1,10 @@ package org.testcontainers.containers; -import org.testcontainers.utility.DockerImageName; import org.testcontainers.databend.DatabendContainer; +import org.testcontainers.utility.DockerImageName; public class DatabendContainerProvider extends JdbcDatabaseContainerProvider { + private static final String DEFAULT_TAG = "v1.2.615"; @Override diff --git a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java index fe7b145b011..78c212b1d50 100644 --- a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java +++ b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java @@ -1,11 +1,9 @@ package org.testcontainers.databend; import org.testcontainers.containers.JdbcDatabaseContainer; -import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.utility.DockerImageName; -import java.time.Duration; import java.util.HashSet; import java.util.Set; @@ -52,9 +50,7 @@ public DatabendContainer(final DockerImageName dockerImageName) { dockerImageName.assertCompatibleWith(DATABEND_IMAGE_NAME); addExposedPorts(HTTP_PORT); - waitingFor( - Wait.forHttp("/").forResponsePredicate(response -> response.equals("Ok.")) - ); + waitingFor(Wait.forHttp("/").forResponsePredicate(response -> response.equals("Ok."))); } @Override @@ -75,13 +71,15 @@ public String getDriverClassName() { @Override public String getJdbcUrl() { - return JDBC_URL_PREFIX + + return ( + JDBC_URL_PREFIX + getHost() + ":" + getMappedPort(HTTP_PORT) + "/" + this.databaseName + - constructUrlParameters("?", "&"); + constructUrlParameters("?", "&") + ); } @Override diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java index 2452fd877ec..2de19655706 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -2,7 +2,6 @@ import org.junit.Test; import org.testcontainers.db.AbstractContainerDatabaseTest; -import org.testcontainers.databend.DatabendContainer; import java.sql.ResultSet; import java.sql.SQLException; @@ -26,16 +25,15 @@ public void testSimple() throws SQLException { @Test public void customCredentialsWithUrlParams() throws SQLException { try ( - DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.615") - .withUsername("databend") - .withPassword("databend") - .withDatabaseName("default") - .withUrlParam("ssl", "false")) { + DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.615") + .withUsername("databend") + .withPassword("databend") + .withDatabaseName("default") + .withUrlParam("ssl", "false") + ) { databend.start(); - ResultSet resultSet = performQuery( - databend, - "SELECT 1'"); + ResultSet resultSet = performQuery(databend, "SELECT 1'"); int resultSetInt = resultSet.getInt(1); assertThat(resultSetInt).isEqualTo(1); From 8bc41de2d929c9d067a1ff7f089c121756dc889a Mon Sep 17 00:00:00 2001 From: hantmac Date: Thu, 12 Sep 2024 16:43:25 +0800 Subject: [PATCH 16/19] fix databend build.gradle --- modules/databend/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/databend/build.gradle b/modules/databend/build.gradle index 522d3201894..a3ac4e73225 100644 --- a/modules/databend/build.gradle +++ b/modules/databend/build.gradle @@ -5,6 +5,6 @@ dependencies { api project(':jdbc') testImplementation project(':jdbc-test') - testRuntimeOnly 'com.databend.databend-jdbc:0.2.9' + testRuntimeOnly 'com.databend:databend-jdbc:0.2.9' testImplementation 'org.assertj:assertj-core:3.26.3' } From 9a13de0c3356a76be2306ecda56099ed3d5adab9 Mon Sep 17 00:00:00 2001 From: hantmac Date: Thu, 12 Sep 2024 20:50:45 +0800 Subject: [PATCH 17/19] fix pass tests --- modules/databend/build.gradle | 6 ++++++ .../org/testcontainers/databend/DatabendContainerTest.java | 2 +- .../jdbc/databend/DatabendJDBCDriverTest.java | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/databend/build.gradle b/modules/databend/build.gradle index a3ac4e73225..c2ca6d43dc4 100644 --- a/modules/databend/build.gradle +++ b/modules/databend/build.gradle @@ -7,4 +7,10 @@ dependencies { testImplementation project(':jdbc-test') testRuntimeOnly 'com.databend:databend-jdbc:0.2.9' testImplementation 'org.assertj:assertj-core:3.26.3' + + configurations.all { + resolutionStrategy { + force 'org.slf4j:slf4j-api:1.7.36' + } + } } diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java index 2de19655706..9f51cb46e36 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -33,7 +33,7 @@ public void customCredentialsWithUrlParams() throws SQLException { ) { databend.start(); - ResultSet resultSet = performQuery(databend, "SELECT 1'"); + ResultSet resultSet = performQuery(databend, "SELECT 1;"); int resultSetInt = resultSet.getInt(1); assertThat(resultSetInt).isEqualTo(1); diff --git a/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java b/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java index 8bcc9d327e8..0348a9668ab 100644 --- a/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java +++ b/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java @@ -14,7 +14,7 @@ public class DatabendJDBCDriverTest extends AbstractJDBCDriverTest { public static Iterable data() { return Arrays.asList( new Object[][] { // - { "jdbc:databend://hostname/databasename", EnumSet.of(Options.PmdKnownBroken) }, + { "jdbc:tc:databend://hostname/databasename", EnumSet.of(Options.PmdKnownBroken) }, } ); } From 440f7b47fb5d2941b52f169c3258a3800c2cf2ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Tue, 17 Sep 2024 12:39:41 -0600 Subject: [PATCH 18/19] Polish --- docs/modules/databases/databend.md | 22 +++++----- modules/databend/build.gradle | 7 --- .../databend/DatabendContainer.java | 18 +++----- .../DatabendContainerProvider.java | 8 ++-- ...s.containers.JdbcDatabaseContainerProvider | 2 +- .../testcontainers/DatabendTestImages.java | 7 --- .../databend/DatabendContainerTest.java | 6 +-- .../databend/DatabendJDBCDriverTest.java | 2 +- .../junit/databend/SimpleDatabendTest.java | 43 ------------------- 9 files changed, 27 insertions(+), 88 deletions(-) rename modules/databend/src/main/java/org/testcontainers/{containers => databend}/DatabendContainerProvider.java (68%) delete mode 100644 modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java rename modules/databend/src/test/java/org/testcontainers/{jdbc => }/databend/DatabendJDBCDriverTest.java (93%) delete mode 100644 modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java diff --git a/docs/modules/databases/databend.md b/docs/modules/databases/databend.md index ce48f341950..c399dc2bb51 100644 --- a/docs/modules/databases/databend.md +++ b/docs/modules/databases/databend.md @@ -5,19 +5,19 @@ Add the following dependency to your `pom.xml`/`build.gradle` file: === "Gradle" -```groovy -testImplementation "org.testcontainers:databend:{{latest_version}}" -``` + ```groovy + testImplementation "org.testcontainers:databend:{{latest_version}}" + ``` === "Maven" -```xml - -org.testcontainers -databend -{{latest_version}} -test - -``` + ```xml + + org.testcontainers + databend + {{latest_version}} + test + + ``` !!! hint Adding this Testcontainers library JAR will not automatically add a database driver JAR to your project. You should ensure that your project also has a suitable database driver as a dependency. diff --git a/modules/databend/build.gradle b/modules/databend/build.gradle index c2ca6d43dc4..81cc9ef2cbe 100644 --- a/modules/databend/build.gradle +++ b/modules/databend/build.gradle @@ -1,16 +1,9 @@ description = "Testcontainers :: JDBC :: Databend" dependencies { - api project(':testcontainers') api project(':jdbc') testImplementation project(':jdbc-test') testRuntimeOnly 'com.databend:databend-jdbc:0.2.9' testImplementation 'org.assertj:assertj-core:3.26.3' - - configurations.all { - resolutionStrategy { - force 'org.slf4j:slf4j-api:1.7.36' - } - } } diff --git a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java index 78c212b1d50..ecc78b78845 100644 --- a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java +++ b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java @@ -8,7 +8,7 @@ import java.util.Set; /** - * Testcontainers implementation for databend. + * Testcontainers implementation for Databend. *

* Supported image: {@code datafuselabs/databend} *

@@ -19,16 +19,12 @@ */ public class DatabendContainer extends JdbcDatabaseContainer { - public static final String NAME = "databend"; + static final String NAME = "databend"; - public static final String DOCKER_IMAGE_NAME = "datafuselabs/databend"; - - private static final DockerImageName DATABEND_IMAGE_NAME = DockerImageName.parse("datafuselabs/databend"); + static final DockerImageName DOCKER_IMAGE_NAME = DockerImageName.parse("datafuselabs/databend"); private static final Integer HTTP_PORT = 8000; - private static final Integer NATIVE_PORT = 8000; - private static final String DRIVER_CLASS_NAME = "com.databend.jdbc.DatabendDriver"; private static final String JDBC_URL_PREFIX = "jdbc:" + NAME + "://"; @@ -47,7 +43,7 @@ public DatabendContainer(String dockerImageName) { public DatabendContainer(final DockerImageName dockerImageName) { super(dockerImageName); - dockerImageName.assertCompatibleWith(DATABEND_IMAGE_NAME); + dockerImageName.assertCompatibleWith(DOCKER_IMAGE_NAME); addExposedPorts(HTTP_PORT); waitingFor(Wait.forHttp("/").forResponsePredicate(response -> response.equals("Ok."))); @@ -84,17 +80,17 @@ public String getJdbcUrl() { @Override public String getUsername() { - return username; + return this.username; } @Override public String getPassword() { - return password; + return this.password; } @Override public String getDatabaseName() { - return databaseName; + return this.databaseName; } @Override diff --git a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainerProvider.java similarity index 68% rename from modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java rename to modules/databend/src/main/java/org/testcontainers/databend/DatabendContainerProvider.java index b20b11e85bd..9142bebcfd3 100644 --- a/modules/databend/src/main/java/org/testcontainers/containers/DatabendContainerProvider.java +++ b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainerProvider.java @@ -1,7 +1,7 @@ -package org.testcontainers.containers; +package org.testcontainers.databend; -import org.testcontainers.databend.DatabendContainer; -import org.testcontainers.utility.DockerImageName; +import org.testcontainers.containers.JdbcDatabaseContainer; +import org.testcontainers.containers.JdbcDatabaseContainerProvider; public class DatabendContainerProvider extends JdbcDatabaseContainerProvider { @@ -20,7 +20,7 @@ public JdbcDatabaseContainer newInstance() { @Override public JdbcDatabaseContainer newInstance(String tag) { if (tag != null) { - return new DatabendContainer(DockerImageName.parse(DatabendContainer.DOCKER_IMAGE_NAME).withTag(tag)); + return new DatabendContainer(DatabendContainer.DOCKER_IMAGE_NAME.withTag(tag)); } else { return newInstance(); } diff --git a/modules/databend/src/main/resources/META-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider b/modules/databend/src/main/resources/META-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider index 231c2510390..ead69e77bee 100644 --- a/modules/databend/src/main/resources/META-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider +++ b/modules/databend/src/main/resources/META-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider @@ -1 +1 @@ -org.testcontainers.containers.DatabendContainerProvider +org.testcontainers.databend.DatabendContainerProvider diff --git a/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java b/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java deleted file mode 100644 index 12cf0173077..00000000000 --- a/modules/databend/src/test/java/org/testcontainers/DatabendTestImages.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.testcontainers; - -import org.testcontainers.utility.DockerImageName; - -public interface DatabendTestImages { - DockerImageName DATABEND_IMAGE = DockerImageName.parse("datafuselabs/databend:v1.2.615"); -} diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java index 9f51cb46e36..bfbfb60d68d 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -26,9 +26,9 @@ public void testSimple() throws SQLException { public void customCredentialsWithUrlParams() throws SQLException { try ( DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.615") - .withUsername("databend") - .withPassword("databend") - .withDatabaseName("default") + .withUsername("test") + .withPassword("test") + .withDatabaseName("test") .withUrlParam("ssl", "false") ) { databend.start(); diff --git a/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendJDBCDriverTest.java similarity index 93% rename from modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java rename to modules/databend/src/test/java/org/testcontainers/databend/DatabendJDBCDriverTest.java index 0348a9668ab..a36039dc8d1 100644 --- a/modules/databend/src/test/java/org/testcontainers/jdbc/databend/DatabendJDBCDriverTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendJDBCDriverTest.java @@ -1,4 +1,4 @@ -package org.testcontainers.jdbc.databend; +package org.testcontainers.databend; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; diff --git a/modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java b/modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java deleted file mode 100644 index 001c7ab90f3..00000000000 --- a/modules/databend/src/test/java/org/testcontainers/junit/databend/SimpleDatabendTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.testcontainers.junit.databend; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.testcontainers.DatabendTestImages; -import org.testcontainers.databend.DatabendContainer; -import org.testcontainers.db.AbstractContainerDatabaseTest; -import org.testcontainers.utility.DockerImageName; - -import java.sql.ResultSet; -import java.sql.SQLException; - -import static org.assertj.core.api.Assertions.assertThat; - -@RunWith(Parameterized.class) -public class SimpleDatabendTest extends AbstractContainerDatabaseTest { - - private final DockerImageName imageName; - - public SimpleDatabendTest(DockerImageName imageName) { - this.imageName = imageName; - } - - @Parameterized.Parameters(name = "{0}") - public static Object[][] data() { - return new Object[][] { // - { DatabendTestImages.DATABEND_IMAGE }, - }; - } - - @Test - public void testSimple() throws SQLException { - try (DatabendContainer databend = new DatabendContainer(this.imageName)) { - databend.start(); - - ResultSet resultSet = performQuery(databend, "SELECT 1"); - - int resultSetInt = resultSet.getInt(1); - assertThat(resultSetInt).as("A basic SELECT query succeeds").isEqualTo(1); - } - } -} From 955b7f9ea2937b36125a9bcb12e34eea5e128c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Tue, 17 Sep 2024 14:17:14 -0600 Subject: [PATCH 19/19] Remove withDatabaseName --- .../java/org/testcontainers/databend/DatabendContainer.java | 6 ------ .../org/testcontainers/databend/DatabendContainerTest.java | 1 - 2 files changed, 7 deletions(-) diff --git a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java index ecc78b78845..389c8c44963 100644 --- a/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java +++ b/modules/databend/src/main/java/org/testcontainers/databend/DatabendContainer.java @@ -109,10 +109,4 @@ public DatabendContainer withPassword(String password) { this.password = password; return this; } - - @Override - public DatabendContainer withDatabaseName(String databaseName) { - this.databaseName = databaseName; - return this; - } } diff --git a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java index bfbfb60d68d..92f4842d119 100644 --- a/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java +++ b/modules/databend/src/test/java/org/testcontainers/databend/DatabendContainerTest.java @@ -28,7 +28,6 @@ public void customCredentialsWithUrlParams() throws SQLException { DatabendContainer databend = new DatabendContainer("datafuselabs/databend:v1.2.615") .withUsername("test") .withPassword("test") - .withDatabaseName("test") .withUrlParam("ssl", "false") ) { databend.start();