You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by zo...@apache.org on 2022/09/26 05:08:15 UTC

[incubator-seatunnel] 01/01: [release] prepare release: remove e2e & examples modules

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

zongwen pushed a commit to branch 2.2.0-beta-release
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git

commit a4323eead4ef3941795ec1321b40ecfa5c5ce0b2
Author: Zongwen Li <zo...@gmail.com>
AuthorDate: Mon Sep 26 13:03:40 2022 +0800

    [release] prepare release: remove e2e & examples modules
---
 pom.xml                                            |   4 -
 seatunnel-e2e/pom.xml                              |  77 -------
 .../connector-assert-e2e/pom.xml                   |  44 ----
 .../connector/assertion/FakeSourceToAssertIT.java  |  36 ----
 .../resources/assertion/fakesource_to_assert.conf  |  81 --------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-jdbc-it/pom.xml                      |  50 -----
 .../jdbc/internal/xa/XaGroupOpsImplIT.java         | 128 ------------
 .../src/test/resources/log4j.properties            |  22 --
 seatunnel-e2e/seatunnel-connector-v2-e2e/pom.xml   |  55 -----
 seatunnel-e2e/seatunnel-e2e-common/pom.xml         |  55 -----
 .../e2e/common/AbstractFlinkContainer.java         |  56 -----
 .../e2e/common/AbstractSparkContainer.java         |  50 -----
 .../apache/seatunnel/e2e/common/TestResource.java  |  45 ----
 .../apache/seatunnel/e2e/common/TestSuiteBase.java |  44 ----
 .../common/container/AbstractTestContainer.java    | 109 ----------
 .../common/container/ContainerExtendedFactory.java |  26 ---
 .../e2e/common/container/TestContainer.java        |  36 ----
 .../common/container/TestContainersFactory.java    |  25 ---
 .../flink/AbstractTestFlinkContainer.java          | 119 -----------
 .../common/container/flink/Flink13Container.java   |  68 ------
 .../spark/AbstractTestSparkContainer.java          |  84 --------
 .../common/container/spark/Spark2Container.java    |  62 ------
 .../common/junit/ContainerTestingExtension.java    |  94 ---------
 .../junit/TestCaseInvocationContextProvider.java   | 128 ------------
 .../e2e/common/junit/TestContainerExtension.java   |  29 ---
 .../seatunnel/e2e/common/junit/TestContainers.java |  28 ---
 .../e2e/common/junit/TestLoggerExtension.java      |  79 -------
 .../seatunnel/e2e/common/util/ContainerUtil.java   | 192 -----------------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-assert-flink-e2e/pom.xml             |  52 -----
 .../flink/v2/assertion/FakeSourceToAssertIT.java   |  35 ----
 .../resources/assertion/fakesource_to_assert.conf  |  92 ---------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-datahub-flink-e2e/pom.xml            |  52 -----
 .../flink/v2/datahub/FakeSourceToDatahubIT.java    |  37 ----
 .../resources/datahub/fakesource_to_datahub.conf   |  66 ------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-fake-flink-e2e/pom.xml               |  53 -----
 .../e2e/flink/v2/fake/FakeSourceToConsoleIT.java   |  35 ----
 .../test/resources/fake/fakesource_to_console.conf |  58 ------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-file-flink-e2e/pom.xml               |  59 ------
 .../e2e/flink/v2/file/FakeSourceToFileIT.java      |  56 -----
 .../resources/file/fakesource_to_local_json.conf   |  70 -------
 .../file/fakesource_to_local_parquet.conf          |  71 -------
 .../resources/file/fakesource_to_local_text.conf   |  71 -------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-flink-e2e-base/pom.xml               |  56 -----
 .../apache/seatunnel/e2e/flink/FlinkContainer.java |  63 ------
 .../connector-iceberg-flink-e2e/pom.xml            |  45 ----
 .../e2e/flink/v2/iceberg/IcebergSourceIT.java      | 165 ---------------
 .../src/test/resources/iceberg/iceberg_source.conf |  82 --------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-iotdb-flink-e2e/pom.xml              |  52 -----
 .../e2e/flink/v2/iotdb/FakeSourceToIoTDBIT.java    | 128 ------------
 .../test/resources/iotdb/fakesource_to_iotdb.conf  |  64 ------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-jdbc-flink-e2e/pom.xml               |  96 ---------
 .../e2e/flink/v2/jdbc/FakeSourceToJdbcIT.java      | 112 ----------
 .../seatunnel/e2e/flink/v2/jdbc/JdbcDmdbIT.java    | 147 -------------
 .../e2e/flink/v2/jdbc/JdbcGreenplumIT.java         | 167 ---------------
 .../seatunnel/e2e/flink/v2/jdbc/JdbcMysqlIT.java   | 218 --------------------
 .../seatunnel/e2e/flink/v2/jdbc/JdbcPhoenixIT.java | 180 ----------------
 .../e2e/flink/v2/jdbc/JdbcPostgresIT.java          | 191 -----------------
 .../e2e/flink/v2/jdbc/JdbcSourceToConsoleIT.java   | 117 -----------
 .../test/resources/jdbc/fakesource_to_jdbc.conf    |  65 ------
 .../src/test/resources/jdbc/init_sql/dm_init.conf  | 122 -----------
 .../test/resources/jdbc/init_sql/mysql_init.conf   | 221 --------------------
 .../resources/jdbc/jdbc_dm_source_and_sink.conf    |  57 ------
 .../jdbc/jdbc_greenplum_source_and_sink.conf       |  60 ------
 .../resources/jdbc/jdbc_mysql_source_and_sink.conf |  44 ----
 .../jdbc/jdbc_mysql_source_and_sink_datatype.conf  | 116 -----------
 .../jdbc/jdbc_mysql_source_and_sink_parallel.conf  |  52 -----
 ...mysql_source_and_sink_parallel_upper_lower.conf |  54 -----
 .../jdbc/jdbc_mysql_source_and_sink_xa.conf        |  54 -----
 .../jdbc/jdbc_phoenix_source_and_sink.conf         |  57 ------
 .../jdbc/jdbc_postgres_source_and_sink.conf        |  44 ----
 .../jdbc_postgres_source_and_sink_parallel.conf    |  52 -----
 ...tgres_source_and_sink_parallel_upper_lower.conf |  54 -----
 .../jdbc/jdbc_postgres_source_and_sink_xa.conf     |  53 -----
 .../test/resources/jdbc/jdbcsource_to_console.conf |  53 -----
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-mongodb-flink-e2e/pom.xml            |  47 -----
 .../seatunnel/e2e/flink/v2/mongodb/MongodbIT.java  | 228 ---------------------
 .../src/test/resources/log4j.properties            |  22 --
 .../resources/mongodb/mongodb_source_and_sink.conf |  66 ------
 .../connector-redis-flink-e2e/pom.xml              |  53 -----
 .../seatunnel/e2e/flink/v2/redis/RedisIT.java      |  92 ---------
 .../src/test/resources/log4j.properties            |  22 --
 .../resources/redis/redis_source_and_sink.conf     |  68 ------
 .../seatunnel-flink-connector-v2-e2e/pom.xml       |  50 -----
 seatunnel-e2e/seatunnel-flink-e2e/pom.xml          |  47 -----
 .../seatunnel-connector-flink-assert-e2e/pom.xml   |  53 -----
 .../e2e/flink/assertion/FakeSourceToAssertIT.java  |  35 ----
 .../resources/assertion/fakesource_to_assert.conf  |  88 --------
 .../src/test/resources/log4j.properties            |  23 ---
 .../pom.xml                                        |  53 -----
 .../flink/clickhouse/FakeSourceToClickhouseIT.java | 124 -----------
 .../clickhouse/fakesource_to_clickhouse.conf       |  60 ------
 .../src/test/resources/log4j.properties            |  23 ---
 .../seatunnel-connector-flink-e2e-base/pom.xml     |  55 -----
 .../apache/seatunnel/e2e/flink/FlinkContainer.java |  58 ------
 .../seatunnel-connector-flink-fake-e2e/pom.xml     |  53 -----
 .../e2e/flink/fake/FakeSourceToConsoleIT.java      |  35 ----
 .../test/resources/fake/fakesource_to_console.conf |  54 -----
 .../src/test/resources/log4j.properties            |  23 ---
 .../seatunnel-connector-flink-file-e2e/pom.xml     |  53 -----
 .../e2e/flink/file/FakeSourceToFileIT.java         |  37 ----
 .../test/resources/file/fakesource_to_file.conf    |  56 -----
 .../src/test/resources/log4j.properties            |  23 ---
 .../seatunnel-connector-flink-http-e2e/pom.xml     |  53 -----
 .../e2e/flink/http/HttpSourceToConsoleIT.java      |  35 ----
 .../test/resources/http/httpsource_to_console.conf |  50 -----
 .../src/test/resources/log4j.properties            |  23 ---
 seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml      |  42 ----
 .../setunnel-connector-flink-sql-e2e-base/pom.xml  |  56 -----
 .../seatunnel/e2e/flink/sql/FlinkContainer.java    |  69 -------
 .../setunnel-connector-flink-sql-fake-e2e/pom.xml  |  40 ----
 .../e2e/flink/sql/fake/DatagenToConsoleIT.java     |  36 ----
 .../src/test/resources/fake/flink.sql.conf         |  50 -----
 .../src/test/resources/log4j.properties            |  23 ---
 .../connector-datahub-spark-e2e/pom.xml            |  53 -----
 .../spark/v2/datahub/FakeSourceToDatahubIT.java    |  37 ----
 .../resources/datahub/fakesource_to_datahub.conf   |  66 ------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-fake-spark-e2e/pom.xml               |  53 -----
 .../e2e/spark/v2/fake/FakeSourceToConsoleIT.java   |  39 ----
 .../test/resources/fake/fakesource_to_console.conf |  79 -------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-file-spark-e2e/pom.xml               |  59 ------
 .../e2e/spark/v2/file/FakeSourceToFileIT.java      |  60 ------
 .../resources/file/fakesource_to_local_json.conf   |  69 -------
 .../file/fakesource_to_local_parquet.conf          |  70 -------
 .../resources/file/fakesource_to_local_text.conf   |  70 -------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-iceberg-spark-e2e/pom.xml            |  45 ----
 .../e2e/flink/v2/iceberg/IcebergSourceIT.java      | 164 ---------------
 .../src/test/resources/iceberg/iceberg_source.conf |  85 --------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-iotdb-spark-e2e/pom.xml              |  53 -----
 .../e2e/spark/v2/iotdb/FakeSourceToIoTDBIT.java    | 127 ------------
 .../test/resources/iotdb/fakesource_to_iotdb.conf  |  63 ------
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-jdbc-spark-e2e/pom.xml               |  85 --------
 .../seatunnel/e2e/spark/v2/jdbc/JdbcDmdbIT.java    | 151 --------------
 .../e2e/spark/v2/jdbc/JdbcGreenplumIT.java         | 168 ---------------
 .../seatunnel/e2e/spark/v2/jdbc/JdbcMysqlIT.java   | 218 --------------------
 .../seatunnel/e2e/spark/v2/jdbc/JdbcPhoenixIT.java | 180 ----------------
 .../e2e/spark/v2/jdbc/JdbcPostgresIT.java          | 191 -----------------
 .../src/test/resources/jdbc/init_sql/dm_init.conf  | 122 -----------
 .../test/resources/jdbc/init_sql/mysql_init.conf   | 216 -------------------
 .../resources/jdbc/jdbc_dm_source_and_sink.conf    |  57 ------
 .../jdbc/jdbc_greenplum_source_and_sink.conf       |  62 ------
 .../resources/jdbc/jdbc_mysql_source_and_sink.conf |  44 ----
 .../jdbc/jdbc_mysql_source_and_sink_datatype.conf  | 114 -----------
 .../jdbc/jdbc_mysql_source_and_sink_parallel.conf  |  52 -----
 ...mysql_source_and_sink_parallel_upper_lower.conf |  54 -----
 .../jdbc/jdbc_mysql_source_and_sink_xa.conf        |  54 -----
 .../jdbc/jdbc_phoenix_source_and_sink.conf         |  58 ------
 .../jdbc/jdbc_postgres_source_and_sink.conf        |  44 ----
 .../jdbc_postgres_source_and_sink_parallel.conf    |  52 -----
 ...tgres_source_and_sink_parallel_upper_lower.conf |  54 -----
 .../jdbc/jdbc_postgres_source_and_sink_xa.conf     |  53 -----
 .../src/test/resources/log4j.properties            |  22 --
 .../connector-mongodb-spark-e2e/pom.xml            |  49 -----
 .../seatunnel/e2e/spark/v2/mongodb/MongodbIT.java  | 228 ---------------------
 .../src/test/resources/log4j.properties            |  23 ---
 .../test/resources/mongodb/fake_to_mongodb.conf    |  70 -------
 .../resources/mongodb/mongodb_source_and_sink.conf |  66 ------
 .../connector-redis-spark-e2e/pom.xml              |  53 -----
 .../seatunnel/e2e/spark/v2/redis/RedisIT.java      |  92 ---------
 .../src/test/resources/log4j.properties            |  22 --
 .../resources/redis/redis_source_and_sink.conf     |  71 -------
 .../connector-spark-e2e-base/pom.xml               |  57 ------
 .../apache/seatunnel/e2e/spark/SparkContainer.java |  57 ------
 .../seatunnel-spark-connector-v2-e2e/pom.xml       |  49 -----
 seatunnel-e2e/seatunnel-spark-e2e/pom.xml          |  45 ----
 .../seatunnel-connector-spark-e2e-base/pom.xml     |  56 -----
 .../apache/seatunnel/e2e/spark/SparkContainer.java |  57 ------
 .../seatunnel-connector-spark-fake-e2e/pom.xml     |  53 -----
 .../e2e/spark/fake/FakeSourceToConsoleIT.java      |  39 ----
 .../test/resources/fake/fakesource_to_console.conf |  72 -------
 .../src/test/resources/log4j.properties            |  22 --
 .../seatunnel-connector-spark-http-e2e/pom.xml     |  51 -----
 .../e2e/spark/http/HttpSourceToConsoleIT.java      |  39 ----
 .../test/resources/http/httpsource_to_console.conf |  73 -------
 .../src/test/resources/log4j.properties            |  22 --
 .../seatunnel-connector-spark-jdbc-e2e/pom.xml     |  71 -------
 .../e2e/spark/jdbc/FakeSourceToJdbcIT.java         | 103 ----------
 .../e2e/spark/jdbc/JdbcSourceToConsoleIT.java      | 113 ----------
 .../test/resources/jdbc/fakesource_to_jdbc.conf    |  60 ------
 .../test/resources/jdbc/jdbcsource_to_console.conf |  53 -----
 .../src/test/resources/log4j.properties            |  22 --
 seatunnel-examples/pom.xml                         |  50 -----
 .../seatunnel-flink-connector-v2-example/pom.xml   | 131 ------------
 .../example/flink/v2/FakeToLocalFileExample.java   |  51 -----
 .../example/flink/v2/HttpConnectorExample.java     | 210 -------------------
 .../example/flink/v2/SeaTunnelApiExample.java      |  52 -----
 .../flink/v2/SeaTunnelDingTalkApiExample.java      |  51 -----
 .../main/resources/examples/fake_to_console.conf   |  59 ------
 .../main/resources/examples/fake_to_dingtalk.conf  |  62 ------
 .../resources/examples/fakesource_to_file.conf     |  73 -------
 .../resources/examples/http_source_to_sink.conf    |  66 ------
 .../src/main/resources/log4j.properties            |  22 --
 .../seatunnel-flink-examples/pom.xml               | 110 ----------
 .../seatunnel/example/flink/LocalFlinkExample.java |  51 -----
 .../main/resources/examples/fake_to_console.conf   |  53 -----
 .../src/main/resources/log4j.properties            |  22 --
 .../seatunnel-flink-sql-examples/pom.xml           |  99 ---------
 .../seatunnel/example/flink/LocalSqlExample.java   |  48 -----
 .../resources/examples/flink.sql.conf.template     |  49 -----
 .../src/main/resources/log4j.properties            |  22 --
 .../seatunnel-spark-connector-v2-example/pom.xml   | 109 ----------
 .../src/README.md                                  |   2 -
 .../src/img.png                                    | Bin 44132 -> 0 bytes
 .../seatunnel/example/spark/v2/ExampleUtils.java   |  53 -----
 .../example/spark/v2/SeaTunnelApiExample.java      |  31 ---
 .../spark/v2/SeaTunnelApiToClickHouseExample.java  |  30 ---
 .../resources/examples/spark.batch.clickhouse.conf |  59 ------
 .../src/main/resources/examples/spark.batch.conf   |  94 ---------
 .../src/main/resources/log4j.properties            |  22 --
 .../seatunnel-spark-examples/pom.xml               | 103 ----------
 .../seatunnel/example/spark/LocalSparkExample.java |  52 -----
 .../spark/LocalSparkToClickHouseExample.java       |  52 -----
 .../resources/examples/spark.batch.clickhouse.conf |  47 -----
 .../src/main/resources/examples/spark.batch.conf   |  73 -------
 .../src/main/resources/log4j.properties            |  22 --
 228 files changed, 15121 deletions(-)

diff --git a/pom.xml b/pom.xml
index 263cafd7e..44c758cb2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -100,10 +100,6 @@
                     <value>false</value>
                 </property>
             </activation>
-            <modules>
-                <module>seatunnel-examples</module>
-                <module>seatunnel-e2e</module>
-            </modules>
         </profile>
         <profile>
             <id>release</id>
