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

lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git


The following commit(s) were added to refs/heads/master by this push:
     new e34fa09a1 [flink][cdc][refactor] Split CDC actions to separate module 
(#1981)
e34fa09a1 is described below

commit e34fa09a16a73b40afef68b3c9dbc5fc4619403a
Author: yuzelin <[email protected]>
AuthorDate: Tue Sep 12 11:15:25 2023 +0800

    [flink][cdc][refactor] Split CDC actions to separate module (#1981)
---
 .../{utitcase.yml => flink-cdc-tests.yml}          |   6 +-
 .github/workflows/utitcase.yml                     |   2 +-
 paimon-e2e-tests/pom.xml                           |   8 +
 paimon-flink/paimon-flink-1.14/pom.xml             |  13 ++
 paimon-flink/paimon-flink-1.15/pom.xml             |  13 ++
 paimon-flink/paimon-flink-1.16/pom.xml             |  14 ++
 paimon-flink/paimon-flink-1.17/pom.xml             |  13 ++
 .../pom.xml                                        | 250 +++++++--------------
 .../flink/action/cdc/CdcActionCommonUtils.java     |   0
 .../paimon/flink/action/cdc/ComputedColumn.java    |   0
 .../flink/action/cdc/ComputedColumnUtils.java      |   0
 .../apache/paimon/flink/action/cdc/Expression.java |   0
 .../flink/action/cdc/TableNameConverter.java       |   0
 .../paimon/flink/action/cdc/TypeMapping.java       |   0
 .../flink/action/cdc/kafka/KafkaActionUtils.java   |   0
 .../paimon/flink/action/cdc/kafka/KafkaSchema.java |   0
 .../action/cdc/kafka/KafkaSyncDatabaseAction.java  |   0
 .../cdc/kafka/KafkaSyncDatabaseActionFactory.java  |   0
 .../action/cdc/kafka/KafkaSyncTableAction.java     |   0
 .../cdc/kafka/KafkaSyncTableActionFactory.java     |   0
 .../flink/action/cdc/kafka/formats/DataFormat.java |   0
 .../action/cdc/kafka/formats/RecordParser.java     |   0
 .../cdc/kafka/formats/RecordParserFactory.java     |   0
 .../cdc/kafka/formats/canal/CanalFieldParser.java  |   0
 .../cdc/kafka/formats/canal/CanalRecordParser.java |   0
 .../cdc/kafka/formats/ogg/OggRecordParser.java     |   0
 .../action/cdc/mongodb/MongoDBActionUtils.java     |   0
 .../action/cdc/mongodb/MongoDBRecordParser.java    |   0
 .../cdc/mongodb/MongoDBSyncDatabaseAction.java     |   0
 .../mongodb/MongoDBSyncDatabaseActionFactory.java  |   0
 .../action/cdc/mongodb/MongoDBSyncTableAction.java |   0
 .../cdc/mongodb/MongoDBSyncTableActionFactory.java |   0
 .../flink/action/cdc/mongodb/MongodbSchema.java    |   0
 .../action/cdc/mongodb/SchemaAcquisitionMode.java  |   0
 .../mongodb/strategy/Mongo4VersionStrategy.java    |   0
 .../cdc/mongodb/strategy/MongoVersionStrategy.java |   0
 .../flink/action/cdc/mysql/MySqlActionUtils.java   |   0
 .../cdc/mysql/MySqlDebeziumJsonEventParser.java    |   0
 .../action/cdc/mysql/MySqlSyncDatabaseAction.java  |   0
 .../cdc/mysql/MySqlSyncDatabaseActionFactory.java  |   0
 .../action/cdc/mysql/MySqlSyncTableAction.java     |   0
 .../cdc/mysql/MySqlSyncTableActionFactory.java     |   0
 .../action/cdc/mysql/MySqlTableSchemaBuilder.java  |   0
 .../flink/action/cdc/mysql/MySqlTypeUtils.java     |   0
 .../cdc/mysql/schema/AllMergedMySqlTableInfo.java  |   0
 .../flink/action/cdc/mysql/schema/MySqlSchema.java |   0
 .../action/cdc/mysql/schema/MySqlSchemasInfo.java  |   0
 .../action/cdc/mysql/schema/MySqlTableInfo.java    |   0
 .../mysql/schema/ShardsMergedMySqlTableInfo.java   |   0
 .../cdc/mysql/schema/UnmergedMySqlTableInfo.java   |   0
 .../services/org.apache.paimon.factories.Factory   |  13 +-
 .../flink/action/cdc/CdcActionITCaseBase.java      |   0
 .../flink/action/cdc/TruncateComputerTest.java     |   0
 .../action/cdc/kafka/KafkaActionITCaseBase.java    |   0
 .../kafka/KafkaCanalSyncDatabaseActionITCase.java  |   0
 .../cdc/kafka/KafkaCanalSyncTableActionITCase.java |   0
 .../kafka/KafkaOggSyncDatabaseActionITCase.java    |   0
 .../cdc/kafka/KafkaOggSyncTableActionITCase.java   |   0
 .../flink/action/cdc/kafka/KafkaSchemaITCase.java  |   0
 .../cdc/mongodb/MongoDBActionITCaseBase.java       |   0
 .../flink/action/cdc/mongodb/MongoDBContainer.java |   0
 .../mongodb/MongoDBSyncDatabaseActionITCase.java   |   0
 .../cdc/mongodb/MongoDBSyncTableActionITCase.java  |   0
 .../action/cdc/mysql/MySqlActionITCaseBase.java    |   0
 .../cdc/mysql/MySqlCdcTypeMappingITCase.java       |   0
 .../flink/action/cdc/mysql/MySqlContainer.java     |   0
 .../cdc/mysql/MySqlSyncDatabaseActionITCase.java   |   0
 .../mysql/MySqlSyncDatabaseTableListITCase.java    |   0
 .../cdc/mysql/MySqlSyncTableActionITCase.java      |   0
 .../flink/action/cdc/mysql/MySqlVersion.java       |   0
 .../cdc/mysql/TestAlterTableCatalogFactory.java    |   0
 .../mysql/TestCaseInsensitiveCatalogFactory.java   |   0
 .../services/org.apache.paimon.factories.Factory   |   7 +-
 .../org.junit.jupiter.api.extension.Extension}     |   8 +-
 .../canal/database/include/topic0/canal-data-1.txt |   0
 .../database/prefixsuffix/topic0/canal-data-1.txt  |   0
 .../database/prefixsuffix/topic0/canal-data-2.txt  |   0
 .../database/prefixsuffix/topic0/canal-data-3.txt  |   0
 .../database/prefixsuffix/topic1/canal-data-1.txt  |   0
 .../database/prefixsuffix/topic1/canal-data-2.txt  |   0
 .../database/prefixsuffix/topic1/canal-data-3.txt  |   0
 .../schemaevolution/topic0/canal-data-1.txt        |   0
 .../schemaevolution/topic0/canal-data-2.txt        |   0
 .../schemaevolution/topic0/canal-data-3.txt        |   0
 .../schemaevolution/topic1/canal-data-1.txt        |   0
 .../schemaevolution/topic1/canal-data-2.txt        |   0
 .../schemaevolution/topic1/canal-data-3.txt        |   0
 .../schemaevolution/topic2/canal-data-1.txt        |   0
 .../schemaevolution/topic2/canal-data-2.txt        |   0
 .../schemaevolution/topic2/canal-data-3.txt        |   0
 .../kafka/canal/database/tostring/canal-data-1.txt |   0
 .../kafka/canal/table/alltype/canal-data.txt       |   0
 .../canal/table/computedcolumn/canal-data-1.txt    |   0
 .../canal/table/nononddldata/canal-data-1.txt      |   0
 .../canal/table/schemaevolution/canal-data-1.txt   |   0
 .../canal/table/schemaevolution/canal-data-2.txt   |   0
 .../canal/table/schemaevolution/canal-data-3.txt   |   0
 .../canal/table/schemaevolution/canal-data-4.txt   |   0
 .../canal/table/schemaevolution/canal-data-5.txt   |   0
 .../schemaevolutionmissingddl/canal-data-1.txt     |   0
 .../schemaevolutionmissingddl/canal-data-2.txt     |   0
 .../schemaevolutionmissingddl/canal-data-3.txt     |   0
 .../schemaevolutionmissingddl/canal-data-4.txt     |   0
 .../schemaevolutionmissingddl/canal-data-5.txt     |   0
 .../table/schemaevolutionmultiple/canal-data-1.txt |   0
 .../table/schemaevolutionmultiple/canal-data-2.txt |   0
 .../kafka/canal/table/startupmode/canal-data-1.txt |   0
 .../kafka/canal/table/startupmode/canal-data-2.txt |   0
 .../kafka/canal/table/tostring/canal-data-1.txt    |   0
 .../ogg/database/include/topic0/ogg-data-1.txt     |   0
 .../database/prefixsuffix/topic0/ogg-data-1.txt    |   0
 .../database/prefixsuffix/topic0/ogg-data-2.txt    |   0
 .../database/prefixsuffix/topic1/ogg-data-1.txt    |   0
 .../database/prefixsuffix/topic1/ogg-data-2.txt    |   0
 .../database/schemaevolution/topic0/ogg-data-1.txt |   0
 .../database/schemaevolution/topic0/ogg-data-2.txt |   0
 .../database/schemaevolution/topic1/ogg-data-1.txt |   0
 .../database/schemaevolution/topic1/ogg-data-2.txt |   0
 .../kafka/ogg/table/computedcolumn/ogg-data-1.txt  |   0
 .../kafka/ogg/table/schemaevolution/ogg-data-1.txt |   0
 .../kafka/ogg/table/schemaevolution/ogg-data-2.txt |   0
 .../kafka/ogg/table/schemaevolution/ogg-data-3.txt |   0
 .../kafka/ogg/table/startupmode/ogg-data-1.txt     |   0
 .../kafka/ogg/table/startupmode/ogg-data-2.txt     |   0
 .../src/test/resources/log4j2-test.properties      |  28 +++
 .../test/resources/mongodb/database/test-data-1.js |   0
 .../test/resources/mongodb/database/test-data-2.js |   0
 .../test/resources/mongodb/database/test-data-3.js |   0
 .../test/resources/mongodb/database/test-data-4.js |   0
 .../test/resources/mongodb/database/test-data-5.js |   0
 .../test/resources/mongodb/database/test-data-6.js |   0
 .../src/test/resources/mongodb/docker/random.key   |   0
 .../src/test/resources/mongodb/docker/setup.js     |   0
 .../mongodb/table/computedcolumn/test-table-1.js   |   0
 .../test/resources/mongodb/table/inventory-1.js    |   0
 .../test/resources/mongodb/table/inventory-2.js    |   0
 .../test/resources/mongodb/table/inventory-3.js    |   0
 .../test/resources/mongodb/table/inventory-4.js    |   0
 .../src/test/resources/mysql/my.cnf                |   0
 .../test/resources/mysql/sync_database_setup.sql   |   0
 .../src/test/resources/mysql/sync_table_setup.sql  |   0
 .../test/resources/mysql/tablelist_test_setup.sql  |   0
 .../resources/mysql/type_mapping_test_setup.sql    |   0
 paimon-flink/paimon-flink-common/pom.xml           |  76 -------
 .../services/org.apache.paimon.factories.Factory   |   6 -
 .../services/org.apache.paimon.factories.Factory   |   3 -
 paimon-flink/pom.xml                               |   1 +
 147 files changed, 175 insertions(+), 286 deletions(-)

diff --git a/.github/workflows/utitcase.yml 
b/.github/workflows/flink-cdc-tests.yml
similarity index 86%
copy from .github/workflows/utitcase.yml
copy to .github/workflows/flink-cdc-tests.yml
index 8f1b9e136..0c2a5f4d2 100644
--- a/.github/workflows/utitcase.yml
+++ b/.github/workflows/flink-cdc-tests.yml
@@ -15,8 +15,7 @@
 #  See the License for the specific language governing permissions and
 # limitations under the License.
 
################################################################################
-
-name: UTCase and ITCase Non Flink
+name: Flink CDC Tests
 
 on:
   push:
@@ -47,11 +46,10 @@ jobs:
       - name: Build and Test
         timeout-minutes: 60
         run: |
-          # run tests with random timezone to find out timezone related bugs
           . .github/workflows/utils.sh
           jvm_timezone=$(random_timezone)
           echo "JVM timezone is set to $jvm_timezone"
           mvn -T 1C -B clean install -DskipTests
-          mvn -T 1C -B clean install -pl 
'!paimon-e2e-tests,!org.apache.paimon:paimon-flink-common' 
-Duser.timezone=$jvm_timezone
+          mvn -T 1C -B clean install -pl 'org.apache.paimon:paimon-flink-cdc' 
-Duser.timezone=$jvm_timezone
         env:
           MAVEN_OPTS: -Xmx4096m
\ No newline at end of file
diff --git a/.github/workflows/utitcase.yml b/.github/workflows/utitcase.yml
index 8f1b9e136..a7ad49370 100644
--- a/.github/workflows/utitcase.yml
+++ b/.github/workflows/utitcase.yml
@@ -52,6 +52,6 @@ jobs:
           jvm_timezone=$(random_timezone)
           echo "JVM timezone is set to $jvm_timezone"
           mvn -T 1C -B clean install -DskipTests
-          mvn -T 1C -B clean install -pl 
'!paimon-e2e-tests,!org.apache.paimon:paimon-flink-common' 
-Duser.timezone=$jvm_timezone
+          mvn -T 1C -B clean install -pl 
'!paimon-e2e-tests,!org.apache.paimon:paimon-flink-common,!org.apache.paimon:paimon-flink-cdc'
 -Duser.timezone=$jvm_timezone
         env:
           MAVEN_OPTS: -Xmx4096m
\ No newline at end of file
diff --git a/paimon-e2e-tests/pom.xml b/paimon-e2e-tests/pom.xml
index 3a954ff20..0bfdc9dd3 100644
--- a/paimon-e2e-tests/pom.xml
+++ b/paimon-e2e-tests/pom.xml
@@ -91,6 +91,14 @@ under the License.
             <scope>test</scope>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.paimon</groupId>
+            <artifactId>paimon-flink-cdc</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+            <type>test-jar</type>
+        </dependency>
+
         <!-- testcontainers -->
 
         <dependency>
diff --git a/paimon-flink/paimon-flink-1.14/pom.xml 
b/paimon-flink/paimon-flink-1.14/pom.xml
index a778e5a58..69a7ea55a 100644
--- a/paimon-flink/paimon-flink-1.14/pom.xml
+++ b/paimon-flink/paimon-flink-1.14/pom.xml
@@ -49,6 +49,18 @@ under the License.
             </exclusions>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.paimon</groupId>
+            <artifactId>paimon-flink-cdc</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.flink</groupId>
             
<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
@@ -151,6 +163,7 @@ under the License.
                             <artifactSet>
                                 <includes combine.children="append">
                                     
<include>org.apache.paimon:paimon-flink-common</include>
+                                    
<include>org.apache.paimon:paimon-flink-cdc</include>
                                 </includes>
                             </artifactSet>
                         </configuration>
diff --git a/paimon-flink/paimon-flink-1.15/pom.xml 
b/paimon-flink/paimon-flink-1.15/pom.xml
index 7d90ec426..d196b7acd 100644
--- a/paimon-flink/paimon-flink-1.15/pom.xml
+++ b/paimon-flink/paimon-flink-1.15/pom.xml
@@ -49,6 +49,18 @@ under the License.
             </exclusions>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.paimon</groupId>
+            <artifactId>paimon-flink-cdc</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-table-api-java-bridge</artifactId>
@@ -158,6 +170,7 @@ under the License.
                             <artifactSet>
                                 <includes combine.children="append">
                                     
<include>org.apache.paimon:paimon-flink-common</include>
+                                    
<include>org.apache.paimon:paimon-flink-cdc</include>
                                 </includes>
                             </artifactSet>
                         </configuration>
diff --git a/paimon-flink/paimon-flink-1.16/pom.xml 
b/paimon-flink/paimon-flink-1.16/pom.xml
index 38cc50c12..04343261b 100644
--- a/paimon-flink/paimon-flink-1.16/pom.xml
+++ b/paimon-flink/paimon-flink-1.16/pom.xml
@@ -49,6 +49,19 @@ under the License.
                 </exclusion>
             </exclusions>
         </dependency>
+
+        <dependency>
+            <groupId>org.apache.paimon</groupId>
+            <artifactId>paimon-flink-cdc</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-table-common</artifactId>
@@ -97,6 +110,7 @@ under the License.
                             <artifactSet>
                                 <includes combine.children="append">
                                     
<include>org.apache.paimon:paimon-flink-common</include>
+                                    
<include>org.apache.paimon:paimon-flink-cdc</include>
                                 </includes>
                             </artifactSet>
                         </configuration>
diff --git a/paimon-flink/paimon-flink-1.17/pom.xml 
b/paimon-flink/paimon-flink-1.17/pom.xml
index acafce477..3426b480a 100644
--- a/paimon-flink/paimon-flink-1.17/pom.xml
+++ b/paimon-flink/paimon-flink-1.17/pom.xml
@@ -43,6 +43,18 @@ under the License.
             <artifactId>paimon-flink-common</artifactId>
             <version>${project.version}</version>
         </dependency>
+
+        <dependency>
+            <groupId>org.apache.paimon</groupId>
+            <artifactId>paimon-flink-cdc</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
     </dependencies>
 
     <build>
@@ -61,6 +73,7 @@ under the License.
                             <artifactSet>
                                 <includes combine.children="append">
                                     
<include>org.apache.paimon:paimon-flink-common</include>
+                                    
<include>org.apache.paimon:paimon-flink-cdc</include>
                                 </includes>
                             </artifactSet>
                         </configuration>
diff --git a/paimon-flink/paimon-flink-common/pom.xml 
b/paimon-flink/paimon-flink-cdc/pom.xml
similarity index 63%
copy from paimon-flink/paimon-flink-common/pom.xml
copy to paimon-flink/paimon-flink-cdc/pom.xml
index d5a0d0222..0c6b5b34a 100644
--- a/paimon-flink/paimon-flink-common/pom.xml
+++ b/paimon-flink/paimon-flink-cdc/pom.xml
@@ -23,37 +23,44 @@ under the License.
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>paimon-flink</artifactId>
         <groupId>org.apache.paimon</groupId>
+        <artifactId>paimon-flink</artifactId>
         <version>0.6-SNAPSHOT</version>
     </parent>
 
     <packaging>jar</packaging>
 
-    <artifactId>paimon-flink-common</artifactId>
-    <name>Paimon : Flink : Common</name>
+    <artifactId>paimon-flink-cdc</artifactId>
+    <name>Paimon : Flink : CDC</name>
 
     <properties>
         <flink.version>1.17.1</flink.version>
-        <flink.cdc.version>2.3.0</flink.cdc.version>
-        <frocksdbjni.version>6.20.3-ververica-2.0</frocksdbjni.version>
-        <geometry.version>2.2.0</geometry.version>
+        <flink.mysql.cdc.version>2.3.0</flink.mysql.cdc.version>
+        <flink.mongodb.cdc.version>2.4.1</flink.mongodb.cdc.version>
         <avro.version>1.11.1</avro.version>
-        <mongodb.testcontainers.version>1.18.3</mongodb.testcontainers.version>
+        <geometry.version>2.2.0</geometry.version>
         <json-path.version>2.8.0</json-path.version>
+        <mongodb.testcontainers.version>1.18.3</mongodb.testcontainers.version>
     </properties>
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-core</artifactId>
-            <version>${flink.version}</version>
-            <scope>provided</scope>
+            <groupId>org.apache.paimon</groupId>
+            <artifactId>paimon-flink-common</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
+        <!-- Flink dependencies -->
+
         <dependency>
             <groupId>org.apache.flink</groupId>
-            <artifactId>flink-connector-files</artifactId>
+            <artifactId>flink-core</artifactId>
             <version>${flink.version}</version>
             <scope>provided</scope>
         </dependency>
@@ -67,37 +74,31 @@ under the License.
 
         <dependency>
             <groupId>org.apache.flink</groupId>
-            <artifactId>flink-table-runtime</artifactId>
+            <artifactId>flink-streaming-java</artifactId>
             <version>${flink.version}</version>
             <scope>provided</scope>
         </dependency>
 
-        <!-- cdc dependencies start -->
+        <!-- CDC dependencies -->
 
         <dependency>
-            <groupId>com.esri.geometry</groupId>
-            <artifactId>esri-geometry-api</artifactId>
-            <version>${geometry.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.fasterxml.jackson.core</groupId>
-                    <artifactId>jackson-core</artifactId>
-                </exclusion>
-            </exclusions>
+            <groupId>com.ververica</groupId>
+            <artifactId>flink-connector-mysql-cdc</artifactId>
+            <version>${flink.mysql.cdc.version}</version>
             <scope>provided</scope>
         </dependency>
 
         <dependency>
-            <groupId>com.ververica</groupId>
-            <artifactId>flink-connector-mysql-cdc</artifactId>
-            <version>${flink.cdc.version}</version>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-connector-kafka</artifactId>
+            <version>${flink.version}</version>
             <scope>provided</scope>
         </dependency>
 
         <dependency>
             <groupId>com.ververica</groupId>
             <artifactId>flink-connector-mongodb-cdc</artifactId>
-            <version>2.4.1</version>
+            <version>${flink.mongodb.cdc.version}</version>
             <scope>provided</scope>
             <exclusions>
                 <exclusion>
@@ -114,65 +115,17 @@ under the License.
             <scope>provided</scope>
         </dependency>
 
-        <!-- cdc dependencies end -->
-
         <dependency>
-            <groupId>com.ververica</groupId>
-            <artifactId>frocksdbjni</artifactId>
-            <version>${frocksdbjni.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-connector-kafka</artifactId>
-            <version>${flink.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-common</artifactId>
-            <version>${hadoop.version}</version>
-            <scope>provided</scope>
+            <groupId>com.esri.geometry</groupId>
+            <artifactId>esri-geometry-api</artifactId>
+            <version>${geometry.version}</version>
             <exclusions>
                 <exclusion>
-                    <groupId>org.apache.avro</groupId>
-                    <artifactId>avro</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>log4j</groupId>
-                    <artifactId>log4j</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>jdk.tools</groupId>
-                    <artifactId>jdk.tools</artifactId>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                    <artifactId>jackson-core</artifactId>
                 </exclusion>
             </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-hdfs</artifactId>
-            <version>${hadoop.version}</version>
             <scope>provided</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>jdk.tools</groupId>
-                    <artifactId>jdk.tools</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>log4j</groupId>
-                    <artifactId>log4j</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
@@ -192,33 +145,47 @@ under the License.
         </dependency>
 
         <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-hdfs-client</artifactId>
-            <version>${hadoop.version}</version>
-            <scope>provided</scope>
+            <groupId>org.apache.paimon</groupId>
+            <artifactId>paimon-flink-common</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-table-api-java</artifactId>
+            <version>${flink.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-table-api-java-bridge</artifactId>
+            <version>${flink.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            
<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
+            <version>${flink.version}</version>
+            <scope>test</scope>
         </dependency>
 
         <dependency>
             <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-mapreduce-client-core</artifactId>
+            <artifactId>hadoop-common</artifactId>
             <version>${hadoop.version}</version>
             <scope>test</scope>
             <exclusions>
-                <exclusion>
-                    <groupId>org.apache.curator</groupId>
-                    <artifactId>curator-test</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.apache.hadoop</groupId>
-                    <artifactId>hadoop-yarn-common</artifactId>
-                </exclusion>
                 <exclusion>
                     <groupId>org.apache.avro</groupId>
                     <artifactId>avro</artifactId>
                 </exclusion>
                 <exclusion>
-                    <groupId>org.codehaus.jackson</groupId>
-                    <artifactId>jackson-core-asl</artifactId>
+                    <groupId>log4j</groupId>
+                    <artifactId>log4j</artifactId>
                 </exclusion>
                 <exclusion>
                     <groupId>org.slf4j</groupId>
@@ -232,11 +199,24 @@ under the License.
         </dependency>
 
         <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-streaming-java</artifactId>
-            <version>${flink.version}</version>
+            <groupId>org.apache.hadoop</groupId>
+            <artifactId>hadoop-hdfs-client</artifactId>
+            <version>${hadoop.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>mysql</artifactId>
+            <version>${testcontainers.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>mongodb</artifactId>
+            <version>${mongodb.testcontainers.version}</version>
             <scope>test</scope>
-            <type>test-jar</type>
         </dependency>
 
         <dependency>
@@ -259,82 +239,10 @@ under the License.
                 </exclusion>
             </exclusions>
         </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            
<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            
<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-json</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-connector-kafka</artifactId>
-            <version>${flink.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>mysql</artifactId>
-            <version>${testcontainers.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>mongodb</artifactId>
-            <version>${mongodb.testcontainers.version}</version>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
     <build>
         <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>shade-paimon</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>shade</goal>
-                        </goals>
-                        <configuration>
-                            <artifactSet>
-                                <includes combine.children="append">
-                                    
<include>org.apache.paimon:paimon-bundle</include>
-                                </includes>
-                            </artifactSet>
-                            <relocations>
-                                <!-- Same as flink-sql-connector-kafka. -->
-                                <relocation>
-                                    <pattern>org.apache.kafka</pattern>
-                                    
<shadedPattern>org.apache.flink.kafka.shaded.org.apache.kafka</shadedPattern>
-                                </relocation>
-                            </relocations>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/CdcActionCommonUtils.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/CdcActionCommonUtils.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/CdcActionCommonUtils.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/CdcActionCommonUtils.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/ComputedColumn.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/ComputedColumn.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/ComputedColumn.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/ComputedColumn.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/ComputedColumnUtils.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/ComputedColumnUtils.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/ComputedColumnUtils.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/ComputedColumnUtils.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/Expression.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/Expression.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/Expression.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/Expression.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/TableNameConverter.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/TableNameConverter.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/TableNameConverter.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/TableNameConverter.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/TypeMapping.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/TypeMapping.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/TypeMapping.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/TypeMapping.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaActionUtils.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaActionUtils.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaActionUtils.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaActionUtils.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSchema.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSchema.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSchema.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSchema.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncDatabaseAction.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncDatabaseAction.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncDatabaseAction.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncDatabaseAction.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncDatabaseActionFactory.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncDatabaseActionFactory.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncDatabaseActionFactory.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncDatabaseActionFactory.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncTableAction.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncTableAction.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncTableAction.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncTableAction.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncTableActionFactory.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncTableActionFactory.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncTableActionFactory.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSyncTableActionFactory.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/DataFormat.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/DataFormat.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/DataFormat.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/DataFormat.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/RecordParser.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/RecordParser.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/RecordParser.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/RecordParser.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/RecordParserFactory.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/RecordParserFactory.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/RecordParserFactory.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/RecordParserFactory.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/canal/CanalFieldParser.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/canal/CanalFieldParser.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/canal/CanalFieldParser.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/canal/CanalFieldParser.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/canal/CanalRecordParser.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/canal/CanalRecordParser.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/canal/CanalRecordParser.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/canal/CanalRecordParser.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/ogg/OggRecordParser.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/ogg/OggRecordParser.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/ogg/OggRecordParser.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/kafka/formats/ogg/OggRecordParser.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBActionUtils.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBActionUtils.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBActionUtils.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBActionUtils.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBRecordParser.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBRecordParser.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBRecordParser.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBRecordParser.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseAction.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseAction.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseAction.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseAction.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseActionFactory.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseActionFactory.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseActionFactory.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseActionFactory.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableAction.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableAction.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableAction.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableAction.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableActionFactory.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableActionFactory.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableActionFactory.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableActionFactory.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongodbSchema.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongodbSchema.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongodbSchema.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongodbSchema.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/SchemaAcquisitionMode.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/SchemaAcquisitionMode.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/SchemaAcquisitionMode.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/SchemaAcquisitionMode.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/strategy/Mongo4VersionStrategy.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/strategy/Mongo4VersionStrategy.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/strategy/Mongo4VersionStrategy.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/strategy/Mongo4VersionStrategy.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/strategy/MongoVersionStrategy.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/strategy/MongoVersionStrategy.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/strategy/MongoVersionStrategy.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/strategy/MongoVersionStrategy.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlActionUtils.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlActionUtils.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlActionUtils.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlActionUtils.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlDebeziumJsonEventParser.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlDebeziumJsonEventParser.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlDebeziumJsonEventParser.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlDebeziumJsonEventParser.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseAction.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseAction.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseAction.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseAction.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseActionFactory.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseActionFactory.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseActionFactory.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseActionFactory.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableAction.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableAction.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableAction.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableAction.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionFactory.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionFactory.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionFactory.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionFactory.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlTableSchemaBuilder.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlTableSchemaBuilder.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlTableSchemaBuilder.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlTableSchemaBuilder.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlTypeUtils.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlTypeUtils.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlTypeUtils.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/MySqlTypeUtils.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/AllMergedMySqlTableInfo.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/AllMergedMySqlTableInfo.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/AllMergedMySqlTableInfo.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/AllMergedMySqlTableInfo.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlSchema.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlSchema.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlSchema.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlSchema.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlSchemasInfo.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlSchemasInfo.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlSchemasInfo.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlSchemasInfo.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlTableInfo.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlTableInfo.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlTableInfo.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/MySqlTableInfo.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/ShardsMergedMySqlTableInfo.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/ShardsMergedMySqlTableInfo.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/ShardsMergedMySqlTableInfo.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/ShardsMergedMySqlTableInfo.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/UnmergedMySqlTableInfo.java
 
b/paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/UnmergedMySqlTableInfo.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/UnmergedMySqlTableInfo.java
rename to 
paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/schema/UnmergedMySqlTableInfo.java
diff --git 
a/paimon-flink/paimon-flink-common/src/main/resources/META-INF/services/org.apache.paimon.factories.Factory
 
b/paimon-flink/paimon-flink-cdc/src/main/resources/META-INF/services/org.apache.paimon.factories.Factory
similarity index 68%
copy from 
paimon-flink/paimon-flink-common/src/main/resources/META-INF/services/org.apache.paimon.factories.Factory
copy to 
paimon-flink/paimon-flink-cdc/src/main/resources/META-INF/services/org.apache.paimon.factories.Factory
index c77a3ed38..3e165cf5f 100644
--- 
a/paimon-flink/paimon-flink-common/src/main/resources/META-INF/services/org.apache.paimon.factories.Factory
+++ 
b/paimon-flink/paimon-flink-cdc/src/main/resources/META-INF/services/org.apache.paimon.factories.Factory
@@ -13,18 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-org.apache.paimon.flink.kafka.KafkaLogStoreFactory
-
-### action factories
-org.apache.paimon.flink.action.CompactActionFactory
-org.apache.paimon.flink.action.CompactDatabaseActionFactory
-org.apache.paimon.flink.action.DropPartitionActionFactory
-org.apache.paimon.flink.action.DeleteActionFactory
-org.apache.paimon.flink.action.MergeIntoActionFactory
-org.apache.paimon.flink.action.RollbackToActionFactory
-org.apache.paimon.flink.action.CreateTagActionFactory
-org.apache.paimon.flink.action.DeleteTagActionFactory
-org.apache.paimon.flink.action.ResetConsumerActionFactory
+### cdc action factories
 org.apache.paimon.flink.action.cdc.mysql.MySqlSyncTableActionFactory
 org.apache.paimon.flink.action.cdc.mysql.MySqlSyncDatabaseActionFactory
 org.apache.paimon.flink.action.cdc.kafka.KafkaSyncTableActionFactory
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/CdcActionITCaseBase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/CdcActionITCaseBase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/CdcActionITCaseBase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/CdcActionITCaseBase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/TruncateComputerTest.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/TruncateComputerTest.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/TruncateComputerTest.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/TruncateComputerTest.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaActionITCaseBase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaActionITCaseBase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaActionITCaseBase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaActionITCaseBase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaCanalSyncDatabaseActionITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaCanalSyncDatabaseActionITCase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaCanalSyncDatabaseActionITCase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaCanalSyncDatabaseActionITCase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaCanalSyncTableActionITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaCanalSyncTableActionITCase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaCanalSyncTableActionITCase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaCanalSyncTableActionITCase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaOggSyncDatabaseActionITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaOggSyncDatabaseActionITCase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaOggSyncDatabaseActionITCase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaOggSyncDatabaseActionITCase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaOggSyncTableActionITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaOggSyncTableActionITCase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaOggSyncTableActionITCase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaOggSyncTableActionITCase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSchemaITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSchemaITCase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSchemaITCase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/kafka/KafkaSchemaITCase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBActionITCaseBase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBActionITCaseBase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBActionITCaseBase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBActionITCaseBase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBContainer.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBContainer.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBContainer.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBContainer.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseActionITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseActionITCase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseActionITCase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncDatabaseActionITCase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableActionITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableActionITCase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableActionITCase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBSyncTableActionITCase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlActionITCaseBase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlActionITCaseBase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlActionITCaseBase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlActionITCaseBase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlCdcTypeMappingITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlCdcTypeMappingITCase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlCdcTypeMappingITCase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlCdcTypeMappingITCase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlContainer.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlContainer.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlContainer.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlContainer.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseActionITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseActionITCase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseActionITCase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseActionITCase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseTableListITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseTableListITCase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseTableListITCase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncDatabaseTableListITCase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionITCase.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionITCase.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionITCase.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlVersion.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlVersion.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlVersion.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlVersion.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/TestAlterTableCatalogFactory.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/TestAlterTableCatalogFactory.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/TestAlterTableCatalogFactory.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/TestAlterTableCatalogFactory.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/TestCaseInsensitiveCatalogFactory.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/TestCaseInsensitiveCatalogFactory.java
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/action/cdc/mysql/TestCaseInsensitiveCatalogFactory.java
rename to 
paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/TestCaseInsensitiveCatalogFactory.java
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
similarity index 84%
copy from 
paimon-flink/paimon-flink-common/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
copy to 
paimon-flink/paimon-flink-cdc/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
index 71135fa1e..cbd1bee89 100644
--- 
a/paimon-flink/paimon-flink-common/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
+++ 
b/paimon-flink/paimon-flink-cdc/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
@@ -14,9 +14,4 @@
 # limitations under the License.
 
 org.apache.paimon.flink.action.cdc.mysql.TestCaseInsensitiveCatalogFactory
-org.apache.paimon.flink.action.cdc.mysql.TestAlterTableCatalogFactory
-
-org.apache.paimon.flink.FlinkCatalogTest$TestingLogSoreRegisterFactory
-
-# Lineage meta factory
-org.apache.paimon.flink.FlinkLineageITCase$ThrowingLineageMetaFactory
\ No newline at end of file
+org.apache.paimon.flink.action.cdc.mysql.TestAlterTableCatalogFactory
\ No newline at end of file
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
similarity index 71%
copy from 
paimon-flink/paimon-flink-common/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
copy to 
paimon-flink/paimon-flink-cdc/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
index 71135fa1e..c9cb1908a 100644
--- 
a/paimon-flink/paimon-flink-common/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
+++ 
b/paimon-flink/paimon-flink-cdc/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
@@ -13,10 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-org.apache.paimon.flink.action.cdc.mysql.TestCaseInsensitiveCatalogFactory
-org.apache.paimon.flink.action.cdc.mysql.TestAlterTableCatalogFactory
-
-org.apache.paimon.flink.FlinkCatalogTest$TestingLogSoreRegisterFactory
-
-# Lineage meta factory
-org.apache.paimon.flink.FlinkLineageITCase$ThrowingLineageMetaFactory
\ No newline at end of file
+org.apache.paimon.testutils.junit.TestLoggerExtension
\ No newline at end of file
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/include/topic0/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/include/topic0/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/include/topic0/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/include/topic0/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-3.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-3.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-3.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic0/canal-data-3.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-3.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-3.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-3.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/prefixsuffix/topic1/canal-data-3.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-3.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-3.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-3.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic0/canal-data-3.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-3.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-3.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-3.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic1/canal-data-3.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-3.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-3.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-3.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/schemaevolution/topic2/canal-data-3.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/tostring/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/tostring/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/database/tostring/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/database/tostring/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/alltype/canal-data.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/alltype/canal-data.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/alltype/canal-data.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/alltype/canal-data.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/computedcolumn/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/computedcolumn/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/computedcolumn/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/computedcolumn/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/nononddldata/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/nononddldata/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/nononddldata/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/nononddldata/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolution/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolution/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolution/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolution/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolution/canal-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolution/canal-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolution/canal-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolution/canal-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolution/canal-data-3.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolution/canal-data-3.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolution/canal-data-3.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolution/canal-data-3.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolution/canal-data-4.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolution/canal-data-4.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolution/canal-data-4.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolution/canal-data-4.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolution/canal-data-5.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolution/canal-data-5.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolution/canal-data-5.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolution/canal-data-5.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-3.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-3.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-3.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-3.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-4.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-4.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-4.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-4.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-5.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-5.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-5.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmissingddl/canal-data-5.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmultiple/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmultiple/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmultiple/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmultiple/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmultiple/canal-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmultiple/canal-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/schemaevolutionmultiple/canal-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/schemaevolutionmultiple/canal-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/startupmode/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/startupmode/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/startupmode/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/startupmode/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/startupmode/canal-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/startupmode/canal-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/startupmode/canal-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/startupmode/canal-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/tostring/canal-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/tostring/canal-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/canal/table/tostring/canal-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/canal/table/tostring/canal-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/include/topic0/ogg-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/include/topic0/ogg-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/include/topic0/ogg-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/include/topic0/ogg-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/prefixsuffix/topic0/ogg-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/prefixsuffix/topic0/ogg-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/prefixsuffix/topic0/ogg-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/prefixsuffix/topic0/ogg-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/prefixsuffix/topic0/ogg-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/prefixsuffix/topic0/ogg-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/prefixsuffix/topic0/ogg-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/prefixsuffix/topic0/ogg-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/prefixsuffix/topic1/ogg-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/prefixsuffix/topic1/ogg-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/prefixsuffix/topic1/ogg-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/prefixsuffix/topic1/ogg-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/prefixsuffix/topic1/ogg-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/prefixsuffix/topic1/ogg-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/prefixsuffix/topic1/ogg-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/prefixsuffix/topic1/ogg-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/schemaevolution/topic0/ogg-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/schemaevolution/topic0/ogg-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/schemaevolution/topic0/ogg-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/schemaevolution/topic0/ogg-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/schemaevolution/topic0/ogg-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/schemaevolution/topic0/ogg-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/schemaevolution/topic0/ogg-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/schemaevolution/topic0/ogg-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/schemaevolution/topic1/ogg-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/schemaevolution/topic1/ogg-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/schemaevolution/topic1/ogg-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/schemaevolution/topic1/ogg-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/schemaevolution/topic1/ogg-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/schemaevolution/topic1/ogg-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/database/schemaevolution/topic1/ogg-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/database/schemaevolution/topic1/ogg-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/computedcolumn/ogg-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/computedcolumn/ogg-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/computedcolumn/ogg-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/computedcolumn/ogg-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-3.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-3.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-3.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/schemaevolution/ogg-data-3.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/startupmode/ogg-data-1.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/startupmode/ogg-data-1.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/startupmode/ogg-data-1.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/startupmode/ogg-data-1.txt
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/startupmode/ogg-data-2.txt
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/startupmode/ogg-data-2.txt
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/kafka/ogg/table/startupmode/ogg-data-2.txt
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/kafka/ogg/table/startupmode/ogg-data-2.txt
diff --git 
a/paimon-flink/paimon-flink-cdc/src/test/resources/log4j2-test.properties 
b/paimon-flink/paimon-flink-cdc/src/test/resources/log4j2-test.properties
new file mode 100644
index 000000000..1b3980d15
--- /dev/null
+++ b/paimon-flink/paimon-flink-cdc/src/test/resources/log4j2-test.properties
@@ -0,0 +1,28 @@
+################################################################################
+#  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 root logger level to OFF to not flood build logs
+# set manually to INFO for debugging purposes
+rootLogger.level = OFF
+rootLogger.appenderRef.test.ref = TestLogger
+
+appender.testlogger.name = TestLogger
+appender.testlogger.type = CONSOLE
+appender.testlogger.target = SYSTEM_ERR
+appender.testlogger.layout.type = PatternLayout
+appender.testlogger.layout.pattern = %-4r [%tid %t] %-5p %c %x - %m%n
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-1.js
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-1.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-1.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-1.js
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-2.js
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-2.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-2.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-2.js
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-3.js
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-3.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-3.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-3.js
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-4.js
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-4.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-4.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-4.js
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-5.js
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-5.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-5.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-5.js
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-6.js
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-6.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/database/test-data-6.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/database/test-data-6.js
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/docker/random.key 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/docker/random.key
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/docker/random.key
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/docker/random.key
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/docker/setup.js 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/docker/setup.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/docker/setup.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/docker/setup.js
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/table/computedcolumn/test-table-1.js
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/table/computedcolumn/test-table-1.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/table/computedcolumn/test-table-1.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/table/computedcolumn/test-table-1.js
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/table/inventory-1.js
 b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/table/inventory-1.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/table/inventory-1.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/table/inventory-1.js
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/table/inventory-2.js
 b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/table/inventory-2.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/table/inventory-2.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/table/inventory-2.js
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/table/inventory-3.js
 b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/table/inventory-3.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/table/inventory-3.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/table/inventory-3.js
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mongodb/table/inventory-4.js
 b/paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/table/inventory-4.js
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mongodb/table/inventory-4.js
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mongodb/table/inventory-4.js
diff --git a/paimon-flink/paimon-flink-common/src/test/resources/mysql/my.cnf 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mysql/my.cnf
similarity index 100%
rename from paimon-flink/paimon-flink-common/src/test/resources/mysql/my.cnf
rename to paimon-flink/paimon-flink-cdc/src/test/resources/mysql/my.cnf
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mysql/sync_database_setup.sql
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mysql/sync_database_setup.sql
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mysql/sync_database_setup.sql
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mysql/sync_database_setup.sql
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mysql/sync_table_setup.sql
 b/paimon-flink/paimon-flink-cdc/src/test/resources/mysql/sync_table_setup.sql
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mysql/sync_table_setup.sql
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mysql/sync_table_setup.sql
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mysql/tablelist_test_setup.sql
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mysql/tablelist_test_setup.sql
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mysql/tablelist_test_setup.sql
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mysql/tablelist_test_setup.sql
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/mysql/type_mapping_test_setup.sql
 
b/paimon-flink/paimon-flink-cdc/src/test/resources/mysql/type_mapping_test_setup.sql
similarity index 100%
rename from 
paimon-flink/paimon-flink-common/src/test/resources/mysql/type_mapping_test_setup.sql
rename to 
paimon-flink/paimon-flink-cdc/src/test/resources/mysql/type_mapping_test_setup.sql
diff --git a/paimon-flink/paimon-flink-common/pom.xml 
b/paimon-flink/paimon-flink-common/pom.xml
index d5a0d0222..f94738206 100644
--- a/paimon-flink/paimon-flink-common/pom.xml
+++ b/paimon-flink/paimon-flink-common/pom.xml
@@ -35,12 +35,7 @@ under the License.
 
     <properties>
         <flink.version>1.17.1</flink.version>
-        <flink.cdc.version>2.3.0</flink.cdc.version>
         <frocksdbjni.version>6.20.3-ververica-2.0</frocksdbjni.version>
-        <geometry.version>2.2.0</geometry.version>
-        <avro.version>1.11.1</avro.version>
-        <mongodb.testcontainers.version>1.18.3</mongodb.testcontainers.version>
-        <json-path.version>2.8.0</json-path.version>
     </properties>
 
     <dependencies>
@@ -72,50 +67,6 @@ under the License.
             <scope>provided</scope>
         </dependency>
 
-        <!-- cdc dependencies start -->
-
-        <dependency>
-            <groupId>com.esri.geometry</groupId>
-            <artifactId>esri-geometry-api</artifactId>
-            <version>${geometry.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.fasterxml.jackson.core</groupId>
-                    <artifactId>jackson-core</artifactId>
-                </exclusion>
-            </exclusions>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.ververica</groupId>
-            <artifactId>flink-connector-mysql-cdc</artifactId>
-            <version>${flink.cdc.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.ververica</groupId>
-            <artifactId>flink-connector-mongodb-cdc</artifactId>
-            <version>2.4.1</version>
-            <scope>provided</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.avro</groupId>
-                    <artifactId>avro</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.avro</groupId>
-            <artifactId>avro</artifactId>
-            <version>${avro.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- cdc dependencies end -->
-
         <dependency>
             <groupId>com.ververica</groupId>
             <artifactId>frocksdbjni</artifactId>
@@ -175,12 +126,6 @@ under the License.
             </exclusions>
         </dependency>
 
-        <dependency>
-            <groupId>com.jayway.jsonpath</groupId>
-            <artifactId>json-path</artifactId>
-            <version>${json-path.version}</version>
-        </dependency>
-
         <!-- test dependencies -->
 
         <dependency>
@@ -191,13 +136,6 @@ under the License.
             <scope>test</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-hdfs-client</artifactId>
-            <version>${hadoop.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
         <dependency>
             <groupId>org.apache.hadoop</groupId>
             <artifactId>hadoop-mapreduce-client-core</artifactId>
@@ -289,20 +227,6 @@ under the License.
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>mysql</artifactId>
-            <version>${testcontainers.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>mongodb</artifactId>
-            <version>${mongodb.testcontainers.version}</version>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
     <build>
diff --git 
a/paimon-flink/paimon-flink-common/src/main/resources/META-INF/services/org.apache.paimon.factories.Factory
 
b/paimon-flink/paimon-flink-common/src/main/resources/META-INF/services/org.apache.paimon.factories.Factory
index c77a3ed38..1e014e785 100644
--- 
a/paimon-flink/paimon-flink-common/src/main/resources/META-INF/services/org.apache.paimon.factories.Factory
+++ 
b/paimon-flink/paimon-flink-common/src/main/resources/META-INF/services/org.apache.paimon.factories.Factory
@@ -25,9 +25,3 @@ org.apache.paimon.flink.action.RollbackToActionFactory
 org.apache.paimon.flink.action.CreateTagActionFactory
 org.apache.paimon.flink.action.DeleteTagActionFactory
 org.apache.paimon.flink.action.ResetConsumerActionFactory
-org.apache.paimon.flink.action.cdc.mysql.MySqlSyncTableActionFactory
-org.apache.paimon.flink.action.cdc.mysql.MySqlSyncDatabaseActionFactory
-org.apache.paimon.flink.action.cdc.kafka.KafkaSyncTableActionFactory
-org.apache.paimon.flink.action.cdc.kafka.KafkaSyncDatabaseActionFactory
-org.apache.paimon.flink.action.cdc.mongodb.MongoDBSyncTableActionFactory
-org.apache.paimon.flink.action.cdc.mongodb.MongoDBSyncDatabaseActionFactory
diff --git 
a/paimon-flink/paimon-flink-common/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
 
b/paimon-flink/paimon-flink-common/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
index 71135fa1e..5058dabb6 100644
--- 
a/paimon-flink/paimon-flink-common/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
+++ 
b/paimon-flink/paimon-flink-common/src/test/resources/META-INF/services/org.apache.paimon.factories.Factory
@@ -13,9 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-org.apache.paimon.flink.action.cdc.mysql.TestCaseInsensitiveCatalogFactory
-org.apache.paimon.flink.action.cdc.mysql.TestAlterTableCatalogFactory
-
 org.apache.paimon.flink.FlinkCatalogTest$TestingLogSoreRegisterFactory
 
 # Lineage meta factory
diff --git a/paimon-flink/pom.xml b/paimon-flink/pom.xml
index 2a35be039..e92bb526b 100644
--- a/paimon-flink/pom.xml
+++ b/paimon-flink/pom.xml
@@ -40,6 +40,7 @@ under the License.
         <module>paimon-flink-1.16</module>
         <module>paimon-flink-1.17</module>
         <module>paimon-flink-action</module>
+        <module>paimon-flink-cdc</module>
     </modules>
 
     <dependencies>

Reply via email to