[FLINK-33361][connectors/kafka] Add Java 17 compatibility to Flink Kafka connector

diff --git a/.github/workflows/push_pr.yml b/.github/workflows/push_pr.yml
index 8f53a5b..099a181 100644
--- a/.github/workflows/push_pr.yml
+++ b/.github/workflows/push_pr.yml
@@ -26,10 +26,14 @@
     strategy:
       matrix:
         flink: [ 1.17.1, 1.18.0 ]
+        jdk: [ 8, 11, 17 ]
+        exclude:
+          - jdk: 17
+            flink: 1.17.1
     uses: apache/flink-connector-shared-utils/.github/workflows/ci.yml@ci_utils
     with:
       flink_version: ${{ matrix.flink }}
-    
+      jdk_version: ${{ matrix.jdk }}
   python_test:
     strategy:
       matrix:
diff --git a/flink-connector-kafka/pom.xml b/flink-connector-kafka/pom.xml
index 7c549fd..470f5da 100644
--- a/flink-connector-kafka/pom.xml
+++ b/flink-connector-kafka/pom.xml
@@ -34,6 +34,14 @@
 
     <packaging>jar</packaging>
 
+    <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>
+
     <dependencies>
 
         <!-- Core -->
diff --git a/pom.xml b/pom.xml
index d4cd255..b70e98c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,6 +78,13 @@
         <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>