diff --git a/seatunnel-e2e/pom.xml b/seatunnel-e2e/pom.xml
deleted file mode 100644
index 78d3f60ed..000000000
--- a/seatunnel-e2e/pom.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>seatunnel-e2e</artifactId>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>seatunnel-e2e-common</module>
-        <module>seatunnel-connector-v2-e2e</module>
-        <module>seatunnel-flink-connector-v2-e2e</module>
-        <module>seatunnel-flink-e2e</module>
-        <module>seatunnel-flink-sql-e2e</module>
-        <module>seatunnel-spark-connector-v2-e2e</module>
-        <module>seatunnel-spark-e2e</module>
-    </modules>
-
-    <properties>
-        <junit4.version>4.13.2</junit4.version>
-        <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
-    </properties>
-    <dependencies>
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>testcontainers</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <!-- Testcontainers 1.x is tightly coupled with the JUnit 4.x rule API-->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>${junit4.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.awaitility</groupId>
-            <artifactId>awaitility</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <configuration>
-                    <skip>true</skip>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/pom.xml b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/pom.xml
deleted file mode 100644
index a41477388..000000000
--- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/pom.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-connector-v2-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-assert-e2e</artifactId>
-
-    <dependencies>
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-assert</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/src/test/java/org/apache/seatunnel/e2e/connector/assertion/FakeSourceToAssertIT.java b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/src/test/java/org/apache/seatunnel/e2e/connector/assertion/FakeSourceToAssertIT.java
deleted file mode 100644
index 94113ba94..000000000
--- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/src/test/java/org/apache/seatunnel/e2e/connector/assertion/FakeSourceToAssertIT.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.connector.assertion;
-
-import org.apache.seatunnel.e2e.common.TestSuiteBase;
-import org.apache.seatunnel.e2e.common.container.TestContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.TestTemplate;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-public class FakeSourceToAssertIT extends TestSuiteBase {
-
-    @TestTemplate
-    public void testFakeSourceToAssertSink(TestContainer container) throws IOException, InterruptedException {
-        Container.ExecResult execResult = container.executeJob("/assertion/fakesource_to_assert.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/src/test/resources/assertion/fakesource_to_assert.conf b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/src/test/resources/assertion/fakesource_to_assert.conf
deleted file mode 100644
index 15da3772b..000000000
--- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/src/test/resources/assertion/fakesource_to_assert.conf
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  execution.parallelism = 1
-}
-
-source {
-    FakeSource {
-      result_table_name = "fake"
-      schema = {
-        fields {
-          name = "string"
-          age = "int"
-        }
-      }
-  }
-}
-
-transform {
-    sql {
-      sql = "select name,age from fake"
-    }
-}
-
-sink {
-   Assert {
-       rules =
-           [{
-               field_name = name
-               field_type = string
-               field_value = [
-                   {
-                       rule_type = NOT_NULL
-                   },
-                   {
-                       rule_type = MIN_LENGTH
-                       rule_value = 10
-                   },
-                   {
-                        rule_type = MAX_LENGTH
-                        rule_value = 10
-                   }
-               ]
-           },{
-               field_name = age
-               field_type = int
-               field_value = [
-                   {
-                       rule_type = NOT_NULL
-                   },
-                   {
-                       rule_type = MIN
-                       rule_value = 32767
-                   },
-                   {
-                        rule_type = MAX
-                        rule_value = 2147483647
-                   }
-               ]
-           }
-           ]
-   }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-assert-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-it/pom.xml b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-it/pom.xml
deleted file mode 100644
index de81e8ff2..000000000
--- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-it/pom.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-connector-v2-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-jdbc-it</artifactId>
-
-    <properties>
-        <testcontainers.version>1.17.3</testcontainers.version>
-    </properties>
-
-    <dependencies>
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-jdbc</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>mysql</artifactId>
-            <version>${testcontainers.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-it/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/xa/XaGroupOpsImplIT.java b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-it/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/xa/XaGroupOpsImplIT.java
deleted file mode 100644
index cf412da33..000000000
--- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-it/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/xa/XaGroupOpsImplIT.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.connectors.seatunnel.jdbc.internal.xa;
-
-import static javax.transaction.xa.XAResource.TMSTARTRSCAN;
-
-import org.apache.seatunnel.api.common.JobContext;
-import org.apache.seatunnel.api.sink.DefaultSinkWriterContext;
-import org.apache.seatunnel.api.sink.SinkWriter;
-import org.apache.seatunnel.connectors.seatunnel.jdbc.internal.connection.DataSourceUtils;
-import org.apache.seatunnel.connectors.seatunnel.jdbc.internal.options.JdbcConnectionOptions;
-
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.MySQLContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-import org.testcontainers.utility.DockerImageName;
-
-import javax.sql.XADataSource;
-import javax.transaction.xa.XAException;
-import javax.transaction.xa.XAResource;
-import javax.transaction.xa.Xid;
-
-import java.util.stream.Stream;
-
-@Disabled("Temporary fast fix, reason: JdbcDatabaseContainer: ClassNotFoundException: com.mysql.jdbc.Driver")
-class XaGroupOpsImplIT {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(XaGroupOpsImplIT.class);
-    private MySQLContainer<?> mc;
-    private XaGroupOps xaGroupOps;
-    private SemanticXidGenerator xidGenerator;
-    private JdbcConnectionOptions jdbcConnectionOptions;
-    private XaFacade xaFacade;
-    private XAResource xaResource;
-
-    @BeforeEach
-    void before() throws Exception {
-        // Non-root users need to grant XA_RECOVER_ADMIN permission
-        mc = new MySQLContainer<>(DockerImageName.parse("mysql:8.0.29"))
-            .withUsername("root")
-            .withLogConsumer(new Slf4jLogConsumer(LOGGER));
-        Startables.deepStart(Stream.of(mc)).join();
-
-        jdbcConnectionOptions = JdbcConnectionOptions.builder()
-            .withUrl(mc.getJdbcUrl())
-            .withUsername(mc.getUsername())
-            .withPassword(mc.getPassword())
-            .withXaDataSourceClassName("com.mysql.cj.jdbc.MysqlXADataSource")
-            .build();
-
-        xidGenerator = new SemanticXidGenerator();
-        xidGenerator.open();
-        xaFacade = new XaFacadeImplAutoLoad(jdbcConnectionOptions);
-        xaFacade.open();
-        xaGroupOps = new XaGroupOpsImpl(xaFacade);
-
-        XADataSource xaDataSource = (XADataSource) DataSourceUtils.buildCommonDataSource(jdbcConnectionOptions);
-        xaResource = xaDataSource.getXAConnection().getXAResource();
-
-    }
-
-    @Test
-    void testRecoverAndRollback() throws Exception {
-        JobContext jobContext = new JobContext();
-        SinkWriter.Context writerContext1 = new DefaultSinkWriterContext(1);
-        Xid xid1 =
-            xidGenerator.generateXid(jobContext, writerContext1, System.currentTimeMillis());
-        Xid xid2 =
-            xidGenerator.generateXid(jobContext, writerContext1, System.currentTimeMillis() + 1);
-
-        xaFacade.start(xid1);
-        xaFacade.endAndPrepare(xid1);
-
-        xaFacade.start(xid2);
-        xaFacade.endAndPrepare(xid2);
-
-        Assertions.assertTrue(checkPreparedXid(xid1));
-        Assertions.assertTrue(checkPreparedXid(xid2));
-
-        xaGroupOps.recoverAndRollback(jobContext, writerContext1, xidGenerator, xid2);
-
-        Assertions.assertFalse(checkPreparedXid(xid1));
-        Assertions.assertTrue(checkPreparedXid(xid2));
-
-    }
-
-    private boolean checkPreparedXid(Xid xidCrr) throws XAException {
-        Xid[] recover = xaResource.recover(TMSTARTRSCAN);
-        for (int i = 0; i < recover.length; i++) {
-            XidImpl xid = new XidImpl(recover[i].getFormatId(), recover[i].getGlobalTransactionId(),
-                recover[i].getBranchQualifier());
-            if (xid.equals(xidCrr)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    @AfterEach
-    public void closePostgreSqlContainer() {
-        if (mc != null) {
-            mc.stop();
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-it/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-it/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-it/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/pom.xml b/seatunnel-e2e/seatunnel-connector-v2-e2e/pom.xml
deleted file mode 100644
index 0c42e9ba8..000000000
--- a/seatunnel-e2e/seatunnel-connector-v2-e2e/pom.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <packaging>pom</packaging>
-    <modules>
-        <module>connector-assert-e2e</module>
-        <module>connector-jdbc-it</module>
-    </modules>
-
-    <artifactId>seatunnel-connector-v2-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-e2e-common</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-flink-starter</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-spark-starter</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-e2e-common/pom.xml b/seatunnel-e2e/seatunnel-e2e-common/pom.xml
deleted file mode 100644
index 3ddc46cb5..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/pom.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>seatunnel-e2e-common</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>${maven-jar-plugin.version}</version>
-                <configuration>
-                    <skip>false</skip>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/AbstractFlinkContainer.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/AbstractFlinkContainer.java
deleted file mode 100644
index 7e6a1342c..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/AbstractFlinkContainer.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common;
-
-import org.apache.seatunnel.e2e.common.container.flink.AbstractTestFlinkContainer;
-
-import lombok.extern.slf4j.Slf4j;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.TestInstance;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-/**
- * This class is the base class of FlinkEnvironment test.
- * The before method will create a Flink cluster, and after method will close the Flink cluster.
- * You can use {@link AbstractFlinkContainer#executeJob} to submit a seatunnel config and run a seatunnel job.
- */
-@Slf4j
-@TestInstance(TestInstance.Lifecycle.PER_CLASS)
-public abstract class AbstractFlinkContainer extends AbstractTestFlinkContainer {
-
-    @Override
-    @BeforeAll
-    public void startUp() throws Exception {
-        super.startUp();
-        log.info("The TestContainer[{}] is running.", identifier());
-    }
-
-    @Override
-    @AfterAll
-    public void tearDown() throws Exception {
-        super.tearDown();
-        log.info("The TestContainer[{}] is closed.", identifier());
-    }
-
-    public Container.ExecResult executeSeaTunnelFlinkJob(String confFile) throws IOException, InterruptedException {
-        return executeJob(confFile);
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/AbstractSparkContainer.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/AbstractSparkContainer.java
deleted file mode 100644
index 41829ca43..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/AbstractSparkContainer.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common;
-
-import org.apache.seatunnel.e2e.common.container.spark.AbstractTestSparkContainer;
-
-import lombok.extern.slf4j.Slf4j;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.TestInstance;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-@Slf4j
-@TestInstance(TestInstance.Lifecycle.PER_CLASS)
-public abstract class AbstractSparkContainer extends AbstractTestSparkContainer {
-
-    @Override
-    @BeforeAll
-    public void startUp() throws Exception {
-        super.startUp();
-        log.info("The TestContainer[{}] is running.", identifier());
-    }
-
-    @AfterAll
-    public void tearDown() throws Exception {
-        super.tearDown();
-        log.info("The TestContainer[{}] is closed.", identifier());
-    }
-
-    public Container.ExecResult executeSeaTunnelSparkJob(String confFile) throws IOException, InterruptedException {
-        return executeJob(confFile);
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/TestResource.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/TestResource.java
deleted file mode 100644
index fe2610ee5..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/TestResource.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common;
-
-/**
- * Basic abstractions for all resources used in connector testing framework.
- *
- * <p>Lifecycle of test resources will be managed by the framework.
- */
-public interface TestResource {
-
-    /**
-     * Start up the test resource.
-     *
-     * <p>The implementation of this method should be idempotent.
-     *
-     * @throws Exception if anything wrong when starting the resource
-     */
-    void startUp() throws Exception;
-
-    /**
-     * Tear down the test resource.
-     *
-     * <p>The test resource should be able to tear down even without a startup (could be a no-op).
-     *
-     * @throws Exception if anything wrong when tearing the resource down
-     */
-    void tearDown() throws Exception;
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/TestSuiteBase.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/TestSuiteBase.java
deleted file mode 100644
index 00f2c6502..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/TestSuiteBase.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common;
-
-import org.apache.seatunnel.e2e.common.container.TestContainer;
-import org.apache.seatunnel.e2e.common.container.TestContainersFactory;
-import org.apache.seatunnel.e2e.common.junit.ContainerTestingExtension;
-import org.apache.seatunnel.e2e.common.junit.TestCaseInvocationContextProvider;
-import org.apache.seatunnel.e2e.common.junit.TestContainers;
-import org.apache.seatunnel.e2e.common.junit.TestLoggerExtension;
-import org.apache.seatunnel.e2e.common.util.ContainerUtil;
-
-import org.junit.jupiter.api.TestInstance;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.testcontainers.containers.Network;
-
-@ExtendWith({
-    ContainerTestingExtension.class,
-    TestLoggerExtension.class,
-    TestCaseInvocationContextProvider.class
-})
-@TestInstance(TestInstance.Lifecycle.PER_CLASS)
-public abstract class TestSuiteBase {
-
-    protected static final Network NETWORK = TestContainer.NETWORK;
-
-    @TestContainers
-    private TestContainersFactory containersFactory = ContainerUtil::discoverTestContainers;
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/AbstractTestContainer.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/AbstractTestContainer.java
deleted file mode 100644
index acec24c3b..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/AbstractTestContainer.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.container;
-
-import static org.apache.seatunnel.e2e.common.util.ContainerUtil.PROJECT_ROOT_PATH;
-import static org.apache.seatunnel.e2e.common.util.ContainerUtil.adaptPathForWin;
-import static org.apache.seatunnel.e2e.common.util.ContainerUtil.copyConfigFileToContainer;
-import static org.apache.seatunnel.e2e.common.util.ContainerUtil.copyConnectorJarToContainer;
-
-import org.apache.seatunnel.e2e.common.util.ContainerUtil;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.List;
-
-public abstract class AbstractTestContainer implements TestContainer {
-
-    protected static final Logger LOG = LoggerFactory.getLogger(AbstractTestContainer.class);
-    protected static final String START_ROOT_MODULE_NAME = "seatunnel-core";
-
-    public static final String SEATUNNEL_HOME = "/tmp/seatunnel";
-    protected final String startModuleName;
-
-    protected final String startModuleFullPath;
-
-    public AbstractTestContainer() {
-        this.startModuleName = getStartModuleName();
-        this.startModuleFullPath = PROJECT_ROOT_PATH + File.separator + START_ROOT_MODULE_NAME + File.separator + this.startModuleName;
-        ContainerUtil.checkPathExist(startModuleFullPath);
-    }
-
-    protected abstract String getDockerImage();
-
-    protected abstract String getStartModuleName();
-
-    protected abstract String getStartShellName();
-
-    protected abstract String getConnectorModulePath();
-
-    protected abstract String getConnectorType();
-
-    protected abstract String getConnectorNamePrefix();
-
-    protected abstract List<String> getExtraStartShellCommands();
-
-    /**
-     * TODO: issue #2733, Reimplement all modules that override the method, remove this method & use {@link ContainerExtendedFactory}.
-     */
-    protected void executeExtraCommands(GenericContainer<?> container) throws IOException, InterruptedException {
-        //do nothing
-    }
-
-    protected void copySeaTunnelStarter(GenericContainer<?> container) {
-        ContainerUtil.copySeaTunnelStarter(container,
-            this.startModuleName,
-            this.startModuleFullPath,
-            SEATUNNEL_HOME,
-            getStartShellName());
-    }
-
-    protected Container.ExecResult executeJob(GenericContainer<?> container, String confFile) throws IOException, InterruptedException {
-        final String confInContainerPath = copyConfigFileToContainer(container, confFile);
-        // copy connectors
-        copyConnectorJarToContainer(container,
-            confFile,
-            getConnectorModulePath(),
-            getConnectorNamePrefix(),
-            getConnectorType(),
-            SEATUNNEL_HOME);
-        return executeCommand(container, confInContainerPath);
-    }
-
-    protected Container.ExecResult executeCommand(GenericContainer<?> container, String configPath) throws IOException, InterruptedException {
-        final List<String> command = new ArrayList<>();
-        String binPath = Paths.get(SEATUNNEL_HOME, "bin", getStartShellName()).toString();
-        // base command
-        command.add(adaptPathForWin(binPath));
-        command.add("--config");
-        command.add(adaptPathForWin(configPath));
-        command.addAll(getExtraStartShellCommands());
-
-        Container.ExecResult execResult = container.execInContainer("bash", "-c", String.join(" ", command));
-        LOG.info(execResult.getStdout());
-        LOG.error(execResult.getStderr());
-        return execResult;
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/ContainerExtendedFactory.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/ContainerExtendedFactory.java
deleted file mode 100644
index 3f760a225..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/ContainerExtendedFactory.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.container;
-
-import org.testcontainers.containers.GenericContainer;
-
-@FunctionalInterface
-public interface ContainerExtendedFactory {
-
-    void extend(GenericContainer<?> engineMasterContainer);
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/TestContainer.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/TestContainer.java
deleted file mode 100644
index 3d17759bb..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/TestContainer.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.container;
-
-import org.apache.seatunnel.e2e.common.TestResource;
-
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.Network;
-
-import java.io.IOException;
-
-public interface TestContainer extends TestResource {
-
-    Network NETWORK = Network.newNetwork();
-
-    String identifier();
-
-    void executeExtraCommands(ContainerExtendedFactory extendedFactory);
-
-    Container.ExecResult executeJob(String confFile) throws IOException, InterruptedException;
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/TestContainersFactory.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/TestContainersFactory.java
deleted file mode 100644
index cdcb62474..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/TestContainersFactory.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.container;
-
-import java.util.List;
-
-public interface TestContainersFactory {
-
-    List<TestContainer> create();
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/AbstractTestFlinkContainer.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/AbstractTestFlinkContainer.java
deleted file mode 100644
index 521b1fa2b..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/AbstractTestFlinkContainer.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.container.flink;
-
-import org.apache.seatunnel.e2e.common.container.AbstractTestContainer;
-import org.apache.seatunnel.e2e.common.container.ContainerExtendedFactory;
-import org.apache.seatunnel.e2e.common.container.TestContainer;
-
-import lombok.NoArgsConstructor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Stream;
-
-/**
- * This class is the base class of FlinkEnvironment test.
- * The before method will create a Flink cluster, and after method will close the Flink cluster.
- * You can use {@link TestContainer#executeJob} to submit a seatunnel config and run a seatunnel job.
- */
-@NoArgsConstructor
-public abstract class AbstractTestFlinkContainer extends AbstractTestContainer {
-
-    protected static final Logger LOG = LoggerFactory.getLogger(AbstractTestFlinkContainer.class);
-
-    protected static final List<String> DEFAULT_FLINK_PROPERTIES = Arrays.asList(
-        "jobmanager.rpc.address: jobmanager",
-        "taskmanager.numberOfTaskSlots: 10",
-        "parallelism.default: 4",
-        "env.java.opts: -Doracle.jdbc.timezoneAsRegion=false");
-
-    protected static final String DEFAULT_DOCKER_IMAGE = "flink:1.13.6-scala_2.11";
-
-    protected GenericContainer<?> jobManager;
-    protected GenericContainer<?> taskManager;
-
-    @Override
-    protected String getDockerImage() {
-        return DEFAULT_DOCKER_IMAGE;
-    }
-
-    @Override
-    public void startUp() throws Exception {
-        final String dockerImage = getDockerImage();
-        final String properties = String.join("\n", getFlinkProperties());
-        jobManager = new GenericContainer<>(dockerImage)
-            .withCommand("jobmanager")
-            .withNetwork(NETWORK)
-            .withNetworkAliases("jobmanager")
-            .withExposedPorts()
-            .withEnv("FLINK_PROPERTIES", properties)
-            .withLogConsumer(new Slf4jLogConsumer(LOG));
-
-        taskManager =
-            new GenericContainer<>(dockerImage)
-                .withCommand("taskmanager")
-                .withNetwork(NETWORK)
-                .withNetworkAliases("taskmanager")
-                .withEnv("FLINK_PROPERTIES", properties)
-                .dependsOn(jobManager)
-                .withLogConsumer(new Slf4jLogConsumer(LOG));
-
-        Startables.deepStart(Stream.of(jobManager)).join();
-        Startables.deepStart(Stream.of(taskManager)).join();
-        copySeaTunnelStarter(jobManager);
-        // execute extra commands
-        executeExtraCommands(jobManager);
-    }
-
-    protected List<String> getFlinkProperties() {
-        return DEFAULT_FLINK_PROPERTIES;
-    }
-
-    @Override
-    public void tearDown() throws Exception {
-        if (taskManager != null) {
-            taskManager.stop();
-        }
-        if (jobManager != null) {
-            jobManager.stop();
-        }
-    }
-
-    @Override
-    protected List<String> getExtraStartShellCommands() {
-        return Collections.emptyList();
-    }
-
-    public void executeExtraCommands(ContainerExtendedFactory extendedFactory) {
-        extendedFactory.extend(jobManager);
-    }
-
-    @Override
-    public Container.ExecResult executeJob(String confFile) throws IOException, InterruptedException {
-        return executeJob(jobManager, confFile);
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/Flink13Container.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/Flink13Container.java
deleted file mode 100644
index 362bc7795..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/Flink13Container.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.container.flink;
-
-import org.apache.seatunnel.e2e.common.container.TestContainer;
-
-import com.google.auto.service.AutoService;
-import lombok.NoArgsConstructor;
-
-/**
- * This class is the base class of FlinkEnvironment test for new seatunnel connector API.
- * The before method will create a Flink cluster, and after method will close the Flink cluster.
- * You can use {@link Flink13Container#executeJob} to submit a seatunnel config and run a seatunnel job.
- */
-@NoArgsConstructor
-@AutoService(TestContainer.class)
-public class Flink13Container extends AbstractTestFlinkContainer {
-
-    @Override
-    public String identifier() {
-        return "flink:1.13.6";
-    }
-
-    @Override
-    protected String getDockerImage() {
-        return "tyrantlucifer/flink:1.13.6-scala_2.11_hadoop27";
-    }
-
-    @Override
-    protected String getStartModuleName() {
-        return "seatunnel-flink-starter";
-    }
-
-    @Override
-    protected String getStartShellName() {
-        return "start-seatunnel-flink-connector-v2.sh";
-    }
-
-    @Override
-    protected String getConnectorType() {
-        return "seatunnel";
-    }
-
-    @Override
-    protected String getConnectorModulePath() {
-        return "seatunnel-connectors-v2";
-    }
-
-    @Override
-    protected String getConnectorNamePrefix() {
-        return "connector-";
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/spark/AbstractTestSparkContainer.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/spark/AbstractTestSparkContainer.java
deleted file mode 100644
index e5ee19d3c..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/spark/AbstractTestSparkContainer.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.container.spark;
-
-import org.apache.seatunnel.e2e.common.container.AbstractTestContainer;
-import org.apache.seatunnel.e2e.common.container.ContainerExtendedFactory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Stream;
-
-public abstract class AbstractTestSparkContainer extends AbstractTestContainer {
-
-    private static final Logger LOG = LoggerFactory.getLogger(AbstractTestSparkContainer.class);
-    private static final String DEFAULT_DOCKER_IMAGE = "bitnami/spark:2.4.3";
-
-    protected GenericContainer<?> master;
-
-    @Override
-    protected String getDockerImage() {
-        return DEFAULT_DOCKER_IMAGE;
-    }
-
-    @Override
-    public void startUp() throws Exception {
-        master = new GenericContainer<>(getDockerImage())
-            .withNetwork(NETWORK)
-            .withNetworkAliases("spark-master")
-            .withExposedPorts()
-            .withEnv("SPARK_MODE", "master")
-            .withLogConsumer(new Slf4jLogConsumer(LOG))
-            .withCreateContainerCmdModifier(cmd -> cmd.withUser("root"));
-        // In most case we can just use standalone mode to execute a spark job, if we want to use cluster mode, we need to
-        // start a worker.
-        Startables.deepStart(Stream.of(master)).join();
-        copySeaTunnelStarter(master);
-        // execute extra commands
-        executeExtraCommands(master);
-    }
-
-    @Override
-    public void tearDown() throws Exception {
-        if (master != null) {
-            master.stop();
-        }
-    }
-
-    @Override
-    protected List<String> getExtraStartShellCommands() {
-        return Arrays.asList("--master local",
-            "--deploy-mode client");
-    }
-
-    public void executeExtraCommands(ContainerExtendedFactory extendedFactory) {
-        extendedFactory.extend(master);
-    }
-
-    public Container.ExecResult executeJob(String confFile) throws IOException, InterruptedException {
-        return executeJob(master, confFile);
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/spark/Spark2Container.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/spark/Spark2Container.java
deleted file mode 100644
index dd09bcda0..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/spark/Spark2Container.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.container.spark;
-
-import org.apache.seatunnel.e2e.common.container.TestContainer;
-
-import com.google.auto.service.AutoService;
-import lombok.NoArgsConstructor;
-
-/**
- * This class is the base class of SparkEnvironment test. The before method will create a Spark master, and after method will close the Spark master.
- * You can use {@link Spark2Container#executeJob} to submit a seatunnel conf and a seatunnel spark job.
- */
-@NoArgsConstructor
-@AutoService(TestContainer.class)
-public class Spark2Container extends AbstractTestSparkContainer {
-
-    @Override
-    public String identifier() {
-        return "spark:2.4.3";
-    }
-
-    @Override
-    protected String getStartModuleName() {
-        return "seatunnel-spark-starter";
-    }
-
-    @Override
-    protected String getStartShellName() {
-        return "start-seatunnel-spark-connector-v2.sh";
-    }
-
-    @Override
-    protected String getConnectorType() {
-        return "seatunnel";
-    }
-
-    @Override
-    protected String getConnectorModulePath() {
-        return "seatunnel-connectors-v2";
-    }
-
-    @Override
-    protected String getConnectorNamePrefix() {
-        return "connector-";
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/ContainerTestingExtension.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/ContainerTestingExtension.java
deleted file mode 100644
index 0dd9955dd..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/ContainerTestingExtension.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.junit;
-
-import org.apache.seatunnel.e2e.common.container.ContainerExtendedFactory;
-import org.apache.seatunnel.e2e.common.container.TestContainer;
-import org.apache.seatunnel.e2e.common.container.TestContainersFactory;
-
-import org.junit.jupiter.api.extension.AfterAllCallback;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.platform.commons.support.AnnotationSupport;
-
-import java.lang.annotation.Annotation;
-import java.util.Collection;
-import java.util.List;
-
-public class ContainerTestingExtension implements BeforeAllCallback, AfterAllCallback {
-    public static final ExtensionContext.Namespace TEST_RESOURCE_NAMESPACE =
-        ExtensionContext.Namespace.create("testResourceNamespace");
-    public static final String TEST_CONTAINERS_STORE_KEY = "testContainers";
-    public static final String TEST_EXTENDED_FACTORY_STORE_KEY = "testContainerExtendedFactory";
-
-    @Override
-    public void beforeAll(ExtensionContext context) throws Exception {
-        List<ContainerExtendedFactory> containerExtendedFactories =
-            AnnotationSupport.findAnnotatedFieldValues(
-                context.getRequiredTestInstance(),
-                TestContainerExtension.class,
-                ContainerExtendedFactory.class);
-        checkAtMostOneAnnotationField(containerExtendedFactories, TestContainerExtension.class);
-        ContainerExtendedFactory containerExtendedFactory = container -> {};
-        if (!containerExtendedFactories.isEmpty()) {
-            containerExtendedFactory = containerExtendedFactories.get(0);
-        }
-        context.getStore(TEST_RESOURCE_NAMESPACE)
-            .put(TEST_EXTENDED_FACTORY_STORE_KEY, containerExtendedFactory);
-
-        List<TestContainersFactory> containersFactories = AnnotationSupport.findAnnotatedFieldValues(
-            context.getRequiredTestInstance(),
-            TestContainers.class,
-            TestContainersFactory.class);
-
-        checkExactlyOneAnnotatedField(containersFactories, TestContainers.class);
-        List<TestContainer> testContainers = containersFactories.get(0).create();
-        context.getStore(TEST_RESOURCE_NAMESPACE)
-            .put(TEST_CONTAINERS_STORE_KEY, testContainers);
-    }
-
-    @Override
-    public void afterAll(ExtensionContext context) throws Exception {
-        context.getStore(TEST_RESOURCE_NAMESPACE).remove(TEST_CONTAINERS_STORE_KEY);
-    }
-
-    private void checkExactlyOneAnnotatedField(
-        Collection<?> fields, Class<? extends Annotation> annotation) {
-        checkAtMostOneAnnotationField(fields, annotation);
-        checkAtLeastOneAnnotationField(fields, annotation);
-    }
-
-    private void checkAtLeastOneAnnotationField(
-        Collection<?> fields, Class<? extends Annotation> annotation) {
-        if (fields.isEmpty()) {
-            throw new IllegalStateException(
-                String.format(
-                    "No fields are annotated with '@%s'", annotation.getSimpleName()));
-        }
-    }
-
-    private void checkAtMostOneAnnotationField(
-        Collection<?> fields, Class<? extends Annotation> annotation) {
-        if (fields.size() > 1) {
-            throw new IllegalStateException(
-                String.format(
-                    "Multiple fields are annotated with '@%s'",
-                    annotation.getSimpleName()));
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestCaseInvocationContextProvider.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestCaseInvocationContextProvider.java
deleted file mode 100644
index 37a1be45f..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestCaseInvocationContextProvider.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.junit;
-
-import static org.apache.seatunnel.e2e.common.junit.ContainerTestingExtension.TEST_CONTAINERS_STORE_KEY;
-import static org.apache.seatunnel.e2e.common.junit.ContainerTestingExtension.TEST_EXTENDED_FACTORY_STORE_KEY;
-import static org.apache.seatunnel.e2e.common.junit.ContainerTestingExtension.TEST_RESOURCE_NAMESPACE;
-
-import org.apache.seatunnel.e2e.common.container.ContainerExtendedFactory;
-import org.apache.seatunnel.e2e.common.container.TestContainer;
-
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import org.junit.jupiter.api.extension.AfterTestExecutionCallback;
-import org.junit.jupiter.api.extension.Extension;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.ParameterContext;
-import org.junit.jupiter.api.extension.ParameterResolutionException;
-import org.junit.jupiter.api.extension.ParameterResolver;
-import org.junit.jupiter.api.extension.TestTemplateInvocationContext;
-import org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Stream;
-
-@Slf4j
-public class TestCaseInvocationContextProvider implements TestTemplateInvocationContextProvider {
-
-    @Override
-    public boolean supportsTestTemplate(ExtensionContext context) {
-        // Only support test cases with TestContainer as parameter
-        Class<?>[] parameterTypes = context.getRequiredTestMethod().getParameterTypes();
-        return parameterTypes.length == 1 && Arrays.stream(parameterTypes)
-            .anyMatch(TestContainer.class::isAssignableFrom);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContexts(ExtensionContext context) {
-        List<TestContainer> testContainers = (List<TestContainer>) context.getStore(TEST_RESOURCE_NAMESPACE)
-            .get(TEST_CONTAINERS_STORE_KEY);
-
-        ContainerExtendedFactory containerExtendedFactory = (ContainerExtendedFactory) context.getStore(TEST_RESOURCE_NAMESPACE)
-            .get(TEST_EXTENDED_FACTORY_STORE_KEY);
-
-        int containerAmount = testContainers.size();
-        return testContainers.stream()
-            .map(testContainer -> new TestResourceProvidingInvocationContext(testContainer, containerExtendedFactory, containerAmount));
-    }
-
-    static class TestResourceProvidingInvocationContext implements TestTemplateInvocationContext {
-        private final TestContainer testContainer;
-        private final ContainerExtendedFactory containerExtendedFactory;
-        private final Integer containerAmount;
-
-        public TestResourceProvidingInvocationContext(
-            TestContainer testContainer,
-            ContainerExtendedFactory containerExtendedFactory,
-            int containerAmount) {
-            this.testContainer = testContainer;
-            this.containerExtendedFactory = containerExtendedFactory;
-            this.containerAmount = containerAmount;
-        }
-
-        @Override
-        public String getDisplayName(int invocationIndex) {
-            return String.format("TestContainer(%s/%s): %s", invocationIndex, containerAmount, testContainer.identifier());
-        }
-
-        @Override
-        public List<Extension> getAdditionalExtensions() {
-            return Arrays.asList(
-                // Extension for injecting parameters
-                new TestContainerResolver(testContainer, containerExtendedFactory),
-                // Extension for closing test container
-                (AfterTestExecutionCallback) ignore -> {
-                    testContainer.tearDown();
-                    log.info("The TestContainer[{}] is closed.", testContainer.identifier());
-                });
-        }
-    }
-
-    private static class TestContainerResolver implements ParameterResolver {
-
-        private final TestContainer testContainer;
-        private final ContainerExtendedFactory containerExtendedFactory;
-
-        private TestContainerResolver(TestContainer testContainer,
-                                      ContainerExtendedFactory containerExtendedFactory) {
-            this.testContainer = testContainer;
-            this.containerExtendedFactory = containerExtendedFactory;
-        }
-
-        @Override
-        public boolean supportsParameter(
-            ParameterContext parameterContext, ExtensionContext extensionContext)
-            throws ParameterResolutionException {
-            return TestContainer.class.isAssignableFrom(parameterContext.getParameter().getType());
-        }
-
-        @SneakyThrows
-        @Override
-        public Object resolveParameter(
-            ParameterContext parameterContext, ExtensionContext extensionContext)
-            throws ParameterResolutionException {
-            testContainer.startUp();
-            testContainer.executeExtraCommands(containerExtendedFactory);
-            log.info("The TestContainer[{}] is running.", testContainer.identifier());
-            return this.testContainer;
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestContainerExtension.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestContainerExtension.java
deleted file mode 100644
index 1b276c276..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestContainerExtension.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.junit;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-
-@Target(ElementType.FIELD)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface TestContainerExtension {
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestContainers.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestContainers.java
deleted file mode 100644
index 9ddbda6a7..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestContainers.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.junit;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Target(ElementType.FIELD)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface TestContainers {
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestLoggerExtension.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestLoggerExtension.java
deleted file mode 100644
index 4abcf2bfd..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/junit/TestLoggerExtension.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.junit;
-
-import org.junit.jupiter.api.extension.BeforeEachCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.TestWatcher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-/**
- * A JUnit-5-style test logger.
- */
-public class TestLoggerExtension implements TestWatcher, BeforeEachCallback {
-    private static final Logger LOG = LoggerFactory.getLogger(TestLoggerExtension.class);
-
-    @Override
-    public void beforeEach(ExtensionContext context) {
-        LOG.info("\n================================================================================"
-                + "\nTest {}.{} is running."
-                + "\n--------------------------------------------------------------------------------",
-            context.getRequiredTestClass().getCanonicalName(),
-            context.getRequiredTestMethod().getName());
-    }
-
-    @Override
-    public void testSuccessful(ExtensionContext context) {
-        LOG.info("\n--------------------------------------------------------------------------------"
-                + "\nTest {}.{} successfully run."
-                + "\n================================================================================",
-            context.getRequiredTestClass().getCanonicalName(),
-            context.getRequiredTestMethod().getName());
-    }
-
-    @Override
-    public void testFailed(ExtensionContext context, Throwable cause) {
-        LOG.error("\n--------------------------------------------------------------------------------"
-                + "\nTest {}.{} failed with:\n{}"
-                + "\n================================================================================",
-            context.getRequiredTestClass().getCanonicalName(),
-            context.getRequiredTestMethod().getName(),
-            exceptionToString(cause));
-    }
-
-    private static String exceptionToString(Throwable t) {
-        if (t == null) {
-            return "(null)";
-        }
-
-        try {
-            StringWriter stm = new StringWriter();
-            PrintWriter wrt = new PrintWriter(stm);
-            t.printStackTrace(wrt);
-            wrt.close();
-            return stm.toString();
-        } catch (Throwable ignored) {
-            return t.getClass().getName() + " (error while printing stack trace)";
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/util/ContainerUtil.java b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/util/ContainerUtil.java
deleted file mode 100644
index 4113ef042..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/util/ContainerUtil.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.common.util;
-
-import org.apache.seatunnel.api.configuration.ReadonlyConfig;
-import org.apache.seatunnel.api.table.factory.FactoryException;
-import org.apache.seatunnel.e2e.common.container.TestContainer;
-
-import org.apache.seatunnel.shade.com.typesafe.config.Config;
-import org.apache.seatunnel.shade.com.typesafe.config.ConfigFactory;
-import org.apache.seatunnel.shade.com.typesafe.config.ConfigResolveOptions;
-
-import lombok.extern.slf4j.Slf4j;
-import org.junit.jupiter.api.Assertions;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.utility.MountableFile;
-
-import java.io.File;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.ServiceConfigurationError;
-import java.util.ServiceLoader;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.stream.Collectors;
-
-@Slf4j
-public final class ContainerUtil {
-
-    public static final String PLUGIN_MAPPING_FILE = "plugin-mapping.properties";
-
-    /**
-     * An error occurs when the user is not a submodule of seatunnel-e2e.
-     */
-    public static final String PROJECT_ROOT_PATH = Paths.get(System.getProperty("user.dir")).getParent().getParent().getParent().toString();
-
-    public static void copyConnectorJarToContainer(GenericContainer<?> container,
-                                                   String confFile,
-                                                   String connectorsRootPath,
-                                                   String connectorPrefix,
-                                                   String connectorType,
-                                                   String seatunnelHome) {
-        Config jobConfig = getConfig(getConfigFile(confFile));
-        Config connectorsMapping = getConfig(new File(PROJECT_ROOT_PATH + File.separator + PLUGIN_MAPPING_FILE));
-        if (!connectorsMapping.hasPath(connectorType) || connectorsMapping.getConfig(connectorType).isEmpty()) {
-            return;
-        }
-        Config connectors = connectorsMapping.getConfig(connectorType);
-        Set<String> connectorNames = getConnectors(jobConfig, connectors, "source");
-        connectorNames.addAll(getConnectors(jobConfig, connectors, "sink"));
-        File module = new File(PROJECT_ROOT_PATH + File.separator + connectorsRootPath);
-
-        List<File> connectorFiles = getConnectorFiles(module, connectorNames, connectorPrefix);
-        connectorFiles.forEach(jar ->
-            container.copyFileToContainer(
-                MountableFile.forHostPath(jar.getAbsolutePath()),
-                Paths.get(Paths.get(seatunnelHome, "connectors").toString(), connectorType, jar.getName()).toString()));
-    }
-
-    public static String copyConfigFileToContainer(GenericContainer<?> container, String confFile) {
-        final String targetConfInContainer = Paths.get("/tmp", confFile).toString();
-        container.copyFileToContainer(MountableFile.forHostPath(getConfigFile(confFile).getAbsolutePath()), targetConfInContainer);
-        return targetConfInContainer;
-    }
-
-    public static void copySeaTunnelStarter(GenericContainer<?> container,
-                                            String startModuleName,
-                                            String startModulePath,
-                                            String seatunnelHomeInContainer,
-                                            String startShellName) {
-        final String startJarName = startModuleName + ".jar";
-        // copy lib
-        final String startJarPath = startModulePath + File.separator + "target" + File.separator + startJarName;
-        checkPathExist(startJarPath);
-        container.copyFileToContainer(
-            MountableFile.forHostPath(startJarPath),
-            Paths.get(Paths.get(seatunnelHomeInContainer, "lib").toString(), startJarName).toString());
-
-        // copy bin
-        final String startBinPath = startModulePath + File.separator + "src/main/bin/" + startShellName;
-        checkPathExist(startBinPath);
-        container.copyFileToContainer(
-            MountableFile.forHostPath(startBinPath),
-            Paths.get(Paths.get(seatunnelHomeInContainer, "bin").toString(), startShellName).toString());
-
-        // copy plugin-mapping.properties
-        container.copyFileToContainer(
-            MountableFile.forHostPath(PROJECT_ROOT_PATH + "/plugin-mapping.properties"),
-            Paths.get(Paths.get(seatunnelHomeInContainer, "connectors").toString(), PLUGIN_MAPPING_FILE).toString());
-    }
-
-    public static String adaptPathForWin(String path) {
-        // Running IT use cases under Windows requires replacing \ with /
-        return path == null ? "" : path.replaceAll("\\\\", "/");
-    }
-
-    private static List<File> getConnectorFiles(File currentModule, Set<String> connectorNames, String connectorPrefix) {
-        List<File> connectorFiles = new ArrayList<>();
-        for (File file : Objects.requireNonNull(currentModule.listFiles())) {
-            getConnectorFiles(file, connectorNames, connectorPrefix, connectorFiles);
-        }
-        return connectorFiles;
-    }
-
-    private static void getConnectorFiles(File currentModule, Set<String> connectorNames, String connectorPrefix, List<File> connectors) {
-        if (currentModule.isFile() || connectorNames.size() == connectors.size()) {
-            return;
-        }
-        if (connectorNames.contains(currentModule.getName())) {
-            File targetPath = new File(currentModule.getAbsolutePath() + File.separator + "target");
-            for (File file : Objects.requireNonNull(targetPath.listFiles())) {
-                if (file.getName().startsWith(currentModule.getName()) && !file.getName().endsWith("javadoc.jar")) {
-                    connectors.add(file);
-                    return;
-                }
-            }
-        }
-
-        if (currentModule.getName().startsWith(connectorPrefix)) {
-            for (File file : Objects.requireNonNull(currentModule.listFiles())) {
-                getConnectorFiles(file, connectorNames, connectorPrefix, connectors);
-            }
-        }
-    }
-
-    private static Set<String> getConnectors(Config jobConfig, Config connectorsMap, String pluginType) {
-        List<? extends Config> connectorConfigList = jobConfig.getConfigList(pluginType);
-        Map<String, String> connectors = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
-        ReadonlyConfig.fromConfig(connectorsMap.getConfig(pluginType)).toMap(connectors);
-        return connectorConfigList.stream()
-            .map(config -> config.getString("plugin_name"))
-            .filter(connectors::containsKey)
-            .map(connectors::get)
-            .collect(Collectors.toSet());
-    }
-
-    public static Path getCurrentModulePath() {
-        return Paths.get(System.getProperty("user.dir"));
-    }
-
-    private static File getConfigFile(String confFile) {
-        File file = new File(getCurrentModulePath() + "/src/test/resources" + confFile);
-        if (file.exists()) {
-            return file;
-        }
-        throw new IllegalArgumentException(confFile + " doesn't exist");
-    }
-
-    private static Config getConfig(File file) {
-        return ConfigFactory
-            .parseFile(file)
-            .resolve(ConfigResolveOptions.defaults().setAllowUnresolved(true))
-            .resolveWith(ConfigFactory.systemProperties(), ConfigResolveOptions.defaults().setAllowUnresolved(true));
-    }
-
-    public static void checkPathExist(String path) {
-        Assertions.assertTrue(new File(path).exists(), path + " must exist");
-    }
-
-    public static List<TestContainer> discoverTestContainers() {
-        try {
-            final List<TestContainer> result = new LinkedList<>();
-            ServiceLoader.load(TestContainer.class, Thread.currentThread().getContextClassLoader())
-                .iterator()
-                .forEachRemaining(result::add);
-            return result;
-        } catch (ServiceConfigurationError e) {
-            log.error("Could not load service provider for containers.", e);
-            throw new FactoryException("Could not load service provider for containers.", e);
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-e2e-common/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-e2e-common/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-e2e-common/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/pom.xml
deleted file mode 100644
index 7db3cb830..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-assert-flink-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-assert</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/assertion/FakeSourceToAssertIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/assertion/FakeSourceToAssertIT.java
deleted file mode 100644
index aefaa0859..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/assertion/FakeSourceToAssertIT.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.assertion;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-public class FakeSourceToAssertIT extends FlinkContainer {
-
-    @Test
-    public void testFakeSourceToAssertSink() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/assertion/fakesource_to_assert.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/resources/assertion/fakesource_to_assert.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/resources/assertion/fakesource_to_assert.conf
deleted file mode 100644
index b2fda476b..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/resources/assertion/fakesource_to_assert.conf
+++ /dev/null
@@ -1,92 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-    FakeSource {
-      result_table_name = "fake"
-      schema = {
-        fields {
-          name = "string"
-          age = "int"
-        }
-      }
-  }
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Fake
-}
-
-transform {
-    sql {
-      sql = "select name,age from fake"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Sql
-}
-
-sink {
-   Assert {
-       rules =
-           [{
-               field_name = name
-               field_type = string
-               field_value = [
-                   {
-                       rule_type = NOT_NULL
-                   },
-                   {
-                       rule_type = MIN_LENGTH
-                       rule_value = 10
-                   },
-                   {
-                        rule_type = MAX_LENGTH
-                        rule_value = 10
-                   }
-               ]
-           },{
-               field_name = age
-               field_type = int
-               field_value = [
-                   {
-                       rule_type = NOT_NULL
-                   },
-                   {
-                       rule_type = MIN
-                       rule_value = 32767
-                   },
-                   {
-                        rule_type = MAX
-                        rule_value = 2147483647
-                   }
-               ]
-           }
-           ]
-   }
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/sink/Assert
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/pom.xml
deleted file mode 100644
index 79dc07e22..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-datahub-flink-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-datahub</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/datahub/FakeSourceToDatahubIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/datahub/FakeSourceToDatahubIT.java
deleted file mode 100644
index 4ee66c96b..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/datahub/FakeSourceToDatahubIT.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.datahub;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-@Disabled("Disabled because it needs user's personal datahub account to run this test")
-public class FakeSourceToDatahubIT extends FlinkContainer {
-
-    @Test
-    public void testFakeSourceToDatahub() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/datahub/fakesource_to_datahub.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/resources/datahub/fakesource_to_datahub.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/resources/datahub/fakesource_to_datahub.conf
deleted file mode 100644
index 87eb52fdf..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/resources/datahub/fakesource_to_datahub.conf
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-  FakeSource {
-    result_table_name = "fake"
-    schema = {
-      fields {
-        name = "string"
-        age = "int"
-      }
-    }
-  }
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-    sql {
-      sql = "select name,age from fake"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/transform/sql
-}
-
-sink {
-  DataHub {
-      endpoint="xxx"
-      accessId="xxx"
-      accessKey="xxx"
-      project="xxx"
-      topic="xxx"
-      timeout=3000
-      retryTimes=3
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/sink
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/pom.xml
deleted file mode 100644
index ffb3d91b2..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-fake-flink-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-console</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/fake/FakeSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/fake/FakeSourceToConsoleIT.java
deleted file mode 100644
index e14919fde..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/fake/FakeSourceToConsoleIT.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.fake;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-public class FakeSourceToConsoleIT extends FlinkContainer {
-
-    @Test
-    public void testFakeSourceToConsoleSink() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/fake/fakesource_to_console.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/resources/fake/fakesource_to_console.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/resources/fake/fakesource_to_console.conf
deleted file mode 100644
index d9eb0ff86..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/resources/fake/fakesource_to_console.conf
+++ /dev/null
@@ -1,58 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-  FakeSource {
-    result_table_name = "fake"
-    schema = {
-      fields {
-        name = "string"
-        age = "int"
-      }
-    }
-  }
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-    sql {
-      sql = "select name,age from fake"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/transform/sql
-}
-
-sink {
-  Console {}
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/category/sink-v2
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/pom.xml
deleted file mode 100644
index df018a71c..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/pom.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-file-flink-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-file-local</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-file-hadoop</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/file/FakeSourceToFileIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/file/FakeSourceToFileIT.java
deleted file mode 100644
index d6bfdefc5..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/file/FakeSourceToFileIT.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.file;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-public class FakeSourceToFileIT extends FlinkContainer {
-
-    /**
-     * fake source -> local text file sink
-     */
-    @Test
-    public void testFakeSourceToLocalFileText() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/file/fakesource_to_local_text.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-
-    /**
-     *  fake source -> local parquet file sink
-     */
-    @Test
-    public void testFakeSourceToLocalFileParquet() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/file/fakesource_to_local_parquet.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-
-    /**
-     *  fake source -> local json file sink
-     */
-    @Test
-    public void testFakeSourceToLocalFileJson() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/file/fakesource_to_local_json.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_json.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_json.conf
deleted file mode 100644
index c118c33c8..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_json.conf
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  FakeSource {
-    result_table_name = "fake"
-    schema = {
-      fields {
-        name = "string"
-        age = "int"
-      }
-    }
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-  sql {
-    sql = "select name,age from fake"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Sql
-}
-
-sink {
-  LocalFile {
-    path="/tmp/hive/warehouse/test2"
-    row_delimiter="\n"
-    partition_by=["age"]
-    partition_dir_expression="${k0}=${v0}"
-    is_partition_field_write_in_file=true
-    file_name_expression="${transactionId}_${now}"
-    file_format="json"
-    sink_columns=["name","age"]
-    filename_time_format="yyyy.MM.dd"
-    is_enable_transaction=true
-    save_mode="error"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/sink/LocalFile
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_parquet.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_parquet.conf
deleted file mode 100644
index c02c16145..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_parquet.conf
+++ /dev/null
@@ -1,71 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  FakeSource {
-    result_table_name = "fake"
-    schema = {
-      fields {
-        name = "string"
-        age = "int"
-      }
-    }
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-  sql {
-    sql = "select name,age from fake"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/transform/sql
-}
-
-sink {
-  LocalFile {
-    path="/tmp/hive/warehouse/test2"
-    field_delimiter="\t"
-    row_delimiter="\n"
-    partition_by=["age"]
-    partition_dir_expression="${k0}=${v0}"
-    is_partition_field_write_in_file=true
-    file_name_expression="${transactionId}_${now}"
-    file_format="parquet"
-    sink_columns=["name","age"]
-    filename_time_format="yyyy.MM.dd"
-    is_enable_transaction=true
-    save_mode="error"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/sink/LocalFile
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_text.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_text.conf
deleted file mode 100644
index 7d1a5d42c..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_text.conf
+++ /dev/null
@@ -1,71 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  FakeSource {
-    result_table_name = "fake"
-    schema = {
-      fields {
-        name = "string"
-        age = "int"
-      }
-    }
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-  sql {
-    sql = "select name,age from fake"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/transform/sql
-}
-
-sink {
-  LocalFile {
-    path="/tmp/hive/warehouse/test2"
-    field_delimiter="\t"
-    row_delimiter="\n"
-    partition_by=["age"]
-    partition_dir_expression="${k0}=${v0}"
-    is_partition_field_write_in_file=true
-    file_name_expression="${transactionId}_${now}"
-    file_format="text"
-    sink_columns=["name","age"]
-    filename_time_format="yyyy.MM.dd"
-    is_enable_transaction=true
-    save_mode="error"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/sink/LocalFile
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/pom.xml
deleted file mode 100644
index d2f48c420..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/pom.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-flink-e2e-base</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-e2e-common</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>${maven-jar-plugin.version}</version>
-                <configuration>
-                    <skip>false</skip>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
deleted file mode 100644
index d1c9e8640..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink;
-
-import org.apache.seatunnel.e2e.common.AbstractFlinkContainer;
-
-/**
- * This class is the base class of FlinkEnvironment test for new seatunnel connector API.
- * The before method will create a Flink cluster, and after method will close the Flink cluster.
- * You can use {@link FlinkContainer#executeSeaTunnelFlinkJob} to submit a seatunnel config and run a seatunnel job.
- */
-public abstract class FlinkContainer extends AbstractFlinkContainer {
-
-    @Override
-    public String identifier() {
-        return "connector-v2/flink:1.13.6";
-    }
-
-    @Override
-    protected String getDockerImage() {
-        return "tyrantlucifer/flink:1.13.6-scala_2.11_hadoop27";
-    }
-
-    @Override
-    protected String getStartModuleName() {
-        return "seatunnel-flink-starter";
-    }
-
-    @Override
-    protected String getStartShellName() {
-        return "start-seatunnel-flink-connector-v2.sh";
-    }
-
-    @Override
-    protected String getConnectorType() {
-        return "seatunnel";
-    }
-
-    @Override
-    protected String getConnectorModulePath() {
-        return "seatunnel-connectors-v2";
-    }
-
-    @Override
-    protected String getConnectorNamePrefix() {
-        return "connector-";
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/pom.xml
deleted file mode 100644
index fc016ed71..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/pom.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-iceberg-flink-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-iceberg</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iceberg/IcebergSourceIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iceberg/IcebergSourceIT.java
deleted file mode 100644
index c67f3a5a3..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iceberg/IcebergSourceIT.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.iceberg;
-
-import org.apache.seatunnel.connectors.seatunnel.iceberg.IcebergCatalogFactory;
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.iceberg.DataFile;
-import org.apache.iceberg.DataFiles;
-import org.apache.iceberg.FileFormat;
-import org.apache.iceberg.Files;
-import org.apache.iceberg.PartitionSpec;
-import org.apache.iceberg.Schema;
-import org.apache.iceberg.Table;
-import org.apache.iceberg.catalog.Catalog;
-import org.apache.iceberg.catalog.Namespace;
-import org.apache.iceberg.catalog.TableIdentifier;
-import org.apache.iceberg.data.GenericAppenderFactory;
-import org.apache.iceberg.data.GenericRecord;
-import org.apache.iceberg.data.Record;
-import org.apache.iceberg.hadoop.HadoopInputFile;
-import org.apache.iceberg.io.FileAppender;
-import org.apache.iceberg.io.FileAppenderFactory;
-import org.apache.iceberg.types.Types;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-import org.testcontainers.utility.MountableFile;
-
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.nio.ByteBuffer;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.time.OffsetDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-@Slf4j
-public class IcebergSourceIT extends FlinkContainer {
-
-    private static final TableIdentifier TABLE = TableIdentifier.of(
-        Namespace.of("database1"), "source");
-    private static final Schema SCHEMA = new Schema(
-        Types.NestedField.optional(1, "f1", Types.LongType.get()),
-        Types.NestedField.optional(2, "f2", Types.BooleanType.get()),
-        Types.NestedField.optional(3, "f3", Types.IntegerType.get()),
-        Types.NestedField.optional(4, "f4", Types.LongType.get()),
-        Types.NestedField.optional(5, "f5", Types.FloatType.get()),
-        Types.NestedField.optional(6, "f6", Types.DoubleType.get()),
-        Types.NestedField.optional(7, "f7", Types.DateType.get()),
-        Types.NestedField.optional(8, "f8", Types.TimeType.get()),
-        Types.NestedField.optional(9, "f9", Types.TimestampType.withZone()),
-        Types.NestedField.optional(10, "f10", Types.TimestampType.withoutZone()),
-        Types.NestedField.optional(11, "f11", Types.StringType.get()),
-        Types.NestedField.optional(12, "f12", Types.FixedType.ofLength(10)),
-        Types.NestedField.optional(13, "f13", Types.BinaryType.get()),
-        Types.NestedField.optional(14, "f14", Types.DecimalType.of(19, 9)),
-        Types.NestedField.optional(15, "f15", Types.ListType.ofOptional(
-            100, Types.IntegerType.get())),
-        Types.NestedField.optional(16, "f16", Types.MapType.ofOptional(
-            200, 300, Types.StringType.get(), Types.IntegerType.get())),
-        Types.NestedField.optional(17, "f17", Types.StructType.of(
-            Types.NestedField.required(400, "f17_a", Types.StringType.get())))
-    );
-
-    private static final String CATALOG_NAME = "seatunnel";
-    private static final String CATALOG_TYPE = "hadoop";
-    private static final String CATALOG_DIR = "/tmp/seatunnel/iceberg/flink/";
-    private static final String WAREHOUSE = "file://" + CATALOG_DIR;
-    private static Catalog CATALOG;
-
-    @BeforeEach
-    public void start() {
-        initializeIcebergTable();
-        batchInsertData();
-        MountableFile catalogPath = MountableFile.forHostPath(CATALOG_DIR);
-        jobManager.copyFileToContainer(catalogPath, CATALOG_DIR);
-        taskManager.copyFileToContainer(catalogPath, CATALOG_DIR);
-    }
-
-    @Test
-    public void testIcebergSource() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/iceberg/iceberg_source.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-
-    private void initializeIcebergTable() {
-        CATALOG = new IcebergCatalogFactory(CATALOG_NAME,
-            CATALOG_TYPE,
-            WAREHOUSE,
-            null)
-            .create();
-        if (!CATALOG.tableExists(TABLE)) {
-            CATALOG.createTable(TABLE, SCHEMA);
-        }
-    }
-
-    private void batchInsertData() {
-        GenericRecord record = GenericRecord.create(SCHEMA);
-        record.setField("f1", Long.valueOf(0));
-        record.setField("f2", true);
-        record.setField("f3", Integer.MAX_VALUE);
-        record.setField("f4", Long.MAX_VALUE);
-        record.setField("f5", Float.MAX_VALUE);
-        record.setField("f6", Double.MAX_VALUE);
-        record.setField("f7", LocalDate.now());
-        record.setField("f8", LocalTime.now());
-        record.setField("f9", OffsetDateTime.now());
-        record.setField("f10", LocalDateTime.now());
-        record.setField("f11", "test");
-        record.setField("f12", "abcdefghij".getBytes());
-        record.setField("f13", ByteBuffer.wrap("test".getBytes()));
-        record.setField("f14", new BigDecimal("1000000000.000000001"));
-        record.setField("f15", Arrays.asList(Integer.MAX_VALUE));
-        record.setField("f16", Collections.singletonMap("key", Integer.MAX_VALUE));
-        Record structRecord = GenericRecord.create(SCHEMA.findField("f17").type().asStructType());
-        structRecord.setField("f17_a", "test");
-        record.setField("f17", structRecord);
-
-        Table table = CATALOG.loadTable(TABLE);
-        FileAppenderFactory appenderFactory = new GenericAppenderFactory(SCHEMA);
-        List<Record> records = new ArrayList<>();
-        for (int i = 0; i < 100; i++) {
-            records.add(record.copy("f1", Long.valueOf(i)));
-            if (i % 10 == 0) {
-                String externalFilePath = String.format(CATALOG_DIR + "external_file/datafile_%s.avro", i);
-                FileAppender<Record> fileAppender = appenderFactory.newAppender(
-                    Files.localOutput(externalFilePath), FileFormat.fromFileName(externalFilePath));
-                try (FileAppender<Record> fileAppenderCloseable = fileAppender) {
-                    fileAppenderCloseable.addAll(records);
-                    records.clear();
-                } catch (IOException e) {
-                    throw new RuntimeException(e);
-                }
-                DataFile datafile = DataFiles.builder(PartitionSpec.unpartitioned())
-                    .withInputFile(HadoopInputFile.fromLocation(externalFilePath, new Configuration()))
-                    .withMetrics(fileAppender.metrics())
-                    .build();
-                table.newAppend().appendFile(datafile).commit();
-            }
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/src/test/resources/iceberg/iceberg_source.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/src/test/resources/iceberg/iceberg_source.conf
deleted file mode 100644
index 23a587910..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/src/test/resources/iceberg/iceberg_source.conf
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-    execution.parallelism = 2
-    job.mode = "BATCH"
-    execution.checkpoint.interval = 10
-}
-
-source {
-    Iceberg {
-        fields {
-            f2 = "boolean"
-            f1 = "bigint"
-            f3 = "int"
-            f4 = "bigint"
-            f5 = "float"
-            f6 = "double"
-            f7 = "date"
-            f8 = "time"
-            f9 = "timestamp"
-            f10 = "timestamp"
-            f11 = "string"
-            f12 = "bytes"
-            f13 = "bytes"
-            f14 = "decimal(19,9)"
-            f15 = "array<int>"
-            f16 = "map<string, int>"
-        }
-        catalog_name = "seatunnel"
-        catalog_type = "hadoop"
-        warehouse = "file:///tmp/seatunnel/iceberg/flink/"
-        namespace = "database1"
-        table = "source"
-    }
-}
-
-transform {
-}
-
-sink {
-    Console {
-    }
-    Assert {
-        rules = [
-            {
-                field_name = f1
-                field_type = long
-                field_value = [
-                    {
-                        rule_type = NOT_NULL
-                    },
-                    {
-                        rule_type = MIN
-                        rule_value = 0
-                    },
-                    {
-                        rule_type = MAX
-                        rule_value = 99
-                    }
-                ]
-           }
-        ]
-   }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iceberg-flink-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/pom.xml
deleted file mode 100644
index 975febb37..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-iotdb-flink-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-iotdb</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iotdb/FakeSourceToIoTDBIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iotdb/FakeSourceToIoTDBIT.java
deleted file mode 100644
index 704d23228..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iotdb/FakeSourceToIoTDBIT.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.iotdb;
-
-import static org.awaitility.Awaitility.given;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import com.google.common.collect.Lists;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.iotdb.session.Session;
-import org.apache.iotdb.session.SessionDataSet;
-import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
-import org.apache.iotdb.tsfile.read.common.Field;
-import org.apache.iotdb.tsfile.read.common.RowRecord;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Stream;
-
-@Slf4j
-public class FakeSourceToIoTDBIT extends FlinkContainer {
-
-    private static final String IOTDB_DOCKER_IMAGE = "apache/iotdb:0.13.1-node";
-    private static final String IOTDB_HOST = "flink_e2e_iotdb_sink";
-    private static final int IOTDB_PORT = 6667;
-    private static final String IOTDB_USERNAME = "root";
-    private static final String IOTDB_PASSWORD = "root";
-
-    private GenericContainer<?> iotdbServer;
-    private Session session;
-
-    @BeforeEach
-    public void startIoTDBContainer() throws Exception {
-        iotdbServer = new GenericContainer<>(IOTDB_DOCKER_IMAGE)
-                .withNetwork(NETWORK)
-                .withNetworkAliases(IOTDB_HOST)
-                .withLogConsumer(new Slf4jLogConsumer(log));
-        iotdbServer.setPortBindings(Lists.newArrayList(
-                String.format("%s:6667", IOTDB_PORT)));
-        Startables.deepStart(Stream.of(iotdbServer)).join();
-        log.info("IoTDB container started");
-        // wait for IoTDB fully start
-        session = createSession();
-        given().ignoreExceptions()
-            .await()
-            .atLeast(100, TimeUnit.MILLISECONDS)
-            .pollInterval(500, TimeUnit.MILLISECONDS)
-            .atMost(30, TimeUnit.SECONDS)
-            .untilAsserted(() -> session.open());
-        initIoTDBTimeseries();
-    }
-
-    /**
-     * fake source -> IoTDB sink
-     */
-    @Test
-    public void testFakeSourceToIoTDB() throws Exception {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/iotdb/fakesource_to_iotdb.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-
-        // query result
-        SessionDataSet dataSet = session.executeQueryStatement("select status, value from root.ln.d1");
-        List<Object> actual = new ArrayList<>();
-        while (dataSet.hasNext()) {
-            RowRecord row = dataSet.next();
-            List<Field> fields = row.getFields();
-            Field status = fields.get(0);
-            Field val = fields.get(1);
-            actual.add(Arrays.asList(status.getBoolV(), val.getLongV()));
-        }
-        List<Object> expected = Arrays.asList(
-                Arrays.asList(Boolean.TRUE, Long.valueOf(1001)),
-                Arrays.asList(Boolean.FALSE, Long.valueOf(1002)));
-        Assertions.assertIterableEquals(expected, actual);
-    }
-
-    private Session createSession() {
-        return new Session.Builder()
-                .host("localhost")
-                .port(IOTDB_PORT)
-                .username(IOTDB_USERNAME)
-                .password(IOTDB_PASSWORD)
-                .build();
-    }
-
-    private void initIoTDBTimeseries() throws Exception {
-        session.setStorageGroup("root.ln");
-        session.createTimeseries("root.ln.d1.status",
-                TSDataType.BOOLEAN, TSEncoding.PLAIN, CompressionType.SNAPPY);
-        session.createTimeseries("root.ln.d1.value",
-                TSDataType.INT64, TSEncoding.PLAIN, CompressionType.SNAPPY);
-    }
-
-    @AfterEach
-    public void closeIoTDBContainer() {
-        if (iotdbServer != null) {
-            iotdbServer.stop();
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/resources/iotdb/fakesource_to_iotdb.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/resources/iotdb/fakesource_to_iotdb.conf
deleted file mode 100644
index 4c5e0fe4e..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/resources/iotdb/fakesource_to_iotdb.conf
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-    # You can set flink configuration here
-    execution.parallelism = 1
-    job.mode = "BATCH"
-    #execution.checkpoint.interval = 10000
-    #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-    FakeSource {
-        result_table_name = "fake"
-        schema = {
-            fields {
-                name = "string"
-                age = "int"
-            }
-        }
-    }
-    # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-    # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-
-transform {
-    sql {
-        sql = "select * from (values('root.ln.d1', '1660147200000', 'status,value', 'true,1001'), ('root.ln.d1', '1660233600000', 'status,value', 'false,1002')) t (device, `timestamp`, measurements, `values`)"
-    }
-
-    # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-    # please go to https://seatunnel.apache.org/docs/transform/sql
-}
-
-sink {
-    IoTDB {
-        node_urls = ["flink_e2e_iotdb_sink:6667"]
-        username = "root"
-        password = "root"
-        batch_size = 1
-        batch_interval_ms = 10
-    }
-
-    # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-    # please go to https://seatunnel.apache.org/docs/connector-v2/sink/IoTDB
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/pom.xml
deleted file mode 100644
index 3cf6f5d77..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/pom.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-jdbc-flink-e2e</artifactId>
-
-    <properties>
-        <testcontainers.version>1.17.3</testcontainers.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-console</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-jdbc</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- jdbc drivers -->
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>postgresql</artifactId>
-            <version>${testcontainers.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>mysql</artifactId>
-            <version>${testcontainers.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <version>${mysql.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
-            <version>${postgresql.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.dameng</groupId>
-            <artifactId>DmJdbcDriver18</artifactId>
-            <version>${dm-jdbc.version}</version>
-        </dependency>
-    </dependencies>
-
-</project>
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/FakeSourceToJdbcIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/FakeSourceToJdbcIT.java
deleted file mode 100644
index 792496a4e..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/FakeSourceToJdbcIT.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.jdbc;
-
-import static org.awaitility.Awaitility.given;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import com.google.common.collect.Lists;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.PostgreSQLContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-import org.testcontainers.utility.DockerImageName;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Stream;
-
-public class FakeSourceToJdbcIT extends FlinkContainer {
-    private static final Logger LOGGER = LoggerFactory.getLogger(FakeSourceToJdbcIT.class);
-    private PostgreSQLContainer<?> psl;
-    private static final String THIRD_PARTY_PLUGINS_URL = "https://repo1.maven.org/maven2/org/postgresql/postgresql/42.3.3/postgresql-42.3.3.jar";
-
-    @SuppressWarnings("checkstyle:MagicNumber")
-    @BeforeEach
-    public void startPostgreSqlContainer() throws InterruptedException, ClassNotFoundException, SQLException {
-        psl = new PostgreSQLContainer<>(DockerImageName.parse("postgres:alpine3.16"))
-            .withNetwork(NETWORK)
-            .withNetworkAliases("postgresql")
-            .withLogConsumer(new Slf4jLogConsumer(LOGGER));
-        Startables.deepStart(Stream.of(psl)).join();
-        LOGGER.info("PostgreSql container started");
-        Class.forName(psl.getDriverClassName());
-        given().ignoreExceptions()
-            .await()
-            .atLeast(100, TimeUnit.MILLISECONDS)
-            .pollInterval(500, TimeUnit.MILLISECONDS)
-            .atMost(5, TimeUnit.SECONDS)
-            .untilAsserted(() -> initializeJdbcTable());
-    }
-
-    private void initializeJdbcTable() {
-        try (Connection connection = DriverManager.getConnection(psl.getJdbcUrl(), psl.getUsername(), psl.getPassword())) {
-            Statement statement = connection.createStatement();
-            String sql = "CREATE TABLE test (\n" +
-                "  name varchar(255) NOT NULL\n" +
-                ")";
-            statement.execute(sql);
-        } catch (SQLException e) {
-            throw new RuntimeException("Initializing PostgreSql table failed!", e);
-        }
-    }
-
-    @Test
-    public void testFakeSourceToJdbcSink() throws SQLException, IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/fakesource_to_jdbc.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-        // query result
-        String sql = "select * from test";
-        try (Connection connection = DriverManager.getConnection(psl.getJdbcUrl(), psl.getUsername(), psl.getPassword())) {
-            Statement statement = connection.createStatement();
-            ResultSet resultSet = statement.executeQuery(sql);
-            List<String> result = Lists.newArrayList();
-            while (resultSet.next()) {
-                result.add(resultSet.getString("name"));
-            }
-            Assertions.assertFalse(result.isEmpty());
-        }
-    }
-
-    @AfterEach
-    public void closePostgreSqlContainer() {
-        if (psl != null) {
-            psl.stop();
-        }
-    }
-
-    @Override
-    protected void executeExtraCommands(GenericContainer<?> container) throws IOException, InterruptedException {
-        Container.ExecResult extraCommands = container.execInContainer("bash", "-c", "mkdir -p /tmp/seatunnel/plugins/Jdbc/lib && cd /tmp/seatunnel/plugins/Jdbc/lib && curl -O " + THIRD_PARTY_PLUGINS_URL);
-        Assertions.assertEquals(0, extraCommands.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcDmdbIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcDmdbIT.java
deleted file mode 100644
index 67969ae81..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcDmdbIT.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.jdbc;
-
-import static org.awaitility.Awaitility.given;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import com.google.common.collect.Lists;
-import com.typesafe.config.Config;
-import com.typesafe.config.ConfigFactory;
-import lombok.extern.slf4j.Slf4j;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-
-import java.io.File;
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Stream;
-
-@Slf4j
-public class JdbcDmdbIT extends FlinkContainer {
-
-    private static final String DOCKER_IMAGE = "laglangyue/dmdb8";
-    private static final String DRIVER_CLASS = "dm.jdbc.driver.DmDriver";
-    private static final String HOST = "flink_e2e_dmdb";
-    private static final String URL = "jdbc:dm://%s:5236";
-    private static final String USERNAME = "SYSDBA";
-    private static final String PASSWORD = "SYSDBA";
-    private static final String DATABASE = "SYSDBA";
-    private static final String SOURCE_TABLE = "e2e_table_source";
-    private static final String SINK_TABLE = "e2e_table_sink";
-    private Connection jdbcConnection;
-    private GenericContainer<?> dbServer;
-
-    @BeforeEach
-    public void startDmdbContainer() throws ClassNotFoundException, SQLException {
-        dbServer = new GenericContainer<>(DOCKER_IMAGE)
-            .withNetwork(NETWORK)
-            .withNetworkAliases(HOST)
-            .withLogConsumer(new Slf4jLogConsumer(log));
-        dbServer.setPortBindings(Lists.newArrayList(
-            String.format("%s:%s", 5236, 5236)));
-        Startables.deepStart(Stream.of(dbServer)).join();
-        log.info("Dmdb container started");
-        // wait for Dmdb fully start
-        Class.forName(DRIVER_CLASS);
-        given().ignoreExceptions()
-            .await()
-            .atMost(180, TimeUnit.SECONDS)
-            .untilAsserted(this::initializeJdbcConnection);
-        initializeJdbcTable();
-    }
-
-    private void initializeJdbcConnection() throws SQLException {
-        jdbcConnection = DriverManager.getConnection(String.format(
-            URL, dbServer.getHost()), USERNAME, PASSWORD);
-    }
-
-    /**
-     * init the table for DM_SERVER, DDL and DML for source and sink
-     */
-    private void initializeJdbcTable() {
-        java.net.URL resource = FlinkContainer.class.getResource("/jdbc/init_sql/dm_init.conf");
-        if (resource == null) {
-            throw new IllegalArgumentException("can't find find file");
-        }
-        String file = resource.getFile();
-        Config config = ConfigFactory.parseFile(new File(file));
-        assert config.hasPath("dm_table_source") && config.hasPath("DML") && config.hasPath("dm_table_sink");
-        try (Statement statement = jdbcConnection.createStatement()) {
-            // source
-            String sourceTableDDL = config.getString("dm_table_source");
-            statement.execute(sourceTableDDL);
-            String insertSQL = config.getString("DML");
-            statement.execute(insertSQL);
-            // sink
-            String sinkTableDDL = config.getString("dm_table_sink");
-            statement.execute(sinkTableDDL);
-        } catch (SQLException e) {
-            throw new RuntimeException("Initializing table failed!", e);
-        }
-    }
-
-    private void assertHasData(String table) {
-        try (Statement statement = jdbcConnection.createStatement();) {
-            String sql = String.format("select * from %s.%s limit 1", DATABASE, table);
-            ResultSet source = statement.executeQuery(sql);
-            Assertions.assertTrue(source.next());
-        } catch (SQLException e) {
-            throw new RuntimeException("test dm server image error", e);
-        }
-    }
-
-    @AfterEach
-    public void closeDmdbContainer() throws SQLException {
-        if (jdbcConnection != null) {
-            jdbcConnection.close();
-        }
-        if (dbServer != null) {
-            dbServer.close();
-        }
-    }
-
-    @Test
-    @DisplayName("JDBC-DM container can be pull")
-    public void testDMDBImage() {
-        assertHasData(SOURCE_TABLE);
-    }
-
-    @Test
-    @DisplayName("flink JDBC-DM test")
-    public void testJdbcDmdbSourceAndSink() throws IOException, InterruptedException, SQLException {
-        assertHasData(SOURCE_TABLE);
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_dm_source_and_sink.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-        assertHasData(SINK_TABLE);
-    }
-
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcGreenplumIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcGreenplumIT.java
deleted file mode 100644
index 9446f5ce5..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcGreenplumIT.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.jdbc;
-
-import static org.awaitility.Awaitility.given;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import com.google.common.collect.Lists;
-import lombok.extern.slf4j.Slf4j;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Stream;
-
-@Slf4j
-public class JdbcGreenplumIT extends FlinkContainer {
-
-    private static final String GREENPLUM_IMAGE = "datagrip/greenplum:6.8";
-    private static final String GREENPLUM_CONTAINER_HOST = "flink_e2e_greenplum";
-    private static final int GREENPLUM_CONTAINER_PORT = 5432;
-    private static final int GREENPLUM_PORT = 5435;
-    private static final String GREENPLUM_USER = "tester";
-    private static final String GREENPLUM_PASSWORD = "pivotal";
-    private static final String GREENPLUM_DRIVER = "org.postgresql.Driver";
-    private static final String GREENPLUM_JDBC_URL = "jdbc:postgresql://%s:%s/testdb";
-    private static final List<List> TEST_DATASET = generateTestDataset();
-    private static final String THIRD_PARTY_PLUGINS_URL = "https://repo1.maven.org/maven2/org/postgresql/postgresql/42.3.3/postgresql-42.3.3.jar";
-
-    private GenericContainer<?> greenplumServer;
-    private Connection jdbcConnection;
-
-    @BeforeEach
-    public void startGreenplumContainer() throws ClassNotFoundException, SQLException {
-        greenplumServer = new GenericContainer<>(GREENPLUM_IMAGE)
-            .withNetwork(NETWORK)
-            .withNetworkAliases(GREENPLUM_CONTAINER_HOST)
-            .withLogConsumer(new Slf4jLogConsumer(log));
-        greenplumServer.setPortBindings(Lists.newArrayList(
-            String.format("%s:%s", GREENPLUM_PORT, GREENPLUM_CONTAINER_PORT)));
-        Startables.deepStart(Stream.of(greenplumServer)).join();
-        log.info("Greenplum container started");
-        // wait for Greenplum fully start
-        Class.forName(GREENPLUM_DRIVER);
-        given().ignoreExceptions()
-            .await()
-            .atLeast(100, TimeUnit.MILLISECONDS)
-            .pollInterval(500, TimeUnit.MILLISECONDS)
-            .atMost(180, TimeUnit.SECONDS)
-            .untilAsserted(() -> initializeJdbcConnection());
-        initializeJdbcTable();
-        batchInsertData();
-    }
-
-    @Test
-    public void testJdbcGreenplumSourceAndSink() throws IOException, InterruptedException, SQLException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_greenplum_source_and_sink.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-
-        // query result
-        String sql = "select age, name from sink order by age asc";
-        List<List> result = new ArrayList<>();
-        try (Statement statement = jdbcConnection.createStatement()) {
-            ResultSet resultSet = statement.executeQuery(sql);
-            while (resultSet.next()) {
-                result.add(Arrays.asList(
-                    resultSet.getInt(1),
-                    resultSet.getString(2)));
-            }
-        }
-        Assertions.assertIterableEquals(TEST_DATASET, result);
-    }
-
-    private void initializeJdbcConnection() throws SQLException {
-        jdbcConnection = DriverManager.getConnection(String.format(
-                GREENPLUM_JDBC_URL, greenplumServer.getHost(), GREENPLUM_PORT),
-            GREENPLUM_USER, GREENPLUM_PASSWORD);
-    }
-
-    private void initializeJdbcTable() throws SQLException {
-        try (Statement statement = jdbcConnection.createStatement()) {
-            String createSource = "CREATE TABLE source (\n" +
-                "age INT NOT NULL,\n" +
-                "name VARCHAR(255) NOT NULL\n" +
-                ")";
-            String createSink = "CREATE TABLE sink (\n" +
-                "age INT NOT NULL,\n" +
-                "name VARCHAR(255) NOT NULL\n" +
-                ")";
-            statement.execute(createSource);
-            statement.execute(createSink);
-        }
-    }
-
-    private static List<List> generateTestDataset() {
-        List<List> rows = new ArrayList<>();
-        for (int i = 1; i <= 100; i++) {
-            rows.add(Arrays.asList(i, String.format("test_%s", i)));
-        }
-        return rows;
-    }
-
-    private void batchInsertData() throws SQLException {
-        String sql = "insert into source(age, name) values(?, ?)";
-
-        try {
-            jdbcConnection.setAutoCommit(false);
-            try (PreparedStatement preparedStatement = jdbcConnection.prepareStatement(sql)) {
-                for (List row : TEST_DATASET) {
-                    preparedStatement.setInt(1, (Integer) row.get(0));
-                    preparedStatement.setString(2, (String) row.get(1));
-                    preparedStatement.addBatch();
-                }
-                preparedStatement.executeBatch();
-            }
-            jdbcConnection.commit();
-        } catch (SQLException e) {
-            jdbcConnection.rollback();
-            throw e;
-        }
-    }
-
-    @AfterEach
-    public void closeGreenplumContainer() throws SQLException {
-        if (jdbcConnection != null) {
-            jdbcConnection.close();
-        }
-    }
-
-    @Override
-    protected void executeExtraCommands(GenericContainer<?> container) throws IOException, InterruptedException {
-        Container.ExecResult extraCommands = container.execInContainer("bash", "-c", "mkdir -p /tmp/seatunnel/plugins/Jdbc/lib && cd /tmp/seatunnel/plugins/Jdbc/lib && curl -O " + THIRD_PARTY_PLUGINS_URL);
-        Assertions.assertEquals(0, extraCommands.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcMysqlIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcMysqlIT.java
deleted file mode 100644
index 572e82ad4..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcMysqlIT.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.jdbc;
-
-import static org.awaitility.Awaitility.given;
-
-import org.apache.seatunnel.common.config.CheckConfigUtil;
-import org.apache.seatunnel.core.starter.config.ConfigBuilder;
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import org.apache.seatunnel.shade.com.typesafe.config.Config;
-
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.MySQLContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-import org.testcontainers.utility.DockerImageName;
-
-import java.nio.file.Paths;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-public class JdbcMysqlIT extends FlinkContainer {
-    private static final Logger LOGGER = LoggerFactory.getLogger(JdbcMysqlIT.class);
-    private MySQLContainer<?> mc;
-    private Config config;
-
-    @SuppressWarnings("checkstyle:MagicNumber")
-    @BeforeEach
-    public void startPostgreSqlContainer() throws Exception {
-        // Non-root users need to grant XA_RECOVER_ADMIN permission on is_exactly_once = "true"
-        mc = new MySQLContainer<>(DockerImageName.parse("mysql:8.0.29"))
-            .withNetwork(NETWORK)
-            .withNetworkAliases("mysql")
-            .withUsername("root")
-            .withLogConsumer(new Slf4jLogConsumer(LOGGER));
-        Startables.deepStart(Stream.of(mc)).join();
-        LOGGER.info("Mysql container started");
-        Class.forName(mc.getDriverClassName());
-        given().ignoreExceptions()
-            .await()
-            .atLeast(100, TimeUnit.MILLISECONDS)
-            .pollInterval(500, TimeUnit.MILLISECONDS)
-            .atMost(5, TimeUnit.SECONDS)
-            .untilAsserted(() -> initializeJdbcTable());
-        batchInsertData();
-    }
-
-    private void initializeJdbcTable() {
-        java.net.URL resource = FlinkContainer.class.getResource("/jdbc/init_sql/mysql_init.conf");
-        if (resource == null) {
-            throw new IllegalArgumentException("can't find find file");
-        }
-
-        config = new ConfigBuilder(Paths.get(resource.getPath())).getConfig();
-
-        CheckConfigUtil.checkAllExists(this.config, "source_table", "sink_table", "type_source_table",
-            "type_sink_table", "insert_type_source_table_sql", "check_type_sink_table_sql");
-
-        try (Connection connection = DriverManager.getConnection(mc.getJdbcUrl(), mc.getUsername(), mc.getPassword())) {
-            Statement statement = connection.createStatement();
-            statement.execute(config.getString("source_table"));
-            statement.execute(config.getString("sink_table"));
-            statement.execute(config.getString("type_source_table"));
-            statement.execute(config.getString("type_sink_table"));
-            statement.execute(config.getString("insert_type_source_table_sql"));
-        } catch (SQLException e) {
-            throw new RuntimeException("Initializing Mysql table failed!", e);
-        }
-    }
-
-    @SuppressWarnings("checkstyle:MagicNumber")
-    private void batchInsertData() {
-        String sql = "insert into source(name, age) values(?,?)";
-        try (Connection connection = DriverManager.getConnection(mc.getJdbcUrl(), mc.getUsername(), mc.getPassword())) {
-            connection.setAutoCommit(false);
-            PreparedStatement preparedStatement = connection.prepareStatement(sql);
-            for (List row : generateTestDataset()) {
-                preparedStatement.setString(1, (String) row.get(0));
-                preparedStatement.setInt(2, (Integer) row.get(1));
-                preparedStatement.addBatch();
-            }
-            preparedStatement.executeBatch();
-            connection.commit();
-        } catch (SQLException e) {
-            throw new RuntimeException("Batch insert data failed!", e);
-        }
-    }
-
-    @Test
-    public void testJdbcMysqlSourceAndSink() throws Exception {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_mysql_source_and_sink.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-
-        Assertions.assertIterableEquals(generateTestDataset(), queryResult());
-    }
-
-    @Test
-    public void testJdbcMysqlSourceAndSinkParallel() throws Exception {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_mysql_source_and_sink_parallel.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-
-        //Sorting is required, because it is read in parallel, so there will be out of order
-        List<List> sortedResult = queryResult().stream().sorted(Comparator.comparing(list -> (Integer) list.get(1)))
-            .collect(Collectors.toList());
-        Assertions.assertIterableEquals(generateTestDataset(), sortedResult);
-    }
-
-    @Test
-    public void testJdbcMysqlSourceAndSinkParallelUpperLower() throws Exception {
-        Container.ExecResult execResult =
-            executeSeaTunnelFlinkJob("/jdbc/jdbc_mysql_source_and_sink_parallel_upper_lower.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-
-        //Sorting is required, because it is read in parallel, so there will be out of order
-        List<List> sortedResult = queryResult().stream().sorted(Comparator.comparing(list -> (Integer) list.get(1)))
-            .collect(Collectors.toList());
-
-        //lower=1 upper=50
-        List<List> limit50 = generateTestDataset().stream().limit(50).collect(Collectors.toList());
-        Assertions.assertIterableEquals(limit50, sortedResult);
-    }
-
-    @Test
-    public void testJdbcMysqlSourceAndSinkXA() throws Exception {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_mysql_source_and_sink_xa.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-
-        Assertions.assertIterableEquals(generateTestDataset(), queryResult());
-    }
-
-    @Test
-    public void testJdbcMysqlSourceAndSinkDataType() throws Exception {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_mysql_source_and_sink_datatype.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-        checkSinkDataTypeTable();
-    }
-
-    private void checkSinkDataTypeTable() throws Exception {
-        try (Connection connection = DriverManager.getConnection(mc.getJdbcUrl(), mc.getUsername(), mc.getPassword())) {
-            Statement statement = connection.createStatement();
-            ResultSet resultSet = statement.executeQuery(config.getString("check_type_sink_table_sql"));
-            resultSet.next();
-            Assertions.assertEquals(resultSet.getInt(1), 2);
-        }
-    }
-
-    private List<List> queryResult() {
-        List<List> result = new ArrayList<>();
-        try (Connection connection = DriverManager.getConnection(mc.getJdbcUrl(), mc.getUsername(), mc.getPassword())) {
-            Statement statement = connection.createStatement();
-            String sql = "select name , age from sink ";
-            ResultSet resultSet = statement.executeQuery(sql);
-            while (resultSet.next()) {
-                result.add(
-                    Arrays.asList(
-                        resultSet.getString(1),
-                        resultSet.getInt(2)
-                    )
-                );
-            }
-        } catch (SQLException e) {
-            throw new RuntimeException("Query result data failed!", e);
-        }
-        return result;
-    }
-
-    private static List<List> generateTestDataset() {
-        List<List> rows = new ArrayList<>();
-        for (int i = 1; i <= 1000; i++) {
-            rows.add(
-                Arrays.asList(
-                    String.format("user_%s", i),
-                    i
-                ));
-        }
-        return rows;
-    }
-
-    @AfterEach
-    public void closePostgreSqlContainer() {
-        if (mc != null) {
-            mc.stop();
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPhoenixIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPhoenixIT.java
deleted file mode 100644
index 1fdc96a86..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPhoenixIT.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.jdbc;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import com.google.common.collect.Lists;
-import lombok.extern.slf4j.Slf4j;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Stream;
-
-@Slf4j
-public class JdbcPhoenixIT extends FlinkContainer {
-
-    private static final String PHOENIX_DOCKER_IMAGE = "iteblog/hbase-phoenix-docker:1.0";
-
-    private static final String PHOENIX_CONTAINER_HOST = "flink_e2e_phoenix_sink";
-
-    private static final int PHOENIX_PORT = 8764;
-    private static final int PHOENIX_CONTAINER_PORT = 8765;
-
-    private static final String PHOENIX_CONNECT_URL = "jdbc:phoenix:thin:url=http://%s:%s;serialization=PROTOBUF";
-    private static final String PHOENIX_JDBC_DRIVER = "org.apache.phoenix.queryserver.client.Driver";
-
-    private GenericContainer<?> phoenixServer;
-
-    private Connection connection;
-
-    @BeforeEach
-    public void startPhoenixContainer() throws ClassNotFoundException, SQLException {
-        phoenixServer = new GenericContainer<>(PHOENIX_DOCKER_IMAGE)
-            .withNetwork(NETWORK)
-            .withNetworkAliases(PHOENIX_CONTAINER_HOST)
-            .withLogConsumer(new Slf4jLogConsumer(log));
-        phoenixServer.setPortBindings(Lists.newArrayList(
-            String.format("%s:%s", PHOENIX_PORT, PHOENIX_CONTAINER_PORT)));
-        Startables.deepStart(Stream.of(phoenixServer)).join();
-        initializeJdbcConnection();
-        log.info("phoenix container started");
-        initializePhoenixTable();
-        batchInsertData();
-    }
-
-    @Test
-    public void testJdbcPhoenixSourceAndSink() throws IOException, InterruptedException, SQLException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_phoenix_source_and_sink.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-
-        // query result
-        String sql = "select f1, f2, f3, f4, f5, f6, f7 from test.sink order by f5 asc";
-        List<List> result = new ArrayList<>();
-        try (Statement statement = connection.createStatement()) {
-            ResultSet resultSet = statement.executeQuery(sql);
-            while (resultSet.next()) {
-                result.add(Arrays.asList(
-                    resultSet.getString(1),
-                    resultSet.getBoolean(2),
-                    resultSet.getDouble(3),
-                    resultSet.getFloat(4),
-                    resultSet.getShort(5),
-                    resultSet.getInt(6),
-                    resultSet.getInt(7)));
-            }
-        }
-        Assertions.assertIterableEquals(generateTestDataset(), result);
-    }
-
-    private void initializeJdbcConnection() throws SQLException, ClassNotFoundException {
-        Class.forName(PHOENIX_JDBC_DRIVER);
-        connection = DriverManager.getConnection(String.format(PHOENIX_CONNECT_URL, phoenixServer.getHost(), PHOENIX_PORT));
-    }
-
-    private void initializePhoenixTable() {
-        try {
-            Statement statement = connection.createStatement();
-            String createSource = "CREATE TABLE test.source (\n" +
-                "\tf1 VARCHAR PRIMARY KEY,\n" +
-                "\tf2 BOOLEAN,\n" +
-                "\tf3 UNSIGNED_DOUBLE,\n" +
-                "\tf4 UNSIGNED_FLOAT,\n" +
-                "\tf5 UNSIGNED_SMALLINT,\n" +
-                "\tf6 INTEGER,\n" +
-                "\tf7 UNSIGNED_INT\n" +
-                ")";
-            String createSink = "CREATE TABLE test.sink (\n" +
-                "\tf1 VARCHAR PRIMARY KEY,\n" +
-                "\tf2 BOOLEAN,\n" +
-                "\tf3 UNSIGNED_DOUBLE,\n" +
-                "\tf4 UNSIGNED_FLOAT,\n" +
-                "\tf5 UNSIGNED_SMALLINT,\n" +
-                "\tf6 INTEGER,\n" +
-                "\tf7 UNSIGNED_INT\n" +
-                ")";
-            statement.execute(createSource);
-            statement.execute(createSink);
-        } catch (SQLException e) {
-            throw new RuntimeException("Initializing  table failed!", e);
-        }
-    }
-
-    @AfterEach
-    public void closePhoenixContainer() throws SQLException {
-        if (phoenixServer != null) {
-            phoenixServer.stop();
-        }
-    }
-
-    private static List<List> generateTestDataset() {
-        List<List> rows = new ArrayList<>();
-        for (int i = 1; i <= 100; i++) {
-            rows.add(Arrays.asList(String.format("test_%s", i),
-                i % 2 == 0,
-                Double.valueOf(i + 1),
-                Float.valueOf(i + 2),
-                (short) (i + 3),
-                Integer.valueOf(i + 4),
-                i + 5
-            ));
-        }
-        return rows;
-    }
-
-    private void batchInsertData() throws SQLException, ClassNotFoundException {
-        String sql = "upsert into test.source(f1, f2, f3, f4, f5, f6, f7) values(?, ?, ?, ?, ?, ?, ?)";
-
-        try {
-            connection.setAutoCommit(false);
-            try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
-                for (List row : generateTestDataset()) {
-                    preparedStatement.setString(1, (String) row.get(0));
-                    preparedStatement.setBoolean(2, (Boolean) row.get(1));
-                    preparedStatement.setDouble(3, (Double) row.get(2));
-                    preparedStatement.setFloat(4, (Float) row.get(3));
-                    preparedStatement.setShort(5, (Short) row.get(4));
-                    preparedStatement.setInt(6, (Integer) row.get(5));
-                    preparedStatement.setInt(7, (Integer) row.get(6));
-                    preparedStatement.addBatch();
-                }
-                preparedStatement.executeBatch();
-            }
-            connection.commit();
-        } catch (SQLException e) {
-            connection.rollback();
-            throw e;
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPostgresIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPostgresIT.java
deleted file mode 100644
index c45e0693e..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPostgresIT.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.jdbc;
-
-import static org.awaitility.Awaitility.given;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.PostgreSQLContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-import org.testcontainers.utility.DockerImageName;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-public class JdbcPostgresIT extends FlinkContainer {
-    private static final Logger LOGGER = LoggerFactory.getLogger(JdbcPostgresIT.class);
-    private PostgreSQLContainer<?> pg;
-
-    @SuppressWarnings("checkstyle:MagicNumber")
-    @BeforeEach
-    public void startPostgreSqlContainer() throws Exception {
-        pg = new PostgreSQLContainer<>(DockerImageName.parse("postgres:14.3"))
-            .withNetwork(NETWORK)
-            .withNetworkAliases("postgresql")
-            .withCommand("postgres -c max_prepared_transactions=100")
-            .withLogConsumer(new Slf4jLogConsumer(LOGGER));
-        Startables.deepStart(Stream.of(pg)).join();
-        LOGGER.info("Postgres container started");
-        Class.forName(pg.getDriverClassName());
-        given().ignoreExceptions()
-            .await()
-            .atLeast(100, TimeUnit.MILLISECONDS)
-            .pollInterval(500, TimeUnit.MILLISECONDS)
-            .atMost(10, TimeUnit.SECONDS)
-            .untilAsserted(() -> initializeJdbcTable());
-        batchInsertData();
-    }
-
-    private void initializeJdbcTable() {
-        try (Connection connection = DriverManager.getConnection(pg.getJdbcUrl(), pg.getUsername(), pg.getPassword())) {
-            Statement statement = connection.createStatement();
-            String source = "create table source(\n" +
-                "user_id bigserial NOT NULL PRIMARY KEY,\n" +
-                "name char(10),\n" +
-                "age INT\n" +
-                ")";
-            String sink = "create table sink(\n" +
-                "user_id bigserial NOT NULL PRIMARY KEY,\n" +
-                "name char(10),\n" +
-                "age INT\n" +
-                ")";
-            statement.execute(source);
-            statement.execute(sink);
-        } catch (SQLException e) {
-            throw new RuntimeException("Initializing Mysql table failed!", e);
-        }
-    }
-
-    @SuppressWarnings("checkstyle:MagicNumber")
-    private void batchInsertData() {
-        String sql = "insert into source(name, age) values(?,?)";
-        try (Connection connection = DriverManager.getConnection(pg.getJdbcUrl(), pg.getUsername(), pg.getPassword())) {
-            connection.setAutoCommit(false);
-            PreparedStatement preparedStatement = connection.prepareStatement(sql);
-            for (List row : generateTestDataset()) {
-                preparedStatement.setString(1, (String) row.get(0));
-                preparedStatement.setInt(2, (Integer) row.get(1));
-                preparedStatement.addBatch();
-            }
-            preparedStatement.executeBatch();
-            connection.commit();
-        } catch (SQLException e) {
-            throw new RuntimeException("Batch insert data failed!", e);
-        }
-    }
-
-    @Test
-    public void testJdbcPostgresSourceAndSink() throws Exception {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_postgres_source_and_sink.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-        Assertions.assertIterableEquals(generateTestDataset(), queryResult());
-    }
-
-    @Test
-    public void testJdbcPostgresSourceAndSinkParallel() throws Exception {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_postgres_source_and_sink_parallel.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-
-        //Sorting is required, because it is read in parallel, so there will be out of order
-        List<List> sortedResult = queryResult().stream().sorted(Comparator.comparing(list -> (Integer) list.get(1)))
-            .collect(Collectors.toList());
-        Assertions.assertIterableEquals(generateTestDataset(), sortedResult);
-    }
-
-    @Test
-    public void testJdbcPostgresSourceAndSinkParallelUpperLower() throws Exception {
-        Container.ExecResult execResult =
-            executeSeaTunnelFlinkJob("/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-
-        //Sorting is required, because it is read in parallel, so there will be out of order
-        List<List> sortedResult = queryResult().stream().sorted(Comparator.comparing(list -> (Integer) list.get(1)))
-            .collect(Collectors.toList());
-
-        //lower=1 upper=50
-        List<List> limit50 = generateTestDataset().stream().limit(50).collect(Collectors.toList());
-        Assertions.assertIterableEquals(limit50, sortedResult);
-    }
-
-    @Test
-    public void testJdbcPostgresSourceAndSinkXA() throws Exception {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbc_postgres_source_and_sink_xa.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-
-        Assertions.assertIterableEquals(generateTestDataset(), queryResult());
-    }
-
-    private List<List> queryResult() {
-        List<List> result = new ArrayList<>();
-        try (Connection connection = DriverManager.getConnection(pg.getJdbcUrl(), pg.getUsername(), pg.getPassword())) {
-            Statement statement = connection.createStatement();
-            String sql = "select name , age from sink ";
-            ResultSet resultSet = statement.executeQuery(sql);
-            while (resultSet.next()) {
-                result.add(
-                    Arrays.asList(
-                        resultSet.getString(1).replace(" ", ""),
-                        resultSet.getInt(2)
-                    )
-                );
-            }
-        } catch (SQLException e) {
-            throw new RuntimeException("Query result data failed!", e);
-        }
-        return result;
-    }
-
-    private static List<List> generateTestDataset() {
-        List<List> rows = new ArrayList<>();
-        for (int i = 1; i <= 1000; i++) {
-            rows.add(
-                Arrays.asList(
-                    String.format("user_%s", i),
-                    i
-                ));
-        }
-        return rows;
-    }
-
-    @AfterEach
-    public void closePostgreSqlContainer() {
-        if (pg != null) {
-            pg.stop();
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcSourceToConsoleIT.java
deleted file mode 100644
index 3a42c1d3a..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcSourceToConsoleIT.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.jdbc;
-
-import static org.awaitility.Awaitility.given;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.PostgreSQLContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-import org.testcontainers.utility.DockerImageName;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Stream;
-
-public class JdbcSourceToConsoleIT extends FlinkContainer {
-    private static final Logger LOGGER = LoggerFactory.getLogger(JdbcSourceToConsoleIT.class);
-    private PostgreSQLContainer<?> psl;
-    private static final String THIRD_PARTY_PLUGINS_URL = "https://repo1.maven.org/maven2/org/postgresql/postgresql/42.3.3/postgresql-42.3.3.jar";
-
-    @SuppressWarnings("checkstyle:MagicNumber")
-    @BeforeEach
-    public void startPostgreSqlContainer() throws InterruptedException, ClassNotFoundException, SQLException {
-        psl = new PostgreSQLContainer<>(DockerImageName.parse("postgres:alpine3.16"))
-            .withNetwork(NETWORK)
-            .withNetworkAliases("postgresql")
-            .withLogConsumer(new Slf4jLogConsumer(LOGGER));
-        Startables.deepStart(Stream.of(psl)).join();
-        LOGGER.info("PostgreSql container started");
-        Class.forName(psl.getDriverClassName());
-        given().ignoreExceptions()
-            .await()
-            .atLeast(100, TimeUnit.MILLISECONDS)
-            .pollInterval(500, TimeUnit.MILLISECONDS)
-            .atMost(5, TimeUnit.SECONDS)
-            .untilAsserted(() -> initializeJdbcTable());
-        batchInsertData();
-    }
-
-    private void initializeJdbcTable() {
-        try (Connection connection = DriverManager.getConnection(psl.getJdbcUrl(), psl.getUsername(), psl.getPassword())) {
-            Statement statement = connection.createStatement();
-            String sql = "CREATE TABLE test (\n" +
-                "  name varchar(255) NOT NULL\n" +
-                ")";
-            statement.execute(sql);
-        } catch (SQLException e) {
-            throw new RuntimeException("Initializing PostgreSql table failed!", e);
-        }
-    }
-
-    @SuppressWarnings("checkstyle:MagicNumber")
-    private void batchInsertData() throws SQLException {
-        try (Connection connection = DriverManager.getConnection(psl.getJdbcUrl(), psl.getUsername(), psl.getPassword())) {
-            String sql = "insert into test(name) values(?)";
-            connection.setAutoCommit(false);
-            PreparedStatement preparedStatement = connection.prepareStatement(sql);
-            for (int i = 0; i < 10; i++) {
-                preparedStatement.setString(1, "Mike");
-                preparedStatement.addBatch();
-            }
-            preparedStatement.executeBatch();
-            connection.commit();
-        } catch (SQLException e) {
-            throw new RuntimeException("Batch insert data failed!", e);
-        }
-    }
-
-    @Test
-    public void testFakeSourceToJdbcSink() throws SQLException, IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/jdbc/jdbcsource_to_console.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-
-    @AfterEach
-    public void closePostgreSqlContainer() {
-        if (psl != null) {
-            psl.stop();
-        }
-    }
-
-    @Override
-    protected void executeExtraCommands(GenericContainer<?> container) throws IOException, InterruptedException {
-        Container.ExecResult extraCommands = container.execInContainer("bash", "-c", "mkdir -p /tmp/seatunnel/plugins/Jdbc/lib && cd /tmp/seatunnel/plugins/Jdbc/lib && curl -O " + THIRD_PARTY_PLUGINS_URL);
-        Assertions.assertEquals(0, extraCommands.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/fakesource_to_jdbc.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/fakesource_to_jdbc.conf
deleted file mode 100644
index 0f732b63b..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/fakesource_to_jdbc.conf
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-    FakeSource {
-      result_table_name = "fake"
-      schema = {
-        fields {
-          name = "string"
-        }
-      }
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-    sql {
-      sql = "select name from fake"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/transform/sql
-}
-
-sink {
-  Jdbc {
-      source_table_name = fake
-      driver = org.postgresql.Driver
-      url = "jdbc:postgresql://postgresql:5432/test?loggerLevel=OFF"
-      user = test
-      password = test
-      query = "insert into test(name) values(?)"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/sink/Jdbc
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/init_sql/dm_init.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/init_sql/dm_init.conf
deleted file mode 100644
index 056c252a1..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/init_sql/dm_init.conf
+++ /dev/null
@@ -1,122 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-dm_table_source = """
-create table if not exists "SYSDBA".e2e_table_source
-(
-    DM_BIT              BIT,
-    DM_INT              INT,
-    DM_INTEGER          INTEGER,
-    DM_PLS_INTEGER      PLS_INTEGER,
-    DM_TINYINT          TINYINT,
-
-    DM_BYTE             BYTE,
-    DM_SMALLINT         SMALLINT,
-    DM_BIGINT           BIGINT,
-
-    DM_NUMERIC          NUMERIC,
-    DM_NUMBER           NUMBER,
-    DM_DECIMAL          DECIMAL,
-    DM_DEC              DEC,
-
-    DM_REAL             REAL,
-    DM_FLOAT            FLOAT,
-    DM_DOUBLE_PRECISION DOUBLE PRECISION,
-    DM_DOUBLE           DOUBLE,
-
-    DM_CHAR             CHAR,
-    DM_CHARACTER        CHARACTER,
-    DM_VARCHAR          VARCHAR,
-    DM_VARCHAR2         VARCHAR2,
-    DM_TEXT             TEXT,
-    DM_LONG             LONG,
-    DM_LONGVARCHAR      LONGVARCHAR,
-    DM_CLOB             CLOB,
-
-    DM_TIMESTAMP        TIMESTAMP,
-    DM_DATETIME         DATETIME,
-    DM_TIME             TIME,
-    DM_DATE             DATE,
-
-    DM_BLOB             BLOB,
-    DM_BINARY           BINARY,
-    DM_VARBINARY        VARBINARY,
-    DM_LONGVARBINARY    LONGVARBINARY,
-    DM_IMAGE            IMAGE,
-    DM_BFILE            BFILE
-)
-"""
-
-dm_table_sink = """
-create table if not exists "SYSDBA".e2e_table_sink
-(
-    DM_BIT              BIT,
-    DM_INT              INT,
-    DM_INTEGER          INTEGER,
-    DM_PLS_INTEGER      PLS_INTEGER,
-    DM_TINYINT          TINYINT,
-
-    DM_BYTE             BYTE,
-    DM_SMALLINT         SMALLINT,
-    DM_BIGINT           BIGINT,
-
-    DM_NUMERIC          NUMERIC,
-    DM_NUMBER           NUMBER,
-    DM_DECIMAL          DECIMAL,
-    DM_DEC              DEC,
-
-    DM_REAL             REAL,
-    DM_FLOAT            FLOAT,
-    DM_DOUBLE_PRECISION DOUBLE PRECISION,
-    DM_DOUBLE           DOUBLE,
-
-    DM_CHAR             CHAR,
-    DM_CHARACTER        CHARACTER,
-    DM_VARCHAR          VARCHAR,
-    DM_VARCHAR2         VARCHAR2,
-    DM_TEXT             TEXT,
-    DM_LONG             LONG,
-    DM_LONGVARCHAR      LONGVARCHAR,
-    DM_CLOB             CLOB,
-
-    DM_TIMESTAMP        TIMESTAMP,
-    DM_DATETIME         DATETIME,
-    DM_TIME             TIME,
-    DM_DATE             DATE,
-
-    DM_BLOB             BLOB,
-    DM_BINARY           BINARY,
-    DM_VARBINARY        VARBINARY,
-    DM_LONGVARBINARY    LONGVARBINARY,
-    DM_IMAGE            IMAGE,
-    DM_BFILE            BFILE
-)
-"""
-// only need for source
-DML = """
-INSERT INTO "SYSDBA".e2e_table_source (
-DM_BIT, DM_INT, DM_INTEGER, DM_PLS_INTEGER, DM_TINYINT, DM_BYTE, DM_SMALLINT, DM_BIGINT,
-DM_NUMERIC, DM_NUMBER, DM_DECIMAL, DM_DEC, DM_REAL, DM_FLOAT, DM_DOUBLE_PRECISION, DM_DOUBLE,
-DM_CHAR, DM_CHARACTER, DM_VARCHAR, DM_VARCHAR2, DM_TEXT, DM_LONG, DM_LONGVARCHAR, DM_CLOB,
-DM_TIMESTAMP, DM_DATETIME, DM_TIME, DM_DATE,
-DM_BLOB, DM_BINARY, DM_VARBINARY, DM_LONGVARBINARY, DM_IMAGE, DM_BFILE)
-VALUES
-(0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, '1',
- 'a', 'a', 'a', 'a', 'a', 'a', 'a',
-'2022-08-13 17:35:59.000000', '2022-08-13 17:36:11.000000', '15:45:00', '2022-08-13',
-null, null, null, null, null, null)
-"""
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/init_sql/mysql_init.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/init_sql/mysql_init.conf
deleted file mode 100644
index 88178d7d1..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/init_sql/mysql_init.conf
+++ /dev/null
@@ -1,221 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-source_table = """ CREATE TABLE source ( `user_id` INT PRIMARY KEY NOT NULL AUTO_INCREMENT, `name` CHAR ( 10 ), `age` INT ) """
-
-sink_table = """ CREATE TABLE sink ( `user_id` INT PRIMARY KEY NOT NULL AUTO_INCREMENT, `name` CHAR ( 10 ), `age` INT ) """
-
-type_source_table = """
-CREATE TABLE `type_source_table` (
-	`binary` BINARY ( 64 ) DEFAULT NULL,
-	`blob` BLOB,
-	`long_varbinary` MEDIUMBLOB,
-	`longblob` LONGBLOB,
-	`tinyblob` TINYBLOB,
-	`varbinary` VARBINARY ( 100 ) DEFAULT NULL,
-
-	`tinyint` TINYINT DEFAULT NULL,
-	`tinyint_unsigned` TINYINT UNSIGNED DEFAULT NULL,
-	`smallint` SMALLINT DEFAULT NULL,
-	`smallint_unsigned` SMALLINT UNSIGNED DEFAULT NULL,
-	`mediumint` MEDIUMINT DEFAULT NULL,
-	`mediumint_unsigned` MEDIUMINT UNSIGNED DEFAULT NULL,
-	`int` INT DEFAULT NULL,
-	`int_unsigned` INT UNSIGNED DEFAULT NULL,
-	`integer` INT DEFAULT NULL,
-	`integer_unsigned` INT UNSIGNED DEFAULT NULL,
-	`bigint` BIGINT DEFAULT NULL,
-	`bigint_unsigned` BIGINT UNSIGNED DEFAULT NULL,
-	`numeric` DECIMAL ( 10, 0 ) DEFAULT NULL,
-	`decimal` DECIMAL ( 10, 0 ) DEFAULT NULL,
-	`float` FLOAT DEFAULT NULL,
-	`double` DOUBLE DEFAULT NULL,
-	`double_precision` DOUBLE DEFAULT NULL,
-
-	`longtext` LONGTEXT,
-	`mediumtext` MEDIUMTEXT,
-	`text` text,
-	`tinytext` TINYTEXT,
-	`varchar` VARCHAR ( 100 ) DEFAULT NULL,
-	`json` json DEFAULT NULL,
-
-	`date` date DEFAULT NULL,
-	`datetime` datetime DEFAULT NULL,
-	`time` time DEFAULT NULL,
-	`year` YEAR DEFAULT NULL,
-    `timestamp` TIMESTAMP NULL DEFAULT NULL
-)
-"""
-
-type_sink_table = """
-CREATE TABLE `type_sink_table` (
-	`binary` BINARY ( 64 ) DEFAULT NULL,
-	`blob` BLOB,
-	`long_varbinary` MEDIUMBLOB,
-	`longblob` LONGBLOB,
-	`tinyblob` TINYBLOB,
-	`varbinary` VARBINARY ( 100 ) DEFAULT NULL,
-
-	`tinyint` TINYINT DEFAULT NULL,
-	`tinyint_unsigned` TINYINT UNSIGNED DEFAULT NULL,
-	`smallint` SMALLINT DEFAULT NULL,
-	`smallint_unsigned` SMALLINT UNSIGNED DEFAULT NULL,
-	`mediumint` MEDIUMINT DEFAULT NULL,
-	`mediumint_unsigned` MEDIUMINT UNSIGNED DEFAULT NULL,
-	`int` INT DEFAULT NULL,
-	`int_unsigned` INT UNSIGNED DEFAULT NULL,
-	`integer` INT DEFAULT NULL,
-	`integer_unsigned` INT UNSIGNED DEFAULT NULL,
-	`bigint` BIGINT DEFAULT NULL,
-	`bigint_unsigned` BIGINT UNSIGNED DEFAULT NULL,
-	`numeric` DECIMAL ( 10, 0 ) DEFAULT NULL,
-	`decimal` DECIMAL ( 10, 0 ) DEFAULT NULL,
-	`float` FLOAT DEFAULT NULL,
-	`double` DOUBLE DEFAULT NULL,
-	`double_precision` DOUBLE DEFAULT NULL,
-
-	`longtext` LONGTEXT,
-	`mediumtext` MEDIUMTEXT,
-	`text` text,
-	`tinytext` TINYTEXT,
-	`varchar` VARCHAR ( 100 ) DEFAULT NULL,
-	`json` json DEFAULT NULL,
-
-	`date` date DEFAULT NULL,
-	`datetime` datetime DEFAULT NULL,
-	`time` time DEFAULT NULL,
-	`year` YEAR DEFAULT NULL,
-    `timestamp` TIMESTAMP NULL DEFAULT NULL
-)
-"""
-
-insert_type_source_table_sql = """
-INSERT INTO `type_source_table` (
-	`binary`,
-	`blob`,
-	`long_varbinary`,
-	`longblob`,
-	`tinyblob`,
-	`varbinary`,
-	`tinyint`,
-	`tinyint_unsigned`,
-	`smallint`,
-	`smallint_unsigned`,
-	`mediumint`,
-	`mediumint_unsigned`,
-	`int`,
-	`int_unsigned`,
-	`integer`,
-	`integer_unsigned`,
-	`bigint`,
-	`bigint_unsigned`,
-	`numeric`,
-	`decimal`,
-	`float`,
-	`double`,
-	`double_precision`,
-	`longtext`,
-	`mediumtext`,
-	`text`,
-	`tinytext`,
-	`varchar`,
-	`json`,
-	`date`,
-	`datetime`,
-	`time`,
-	`year`,
-	`timestamp`
-)
-VALUES
-	(
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		1,
-		'a',
-		'a',
-		'a',
-		'a',
-		'a',
-		'{}',
-		'2022-09-22',
-		'2022-09-22 15:07:44',
-		'15:07:48',
-		2022,
-	'2022-09-22 15:07:55'
-	)
-"""
-
-check_type_sink_table_sql = """
-SELECT
-	count( 1 )
-FROM
-	( SELECT * FROM type_source_table UNION ALL SELECT * FROM type_sink_table ) a
-GROUP BY
-	`binary`,
-	`blob`,
-	`long_varbinary`,
-	`longblob`,
-	`tinyblob`,
-	`varbinary`,
-	`tinyint`,
-	`tinyint_unsigned`,
-	`smallint`,
-	`smallint_unsigned`,
-	`mediumint`,
-	`mediumint_unsigned`,
-	`int`,
-	`int_unsigned`,
-	`integer`,
-	`integer_unsigned`,
-	`bigint`,
-	`bigint_unsigned`,
-	`numeric`,
-	`decimal`,
-	`float`,
-	`double`,
-	`double_precision`,
-	`longtext`,
-	`mediumtext`,
-	`text`,
-	`tinytext`,
-	`varchar`,
-	`json`,
-	`date`,
-	`datetime`,
-	`time`,
-	`year`,
-	`timestamp`
-"""
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_dm_source_and_sink.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_dm_source_and_sink.conf
deleted file mode 100644
index ba2468ccf..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_dm_source_and_sink.conf
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  Jdbc {
-    url = "jdbc:dm://flink_e2e_dmdb:5236"
-    driver = "dm.jdbc.driver.DmDriver"
-    connection_check_timeout_sec = 1000
-    user = "SYSDBA"
-    password = "SYSDBA"
-    query = """select * from "SYSDBA".e2e_table_source"""
-  }
-
-}
-
-transform {
-
-}
-
-sink {
-  Jdbc {
-    url = "jdbc:dm://flink_e2e_dmdb:5236"
-    driver = "dm.jdbc.driver.DmDriver"
-    connection_check_timeout_sec = 1000
-    user = "SYSDBA"
-    password = "SYSDBA"
-    query = """
-INSERT INTO SYSDBA.e2e_table_sink (DM_BIT, DM_INT, DM_INTEGER, DM_PLS_INTEGER, DM_TINYINT, DM_BYTE, DM_SMALLINT, DM_BIGINT, DM_NUMERIC, DM_NUMBER,
- DM_DECIMAL, DM_DEC, DM_REAL, DM_FLOAT, DM_DOUBLE_PRECISION, DM_DOUBLE, DM_CHAR, DM_CHARACTER, DM_VARCHAR, DM_VARCHAR2, DM_TEXT, DM_LONG,
- DM_LONGVARCHAR, DM_CLOB, DM_TIMESTAMP, DM_DATETIME, DM_TIME, DM_DATE, DM_BLOB, DM_BINARY, DM_VARBINARY, DM_LONGVARBINARY, DM_IMAGE, DM_BFILE)
-VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-"""
-  }
-}
-
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_greenplum_source_and_sink.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_greenplum_source_and_sink.conf
deleted file mode 100644
index e6ee34bf3..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_greenplum_source_and_sink.conf
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-    # You can set flink configuration here
-    execution.parallelism = 1
-    job.mode = "BATCH"
-    #execution.checkpoint.interval = 10000
-    #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-    # This is a example source plugin **only for test and demonstrate the feature source plugin**
-    Jdbc {
-        driver = org.postgresql.Driver
-        url = "jdbc:postgresql://flink_e2e_greenplum:5432/testdb?loggerLevel=OFF"
-        user = tester
-        password = pivotal
-        query = "select age, name from source"
-    }
-
-    # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-    # please go to https://seatunnel.apache.org/docs/connector-v2/source/Jdbc
-}
-
-transform {
-
-    # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-    # please go to https://seatunnel.apache.org/docs/transform/sql
-}
-
-sink {
-    Jdbc {
-        driver = org.postgresql.Driver
-        url = "jdbc:postgresql://flink_e2e_greenplum:5432/testdb?loggerLevel=OFF"
-        user = tester
-        password = pivotal
-        query = "insert into sink(age, name) values(?, ?)"
-    }
-
-    # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-    # please go to https://seatunnel.apache.org/docs/connector-v2/sink/Jdbc
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink.conf
deleted file mode 100644
index 4e216040b..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink.conf
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  execution.parallelism = 1
-  job.mode = "BATCH"
-}
-
-source{
-    jdbc{
-        url = "jdbc:mysql://mysql:3306/test"
-        driver = "com.mysql.cj.jdbc.Driver"
-        user = "root"
-        password = "test"
-        query = "select name , age from source"
-    }
-}
-
-transform {
-}
-
-sink {
-    jdbc {
-        url = "jdbc:mysql://mysql:3306/test"
-        driver = "com.mysql.cj.jdbc.Driver"
-        user = "root"
-        password = "test"
-        query = "insert into sink(name,age) values(?,?)"
-    }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_datatype.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_datatype.conf
deleted file mode 100644
index 840467eea..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_datatype.conf
+++ /dev/null
@@ -1,116 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  execution.parallelism = 1
-  job.mode = "BATCH"
-}
-
-source{
-    jdbc{
-        url = "jdbc:mysql://mysql:3306/test"
-        driver = "com.mysql.cj.jdbc.Driver"
-        user = "root"
-        password = "test"
-        query = "select * from type_source_table"
-    }
-}
-
-transform {
-}
-
-sink {
-    jdbc {
-        url = "jdbc:mysql://mysql:3306/test"
-        driver = "com.mysql.cj.jdbc.Driver"
-        user = "root"
-        password = "test"
-        query = """ INSERT INTO `type_sink_table` (
-                 	`binary`,
-                 	`blob`,
-                 	`long_varbinary`,
-                 	`longblob`,
-                 	`tinyblob`,
-                 	`varbinary`,
-                 	`tinyint`,
-                 	`tinyint_unsigned`,
-                 	`smallint`,
-                 	`smallint_unsigned`,
-                 	`mediumint`,
-                 	`mediumint_unsigned`,
-                 	`int`,
-                 	`int_unsigned`,
-                 	`integer`,
-                 	`integer_unsigned`,
-                 	`bigint`,
-                 	`bigint_unsigned`,
-                 	`numeric`,
-                 	`decimal`,
-                 	`float`,
-                 	`double`,
-                 	`double_precision`,
-                 	`longtext`,
-                 	`mediumtext`,
-                 	`text`,
-                 	`tinytext`,
-                 	`varchar`,
-                 	`json`,
-                 	`date`,
-                 	`datetime`,
-                 	`time`,
-                 	`year`,
-                 	`timestamp`
-                 )
-                 VALUES
-                 	(
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 		?,
-                 	    ?
-                 	)"""
-    }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_parallel.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_parallel.conf
deleted file mode 100644
index 718207133..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_parallel.conf
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  execution.parallelism = 3
-  job.mode = "BATCH"
-}
-
-source{
-    jdbc{
-        url = "jdbc:mysql://mysql:3306/test"
-        driver = "com.mysql.cj.jdbc.Driver"
-        user = "root"
-        password = "test"
-        query = "select user_id,  name , age from source"
-        partition_column= "user_id"
-
-        result_table_name = "jdbc"
-    }
-}
-
-transform {
-    sql {
-      sql = "select name,age from jdbc"
-    }
-}
-
-sink {
-    jdbc {
-
-        url = "jdbc:mysql://mysql:3306/test"
-        driver = "com.mysql.cj.jdbc.Driver"
-        user = "root"
-        password = "test"
-        connection_check_timeout_sec = 100
-        query = "insert into sink(name,age) values(?,?)"
-    }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_parallel_upper_lower.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_parallel_upper_lower.conf
deleted file mode 100644
index 9222dd9f3..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_parallel_upper_lower.conf
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  execution.parallelism = 3
-  job.mode = "BATCH"
-}
-
-source{
-    jdbc{
-        url = "jdbc:mysql://mysql:3306/test"
-        driver = "com.mysql.cj.jdbc.Driver"
-        user = "root"
-        password = "test"
-        query = "select user_id,  name , age from source"
-        partition_column= "user_id"
-
-        result_table_name = "jdbc"
-        partition_lower_bound=1
-        partition_upper_bound=50
-    }
-}
-
-transform {
-    sql {
-      sql = "select name,age from jdbc"
-    }
-}
-
-sink {
-    jdbc {
-
-        url = "jdbc:mysql://mysql:3306/test"
-        driver = "com.mysql.cj.jdbc.Driver"
-        user = "root"
-        password = "test"
-        connection_check_timeout_sec = 100
-        query = "insert into sink(name,age) values(?,?)"
-    }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_xa.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_xa.conf
deleted file mode 100644
index 7d6bfa960..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_mysql_source_and_sink_xa.conf
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  execution.checkpoint.interval = 1000
-}
-
-source {
-    jdbc{
-        url = "jdbc:mysql://mysql:3306/test"
-        driver = "com.mysql.cj.jdbc.Driver"
-       user = "root"
-        password = "test"
-        query = "select name , age from source"
-    }
-}
-
-transform {
-}
-
-sink {
-    jdbc {
-        url = "jdbc:mysql://mysql:3306/test"
-        driver = "com.mysql.cj.jdbc.Driver"
-        user = "root"
-        password = "test"
-
-        max_retries = 0
-        query = "insert into sink(name,age) values(?,?)"
-
-       # Non-root users need to grant XA_RECOVER_ADMIN permission on is_exactly_once = "true"
-        is_exactly_once = "true"
-
-        xa_data_source_class_name = "com.mysql.cj.jdbc.MysqlXADataSource"
-        max_commit_attempts = 3
-        transaction_timeout_sec = 86400
-    }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_phoenix_source_and_sink.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_phoenix_source_and_sink.conf
deleted file mode 100644
index bfcf615ab..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_phoenix_source_and_sink.conf
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-    Jdbc {
-        driver = org.apache.phoenix.queryserver.client.Driver
-        url = "jdbc:phoenix:thin:url=http://flink_e2e_phoenix_sink:8765;serialization=PROTOBUF"
-        query = "select f1, f2, f3, f4, f5, f6, f7 from test.source"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/transform/sql
-}
-
-sink {
-    Jdbc {
-        driver = org.apache.phoenix.queryserver.client.Driver
-        url = "jdbc:phoenix:thin:url=http://flink_e2e_phoenix_sink:8765;serialization=PROTOBUF"
-        query = "upsert into test.sink(f1, f2, f3, f4, f5, f6, f7) values(?, ?, ?, ?, ?, ?, ?)"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/sink/Jdbc
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink.conf
deleted file mode 100644
index 20244099e..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink.conf
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  execution.parallelism = 1
-  job.mode = "BATCH"
-}
-
-source{
-    jdbc{
-        url = "jdbc:postgresql://postgresql:5432/test"
-        driver = "org.postgresql.Driver"
-        user = "test"
-        password = "test"
-        query = "select name , age from source"
-    }
-}
-
-transform {
-}
-
-sink {
-    jdbc {
-        url = "jdbc:postgresql://postgresql:5432/test"
-        driver = "org.postgresql.Driver"
-        user = "test"
-        password = "test"
-        query = "insert into sink(name,age) values(?,?)"
-    }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel.conf
deleted file mode 100644
index d60fbca69..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel.conf
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  execution.parallelism = 3
-  job.mode = "BATCH"
-}
-
-source{
-    jdbc{
-        url = "jdbc:postgresql://postgresql:5432/test"
-        driver = "org.postgresql.Driver"
-        user = "test"
-        password = "test"
-        query = "select user_id,  name , age from source"
-        partition_column= "user_id"
-
-        result_table_name = "jdbc"
-    }
-}
-
-transform {
-    sql {
-      sql = "select name,age from jdbc"
-    }
-}
-
-sink {
-    jdbc {
-
-        url = "jdbc:postgresql://postgresql:5432/test"
-        driver = "org.postgresql.Driver"
-        user = "test"
-        password = "test"
-        connection_check_timeout_sec = 100
-        query = "insert into sink(name,age) values(?,?)"
-    }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf
deleted file mode 100644
index 8f929f70d..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_parallel_upper_lower.conf
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  execution.parallelism = 3
-  job.mode = "BATCH"
-}
-
-source{
-    jdbc{
-        url = "jdbc:postgresql://postgresql:5432/test"
-        driver = "org.postgresql.Driver"
-        user = "test"
-        password = "test"
-        query = "select user_id,  name , age from source"
-        partition_column= "user_id"
-
-        result_table_name = "jdbc"
-        partition_lower_bound=1
-        partition_upper_bound=50
-    }
-}
-
-transform {
-    sql {
-      sql = "select name,age from jdbc"
-    }
-}
-
-sink {
-    jdbc {
-        url = "jdbc:postgresql://postgresql:5432/test"
-        driver = "org.postgresql.Driver"
-
-        user = "test"
-        password = "test"
-        connection_check_timeout_sec = 100
-        query = "insert into sink(name,age) values(?,?)"
-    }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_xa.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_xa.conf
deleted file mode 100644
index 33662ae58..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_postgres_source_and_sink_xa.conf
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  execution.checkpoint.interval = 1000
-}
-
-source {
-    jdbc{
-        url = "jdbc:postgresql://postgresql:5432/test"
-        driver = "org.postgresql.Driver"
-        user = "test"
-        password = "test"
-        query = "select name , age from source"
-    }
-}
-
-transform {
-}
-
-sink {
-    jdbc {
-        url = "jdbc:postgresql://postgresql:5432/test"
-        driver = "org.postgresql.Driver"
-        user = "test"
-        password = "test"
-
-        max_retries = 0
-        query = "insert into sink(name,age) values(?,?)"
-
-        is_exactly_once = "true"
-
-        xa_data_source_class_name = "org.postgresql.xa.PGXADataSource"
-        max_commit_attempts = 3
-        transaction_timeout_sec = 86400
-    }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbcsource_to_console.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbcsource_to_console.conf
deleted file mode 100644
index 4d65c569e..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbcsource_to_console.conf
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-    Jdbc {
-        driver = org.postgresql.Driver
-        url = "jdbc:postgresql://postgresql:5432/test?loggerLevel=OFF"
-        user = test
-        password = "test"
-        query = "select * from test"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Fake
-}
-
-transform {
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/transform/sql
-}
-
-sink {
-  Console {}
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/category/sink-v2
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/pom.xml
deleted file mode 100644
index ac8499b09..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/pom.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project
-        xmlns="http://maven.apache.org/POM/4.0.0"
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-
-    <artifactId>connector-mongodb-flink-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-mongodb</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/mongodb/MongodbIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/mongodb/MongodbIT.java
deleted file mode 100644
index e75555cbe..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/mongodb/MongodbIT.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.mongodb;
-
-import static java.net.HttpURLConnection.HTTP_OK;
-import static java.net.HttpURLConnection.HTTP_UNAUTHORIZED;
-
-import org.apache.seatunnel.api.table.type.ArrayType;
-import org.apache.seatunnel.api.table.type.BasicType;
-import org.apache.seatunnel.api.table.type.DecimalType;
-import org.apache.seatunnel.api.table.type.LocalTimeType;
-import org.apache.seatunnel.api.table.type.MapType;
-import org.apache.seatunnel.api.table.type.PrimitiveByteArrayType;
-import org.apache.seatunnel.api.table.type.SeaTunnelDataType;
-import org.apache.seatunnel.api.table.type.SeaTunnelRow;
-import org.apache.seatunnel.api.table.type.SeaTunnelRowType;
-import org.apache.seatunnel.connectors.seatunnel.mongodb.data.DefaultSerializer;
-import org.apache.seatunnel.connectors.seatunnel.mongodb.data.Serializer;
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import com.mongodb.client.MongoClient;
-import com.mongodb.client.MongoClients;
-import com.mongodb.client.MongoCollection;
-import com.mongodb.client.MongoCursor;
-import com.mongodb.client.model.Sorts;
-import lombok.extern.slf4j.Slf4j;
-import org.awaitility.Awaitility;
-import org.bson.Document;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;
-import org.testcontainers.lifecycle.Startables;
-import org.testcontainers.utility.DockerImageName;
-
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.time.Duration;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-@Slf4j
-public class MongodbIT extends FlinkContainer {
-
-    private static final String MONGODB_IMAGE = "mongo:latest";
-    private static final String MONGODB_CONTAINER_HOST = "flink_e2e_mongodb";
-    private static final int MONGODB_PORT = 27017;
-    private static final String MONGODB_DATABASE = "test_db";
-    private static final String MONGODB_SOURCE_TABLE = "source_table";
-    private static final String MONGODB_SINK_TABLE = "sink_table";
-
-    private static final List<Document> TEST_DATASET = generateTestDataSet();
-
-    private GenericContainer<?> mongodbContainer;
-    private MongoClient client;
-
-    @BeforeEach
-    public void startMongoContainer() {
-        DockerImageName imageName = DockerImageName.parse(MONGODB_IMAGE);
-        mongodbContainer = new GenericContainer<>(imageName)
-            .withNetwork(NETWORK)
-            .withNetworkAliases(MONGODB_CONTAINER_HOST)
-            .withExposedPorts(MONGODB_PORT)
-            .waitingFor(new HttpWaitStrategy()
-                .forPort(MONGODB_PORT)
-                .forStatusCodeMatching(response -> response == HTTP_OK || response == HTTP_UNAUTHORIZED)
-                .withStartupTimeout(Duration.ofMinutes(2)))
-            .withLogConsumer(new Slf4jLogConsumer(log));
-        Startables.deepStart(Stream.of(mongodbContainer)).join();
-        log.info("Mongodb container started");
-
-        Awaitility.given().ignoreExceptions()
-            .atLeast(100, TimeUnit.MILLISECONDS)
-            .pollInterval(500, TimeUnit.MILLISECONDS)
-            .atMost(180, TimeUnit.SECONDS)
-            .untilAsserted(this::initConnection);
-        this.initSourceData();
-    }
-
-    @Test
-    public void testMongodb() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/mongodb/mongodb_source_and_sink.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-        Assertions.assertIterableEquals(
-            TEST_DATASET.stream()
-                .map(e -> {
-                    e.remove("_id");
-                    return e;
-                })
-                .collect(Collectors.toList()),
-            readSinkData().stream()
-                .map(e -> {
-                    e.remove("_id");
-                    return e;
-                })
-                .collect(Collectors.toList()));
-    }
-
-    public void initConnection() {
-        String host = mongodbContainer.getContainerIpAddress();
-        int port = mongodbContainer.getFirstMappedPort();
-        String url = String.format("mongodb://%s:%d/%s", host, port, MONGODB_DATABASE);
-
-        client = MongoClients.create(url);
-    }
-
-    private void initSourceData() {
-        MongoCollection<Document> sourceTable = client
-            .getDatabase(MONGODB_DATABASE)
-            .getCollection(MONGODB_SOURCE_TABLE);
-
-        sourceTable.deleteMany(new Document());
-        sourceTable.insertMany(TEST_DATASET);
-    }
-
-    private List<Document> readSinkData() {
-        MongoCollection<Document> sinkTable = client
-            .getDatabase(MONGODB_DATABASE)
-            .getCollection(MONGODB_SINK_TABLE);
-        MongoCursor<Document> cursor = sinkTable.find()
-            .sort(Sorts.ascending("id"))
-            .cursor();
-        List<Document> documents = new ArrayList<>();
-        while (cursor.hasNext()) {
-            documents.add(cursor.next());
-        }
-        return documents;
-    }
-
-    private static List<Document> generateTestDataSet() {
-        SeaTunnelRowType seatunnelRowType = new SeaTunnelRowType(
-            new String[]{
-                "id",
-                "c_map",
-                "c_array",
-                "c_string",
-                "c_boolean",
-                "c_tinyint",
-                "c_smallint",
-                "c_int",
-                "c_bigint",
-                "c_float",
-                "c_double",
-                "c_decimal",
-                "c_bytes",
-                "c_date",
-                "c_timestamp"
-            },
-            new SeaTunnelDataType[]{
-                BasicType.LONG_TYPE,
-                new MapType(BasicType.STRING_TYPE, BasicType.SHORT_TYPE),
-                ArrayType.BYTE_ARRAY_TYPE,
-                BasicType.STRING_TYPE,
-                BasicType.BOOLEAN_TYPE,
-                BasicType.BYTE_TYPE,
-                BasicType.SHORT_TYPE,
-                BasicType.INT_TYPE,
-                BasicType.LONG_TYPE,
-                BasicType.FLOAT_TYPE,
-                BasicType.DOUBLE_TYPE,
-                new DecimalType(2, 1),
-                PrimitiveByteArrayType.INSTANCE,
-                LocalTimeType.LOCAL_DATE_TYPE,
-                LocalTimeType.LOCAL_DATE_TIME_TYPE
-            }
-        );
-        Serializer serializer = new DefaultSerializer(seatunnelRowType);
-
-        List<Document> documents = new ArrayList<>();
-        for (int i = 0; i < 100; i++) {
-            SeaTunnelRow row = new SeaTunnelRow(
-                new Object[]{
-                    Long.valueOf(i),
-                    Collections.singletonMap("key", Short.parseShort("1")),
-                    new Byte[]{Byte.parseByte("1")},
-                    "string",
-                    Boolean.FALSE,
-                    Byte.parseByte("1"),
-                    Short.parseShort("1"),
-                    Integer.parseInt("1"),
-                    Long.parseLong("1"),
-                    Float.parseFloat("1.1"),
-                    Double.parseDouble("1.1"),
-                    BigDecimal.valueOf(11, 1),
-                    "test".getBytes(),
-                    LocalDate.now(),
-                    LocalDateTime.now()
-                });
-            documents.add(serializer.serialize(row));
-        }
-        return documents;
-    }
-
-    @AfterEach
-    public void closeMongoContainer() {
-        if (client != null) {
-            client.close();
-        }
-        if (mongodbContainer != null) {
-            mongodbContainer.close();
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/src/test/resources/mongodb/mongodb_source_and_sink.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/src/test/resources/mongodb/mongodb_source_and_sink.conf
deleted file mode 100644
index d013995d5..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-mongodb-flink-e2e/src/test/resources/mongodb/mongodb_source_and_sink.conf
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  MongoDB {
-    uri = "mongodb://flink_e2e_mongodb:27017/test_db?retryWrites=true&writeConcern=majority"
-    database = "test_db"
-    collection = "source_table"
-    schema = {
-      fields {
-        id = bigint
-        c_map = "map<string, smallint>"
-        c_array = "array<tinyint>"
-        c_string = string
-        c_boolean = boolean
-        c_tinyint = tinyint
-        c_smallint = smallint
-        c_int = int
-        c_bigint = bigint
-        c_float = float
-        c_double = double
-        c_decimal = "decimal(2, 1)"
-        c_bytes = bytes
-        c_date = date
-        c_timestamp = timestamp
-      }
-    }
-  }
-}
-
-transform {
-}
-
-sink {
-  MongoDB {
-    uri = "mongodb://flink_e2e_mongodb:27017/test_db?retryWrites=true&writeConcern=majority"
-    database = "test_db"
-    collection = "sink_table"
-  }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/pom.xml
deleted file mode 100644
index d92a1b3b5..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-redis-flink-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-redis</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-assert</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/redis/RedisIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/redis/RedisIT.java
deleted file mode 100644
index 93d436138..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/redis/RedisIT.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.redis;
-
-import static org.awaitility.Awaitility.given;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import com.google.common.collect.Lists;
-import lombok.extern.slf4j.Slf4j;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-import redis.clients.jedis.Jedis;
-
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Stream;
-
-@Slf4j
-public class RedisIT extends FlinkContainer {
-    private static final String REDIS_IMAGE = "redis:latest";
-    private static final String REDIS_CONTAINER_HOST = "flink_e2e_redis";
-    private static final String REDIS_HOST = "localhost";
-    private static final int REDIS_PORT = 6379;
-    private GenericContainer<?> redisContainer;
-    private Jedis jedis;
-
-    @BeforeEach
-    public void startRedisContainer() {
-        redisContainer = new GenericContainer<>(REDIS_IMAGE)
-                .withNetwork(NETWORK)
-                .withNetworkAliases(REDIS_CONTAINER_HOST)
-                .withLogConsumer(new Slf4jLogConsumer(log));
-        redisContainer.setPortBindings(Lists.newArrayList(String.format("%s:%s", REDIS_PORT, REDIS_PORT)));
-        Startables.deepStart(Stream.of(redisContainer)).join();
-        log.info("Redis container started");
-        given().ignoreExceptions()
-            .await()
-            .atLeast(100, TimeUnit.MILLISECONDS)
-            .pollInterval(500, TimeUnit.MILLISECONDS)
-            .atMost(180, TimeUnit.SECONDS)
-            .untilAsserted(this::initJedis);
-        this.generateTestData();
-    }
-
-    private void initJedis() {
-        jedis = new Jedis(REDIS_HOST, REDIS_PORT);
-        jedis.connect();
-    }
-
-    private void generateTestData() {
-        jedis.set("key_test", "test");
-        jedis.set("key_test1", "test1");
-        jedis.set("key_test2", "test2");
-        jedis.set("key_test3", "test3");
-        jedis.set("key_test4", "test4");
-    }
-
-    @Test
-    public void testRedisSourceAndSink() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/redis/redis_source_and_sink.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-        Assertions.assertEquals(5, jedis.llen("key_list"));
-    }
-
-    @AfterEach
-    public void close() {
-        jedis.close();
-        redisContainer.close();
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/resources/redis/redis_source_and_sink.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/resources/redis/redis_source_and_sink.conf
deleted file mode 100644
index a7deb67b2..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/resources/redis/redis_source_and_sink.conf
+++ /dev/null
@@ -1,68 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-  Redis {
-      host = flink_e2e_redis
-      port = 6379
-      keys = "key_test*"
-      data_type = key
-      format = text
-  }
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/Redis
-}
-
-transform {
-
-}
-
-sink {
-
-  Redis {
-      host = flink_e2e_redis
-      port = 6379
-      key = "key_list"
-      data_type = list
-  }
-
-  Assert {
-    rules = [
-      {
-        field_name = content
-        field_type = string
-        field_value = [
-          {
-            rule_type = NOT_NULL
-          }
-        ]
-      }
-    ]
-  }
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/pom.xml
deleted file mode 100644
index 9f9f264ae..000000000
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/pom.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <packaging>pom</packaging>
-
-    <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
-
-    <modules>
-        <module>connector-flink-e2e-base</module>
-        <module>connector-redis-flink-e2e</module>
-        <module>connector-file-flink-e2e</module>
-        <module>connector-jdbc-flink-e2e</module>
-        <module>connector-iotdb-flink-e2e</module>
-        <module>connector-datahub-flink-e2e</module>
-        <module>connector-assert-flink-e2e</module>
-        <module>connector-fake-flink-e2e</module>
-        <module>connector-mongodb-flink-e2e</module>
-        <module>connector-iceberg-flink-e2e</module>
-    </modules>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-flink-starter</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
deleted file mode 100644
index fd6116d2f..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>seatunnel-connector-flink-e2e-base</module>
-        <module>seatunnel-connector-flink-clickhouse-e2e</module>
-        <module>seatunnel-connector-flink-file-e2e</module>
-        <module>seatunnel-connector-flink-http-e2e</module>
-        <module>seatunnel-connector-flink-fake-e2e</module>
-        <module>seatunnel-connector-flink-assert-e2e</module>
-    </modules>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/pom.xml
deleted file mode 100644
index 358771f04..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-flink-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>seatunnel-connector-flink-assert-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-assert</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/java/org/apache/seatunnel/e2e/flink/assertion/FakeSourceToAssertIT.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/java/org/apache/seatunnel/e2e/flink/assertion/FakeSourceToAssertIT.java
deleted file mode 100644
index c6ecd373f..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/java/org/apache/seatunnel/e2e/flink/assertion/FakeSourceToAssertIT.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.assertion;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-public class FakeSourceToAssertIT extends FlinkContainer {
-
-    @Test
-    public void testFakeSourceToAssertSink() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/assertion/fakesource_to_assert.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/resources/assertion/fakesource_to_assert.conf b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/resources/assertion/fakesource_to_assert.conf
deleted file mode 100644
index 8965fdafb..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/resources/assertion/fakesource_to_assert.conf
+++ /dev/null
@@ -1,88 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-    FakeSource {
-      result_table_name = "fake"
-      field_name = "name,age"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Fake
-}
-
-transform {
-    sql {
-      sql = "select name,age from fake"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Sql
-}
-
-sink {
-   AssertSink {
-       rules = 
-           [{
-               field_name = name
-               field_type = string
-               field_value = [
-                   {
-                       rule_type = NOT_NULL
-                   },
-                   {
-                       rule_type = MIN_LENGTH
-                       rule_value = 3
-                   },
-                   {
-                        rule_type = MAX_LENGTH
-                        rule_value = 20
-                   }
-               ]
-           },{
-               field_name = age
-               field_type = int
-               field_value = [
-                   {
-                       rule_type = NOT_NULL
-                   },
-                   {
-                       rule_type = MIN
-                       rule_value = 1
-                   },
-                   {
-                        rule_type = MAX
-                        rule_value = 100
-                   }
-               ]
-           }
-           ]
-   }
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Console
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index 57b61a3c1..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# Set everything to be logged to the console
-log4j.rootCategory=ERROR, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/pom.xml
deleted file mode 100644
index cfa037862..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-flink-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>seatunnel-connector-flink-clickhouse-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-clickhouse</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/java/org/apache/seatunnel/e2e/flink/clickhouse/FakeSourceToClickhouseIT.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/java/org/apache/seatunnel/e2e/flink/clickhouse/FakeSourceToClickhouseIT.java
deleted file mode 100644
index 4790c2bb7..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/java/org/apache/seatunnel/e2e/flink/clickhouse/FakeSourceToClickhouseIT.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.clickhouse;
-
-import static org.awaitility.Awaitility.given;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import com.google.common.collect.Lists;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.Container;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.lifecycle.Startables;
-import ru.yandex.clickhouse.BalancedClickhouseDataSource;
-import ru.yandex.clickhouse.ClickHouseConnection;
-import ru.yandex.clickhouse.ClickHouseStatement;
-
-import java.io.IOException;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.List;
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Stream;
-
-public class FakeSourceToClickhouseIT extends FlinkContainer {
-
-    private GenericContainer<?> clickhouseServer;
-    private BalancedClickhouseDataSource dataSource;
-    private static final String CLICKHOUSE_DOCKER_IMAGE = "yandex/clickhouse-server:22.1.3.7";
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(FakeSourceToClickhouseIT.class);
-
-    @BeforeEach
-    public void startClickhouseContainer() throws InterruptedException {
-        clickhouseServer = new GenericContainer<>(CLICKHOUSE_DOCKER_IMAGE)
-            .withNetwork(NETWORK)
-            .withNetworkAliases("clickhouse")
-            .withLogConsumer(new Slf4jLogConsumer(LOGGER));
-        clickhouseServer.setPortBindings(Lists.newArrayList("8123:8123"));
-        Startables.deepStart(Stream.of(clickhouseServer)).join();
-        LOGGER.info("Clickhouse container started");
-        // wait for clickhouse fully start
-        dataSource = createDatasource();
-        given().ignoreExceptions()
-            .await()
-            .atLeast(100, TimeUnit.MILLISECONDS)
-            .pollInterval(500, TimeUnit.MILLISECONDS)
-            .atMost(5, TimeUnit.SECONDS)
-            .untilAsserted(() -> initializeClickhouseTable());
-    }
-
-    /**
-     * Test insert into clickhouse table from fake source by flink batch mode.
-     *
-     * @throws IOException          read from conf file error.
-     * @throws InterruptedException execute flink job error.
-     * @throws SQLException         execute clickhouse sql error.
-     */
-    @Test
-    public void testFakeSourceToClickhouseSink() throws IOException, InterruptedException, SQLException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/clickhouse/fakesource_to_clickhouse.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-        // query result
-        try (ClickHouseConnection connection = dataSource.getConnection()) {
-            ClickHouseStatement statement = connection.createStatement();
-            ResultSet resultSet = statement.executeQuery("select * from default.seatunnel_console");
-            List<String> result = Lists.newArrayList();
-            while (resultSet.next()) {
-                result.add(resultSet.getString("name"));
-            }
-            Assertions.assertFalse(result.isEmpty());
-        }
-    }
-
-    private BalancedClickhouseDataSource createDatasource() {
-        String jdbcUrl = "jdbc:clickhouse://localhost:8123/default";
-        Properties properties = new Properties();
-        properties.setProperty("user", "default");
-        properties.setProperty("password", "");
-        return new BalancedClickhouseDataSource(jdbcUrl, properties);
-    }
-
-    private void initializeClickhouseTable() {
-        try (ClickHouseConnection connection = dataSource.getConnection()) {
-            ClickHouseStatement statement = connection.createStatement();
-            String initializeTableSql = "CREATE TABLE default.seatunnel_console" +
-                "(" +
-                "    `name` Nullable(String)" +
-                ")ENGINE = Memory";
-            statement.execute(initializeTableSql);
-        } catch (SQLException e) {
-            throw new RuntimeException("Initializing clickhouse table failed", e);
-        }
-    }
-
-    @AfterEach
-    public void closeClickhouseContainer() {
-        if (clickhouseServer != null) {
-            clickhouseServer.stop();
-        }
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/resources/clickhouse/fakesource_to_clickhouse.conf b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/resources/clickhouse/fakesource_to_clickhouse.conf
deleted file mode 100644
index e227d5293..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/resources/clickhouse/fakesource_to_clickhouse.conf
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-    FakeSource {
-      result_table_name = "fake"
-      field_name = "name,age"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Fake
-}
-
-transform {
-    sql {
-      sql = "select name,age from fake"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Sql
-}
-
-sink {
-  Clickhouse {
-    host = "clickhouse:8123"
-    database = "default"
-    table = "seatunnel_console"
-    fields = ["name"]
-    username = "default"
-    password = ""
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Console
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index 57b61a3c1..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# Set everything to be logged to the console
-log4j.rootCategory=ERROR, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/pom.xml
deleted file mode 100644
index 7968e8526..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/pom.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-flink-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-e2e-common</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>${maven-jar-plugin.version}</version>
-                <configuration>
-                    <skip>false</skip>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
deleted file mode 100644
index 169af78f4..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink;
-
-import org.apache.seatunnel.e2e.common.AbstractFlinkContainer;
-
-/**
- * This class is the base class of FlinkEnvironment test.
- * The before method will create a Flink cluster, and after method will close the Flink cluster.
- * You can use {@link FlinkContainer#executeSeaTunnelFlinkJob} to submit a seatunnel config and run a seatunnel job.
- */
-public abstract class FlinkContainer extends AbstractFlinkContainer {
-
-    @Override
-    public String identifier() {
-        return "connector-v1/flink:1.13.6";
-    }
-
-    @Override
-    protected String getStartModuleName() {
-        return "seatunnel-core-flink";
-    }
-
-    @Override
-    protected String getStartShellName() {
-        return "start-seatunnel-flink.sh";
-    }
-
-    @Override
-    protected String getConnectorType() {
-        return "flink";
-    }
-
-    @Override
-    protected String getConnectorModulePath() {
-        return "seatunnel-connectors/seatunnel-connectors-flink";
-    }
-
-    @Override
-    protected String getConnectorNamePrefix() {
-        return "seatunnel-connector-flink-";
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/pom.xml
deleted file mode 100644
index 1d4068196..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-flink-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>seatunnel-connector-flink-fake-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-console</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/java/org/apache/seatunnel/e2e/flink/fake/FakeSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/java/org/apache/seatunnel/e2e/flink/fake/FakeSourceToConsoleIT.java
deleted file mode 100644
index b69489fc8..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/java/org/apache/seatunnel/e2e/flink/fake/FakeSourceToConsoleIT.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.fake;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-public class FakeSourceToConsoleIT extends FlinkContainer {
-
-    @Test
-    public void testFakeSourceToConsoleSink() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/fake/fakesource_to_console.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/resources/fake/fakesource_to_console.conf b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/resources/fake/fakesource_to_console.conf
deleted file mode 100644
index ba0b57305..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/resources/fake/fakesource_to_console.conf
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-    FakeSource {
-      result_table_name = "fake"
-      field_name = "name,age"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Fake
-}
-
-transform {
-    sql {
-      sql = "select name,age from fake"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Sql
-}
-
-sink {
-  ConsoleSink {
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Console
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index 57b61a3c1..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# Set everything to be logged to the console
-log4j.rootCategory=ERROR, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/pom.xml
deleted file mode 100644
index fd39c3092..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-flink-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>seatunnel-connector-flink-file-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-file</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/java/org/apache/seatunnel/e2e/flink/file/FakeSourceToFileIT.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/java/org/apache/seatunnel/e2e/flink/file/FakeSourceToFileIT.java
deleted file mode 100644
index d861e8b4d..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/java/org/apache/seatunnel/e2e/flink/file/FakeSourceToFileIT.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.file;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.Container;
-
-public class FakeSourceToFileIT extends FlinkContainer {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(FakeSourceToFileIT.class);
-
-    @Test
-    public void testFakeSource2FileSink() throws Exception {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/file/fakesource_to_file.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/resources/file/fakesource_to_file.conf b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/resources/file/fakesource_to_file.conf
deleted file mode 100644
index 6d274414e..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/resources/file/fakesource_to_file.conf
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-    FakeSource {
-      result_table_name = "fake"
-      field_name = "name,age"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Fake
-}
-
-transform {
-    sql {
-      sql = "select name,age from fake"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Sql
-}
-
-sink {
-  FileSink {
-    format = "json"
-    path = "file:///tmp/fakesource_to_file.txt"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Console
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index 57b61a3c1..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# Set everything to be logged to the console
-log4j.rootCategory=ERROR, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/pom.xml
deleted file mode 100644
index c4ff4e7cf..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-flink-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>seatunnel-connector-flink-http-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-console</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connector-flink-http</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/java/org/apache/seatunnel/e2e/flink/http/HttpSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/java/org/apache/seatunnel/e2e/flink/http/HttpSourceToConsoleIT.java
deleted file mode 100644
index f6f9bbb7d..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/java/org/apache/seatunnel/e2e/flink/http/HttpSourceToConsoleIT.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.http;
-
-import org.apache.seatunnel.e2e.flink.FlinkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-public class HttpSourceToConsoleIT extends FlinkContainer {
-
-    @Test
-    public void testHttpSourceToConsoleSink() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob("/http/httpsource_to_console.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/resources/http/httpsource_to_console.conf b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/resources/http/httpsource_to_console.conf
deleted file mode 100644
index b69258913..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/resources/http/httpsource_to_console.conf
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of batch processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-  Http {
-    url = "http://date.jsontest.com/"
-    result_table_name = "response_body"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Fake
-}
-
-transform {
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Sql
-}
-
-sink {
-  ConsoleSink {
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Console
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index 57b61a3c1..000000000
--- a/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# Set everything to be logged to the console
-log4j.rootCategory=ERROR, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
deleted file mode 100644
index 02795a7d2..000000000
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <packaging>pom</packaging>
-
-    <artifactId>seatunnel-flink-sql-e2e</artifactId>
-
-    <modules>
-        <module>setunnel-connector-flink-sql-e2e-base</module>
-        <module>setunnel-connector-flink-sql-fake-e2e</module>
-    </modules>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink-sql</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/pom.xml b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/pom.xml
deleted file mode 100644
index 5de92cec7..000000000
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/pom.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-flink-sql-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>setunnel-connector-flink-sql-e2e-base</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-e2e-common</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>${maven-jar-plugin.version}</version>
-                <configuration>
-                    <skip>false</skip>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/sql/FlinkContainer.java b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/sql/FlinkContainer.java
deleted file mode 100644
index 5231369d1..000000000
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/sql/FlinkContainer.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.sql;
-
-import static org.apache.seatunnel.e2e.common.util.ContainerUtil.copyConfigFileToContainer;
-
-import org.apache.seatunnel.e2e.common.AbstractFlinkContainer;
-
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-/**
- * This class is the base class of FlinkEnvironment test.
- * The before method will create a Flink cluster, and after method will close the Flink cluster.
- * You can use {@link FlinkContainer#executeSeaTunnelFlinkJob(String)} to submit a seatunnel config and run a seatunnel job.
- */
-public abstract class FlinkContainer extends AbstractFlinkContainer {
-
-    @Override
-    public String identifier() {
-        return "connector-v1/flink-sql:1.13.6";
-    }
-
-    @Override
-    protected String getStartModuleName() {
-        return "seatunnel-core-flink-sql";
-    }
-
-    @Override
-    protected String getStartShellName() {
-        return "start-seatunnel-sql.sh";
-    }
-
-    @Override
-    protected String getConnectorType() {
-        return "flink-sql";
-    }
-
-    @Override
-    protected String getConnectorModulePath() {
-        return "seatunnel-connectors/seatunnel-connectors-flink-sql";
-    }
-
-    @Override
-    protected String getConnectorNamePrefix() {
-        return "flink-sql-connector-";
-    }
-
-    public Container.ExecResult executeSeaTunnelFlinkJob(String confFile) throws IOException, InterruptedException {
-        final String confInContainerPath = copyConfigFileToContainer(jobManager, confFile);
-        return executeCommand(jobManager, confInContainerPath);
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/pom.xml
deleted file mode 100644
index 24b8b010d..000000000
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>seatunnel-flink-sql-e2e</artifactId>
-        <groupId>org.apache.seatunnel</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>setunnel-connector-flink-sql-fake-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>setunnel-connector-flink-sql-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <!-- Flink has built-in DataGen and Print sql connectors -->
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/java/org/apache/seatunnel/e2e/flink/sql/fake/DatagenToConsoleIT.java b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/java/org/apache/seatunnel/e2e/flink/sql/fake/DatagenToConsoleIT.java
deleted file mode 100644
index b9f57920c..000000000
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/java/org/apache/seatunnel/e2e/flink/sql/fake/DatagenToConsoleIT.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.sql.fake;
-
-import org.apache.seatunnel.e2e.flink.sql.FlinkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-public class DatagenToConsoleIT extends FlinkContainer {
-
-    @Test
-    public void testDatagenToConsole() throws IOException, InterruptedException {
-        final String configFile = "/fake/flink.sql.conf";
-        Container.ExecResult execResult = executeSeaTunnelFlinkJob(configFile);
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/resources/fake/flink.sql.conf b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/resources/fake/flink.sql.conf
deleted file mode 100644
index a604c2d5a..000000000
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/resources/fake/flink.sql.conf
+++ /dev/null
@@ -1,50 +0,0 @@
---
--- Licensed to the Apache Software Foundation (ASF) under one or more
--- contributor license agreements.  See the NOTICE file distributed with
--- this work for additional information regarding copyright ownership.
--- The ASF licenses this file to You under the Apache License, Version 2.0
--- (the "License"); you may not use this file except in compliance with
--- the License.  You may obtain a copy of the License at
---
---     http://www.apache.org/licenses/LICENSE-2.0
---
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
---
-
---
--- This config file is a demonstration of sql processing in SeaTunnel config
---
---
-
-
-SET 'table.dml-sync' = 'true';
-
-CREATE TABLE events (
-  f_type INT,
-  f_uid INT,
-  ts AS localtimestamp,
-  WATERMARK FOR ts AS ts
-) WITH (
-  'connector' = 'datagen',
-  'rows-per-second'='5',
-  'fields.f_type.min'='1',
-  'fields.f_type.max'='5',
-  'fields.f_uid.kind'='sequence',
-  'fields.f_uid.start'='1',
-  'fields.f_uid.end'='100'
-);
-
-CREATE TABLE print_table (
-  type INT,
-  uid INT,
-  lstmt TIMESTAMP
-) WITH (
-  'connector' = 'print',
-  'sink.parallelism' = '1'
-);
-
-INSERT INTO print_table SELECT * FROM events;
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index 57b61a3c1..000000000
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# Set everything to be logged to the console
-log4j.rootCategory=ERROR, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/pom.xml
deleted file mode 100644
index 79c3916e7..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-datahub-spark-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-spark-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-datahub</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/datahub/FakeSourceToDatahubIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/datahub/FakeSourceToDatahubIT.java
deleted file mode 100644
index 3f1518b72..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/datahub/FakeSourceToDatahubIT.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.spark.v2.datahub;
-
-import org.apache.seatunnel.e2e.spark.SparkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-@Disabled("Disabled because it needs user's personal datahub account to run this test")
-public class FakeSourceToDatahubIT extends SparkContainer {
-
-    @Test
-    public void testFakeSourceToDatahub() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelSparkJob("/datahub/fakesource_to_datahub.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/resources/datahub/fakesource_to_datahub.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/resources/datahub/fakesource_to_datahub.conf
deleted file mode 100644
index edc66d6a2..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/resources/datahub/fakesource_to_datahub.conf
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set flink configuration here
-  execution.parallelism = 1
-  job.mode = "BATCH"
-  #execution.checkpoint.interval = 10000
-  #execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"
-}
-
-source {
-  # This is a example source plugin **only for test and demonstrate the feature source plugin**
-  FakeSource {
-    result_table_name = "fake"
-    schema = {
-      fields {
-        name = "string"
-        age = "int"
-      }
-    }
-  }
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-    sql {
-      sql = "select name,age from fake"
-    }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/transform/sql
-}
-
-sink {
-  DataHub {
-    endpoint="xxx"
-    accessId="xxx"
-    accessKey="xxx"
-    project="xxx"
-    topic="xxx"
-    timeout=3000
-    retryTimes=3
-   }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/sink
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/pom.xml
deleted file mode 100644
index 1f9e6d844..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-fake-spark-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-spark-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-console</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/fake/FakeSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/fake/FakeSourceToConsoleIT.java
deleted file mode 100644
index aba02d08a..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/fake/FakeSourceToConsoleIT.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.spark.v2.fake;
-
-import org.apache.seatunnel.e2e.spark.SparkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-/**
- * This test case is used to verify that the fake source is able to send data to the console.
- * Make sure the SeaTunnel job can submit successfully on spark engine.
- */
-public class FakeSourceToConsoleIT extends SparkContainer {
-
-    @Test
-    public void testFakeSourceToConsoleSine() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelSparkJob("/fake/fakesource_to_console.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/resources/fake/fakesource_to_console.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/resources/fake/fakesource_to_console.conf
deleted file mode 100644
index f469338a5..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/resources/fake/fakesource_to_console.conf
+++ /dev/null
@@ -1,79 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-######
-###### This config file is a demonstration of streaming processing in seatunnel config
-######
-
-env {
-  # You can set spark configuration here
-  # see available properties defined by spark: https://spark.apache.org/docs/latest/configuration.html#available-properties
-  job.mode = "BATCH"
-  spark.app.name = "SeaTunnel"
-  spark.executor.instances = 2
-  spark.executor.cores = 1
-  spark.executor.memory = "1g"
-  spark.master = local
-}
-
-source {
-  # This is a example input plugin **only for test and demonstrate the feature input plugin**
-  FakeSource {
-    result_table_name = "my_dataset"
-    schema = {
-      fields {
-        name = "string"
-        age = "int"
-      }
-    }
-  }
-
-  # You can also use other input plugins, such as hdfs
-  # hdfs {
-  #   result_table_name = "accesslog"
-  #   path = "hdfs://hadoop-cluster-01/nginx/accesslog"
-  #   format = "json"
-  # }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-  # split data by specific delimiter
-
-  # you can also use other transform plugins, such as sql
-  # sql {
-  #   sql = "select * from accesslog where request_time > 1000"
-  # }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/spark/configuration/transform-plugins/Split
-}
-
-sink {
-  # choose stdout output plugin to output data to console
-  Console {}
-
-  # you can also you other output plugins, such as sql
-  # hdfs {
-  #   path = "hdfs://hadoop-cluster-01/nginx/accesslog_processed"
-  #   save_mode = "append"
-  # }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of output plugins,
-  # please go to https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Console
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/pom.xml
deleted file mode 100644
index 0ab6f3efd..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/pom.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-file-spark-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-spark-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- SeaTunnel connectors -->
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-fake</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-file-local</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-file-hadoop</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/file/FakeSourceToFileIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/file/FakeSourceToFileIT.java
deleted file mode 100644
index b2535ebf2..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/file/FakeSourceToFileIT.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.spark.v2.file;
-
-import org.apache.seatunnel.e2e.spark.SparkContainer;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-
-import java.io.IOException;
-
-/**
- * This test case is used to verify that the fake source is able to send data to the console.
- * Make sure the SeaTunnel job can submit successfully on spark engine.
- */
-public class FakeSourceToFileIT extends SparkContainer {
-
-    /**
-     *  fake source -> local text file sink
-     */
-    @Test
-    public void testFakeSourceToLocalFileText() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelSparkJob("/file/fakesource_to_local_text.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-
-    /**
-     *  fake source -> local parquet file sink
-     */
-    @Test
-    public void testFakeSourceToLocalFileParquet() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelSparkJob("/file/fakesource_to_local_parquet.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-
-    /**
-     *  fake source -> local json file sink
-     */
-    @Test
-    public void testFakeSourceToLocalFileJson() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelSparkJob("/file/fakesource_to_local_json.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-}
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_json.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_json.conf
deleted file mode 100644
index f8dab0cbc..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_json.conf
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  # You can set spark configuration here
-  spark.app.name = "SeaTunnel"
-  spark.executor.instances = 2
-  spark.executor.cores = 1
-  spark.executor.memory = "1g"
-  spark.master = local
-  job.mode = "BATCH"
-}
-
-source {
-  FakeSource {
-    result_table_name = "fake"
-    schema = {
-      fields {
-        name = "string"
-        age = "int"
-      }
-    }
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-  sql {
-    sql = "select name,age from fake"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/category/transform
-}
-
-sink {
-  LocalFile {
-    path="/tmp/hive/warehouse/test2"
-    row_delimiter="\n"
-    partition_by=["age"]
-    partition_dir_expression="${k0}=${v0}"
-    is_partition_field_write_in_file=true
-    file_name_expression="${transactionId}_${now}"
-    file_format="json"
-    sink_columns=["name","age"]
-    filename_time_format="yyyy.MM.dd"
-    is_enable_transaction=true
-    save_mode="error"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/sink/File
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_parquet.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_parquet.conf
deleted file mode 100644
index edbad7ec6..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_parquet.conf
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  # You can set spark configuration here
-  spark.app.name = "SeaTunnel"
-  spark.executor.instances = 2
-  spark.executor.cores = 1
-  spark.executor.memory = "1g"
-  spark.master = local
-  job.mode = "BATCH"
-}
-
-source {
-  FakeSource {
-    result_table_name = "fake"
-    schema = {
-      fields {
-        name = "string"
-        age = "int"
-      }
-    }
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-  sql {
-    sql = "select name,age from fake"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/category/transform
-}
-
-sink {
-  LocalFile {
-    path="/tmp/hive/warehouse/test2"
-    field_delimiter="\t"
-    row_delimiter="\n"
-    partition_by=["age"]
-    partition_dir_expression="${k0}=${v0}"
-    is_partition_field_write_in_file=true
-    file_name_expression="${transactionId}_${now}"
-    file_format="parquet"
-    sink_columns=["name","age"]
-    filename_time_format="yyyy.MM.dd"
-    is_enable_transaction=true
-    save_mode="error"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/sink/File
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_text.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_text.conf
deleted file mode 100644
index 41ff5e8f6..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_text.conf
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-env {
-  # You can set spark configuration here
-  spark.app.name = "SeaTunnel"
-  spark.executor.instances = 2
-  spark.executor.cores = 1
-  spark.executor.memory = "1g"
-  spark.master = local
-  job.mode = "BATCH"
-}
-
-source {
-  FakeSource {
-    result_table_name = "fake"
-    schema = {
-      fields {
-        name = "string"
-        age = "int"
-      }
-    }
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource
-}
-
-transform {
-  sql {
-    sql = "select name,age from fake"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
-  # please go to https://seatunnel.apache.org/docs/category/transform
-}
-
-sink {
-  LocalFile {
-    path="/tmp/hive/warehouse/test2"
-    field_delimiter="\t"
-    row_delimiter="\n"
-    partition_by=["age"]
-    partition_dir_expression="${k0}=${v0}"
-    is_partition_field_write_in_file=true
-    file_name_expression="${transactionId}_${now}"
-    file_format="text"
-    sink_columns=["name","age"]
-    filename_time_format="yyyy.MM.dd"
-    is_enable_transaction=true
-    save_mode="error"
-  }
-
-  # If you would like to get more information about how to configure seatunnel and see full list of sink plugins,
-  # please go to https://seatunnel.apache.org/docs/connector-v2/sink/File
-}
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/log4j.properties
deleted file mode 100644
index db5d9e512..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Set everything to be logged to the console
-log4j.rootCategory=INFO, console
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iceberg-spark-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iceberg-spark-e2e/pom.xml
deleted file mode 100644
index 50607ada4..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iceberg-spark-e2e/pom.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>connector-iceberg-spark-e2e</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-spark-e2e-base</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>connector-iceberg</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iceberg-spark-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iceberg/IcebergSourceIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iceberg-spark-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iceberg/IcebergSourceIT.java
deleted file mode 100644
index 866cb4d09..000000000
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iceberg-spark-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iceberg/IcebergSourceIT.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.seatunnel.e2e.flink.v2.iceberg;
-
-import org.apache.seatunnel.connectors.seatunnel.iceberg.IcebergCatalogFactory;
-import org.apache.seatunnel.e2e.spark.SparkContainer;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.iceberg.DataFile;
-import org.apache.iceberg.DataFiles;
-import org.apache.iceberg.FileFormat;
-import org.apache.iceberg.Files;
-import org.apache.iceberg.PartitionSpec;
-import org.apache.iceberg.Schema;
-import org.apache.iceberg.Table;
-import org.apache.iceberg.catalog.Catalog;
-import org.apache.iceberg.catalog.Namespace;
-import org.apache.iceberg.catalog.TableIdentifier;
-import org.apache.iceberg.data.GenericAppenderFactory;
-import org.apache.iceberg.data.GenericRecord;
-import org.apache.iceberg.data.Record;
-import org.apache.iceberg.hadoop.HadoopInputFile;
-import org.apache.iceberg.io.FileAppender;
-import org.apache.iceberg.io.FileAppenderFactory;
-import org.apache.iceberg.types.Types;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.testcontainers.containers.Container;
-import org.testcontainers.utility.MountableFile;
-
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.nio.ByteBuffer;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.time.OffsetDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-@Slf4j
-public class IcebergSourceIT extends SparkContainer {
-
-    private static final TableIdentifier TABLE = TableIdentifier.of(
-        Namespace.of("database1"), "source");
-    private static final Schema SCHEMA = new Schema(
-        Types.NestedField.optional(1, "f1", Types.LongType.get()),
-        Types.NestedField.optional(2, "f2", Types.BooleanType.get()),
-        Types.NestedField.optional(3, "f3", Types.IntegerType.get()),
-        Types.NestedField.optional(4, "f4", Types.LongType.get()),
-        Types.NestedField.optional(5, "f5", Types.FloatType.get()),
-        Types.NestedField.optional(6, "f6", Types.DoubleType.get()),
-        Types.NestedField.optional(7, "f7", Types.DateType.get()),
-        Types.NestedField.optional(8, "f8", Types.TimeType.get()),
-        Types.NestedField.optional(9, "f9", Types.TimestampType.withZone()),
-        Types.NestedField.optional(10, "f10", Types.TimestampType.withoutZone()),
-        Types.NestedField.optional(11, "f11", Types.StringType.get()),
-        Types.NestedField.optional(12, "f12", Types.FixedType.ofLength(10)),
-        Types.NestedField.optional(13, "f13", Types.BinaryType.get()),
-        Types.NestedField.optional(14, "f14", Types.DecimalType.of(19, 9)),
-        Types.NestedField.optional(15, "f15", Types.ListType.ofOptional(
-            100, Types.IntegerType.get())),
-        Types.NestedField.optional(16, "f16", Types.MapType.ofOptional(
-            200, 300, Types.StringType.get(), Types.IntegerType.get())),
-        Types.NestedField.optional(17, "f17", Types.StructType.of(
-            Types.NestedField.required(400, "f17_a", Types.StringType.get())))
-    );
-
-    private static final String CATALOG_NAME = "seatunnel";
-    private static final String CATALOG_TYPE = "hadoop";
-    private static final String CATALOG_DIR = "/tmp/seatunnel/iceberg/spark/";
-    private static final String WAREHOUSE = "file://" + CATALOG_DIR;
-    private static Catalog CATALOG;
-
-    @BeforeEach
-    public void start() {
-        initializeIcebergTable();
-        batchInsertData();
-        MountableFile catalogPath = MountableFile.forHostPath(CATALOG_DIR);
-        master.copyFileToContainer(catalogPath, CATALOG_DIR);
-    }
-
-    @Test
-    public void testIcebergSource() throws IOException, InterruptedException {
-        Container.ExecResult execResult = executeSeaTunnelSparkJob("/iceberg/iceberg_source.conf");
-        Assertions.assertEquals(0, execResult.getExitCode());
-    }
-
-    private void initializeIcebergTable() {
-        CATALOG = new IcebergCatalogFactory(CATALOG_NAME,
-            CATALOG_TYPE,
-            WAREHOUSE,
-            null)
-            .create();
-        if (!CATALOG.tableExists(TABLE)) {
-            CATALOG.createTable(TABLE, SCHEMA);
-        }
-    }
-
-    private void batchInsertData() {
-        GenericRecord record = GenericRecord.create(SCHEMA);
-        record.setField("f1", Long.valueOf(0));
-        record.setField("f2", true);
-        record.setField("f3", Integer.MAX_VALUE);
-        record.setField("f4", Long.MAX_VALUE);
-        record.setField("f5", Float.MAX_VALUE);
-        record.setField("f6", Double.MAX_VALUE);
-        record.setField("f7", LocalDate.now());
-        record.setField("f8", LocalTime.now());
-        record.setField("f9", OffsetDateTime.now());
-        record.setField("f10", LocalDateTime.now());
-        record.setField("f11", "test");
-        record.setField("f12", "abcdefghij".getBytes());
-        record.setField("f13", ByteBuffer.wrap("test".getBytes()));
-        record.setField("f14", new BigDecimal("1000000000.000000001"));
-        record.setField("f15", Arrays.asList(Integer.MAX_VALUE));
-        record.setField("f16", Collections.singletonMap("key", Integer.MAX_VALUE));
-        Record structRecord = GenericRecord.create(SCHEMA.findField("f17").type().asStructType());
-        structRecord.setField("f17_a", "test");
-        record.setField("f17", structRecord);
-
-        Table table = CATALOG.loadTable(TABLE);
-        FileAppenderFactory appenderFactory = new GenericAppenderFactory(SCHEMA);
-        List<Record> records = new ArrayList<>();
-        for (int i = 0; i < 100; i++) {
-            records.add(record.copy("f1", Long.valueOf(i)));
-            if (i % 10 == 0) {
-                String externalFilePath = String.format(CATALOG_DIR + "external_file/datafile_%s.avro", i);
-                FileAppender<Record> fileAppender = appenderFactory.newAppender(
-                    Files.localOutput(externalFilePath), FileFormat.fromFileName(externalFilePath));
-                try (FileAppender<Record> fileAppenderCloseable = fileAppender) {
-                    fileAppenderCloseable.addAll(records);
... 6834 lines suppressed ...