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

arvid pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-connector-kafka.git

commit 2bc999b6801eb3bb0bce50f94846969f0c308638
Author: Arvid Heise <ar...@apache.org>
AuthorDate: Thu Apr 10 21:00:06 2025 +0200

    [FLINK-37644] Enforce precise dependencies + ban offenders
    
    - Make sure that all used libraries are explicitly listed.
    - Move all versions to dependency management
    - Ban imports on guava in prod code
    - Ban guava dependency in prod
    - Ban mockito and powermock in tests
---
 .../flink-end-to-end-tests-common-kafka/pom.xml    |  143 +--
 .../flink-streaming-kafka-test-base/pom.xml        |   15 +-
 .../flink-streaming-kafka-test/pom.xml             |   45 +-
 flink-connector-kafka/pom.xml                      |  644 +++++++-----
 flink-python/pom.xml                               |    9 +-
 flink-sql-connector-kafka/pom.xml                  |   28 +
 pom.xml                                            | 1095 +++++++++++---------
 tools/maven/checkstyle.xml                         |    6 +-
 tools/maven/suppressions.xml                       |    3 +
 9 files changed, 1152 insertions(+), 836 deletions(-)

diff --git 
a/flink-connector-kafka-e2e-tests/flink-end-to-end-tests-common-kafka/pom.xml 
b/flink-connector-kafka-e2e-tests/flink-end-to-end-tests-common-kafka/pom.xml
index 7e8a25a8..59be0972 100644
--- 
a/flink-connector-kafka-e2e-tests/flink-end-to-end-tests-common-kafka/pom.xml
+++ 
b/flink-connector-kafka-e2e-tests/flink-end-to-end-tests-common-kafka/pom.xml
@@ -43,15 +43,29 @@ under the License.
             <artifactId>flink-connector-kafka</artifactId>
             <version>${project.version}</version>
         </dependency>
+               <dependency>
+                       <groupId>org.slf4j</groupId>
+                       <artifactId>slf4j-api</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-core</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.kafka</groupId>
+                       <artifactId>kafka-clients</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.testcontainers</groupId>
+                       <artifactId>testcontainers</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+               </dependency>
         <dependency>
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-test-utils-junit</artifactId>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.flink</groupId>
@@ -67,18 +81,47 @@ under the License.
                 </exclusion>
             </exclusions>
         </dependency>
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-connector-base</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.kafka</groupId>
-            <artifactId>kafka-clients</artifactId>
-            <version>${kafka.version}</version>
-        </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-connector-kafka</artifactId>
+                       <version>${project.version}</version>
+                       <type>test-jar</type>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-runtime</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-connector-base</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-test-utils</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-core-api</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.hamcrest</groupId>
+                       <artifactId>hamcrest-core</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.assertj</groupId>
+                       <artifactId>assertj-core</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.junit.jupiter</groupId>
+                       <artifactId>junit-jupiter-api</artifactId>
+                       <scope>test</scope>
+               </dependency>
 
         <!-- The following dependencies are for connector/format sql-jars that
             we copy using the maven-dependency-plugin. When extending the test
