This is an automated email from the ASF dual-hosted git repository.

diwu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-flink-connector.git


The following commit(s) were added to refs/heads/master by this push:
     new 72d1c5b  [improve] make doris container singleton (#340)
72d1c5b is described below

commit 72d1c5b29b3803a9a77af66c22dd6ec6f804fc20
Author: wudi <676366...@qq.com>
AuthorDate: Tue Mar 12 14:32:31 2024 +0800

    [improve] make doris container singleton (#340)
---
 .github/workflows/run-e2ecase.yml                  |  2 +-
 .github/workflows/run-itcase.yml                   |  2 +-
 .../java/org/apache/doris/flink/DorisTestBase.java | 41 ++++++++--------------
 .../doris/flink/tools/cdc/MySQLDorisE2ECase.java   |  1 +
 4 files changed, 18 insertions(+), 28 deletions(-)

diff --git a/.github/workflows/run-e2ecase.yml 
b/.github/workflows/run-e2ecase.yml
index 77492ae..e6318f8 100644
--- a/.github/workflows/run-e2ecase.yml
+++ b/.github/workflows/run-e2ecase.yml
@@ -40,5 +40,5 @@ jobs:
 
     - name: Run E2ECases
       run: |
-        cd flink-doris-connector && mvn test -Dtest="*E2ECase" 
-Dimage="adamlee489/doris:2.0.3"
+        cd flink-doris-connector && mvn test -Dtest="*E2ECase" 
-Dimage="apache/doris:doris-all-in-one-2.1.0"
 
diff --git a/.github/workflows/run-itcase.yml b/.github/workflows/run-itcase.yml
index d03ee64..0b67065 100644
--- a/.github/workflows/run-itcase.yml
+++ b/.github/workflows/run-itcase.yml
@@ -40,5 +40,5 @@ jobs:
 
     - name: Run ITCases
       run: |
-        cd flink-doris-connector && mvn test -Dtest="*ITCase" 
-Dimage="adamlee489/doris:2.0.3"
+        cd flink-doris-connector && mvn test -Dtest="*ITCase" 
-Dimage="apache/doris:doris-all-in-one-2.1.0"
 
diff --git 
a/flink-doris-connector/src/test/java/org/apache/doris/flink/DorisTestBase.java 
b/flink-doris-connector/src/test/java/org/apache/doris/flink/DorisTestBase.java
index 09ae4bd..e0f75f0 100644
--- 
a/flink-doris-connector/src/test/java/org/apache/doris/flink/DorisTestBase.java
+++ 
b/flink-doris-connector/src/test/java/org/apache/doris/flink/DorisTestBase.java
@@ -18,14 +18,11 @@
 package org.apache.doris.flink;
 
 import com.google.common.collect.Lists;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testcontainers.containers.GenericContainer;
 import org.testcontainers.containers.Network;
 import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
 import org.testcontainers.utility.DockerLoggerFactory;
 
 import java.io.BufferedReader;
@@ -45,16 +42,11 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.LockSupport;
-import java.util.stream.Stream;
-
-import static org.awaitility.Awaitility.given;
-import static org.awaitility.Durations.ONE_SECOND;
 
 public abstract class DorisTestBase {
     protected static final Logger LOG = 
LoggerFactory.getLogger(DorisTestBase.class);
-    private static final String DEFAULT_DOCKER_IMAGE = 
"adamlee489/doris:2.0.3";
+    private static final String DEFAULT_DOCKER_IMAGE = 
"apache/doris:doris-all-in-one-2.1.0";
     protected static final String DORIS_DOCKER_IMAGE =
             System.getProperty("image") == null
                     ? DEFAULT_DOCKER_IMAGE
@@ -66,32 +58,29 @@ public abstract class DorisTestBase {
     protected static final String USERNAME = "root";
     protected static final String PASSWORD = "";
     protected static final GenericContainer DORIS_CONTAINER = 
createDorisContainer();
-    protected static final int DEFAULT_PARALLELISM = 4;
 
     protected static String getFenodes() {
         return DORIS_CONTAINER.getHost() + ":8030";
     }
 
-    @BeforeClass
-    public static void startContainers() {
-        LOG.info("Starting doris containers...");
-        Startables.deepStart(Stream.of(DORIS_CONTAINER)).join();
-        given().ignoreExceptions()
-                .await()
-                .atMost(300, TimeUnit.SECONDS)
-                .pollInterval(ONE_SECOND)
-                .untilAsserted(DorisTestBase::initializeJdbcConnection);
-        LOG.info("Containers doris are started.");
+    static {
+        startContainers();
     }
 
-    @AfterClass
-    public static void stopContainers() {
-        LOG.info("Stopping doris containers...");
-        DORIS_CONTAINER.stop();
-        LOG.info("Containers doris are stopped.");
+    public static void startContainers() {
+        try {
+            LOG.info("Starting doris containers...");
+            // singleton doris container
+            DORIS_CONTAINER.start();
+            initializeJdbcConnection();
+        } catch (Exception ex) {
+            LOG.error("Failed to start containers doris, ", ex);
+        }
+        LOG.info("Containers doris are started.");
     }
 
     public static GenericContainer createDorisContainer() {
+        LOG.info("Create doris containers...");
         GenericContainer container =
                 new GenericContainer<>(DORIS_DOCKER_IMAGE)
                         .withNetwork(Network.newNetwork())
@@ -100,7 +89,7 @@ public abstract class DorisTestBase {
                         .withLogConsumer(
                                 new Slf4jLogConsumer(
                                         
DockerLoggerFactory.getLogger(DORIS_DOCKER_IMAGE)))
-                        .withReuse(true);
+                        .withExposedPorts(8030, 9030, 8040, 9060);
 
         container.setPortBindings(
                 Lists.newArrayList(
diff --git 
a/flink-doris-connector/src/test/java/org/apache/doris/flink/tools/cdc/MySQLDorisE2ECase.java
 
b/flink-doris-connector/src/test/java/org/apache/doris/flink/tools/cdc/MySQLDorisE2ECase.java
index 99e7a13..2aecaaf 100644
--- 
a/flink-doris-connector/src/test/java/org/apache/doris/flink/tools/cdc/MySQLDorisE2ECase.java
+++ 
b/flink-doris-connector/src/test/java/org/apache/doris/flink/tools/cdc/MySQLDorisE2ECase.java
@@ -280,6 +280,7 @@ public class MySQLDorisE2ECase extends DorisTestBase {
                         DriverManager.getConnection(
                                 String.format(URL, DORIS_CONTAINER.getHost()), 
USERNAME, PASSWORD);
                 Statement statement = connection.createStatement()) {
+            statement.execute(String.format("CREATE DATABASE IF NOT EXISTS 
%s", DATABASE));
             statement.execute(String.format("DROP TABLE IF EXISTS %s.%s", 
DATABASE, TABLE_1));
             statement.execute(String.format("DROP TABLE IF EXISTS %s.%s", 
DATABASE, TABLE_2));
             statement.execute(String.format("DROP TABLE IF EXISTS %s.%s", 
DATABASE, TABLE_3));


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to