@@ -90,89 +133,59 @@ under the License.
             <!-- Used by maven-dependency-plugin -->
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-sql-avro</artifactId>
-            <version>${flink.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <!-- Used by maven-dependency-plugin -->
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-sql-avro-confluent-registry</artifactId>
-            <version>${flink.version}</version>
             <scope>test</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>kafka</artifactId>
-        </dependency>
+               <dependency>
+                       <groupId>org.testcontainers</groupId>
+                       <artifactId>kafka</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.testcontainers</groupId>
+                       <artifactId>junit-jupiter</artifactId>
+               </dependency>
 
         <dependency>
-            <!-- 
https://mvnrepository.com/artifact/io.confluent/kafka-avro-serializer -->
             <groupId>io.confluent</groupId>
             <artifactId>kafka-avro-serializer</artifactId>
-            <version>${confluent.version}</version>
             <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.google.guava</groupId>
-                    <artifactId>guava</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
             <groupId>io.confluent</groupId>
             <artifactId>kafka-schema-registry-client</artifactId>
-            <version>${confluent.version}</version>
             <scope>test</scope>
             <exclusions>
                 <exclusion>
                     <groupId>org.apache.kafka</groupId>
                     <artifactId>kafka-clients</artifactId>
                 </exclusion>
-                    <exclusion>
-                        <groupId>com.google.guava</groupId>
-                        <artifactId>guava</artifactId>
-                    </exclusion>
             </exclusions>
         </dependency>
 
         <dependency>
             <groupId>org.apache.avro</groupId>
             <artifactId>avro</artifactId>
-            <version>${avro.version}</version>
             <scope>test</scope>
         </dependency>
 
         <dependency>
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-connector-test-utils</artifactId>
-            <version>${flink.version}</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.google.guava</groupId>
                     <artifactId>guava</artifactId>
                 </exclusion>
             </exclusions>
+                       <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-connector-kafka</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-all</artifactId>
-            <version>${hamcrest.version}</version>
-            <scope>test</scope>
-        </dependency>
-               <!-- Needed by Schema Registry -->
-               <dependency>
-                       <groupId>com.google.guava</groupId>
-                       <artifactId>guava</artifactId>
-                       <version>${guava.version}</version>
-               </dependency>
     </dependencies>
 
     <build>
@@ -194,7 +207,6 @@ under the License.
                         <artifactItem>
                             <groupId>org.apache.flink</groupId>
                             <artifactId>flink-streaming-kafka-test</artifactId>
-                            <version>${project.version}</version>
                             <type>jar</type>
                             <overWrite>true</overWrite>
                             
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
@@ -202,7 +214,6 @@ under the License.
                         <artifactItem>
                             <groupId>org.apache.flink</groupId>
                             <artifactId>flink-sql-avro</artifactId>
-                            <version>${flink.version}</version>
                             <destFileName>avro.jar</destFileName>
                             <type>jar</type>
                             
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
@@ -210,7 +221,6 @@ under the License.
                         <artifactItem>
                             <groupId>org.apache.flink</groupId>
                             
<artifactId>flink-sql-avro-confluent-registry</artifactId>
-                            <version>${flink.version}</version>
                             <destFileName>avro-confluent.jar</destFileName>
                             <type>jar</type>
                             
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
@@ -226,7 +236,6 @@ under the License.
                         <artifactItem>
                             <groupId>org.apache.flink</groupId>
                             <artifactId>flink-connector-kafka</artifactId>
-                            <version>${project.version}</version>
                             <destFileName>kafka-connector.jar</destFileName>
                             <type>jar</type>
                             
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
@@ -234,7 +243,6 @@ under the License.
                         <artifactItem>
                             <groupId>org.apache.flink</groupId>
                             <artifactId>flink-connector-test-utils</artifactId>
-                            <version>${flink.version}</version>
                             
<destFileName>flink-connector-testing.jar</destFileName>
                             <type>jar</type>
                             
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
@@ -242,20 +250,13 @@ under the License.
                         <artifactItem>
                             <groupId>org.apache.kafka</groupId>
                             <artifactId>kafka-clients</artifactId>
-                            <version>${kafka.version}</version>
                             <destFileName>kafka-clients.jar</destFileName>
                             <type>jar</type>
                             
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
                         </artifactItem>
-                                               <artifactItem>
-                                                       
<groupId>com.google.guava</groupId>
-                                                       
<artifactId>guava</artifactId>
-                                                       
<version>${guava.version}</version>
-                                                       
<destFileName>guava.jar</destFileName>
-                                                       <type>jar</type>
-                                                       
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
-                                               </artifactItem>
                     </artifactItems>
+                                       
<ignoredUnusedDeclaredDependencies>org.apache.flink:flink-streaming-kafka-test,org.apache.flink:flink-sql-avro,org.apache.flink:flink-sql-avro-confluent-registry,org.apache.flink:flink-connector-base
+                                       </ignoredUnusedDeclaredDependencies>
                 </configuration>
             </plugin>
         </plugins>
diff --git 
a/flink-connector-kafka-e2e-tests/flink-streaming-kafka-test-base/pom.xml 
b/flink-connector-kafka-e2e-tests/flink-streaming-kafka-test-base/pom.xml
index d4b7dfbc..c0713233 100644
--- a/flink-connector-kafka-e2e-tests/flink-streaming-kafka-test-base/pom.xml
+++ b/flink-connector-kafka-e2e-tests/flink-streaming-kafka-test-base/pom.xml
@@ -33,11 +33,16 @@ under the License.
     <packaging>jar</packaging>
 
     <dependencies>
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-streaming-java</artifactId>
-            <version>${flink.version}</version>
-        </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-core</artifactId>
+                       <version>${flink.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-runtime</artifactId>
+                       <version>${flink.version}</version>
+               </dependency>
     </dependencies>
 
 </project>
diff --git a/flink-connector-kafka-e2e-tests/flink-streaming-kafka-test/pom.xml 
b/flink-connector-kafka-e2e-tests/flink-streaming-kafka-test/pom.xml
index f2d9a2cc..31bed576 100644
--- a/flink-connector-kafka-e2e-tests/flink-streaming-kafka-test/pom.xml
+++ b/flink-connector-kafka-e2e-tests/flink-streaming-kafka-test/pom.xml
@@ -43,11 +43,29 @@ under the License.
             <version>${project.version}</version>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-streaming-java</artifactId>
-            <version>${flink.version}</version>
-        </dependency>
+               <dependency>
+                       <groupId>org.apache.kafka</groupId>
+                       <artifactId>kafka-clients</artifactId>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-core</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-connector-base</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-runtime</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+
     </dependencies>
 
     <build>
@@ -82,6 +100,23 @@ under the License.
                     </execution>
                 </executions>
             </plugin>
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-dependency-plugin</artifactId>
+                               <executions>
+                                       <execution>
+                                               <id>analyze-deps</id>
+                                               <goals>
+                                                       <goal>analyze</goal>
+                                               </goals>
+                                               <phase>verify</phase>
+                                               <configuration>
+                                                       
<ignoredUnusedDeclaredDependencies>org.apache.flink:flink-connector-base</ignoredUnusedDeclaredDependencies>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
         </plugins>
     </build>
 
diff --git a/flink-connector-kafka/pom.xml b/flink-connector-kafka/pom.xml
index 9c7e5f0a..9c360833 100644
--- a/flink-connector-kafka/pom.xml
+++ b/flink-connector-kafka/pom.xml
@@ -18,71 +18,151 @@ specific language governing permissions and limitations
 under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0";
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+                xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
 
-    <modelVersion>4.0.0</modelVersion>
+       <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <groupId>org.apache.flink</groupId>
-        <artifactId>flink-connector-kafka-parent</artifactId>
-        <version>4.0-SNAPSHOT</version>
-    </parent>
+       <parent>
+               <groupId>org.apache.flink</groupId>
+               <artifactId>flink-connector-kafka-parent</artifactId>
+               <version>4.0-SNAPSHOT</version>
+       </parent>
 
-    <artifactId>flink-connector-kafka</artifactId>
-    <name>Flink : Connectors : Kafka</name>
+       <artifactId>flink-connector-kafka</artifactId>
+       <name>Flink : Connectors : Kafka</name>
 
-    <packaging>jar</packaging>
+       <packaging>jar</packaging>
 
-    <properties>
-        <flink.connector.module.config><!--
+       <properties>
+               <flink.connector.module.config><!--
         FlinkKafkaProducerBaseTest --> 
--add-opens=java.base/java.lang=ALL-UNNAMED <!--
         FlinkKafkaProducerBaseTest --> 
--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED <!--
         FlinkKafkaConsumerBaseTest --> 
--add-opens=java.base/java.util=ALL-UNNAMED <!--
-        KafkaProducerExactlyOnceITCase --> 
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
-        </flink.connector.module.config>
-    </properties>
+        KafkaProducerExactlyOnceITCase -->
+                       
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
+               </flink.connector.module.config>
+       </properties>
 
-    <dependencies>
+       <dependencies>
 
-        <!-- Core -->
+               <!-- Core -->
 
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-streaming-java</artifactId>
-            <version>${flink.version}</version>
-            <scope>provided</scope>
-        </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-streaming-java</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-annotations</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-connector-datagen</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-core</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-core-api</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-metrics-core</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-runtime</artifactId>
+                       <scope>provided</scope>
+               </dependency>
 
-        <!-- Connectors -->
+               <dependency>
+                       <groupId>org.slf4j</groupId>
+                       <artifactId>slf4j-api</artifactId>
+                       <scope>provided</scope>
+               </dependency>
 
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-connector-base</artifactId>
-            <version>${flink.version}</version>
-            <scope>provided</scope>
-        </dependency>
+               <!-- Connectors -->
 
-        <!-- Table ecosystem -->
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-connector-base</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+
+               <!-- Directly used libraries -->
+
+               <dependency>
+                       <groupId>com.google.code.findbugs</groupId>
+                       <artifactId>jsr305</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.commons</groupId>
+                       <artifactId>commons-lang3</artifactId>
+               </dependency>
+
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-core</artifactId>
+               </dependency>
 
-        <!-- Projects depending on this project won't depend on flink-table-*. 
-->
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-table-api-java-bridge</artifactId>
-            <version>${flink.version}</version>
-            <scope>provided</scope>
-            <optional>true</optional>
-        </dependency>
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-databind</artifactId>
+               </dependency>
+
+               <dependency>
+                       <!--    Java 8 Date/time        -->
+                       <groupId>com.fasterxml.jackson.datatype</groupId>
+                       <artifactId>jackson-datatype-jsr310</artifactId>
+               </dependency>
+
+               <dependency>
+                       <!--    Java 8 Datatypes        -->
+                       <groupId>com.fasterxml.jackson.datatype</groupId>
+                       <artifactId>jackson-datatype-jdk8</artifactId>
+               </dependency>
+
+               <!-- Table ecosystem -->
+
+               <!-- Projects depending on this project won't depend on 
flink-table-*. -->
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-table-api-java-bridge</artifactId>
+                       <scope>provided</scope>
+                       <optional>true</optional>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-table-api-java</artifactId>
+                       <scope>provided</scope>
+                       <optional>true</optional>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-table-common</artifactId>
+                       <scope>provided</scope>
+                       <optional>true</optional>
+               </dependency>
 
-        <!-- Kafka -->
+               <!-- Kafka -->
 
-        <dependency>
-            <groupId>org.apache.kafka</groupId>
-            <artifactId>kafka-clients</artifactId>
-            <version>${kafka.version}</version>
-        </dependency>
+               <dependency>
+                       <groupId>org.apache.kafka</groupId>
+                       <artifactId>kafka-clients</artifactId>
+               </dependency>
 
-        <!-- Tests -->
+               <!-- Tests -->
 
                <dependency>
                        <groupId>com.google.guava</groupId>
@@ -90,225 +170,259 @@ under the License.
                        <scope>test</scope>
                </dependency>
 
-        <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-all</artifactId>
-            <version>${hamcrest.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.powermock</groupId>
-            <artifactId>powermock-module-junit4</artifactId>
-            <version>${powermock.version}</version>
-            <type>jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.powermock</groupId>
-            <artifactId>powermock-api-mockito2</artifactId>
-            <version>${powermock.version}</version>
-            <type>jar</type>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.mockito</groupId>
-                    <artifactId>mockito-core</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-core</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-streaming-java</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>kafka</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.yaml</groupId>
-            <artifactId>snakeyaml</artifactId>
-            <version>2.2</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-test-utils</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-connector-test-utils</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-runtime</artifactId>
-            <version>${flink.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-connector-base</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-metrics-jmx</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Kafka table factory testing -->
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-table-common</artifactId>
-            <version>${flink.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-table-test-utils</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            
<artifactId>flink-table-api-scala-bridge_${scala.binary.version}</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>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Kafka SQL IT test with formats -->
-        <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-avro</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-avro-confluent-registry</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-csv</artifactId>
-            <version>${flink.version}</version>
-            <scope>test</scope>
-        </dependency>
+               <dependency>
+                       <groupId>org.assertj</groupId>
+                       <artifactId>assertj-core</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.hamcrest</groupId>
+                       <artifactId>hamcrest-all</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-core</artifactId>
+                       <scope>test</scope>
+                       <type>test-jar</type>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-test-utils-junit</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-clients</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.testcontainers</groupId>
+                       <artifactId>kafka</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>com.github.docker-java</groupId>
+                       <artifactId>docker-java-api</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.testcontainers</groupId>
+                       <artifactId>junit-jupiter</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.testcontainers</groupId>
+                       <artifactId>testcontainers</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.junit.jupiter</groupId>
+                       <artifactId>junit-jupiter-api</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.junit.jupiter</groupId>
+                       <artifactId>junit-jupiter-params</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.yaml</groupId>
+                       <artifactId>snakeyaml</artifactId>
+                       <version>2.2</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-test-utils</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-connector-test-utils</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-runtime</artifactId>
+                       <type>test-jar</type>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       
<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-connector-base</artifactId>
+                       <scope>test</scope>
+                       <type>test-jar</type>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-metrics-jmx</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <!-- Kafka table factory testing -->
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-table-common</artifactId>
+                       <type>test-jar</type>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-table-runtime</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       
<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
+                       <type>test-jar</type>
+                       <scope>test</scope>
+               </dependency>
+
+               <!-- Kafka SQL IT test with formats -->
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-json</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-avro</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.avro</groupId>
+                       <artifactId>avro</artifactId>
+                       <scope>test</scope>
+               </dependency>
                <dependency>
                        <groupId>org.apache.flink</groupId>
-                       <artifactId>flink-statebackend-forst</artifactId>
-                       <version>${flink.version}</version>
-                       <scope>test</scope>
-               </dependency>
-
-        <!-- ArchUnit test dependencies -->
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-architecture-tests-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                        <configuration>
-                            <includes>
-                                <include>**/KafkaTestEnvironment*</include>
-                                <include>**/testutils/*</include>
-                                <include>META-INF/LICENSE</include>
-                                <include>META-INF/NOTICE</include>
-                            </includes>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-test-sources</id>
-                        <goals>
-                            <goal>test-jar-no-fork</goal>
-                        </goals>
-                        <configuration>
-                            <archive>
-                                <!-- Globally exclude maven metadata, because 
it may accidentally bundle files we don't intend to -->
-                                <addMavenDescriptor>false</addMavenDescriptor>
-                            </archive>
-                            <includes>
-                                <include>**/KafkaTestEnvironment*</include>
-                                <include>**/testutils/*</include>
-                                <include>META-INF/LICENSE</include>
-                                <include>META-INF/NOTICE</include>
-                            </includes>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+                       <artifactId>flink-avro-confluent-registry</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-csv</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <!-- ArchUnit test dependencies -->
+               <dependency>
+                       <groupId>com.tngtech.archunit</groupId>
+                       <artifactId>archunit</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>com.tngtech.archunit</groupId>
+                       <artifactId>archunit-junit5-api</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-architecture-tests-base</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-architecture-tests-test</artifactId>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       
<artifactId>flink-architecture-tests-production</artifactId>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
+
+       <build>
+               <plugins>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-jar-plugin</artifactId>
+                               <executions>
+                                       <execution>
+                                               <goals>
+                                                       <goal>test-jar</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <includes>
+                                                               
<include>**/KafkaTestEnvironment*</include>
+                                                               
<include>**/testutils/*</include>
+                                                               
<include>META-INF/LICENSE</include>
+                                                               
<include>META-INF/NOTICE</include>
+                                                       </includes>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-source-plugin</artifactId>
+                               <executions>
+                                       <execution>
+                                               <id>attach-test-sources</id>
+                                               <goals>
+                                                       
<goal>test-jar-no-fork</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <archive>
+                                                               <!-- Globally 
exclude maven metadata, because it may accidentally bundle files we don't 
intend to -->
+                                                               
<addMavenDescriptor>false</addMavenDescriptor>
+                                                       </archive>
+                                                       <includes>
+                                                               
<include>**/KafkaTestEnvironment*</include>
+                                                               
<include>**/testutils/*</include>
+                                                               
<include>META-INF/LICENSE</include>
+                                                               
<include>META-INF/NOTICE</include>
+                                                       </includes>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-dependency-plugin</artifactId>
+                               <executions>
+                                       <execution>
+                                               <id>analyze-deps</id>
+                                               <goals>
+                                                       <goal>analyze</goal>
+                                               </goals>
+                                               <phase>verify</phase>
+                                               <configuration>
+                                                       
<ignoredUnusedDeclaredDependencies>org.apache.flink:flink-csv,org.apache.flink:flink-table-planner_${scala.binary.version}
+                                                       
</ignoredUnusedDeclaredDependencies>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+               </plugins>
+       </build>
 
 </project>
diff --git a/flink-python/pom.xml b/flink-python/pom.xml
index 592b3df6..3744c57f 100644
--- a/flink-python/pom.xml
+++ b/flink-python/pom.xml
@@ -42,26 +42,27 @@ under the License.
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-sql-connector-kafka</artifactId>
             <version>${project.version}</version>
+                       <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-runtime</artifactId>
-            <version>${flink.version}</version>
+                       <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-streaming-java</artifactId>
-            <version>${flink.version}</version>
+                       <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-connector-test-utils</artifactId>
-            <version>${flink.version}</version>
+                       <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-sql-avro</artifactId>
-            <version>${flink.version}</version>
+                       <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/flink-sql-connector-kafka/pom.xml 
b/flink-sql-connector-kafka/pom.xml
index d5226442..851e67a4 100644
--- a/flink-sql-connector-kafka/pom.xml
+++ b/flink-sql-connector-kafka/pom.xml
@@ -44,12 +44,23 @@ under the License.
             <artifactId>flink-connector-kafka</artifactId>
             <version>${project.version}</version>
         </dependency>
+
         <dependency>
             <groupId>org.apache.flink</groupId>
             <artifactId>flink-test-utils</artifactId>
             <version>${flink.version}</version>
             <scope>test</scope>
         </dependency>
+               <dependency>
+                       <groupId>org.junit.jupiter</groupId>
+                       <artifactId>junit-jupiter-api</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.flink</groupId>
+                       <artifactId>flink-table-common</artifactId>
+                       <scope>test</scope>
+               </dependency>
     </dependencies>
 
     <build>
@@ -95,6 +106,23 @@ under the License.
                     </execution>
                 </executions>
             </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-dependency-plugin</artifactId>
+                               <executions>
+                                       <execution>
+                                               <id>analyze-deps</id>
+                                               <goals>
+                                                       <goal>analyze</goal>
+                                               </goals>
+                                               <phase>verify</phase>
+                                               <configuration>
+                                                       
<ignoredUnusedDeclaredDependencies>org.apache.flink:flink-connector-kafka
+                                                       
</ignoredUnusedDeclaredDependencies>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
         </plugins>
     </build>
 </project>
diff --git a/pom.xml b/pom.xml
index 29b5c07b..8e972c83 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,495 +16,620 @@ specific language governing permissions and limitations
 under the License.
 -->
 <project
-        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";
-        xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
-
-    <parent>
-        <groupId>org.apache.flink</groupId>
-        <artifactId>flink-connector-parent</artifactId>
-        <version>1.0.0</version>
-    </parent>
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>flink-connector-kafka-parent</artifactId>
-    <version>4.0-SNAPSHOT</version>
-    <name>Flink : Connectors : Kafka : Parent</name>
-    <packaging>pom</packaging>
-    <inceptionYear>2022</inceptionYear>
-
-    <scm>
-        <url>https://github.com/apache/flink-connector-kafka</url>
-        
<connection>g...@github.com:apache/flink-connector-kafka.git</connection>
-        <developerConnection>
-            
scm:git:https://gitbox.apache.org/repos/asf/flink-connector-kafka.git
-        </developerConnection>
-    </scm>
-
-    <modules>
-        <module>flink-connector-kafka</module>
-        <module>flink-sql-connector-kafka</module>
-        <module>flink-connector-kafka-e2e-tests</module>
-        <module>flink-python</module>
-    </modules>
-
-    <properties>
-        <flink.version>2.0.0</flink.version>
-        <kafka.version>3.9.0</kafka.version>
-        <confluent.version>7.8.2</confluent.version>
-
-        <jackson-bom.version>2.16.2</jackson-bom.version>
-        <junit4.version>4.13.2</junit4.version>
-        <junit5.version>5.9.1</junit5.version>
-        <assertj.version>3.23.1</assertj.version>
-        <testcontainers.version>1.17.2</testcontainers.version>
-        <mockito.version>3.4.6</mockito.version>
-        <powermock.version>2.0.9</powermock.version>
-        <hamcrest.version>1.3</hamcrest.version>
-        <byte-buddy.version>1.12.10</byte-buddy.version>
-        <commons-cli.version>1.5.0</commons-cli.version>
-        <scala.binary.version>2.12</scala.binary.version>
-        <scala-reflect.version>2.12.19</scala-reflect.version>
-        <scala-library.version>2.12.19</scala-library.version>
-        <snappy-java.version>1.1.10.5</snappy-java.version>
-        <avro.version>1.11.4</avro.version>
-        <guava.version>32.1.2-jre</guava.version>
-
-        <japicmp.skip>false</japicmp.skip>
-        <japicmp.referenceVersion>1.17.0</japicmp.referenceVersion>
-
-        <slf4j.version>1.7.36</slf4j.version>
-        <log4j.version>2.17.1</log4j.version>
-
-        
<flink.parent.artifactId>flink-connector-kafka-parent</flink.parent.artifactId>
-
-        <!-- This property should contain the add-opens/add-exports commands 
required for the tests
-         in the given connector's module to pass.
-         It MUST be a space-separated list not containing any newlines,
-         of entries in the form 
'[-]{2}add-[opens|exports]=<module>/<package>=ALL-UNNAMED'.-->
-        <flink.connector.module.config/>
-        <flink.surefire.baseArgLine>-XX:+UseG1GC -Xms256m 
-XX:+IgnoreUnrecognizedVMOptions 
${flink.connector.module.config}</flink.surefire.baseArgLine>
-    </properties>
-
-    <dependencies>
-        <!-- Root dependencies for all projects -->
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-        </dependency>
-        <dependency>
-            <!--       Java 8 Date/time        -->
-            <groupId>com.fasterxml.jackson.datatype</groupId>
-            <artifactId>jackson-datatype-jsr310</artifactId>
-        </dependency>
-        <dependency>
-            <!--       Java 8 Datatypes        -->
-            <groupId>com.fasterxml.jackson.datatype</groupId>
-            <artifactId>jackson-datatype-jdk8</artifactId>
-        </dependency>
-
-        <!-- Logging API -->
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- 'javax.annotation' classes like '@Nullable' -->
-        <dependency>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- Test dependencies -->
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.junit.vintage</groupId>
-            <artifactId>junit-vintage-engine</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-            <version>${mockito.version}</version>
-            <type>jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Tests will have log4j as the default logging framework available 
-->
-
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-test-utils-junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- ArchUit test dependencies -->
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-architecture-tests-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.flink</groupId>
-            <artifactId>flink-architecture-tests-production</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-               <dependency>
-                       <groupId>org.apache.flink</groupId>
-                       <artifactId>flink-test-utils-junit</artifactId>
-                       <scope>test</scope>
-               </dependency>
-
-    </dependencies>
-
-    <!-- This section defines the module versions that are used if nothing 
else is specified. -->
-
-    <dependencyManagement>
-
-        <dependencies>
-            <!-- For dependency convergence -->
-            <dependency>
-                <groupId>net.bytebuddy</groupId>
-                <artifactId>byte-buddy</artifactId>
-                <version>${byte-buddy.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>net.bytebuddy</groupId>
-                <artifactId>byte-buddy-agent</artifactId>
-                <version>${byte-buddy.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>commons-cli</groupId>
-                <artifactId>commons-cli</artifactId>
-                <version>${commons-cli.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.scala-lang</groupId>
-                <artifactId>scala-reflect</artifactId>
-                <version>${scala-reflect.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.scala-lang</groupId>
-                <artifactId>scala-library</artifactId>
-                <version>${scala-library.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.kafka</groupId>
-                <artifactId>kafka-clients</artifactId>
-                <version>${kafka.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.xerial.snappy</groupId>
-                <artifactId>snappy-java</artifactId>
-                <version>${snappy-java.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.javassist</groupId>
-                <artifactId>javassist</artifactId>
-                <version>3.27.0-GA</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.avro</groupId>
-                <artifactId>avro</artifactId>
-                <version>${avro.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-lang3</artifactId>
-                <version>3.3.2</version>
-            </dependency>
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";
+       xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
+
+       <parent>
+               <groupId>org.apache.flink</groupId>
+               <artifactId>flink-connector-parent</artifactId>
+               <version>1.0.0</version>
+       </parent>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <artifactId>flink-connector-kafka-parent</artifactId>
+       <version>4.0-SNAPSHOT</version>
+       <name>Flink : Connectors : Kafka : Parent</name>
+       <packaging>pom</packaging>
+       <inceptionYear>2022</inceptionYear>
+
+       <scm>
+               <url>https://github.com/apache/flink-connector-kafka</url>
+               
<connection>g...@github.com:apache/flink-connector-kafka.git</connection>
+               <developerConnection>
+                       
scm:git:https://gitbox.apache.org/repos/asf/flink-connector-kafka.git
+               </developerConnection>
+       </scm>
+
+       <modules>
+               <module>flink-connector-kafka</module>
+               <module>flink-sql-connector-kafka</module>
+               <module>flink-connector-kafka-e2e-tests</module>
+               <module>flink-python</module>
+       </modules>
+
+       <properties>
+               <flink.version>2.0.0</flink.version>
+               <kafka.version>3.9.0</kafka.version>
+               <confluent.version>7.8.2</confluent.version>
+
+               <jackson-bom.version>2.16.2</jackson-bom.version>
+               <junit4.version>4.13.2</junit4.version>
+               <junit5.version>5.9.1</junit5.version>
+               <assertj.version>3.23.1</assertj.version>
+               <testcontainers.version>1.17.2</testcontainers.version>
+               <mockito.version>3.4.6</mockito.version>
+               <powermock.version>2.0.9</powermock.version>
+               <hamcrest.version>1.3</hamcrest.version>
+               <byte-buddy.version>1.12.10</byte-buddy.version>
+               <commons-cli.version>1.5.0</commons-cli.version>
+               <scala.binary.version>2.12</scala.binary.version>
+               <scala-reflect.version>2.12.19</scala-reflect.version>
+               <scala-library.version>2.12.19</scala-library.version>
+               <snappy-java.version>1.1.10.5</snappy-java.version>
+               <avro.version>1.11.4</avro.version>
+               <guava.version>32.1.2-jre</guava.version>
+
+               <japicmp.skip>false</japicmp.skip>
+               <japicmp.referenceVersion>1.17.0</japicmp.referenceVersion>
+
+               <slf4j.version>1.7.36</slf4j.version>
+               <log4j.version>2.17.1</log4j.version>
+
+               
<flink.parent.artifactId>flink-connector-kafka-parent</flink.parent.artifactId>
+
+               <!-- This property should contain the add-opens/add-exports 
commands required for the tests
+                in the given connector's module to pass.
+                It MUST be a space-separated list not containing any newlines,
+                of entries in the form 
'[-]{2}add-[opens|exports]=<module>/<package>=ALL-UNNAMED'.-->
+               <flink.connector.module.config/>
+               <flink.surefire.baseArgLine>-XX:+UseG1GC -Xms256m 
-XX:+IgnoreUnrecognizedVMOptions
+                       ${flink.connector.module.config}
+               </flink.surefire.baseArgLine>
+       </properties>
+
+       <!-- This section defines the module versions that are used if nothing 
else is specified. -->
+
+       <dependencyManagement>
+
+               <dependencies>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-streaming-java</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-annotations</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-connector-datagen</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-core</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-core-api</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-metrics-core</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-runtime</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-clients</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-connector-base</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               
<artifactId>flink-table-api-java-bridge</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-table-api-java</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-table-common</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-table-runtime</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-core</artifactId>
+                               <version>${flink.version}</version>
+                               <type>test-jar</type>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-streaming-java</artifactId>
+                               <version>${flink.version}</version>
+                               <type>test-jar</type>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-connector-base</artifactId>
+                               <version>${flink.version}</version>
+                               <type>test-jar</type>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               
<artifactId>flink-connector-test-utils</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-runtime</artifactId>
+                               <version>${flink.version}</version>
+                               <type>test-jar</type>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-metrics-jmx</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+
+                       <!-- Kafka table factory testing -->
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-table-common</artifactId>
+                               <version>${flink.version}</version>
+                               <type>test-jar</type>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-table-test-utils</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               
<artifactId>flink-table-api-scala-bridge_${scala.binary.version}</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               
<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               
<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
+                               <version>${flink.version}</version>
+                               <type>test-jar</type>
+                       </dependency>
+
+                       <!-- Kafka SQL IT test with formats -->
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-json</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-avro</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               
<artifactId>flink-avro-confluent-registry</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-csv</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+
+                       <!-- For dependency convergence -->
+                       <dependency>
+                               <groupId>net.bytebuddy</groupId>
+                               <artifactId>byte-buddy</artifactId>
+                               <version>${byte-buddy.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>net.bytebuddy</groupId>
+                               <artifactId>byte-buddy-agent</artifactId>
+                               <version>${byte-buddy.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>commons-cli</groupId>
+                               <artifactId>commons-cli</artifactId>
+                               <version>${commons-cli.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.scala-lang</groupId>
+                               <artifactId>scala-reflect</artifactId>
+                               <version>${scala-reflect.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.scala-lang</groupId>
+                               <artifactId>scala-library</artifactId>
+                               <version>${scala-library.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.apache.kafka</groupId>
+                               <artifactId>kafka-clients</artifactId>
+                               <version>${kafka.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.xerial.snappy</groupId>
+                               <artifactId>snappy-java</artifactId>
+                               <version>${snappy-java.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.javassist</groupId>
+                               <artifactId>javassist</artifactId>
+                               <version>3.27.0-GA</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.apache.avro</groupId>
+                               <artifactId>avro</artifactId>
+                               <version>${avro.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.apache.commons</groupId>
+                               <artifactId>commons-lang3</artifactId>
+                               <version>3.3.2</version>
+                       </dependency>
 
                        <dependency>
                                <groupId>com.google.guava</groupId>
                                <artifactId>guava</artifactId>
                                <version>${guava.version}</version>
                                <!-- Don't use guava in production code-->
-                               <scope>test</scope>
-                       </dependency>
-
-            <!-- Flink dependencies -->
-            <dependency>
-                <groupId>org.apache.flink</groupId>
-                <artifactId>flink-test-utils</artifactId>
-                <version>${flink.version}</version>
-                <scope>test</scope>
-                <exclusions>
-                    <exclusion>
-                        <groupId>log4j</groupId>
-                        <artifactId>log4j</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>slf4j-log4j12</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.flink</groupId>
-                <artifactId>flink-test-utils-junit</artifactId>
-                <version>${flink.version}</version>
-                <scope>test</scope>
-            </dependency>
-
-            <!-- Flink ArchUnit -->
-
-            <dependency>
-                <groupId>org.apache.flink</groupId>
-                <artifactId>flink-architecture-tests-base</artifactId>
-                <version>${flink.version}</version>
-                <scope>test</scope>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.flink</groupId>
-                <artifactId>flink-architecture-tests-test</artifactId>
-                <version>${flink.version}</version>
-                <scope>test</scope>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.flink</groupId>
-                <artifactId>flink-architecture-tests-production</artifactId>
-                <version>${flink.version}</version>
-                <scope>test</scope>
-            </dependency>
-
-            <!-- This manages the 'javax.annotation' annotations (JSR305) -->
-            <dependency>
-                <groupId>com.google.code.findbugs</groupId>
-                <artifactId>jsr305</artifactId>
-                <version>1.3.9</version>
-            </dependency>
-
-            <dependency>
-                <groupId>commons-codec</groupId>
-                <artifactId>commons-codec</artifactId>
-                <version>1.15</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.httpcomponents</groupId>
-                <artifactId>httpcore</artifactId>
-                <version>4.4.14</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.httpcomponents</groupId>
-                <artifactId>httpclient</artifactId>
-                <version>4.5.13</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-api</artifactId>
-                <version>${slf4j.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.logging.log4j</groupId>
-                <artifactId>log4j-slf4j-impl</artifactId>
-                <version>${log4j.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.logging.log4j</groupId>
-                <artifactId>log4j-api</artifactId>
-                <version>${log4j.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.logging.log4j</groupId>
-                <artifactId>log4j-core</artifactId>
-                <version>${log4j.version}</version>
-            </dependency>
-
-            <!-- For dependency convergence -->
-            <dependency>
-                <groupId>com.fasterxml.jackson</groupId>
-                <artifactId>jackson-bom</artifactId>
-                <type>pom</type>
-                <scope>import</scope>
-                <version>${jackson-bom.version}</version>
-            </dependency>
-
-            <!-- For dependency convergence -->
-            <dependency>
-                <groupId>org.junit</groupId>
-                <artifactId>junit-bom</artifactId>
-                <version>${junit5.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-
-            <dependency>
-                <groupId>junit</groupId>
-                <artifactId>junit</artifactId>
-                <version>${junit4.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.assertj</groupId>
-                <artifactId>assertj-core</artifactId>
-                <version>${assertj.version}</version>
-                <scope>test</scope>
-            </dependency>
-
-            <!-- For dependency convergence -->
-            <dependency>
-                <groupId>com.esotericsoftware.kryo</groupId>
-                <artifactId>kryo</artifactId>
-                <version>2.24.0</version>
-            </dependency>
-
-            <!-- For dependency convergence -->
-            <dependency>
-                <groupId>org.objenesis</groupId>
-                <artifactId>objenesis</artifactId>
-                <version>2.1</version>
-            </dependency>
-
-            <!-- For dependency convergence -->
-            <dependency>
-                <groupId>org.yaml</groupId>
-                <artifactId>snakeyaml</artifactId>
-                <version>2.2</version>
-            </dependency>
-
-            <!-- For dependency convergence -->
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-compress</artifactId>
-                <version>1.26.1</version>
-            </dependency>
-
-            <!-- For dependency convergence -->
-            <dependency>
-                <groupId>commons-io</groupId>
-                <artifactId>commons-io</artifactId>
-                <version>2.15.1</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.testcontainers</groupId>
-                <artifactId>testcontainers-bom</artifactId>
-                <version>${testcontainers.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-
-        </dependencies>
-    </dependencyManagement>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>exec-maven-plugin</artifactId>
-                <inherited>false</inherited>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.apache.flink</groupId>
-                        <artifactId>flink-ci-tools</artifactId>
-                        <version>${flink.version}</version>
-                    </dependency>
-                </dependencies>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <!-- activate API compatibility checks -->
-                <groupId>io.github.zentol.japicmp</groupId>
-                <artifactId>japicmp-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
-                <inherited>false</inherited>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>com.diffplug.spotless</groupId>
-                <artifactId>spotless-maven-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-enforcer-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.commonjava.maven.plugins</groupId>
-                <artifactId>directory-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+                       </dependency>
+
+                       <!-- Flink dependencies -->
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-test-utils</artifactId>
+                               <version>${flink.version}</version>
+                               <exclusions>
+                                       <exclusion>
+                                               <groupId>log4j</groupId>
+                                               <artifactId>log4j</artifactId>
+                                       </exclusion>
+                                       <exclusion>
+                                               <groupId>org.slf4j</groupId>
+                                               
<artifactId>slf4j-log4j12</artifactId>
+                                       </exclusion>
+                               </exclusions>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-test-utils-junit</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+
+                       <!-- Flink ArchUnit -->
+
+                       <dependency>
+                               <groupId>com.tngtech.archunit</groupId>
+                               <artifactId>archunit</artifactId>
+                               <version>1.2.0</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>com.tngtech.archunit</groupId>
+                               <artifactId>archunit-junit5-api</artifactId>
+                               <version>1.2.0</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               
<artifactId>flink-architecture-tests-base</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               
<artifactId>flink-architecture-tests-test</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               
<artifactId>flink-architecture-tests-production</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+
+                       <!-- This manages the 'javax.annotation' annotations 
(JSR305) -->
+                       <dependency>
+                               <groupId>com.google.code.findbugs</groupId>
+                               <artifactId>jsr305</artifactId>
+                               <version>1.3.9</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>commons-codec</groupId>
+                               <artifactId>commons-codec</artifactId>
+                               <version>1.15</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.apache.httpcomponents</groupId>
+                               <artifactId>httpcore</artifactId>
+                               <version>4.4.14</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.apache.httpcomponents</groupId>
+                               <artifactId>httpclient</artifactId>
+                               <version>4.5.13</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.slf4j</groupId>
+                               <artifactId>slf4j-api</artifactId>
+                               <version>${slf4j.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.apache.logging.log4j</groupId>
+                               <artifactId>log4j-slf4j-impl</artifactId>
+                               <version>${log4j.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.apache.logging.log4j</groupId>
+                               <artifactId>log4j-api</artifactId>
+                               <version>${log4j.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.apache.logging.log4j</groupId>
+                               <artifactId>log4j-core</artifactId>
+                               <version>${log4j.version}</version>
+                       </dependency>
+
+                       <!-- For dependency convergence -->
+                       <dependency>
+                               <groupId>com.fasterxml.jackson</groupId>
+                               <artifactId>jackson-bom</artifactId>
+                               <type>pom</type>
+                               <scope>import</scope>
+                               <version>${jackson-bom.version}</version>
+                       </dependency>
+
+                       <!-- For dependency convergence -->
+                       <dependency>
+                               <groupId>org.junit</groupId>
+                               <artifactId>junit-bom</artifactId>
+                               <version>${junit5.version}</version>
+                               <type>pom</type>
+                               <scope>import</scope>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>junit</groupId>
+                               <artifactId>junit</artifactId>
+                               <version>${junit4.version}</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.assertj</groupId>
+                               <artifactId>assertj-core</artifactId>
+                               <version>${assertj.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.hamcrest</groupId>
+                               <artifactId>hamcrest-all</artifactId>
+                               <version>${hamcrest.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.hamcrest</groupId>
+                               <artifactId>hamcrest-core</artifactId>
+                               <version>${hamcrest.version}</version>
+                       </dependency>
+
+                       <!-- For dependency convergence -->
+                       <dependency>
+                               <groupId>com.esotericsoftware.kryo</groupId>
+                               <artifactId>kryo</artifactId>
+                               <version>2.24.0</version>
+                       </dependency>
+
+                       <!-- For dependency convergence -->
+                       <dependency>
+                               <groupId>org.objenesis</groupId>
+                               <artifactId>objenesis</artifactId>
+                               <version>2.1</version>
+                       </dependency>
+
+                       <!-- For dependency convergence -->
+                       <dependency>
+                               <groupId>org.yaml</groupId>
+                               <artifactId>snakeyaml</artifactId>
+                               <version>2.2</version>
+                       </dependency>
+
+                       <!-- For dependency convergence -->
+                       <dependency>
+                               <groupId>org.apache.commons</groupId>
+                               <artifactId>commons-compress</artifactId>
+                               <version>1.26.1</version>
+                       </dependency>
+
+                       <!-- For dependency convergence -->
+                       <dependency>
+                               <groupId>commons-io</groupId>
+                               <artifactId>commons-io</artifactId>
+                               <version>2.15.1</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>org.testcontainers</groupId>
+                               <artifactId>testcontainers-bom</artifactId>
+                               <version>${testcontainers.version}</version>
+                               <type>pom</type>
+                               <scope>import</scope>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>com.github.docker-java</groupId>
+                               <artifactId>docker-java-api</artifactId>
+                               <version>3.2.13</version>
+                       </dependency>
+
+                       <dependency>
+                               <groupId>io.confluent</groupId>
+                               <artifactId>kafka-avro-serializer</artifactId>
+                               <version>${confluent.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>io.confluent</groupId>
+                               
<artifactId>kafka-schema-registry-client</artifactId>
+                               <version>${confluent.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               
<artifactId>flink-sql-avro-confluent-registry</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.flink</groupId>
+                               <artifactId>flink-sql-avro</artifactId>
+                               <version>${flink.version}</version>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <build>
+               <plugins>
+                       <plugin>
+                               <groupId>org.codehaus.mojo</groupId>
+                               <artifactId>exec-maven-plugin</artifactId>
+                               <inherited>false</inherited>
+                               <dependencies>
+                                       <dependency>
+                                               
<groupId>org.apache.flink</groupId>
+                                               
<artifactId>flink-ci-tools</artifactId>
+                                               
<version>${flink.version}</version>
+                                       </dependency>
+                               </dependencies>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-jar-plugin</artifactId>
+                       </plugin>
+
+                       <plugin>
+                               <!-- activate API compatibility checks -->
+                               <groupId>io.github.zentol.japicmp</groupId>
+                               <artifactId>japicmp-maven-plugin</artifactId>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.apache.rat</groupId>
+                               <artifactId>apache-rat-plugin</artifactId>
+                               <inherited>false</inherited>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-checkstyle-plugin</artifactId>
+                       </plugin>
+                       <plugin>
+                               <groupId>com.diffplug.spotless</groupId>
+                               <artifactId>spotless-maven-plugin</artifactId>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-compiler-plugin</artifactId>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-surefire-plugin</artifactId>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-shade-plugin</artifactId>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.commonjava.maven.plugins</groupId>
+                               <artifactId>directory-maven-plugin</artifactId>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-dependency-plugin</artifactId>
+                               <version>3.7.1</version>
+                               <executions>
+                                       <execution>
+                                               <id>analyze-deps</id>
+                                               <goals>
+                                                       <goal>analyze</goal>
+                                               </goals>
+                                               <phase>verify</phase>
+                                               <configuration>
+                                                       
<failOnWarning>true</failOnWarning>
+                                                       
<ignoreAllNonTestScoped>true</ignoreAllNonTestScoped>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-enforcer-plugin</artifactId>
+                               <executions>
+                                       <execution>
+                                               <id>enforce-banned-deps</id>
+                                               <goals>
+                                                       <goal>enforce</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <rules>
+                                                               
<bannedDependencies>
+                                                                       
<excludes>
+                                                                               
<exclude>com.google.guava:guava</exclude>
+                                                                               
<exclude>org.mockito</exclude>
+                                                                               
<exclude>org.powermock</exclude>
+                                                                       
</excludes>
+                                                                       
<includes>
+                                                                               
<include>com.google.guava:guava:*:*:test</include>
+                                                                       
</includes>
+                                                               
</bannedDependencies>
+                                                       </rules>
+                                                       <fail>true</fail>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+               </plugins>
+       </build>
 </project>
diff --git a/tools/maven/checkstyle.xml b/tools/maven/checkstyle.xml
index 7d1f9fd7..157888a5 100644
--- a/tools/maven/checkstyle.xml
+++ b/tools/maven/checkstyle.xml
@@ -210,7 +210,7 @@ This file is based on the checkstyle file of Apache Beam.
 
                <module name="IllegalImport">
                        <property name="illegalPkgs"
-                                         value="autovalue.shaded, avro.shaded, 
com.google.api.client.repackaged, com.google.appengine.repackaged"/>
+                                         value="autovalue.shaded, avro.shaded, 
com.google.api.client.repackaged, com.google"/>
                </module>
                <module name="IllegalImport">
                        <property name="illegalPkgs" 
value="org.codehaus.jackson"/>
@@ -224,6 +224,10 @@ This file is based on the checkstyle file of Apache Beam.
                        <property name="illegalPkgs" value="io.netty"/>
                        <message key="import.illegal" value="{0}; Use 
flink-shaded-netty instead."/>
                </module>
+               <module name="IllegalImport">
+                       <property name="illegalPkgs" value="com.google"/>
+                       <message key="import.illegal" value="{0}; Don't use 
guava in prod code."/>
+               </module>
 
                <module name="RedundantModifier">
                        <!-- Checks for redundant modifiers on various symbol 
definitions.
diff --git a/tools/maven/suppressions.xml b/tools/maven/suppressions.xml
index 4f80ec22..7fb3482d 100644
--- a/tools/maven/suppressions.xml
+++ b/tools/maven/suppressions.xml
@@ -23,4 +23,7 @@ under the License.
                "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd";>
 
 <suppressions>
+       <suppress
+               files="(.*)test[/\\]"
+               checks="IllegalImport"/>
 </suppressions>

Reply via email to