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

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


The following commit(s) were added to refs/heads/main by this push:
     new 343f752  [FLINK-41112][Connectors/Cassandra] Support Flink 1.20
343f752 is described below

commit 343f752b0576d4fcf794251929ec78fb35dbe5a5
Author: Martijn Visser <[email protected]>
AuthorDate: Fri Oct 23 17:11:30 2026 +0200

    [FLINK-41112][Connectors/Cassandra] Support Flink 1.20
    
    Build against Flink 1.20.0 and test against 1.20.5 in CI. Flink 1.20.2
    moved to log4j 2.24.3, so manage the log4j version for dependency
    convergence. FLINK-35454 lets connectors use org.apache.flink.util, so
    the Preconditions entries in the ArchUnit store are no longer
    violations.
    
    Generated-by: Claude Code (Claude Opus 5.5)
---
 .github/workflows/push_pr.yml                      |  4 +---
 .github/workflows/weekly.yml                       |  6 ------
 .../dcfaa83d-a12c-48e1-9e51-b8d3808cd287           | 17 +--------------
 flink-connector-cassandra/pom.xml                  |  1 -
 .../cassandra/source/CassandraSourceITCase.java    |  2 +-
 pom.xml                                            | 24 +++++++++++++++++++++-
 6 files changed, 26 insertions(+), 28 deletions(-)

diff --git a/.github/workflows/push_pr.yml b/.github/workflows/push_pr.yml
index fb5211e..c1a14bb 100644
--- a/.github/workflows/push_pr.yml
+++ b/.github/workflows/push_pr.yml
@@ -25,9 +25,7 @@ jobs:
   compile_and_test:
     strategy:
       matrix:
-        flink: [ 1.19.3 ]
-        include:
-          - flink: 1.18.1
+        flink: [ 1.20.5 ]
 
     uses: apache/flink-connector-shared-utils/.github/workflows/ci.yml@ci_utils
     with:
diff --git a/.github/workflows/weekly.yml b/.github/workflows/weekly.yml
index 5534af4..20ea30c 100644
--- a/.github/workflows/weekly.yml
+++ b/.github/workflows/weekly.yml
@@ -27,12 +27,6 @@ jobs:
     strategy:
       matrix:
         flink_branches: [{
-          flink: 1.18-SNAPSHOT,
-          branch: main
-        }, {
-          flink: 1.19-SNAPSHOT,
-          branch: main
-        }, {
           flink: 1.20-SNAPSHOT,
           branch: main
         }]
diff --git 
a/flink-connector-cassandra/archunit-violations/dcfaa83d-a12c-48e1-9e51-b8d3808cd287
 
b/flink-connector-cassandra/archunit-violations/dcfaa83d-a12c-48e1-9e51-b8d3808cd287
index 3fc516c..9e7ab8b 100644
--- 
a/flink-connector-cassandra/archunit-violations/dcfaa83d-a12c-48e1-9e51-b8d3808cd287
+++ 
b/flink-connector-cassandra/archunit-violations/dcfaa83d-a12c-48e1-9e51-b8d3808cd287
@@ -1,23 +1,8 @@
 Constructor 
<org.apache.flink.connector.cassandra.source.CassandraSource.<init>(org.apache.flink.streaming.connectors.cassandra.ClusterBuilder,
 long, java.lang.Class, java.lang.String, 
org.apache.flink.streaming.connectors.cassandra.MapperOptions)> calls method 
<org.apache.flink.api.java.ClosureCleaner.clean(java.lang.Object, 
org.apache.flink.api.common.ExecutionConfig$ClosureCleanerLevel, boolean)> in 
(CassandraSource.java:138)
-Constructor 
<org.apache.flink.connector.cassandra.source.CassandraSource.<init>(org.apache.flink.streaming.connectors.cassandra.ClusterBuilder,
 long, java.lang.Class, java.lang.String, 
org.apache.flink.streaming.connectors.cassandra.MapperOptions)> calls method 
<org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, 
java.lang.String)> in (CassandraSource.java:124)
-Constructor 
<org.apache.flink.connector.cassandra.source.CassandraSource.<init>(org.apache.flink.streaming.connectors.cassandra.ClusterBuilder,
 long, java.lang.Class, java.lang.String, 
org.apache.flink.streaming.connectors.cassandra.MapperOptions)> calls method 
<org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, 
java.lang.String)> in (CassandraSource.java:125)
-Constructor 
<org.apache.flink.connector.cassandra.source.CassandraSource.<init>(org.apache.flink.streaming.connectors.cassandra.ClusterBuilder,
 long, java.lang.Class, java.lang.String, 
org.apache.flink.streaming.connectors.cassandra.MapperOptions)> calls method 
<org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, 
java.lang.String)> in (CassandraSource.java:126)
-Constructor 
<org.apache.flink.connector.cassandra.source.CassandraSource.<init>(org.apache.flink.streaming.connectors.cassandra.ClusterBuilder,
 long, java.lang.Class, java.lang.String, 
org.apache.flink.streaming.connectors.cassandra.MapperOptions)> calls method 
<org.apache.flink.util.Preconditions.checkState(boolean, java.lang.String, 
[Ljava.lang.Object;)> in (CassandraSource.java:127)
 Constructor 
<org.apache.flink.connector.cassandra.source.CassandraSource.<init>(org.apache.flink.streaming.connectors.cassandra.ClusterBuilder,
 long, 
org.apache.flink.connector.cassandra.source.reader.converter.CassandraRowToTypeConverter,
 java.lang.String)> calls method 
<org.apache.flink.api.java.ClosureCleaner.clean(java.lang.Object, 
org.apache.flink.api.common.ExecutionConfig$ClosureCleanerLevel, boolean)> in 
(CassandraSource.java:190)
-Constructor 
<org.apache.flink.connector.cassandra.source.CassandraSource.<init>(org.apache.flink.streaming.connectors.cassandra.ClusterBuilder,
 long, 
org.apache.flink.connector.cassandra.source.reader.converter.CassandraRowToTypeConverter,
 java.lang.String)> calls method 
<org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, 
java.lang.String)> in (CassandraSource.java:194)
-Constructor 
<org.apache.flink.connector.cassandra.source.CassandraSource.<init>(org.apache.flink.streaming.connectors.cassandra.ClusterBuilder,
 long, 
org.apache.flink.connector.cassandra.source.reader.converter.CassandraRowToTypeConverter,
 java.lang.String)> calls method 
<org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, 
java.lang.String)> in (CassandraSource.java:195)
-Constructor 
<org.apache.flink.connector.cassandra.source.CassandraSource.<init>(org.apache.flink.streaming.connectors.cassandra.ClusterBuilder,
 long, 
org.apache.flink.connector.cassandra.source.reader.converter.CassandraRowToTypeConverter,
 java.lang.String)> calls method 
<org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, 
java.lang.String)> in (CassandraSource.java:196)
-Constructor 
<org.apache.flink.connector.cassandra.source.CassandraSource.<init>(org.apache.flink.streaming.connectors.cassandra.ClusterBuilder,
 long, 
org.apache.flink.connector.cassandra.source.reader.converter.CassandraRowToTypeConverter,
 java.lang.String)> calls method 
<org.apache.flink.util.Preconditions.checkState(boolean, java.lang.String, 
[Ljava.lang.Object;)> in (CassandraSource.java:197)
-Constructor 
<org.apache.flink.connector.cassandra.source.reader.CassandraRowEmitter.<init>(org.apache.flink.connector.cassandra.source.reader.converter.CassandraRowToTypeConverter)>
 calls method 
<org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, 
java.lang.String)> in (CassandraRowEmitter.java:38)
-Method 
<org.apache.flink.connector.cassandra.source.CassandraSourceBuilder.buildForPojo(java.lang.Class)>
 calls method 
<org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, 
java.lang.String)> in (CassandraSourceBuilder.java:153)
-Method 
<org.apache.flink.connector.cassandra.source.CassandraSourceBuilder.buildForRowData(org.apache.flink.table.types.logical.RowType)>
 calls method 
<org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, 
java.lang.String)> in (CassandraSourceBuilder.java:177)
-Method 
<org.apache.flink.connector.cassandra.source.CassandraSourceBuilder.validateCommonParameters()>
 calls method 
<org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, 
java.lang.String)> in (CassandraSourceBuilder.java:185)
-Method 
<org.apache.flink.connector.cassandra.source.CassandraSourceBuilder.validateCommonParameters()>
 calls method 
<org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, 
java.lang.String)> in (CassandraSourceBuilder.java:186)
 Method 
<org.apache.flink.connector.cassandra.source.reader.CassandraSplitReader.generateRangeQuery(java.lang.String,
 java.lang.String)> is annotated with 
<org.apache.flink.annotation.VisibleForTesting> in (CassandraSplitReader.java:0)
 Method 
<org.apache.flink.connector.cassandra.source.split.SplitsGenerator.getEstimatedTableSize()>
 is annotated with <org.apache.flink.annotation.VisibleForTesting> in 
(SplitsGenerator.java:0)
-Method 
<org.apache.flink.connector.cassandra.source.utils.QueryValidator.checkQueryValidity(java.lang.String)>
 calls method <org.apache.flink.util.Preconditions.checkState(boolean, 
java.lang.Object)> in (QueryValidator.java:57)
-Method 
<org.apache.flink.connector.cassandra.source.utils.QueryValidator.checkQueryValidity(java.lang.String)>
 calls method <org.apache.flink.util.Preconditions.checkState(boolean, 
java.lang.Object)> in (QueryValidator.java:61)
 Method 
<org.apache.flink.connector.cassandra.source.utils.QueryValidator.extractFilteringColumns(java.lang.String)>
 is annotated with <org.apache.flink.annotation.VisibleForTesting> in 
(QueryValidator.java:0)
 Method 
<org.apache.flink.connector.cassandra.source.utils.QueryValidator.filtersOnPartitionKey(java.util.Set,
 java.lang.String, java.lang.String)> is annotated with 
<org.apache.flink.annotation.VisibleForTesting> in (QueryValidator.java:0)
 Method 
<org.apache.flink.connector.cassandra.source.utils.QueryValidator.isIndexedColumn(java.lang.String,
 java.lang.String, java.lang.String)> is annotated with 
<org.apache.flink.annotation.VisibleForTesting> in (QueryValidator.java:0)
-Method 
<org.apache.flink.connector.cassandra.source.utils.QueryValidator.isPrimaryKeyColumn(java.lang.String,
 java.lang.String, java.lang.String)> is annotated with 
<org.apache.flink.annotation.VisibleForTesting> in (QueryValidator.java:0)
\ No newline at end of file
+Method 
<org.apache.flink.connector.cassandra.source.utils.QueryValidator.isPrimaryKeyColumn(java.lang.String,
 java.lang.String, java.lang.String)> is annotated with 
<org.apache.flink.annotation.VisibleForTesting> in (QueryValidator.java:0)
diff --git a/flink-connector-cassandra/pom.xml 
b/flink-connector-cassandra/pom.xml
index b7b5c62..ed19434 100644
--- a/flink-connector-cassandra/pom.xml
+++ b/flink-connector-cassandra/pom.xml
@@ -40,7 +40,6 @@ under the License.
                <scala.binary.version>2.12</scala.binary.version>
                <scala-library.version>2.12.7</scala-library.version>
                <slf4j.version>1.7.36</slf4j.version>
-               <log4j.version>2.17.1</log4j.version>
                <junit5.version>5.8.1</junit5.version>
                <assertj.version>3.23.1</assertj.version>
                <archunit.version>1.0.0</archunit.version>
diff --git 
a/flink-connector-cassandra/src/test/java/org/apache/flink/connector/cassandra/source/CassandraSourceITCase.java
 
b/flink-connector-cassandra/src/test/java/org/apache/flink/connector/cassandra/source/CassandraSourceITCase.java
index f74a41b..7b889b3 100644
--- 
a/flink-connector-cassandra/src/test/java/org/apache/flink/connector/cassandra/source/CassandraSourceITCase.java
+++ 
b/flink-connector-cassandra/src/test/java/org/apache/flink/connector/cassandra/source/CassandraSourceITCase.java
@@ -35,7 +35,7 @@ import 
org.apache.flink.connector.testframe.junit.annotations.TestSemantics;
 import org.apache.flink.connector.testframe.testsuites.SourceTestSuiteBase;
 import org.apache.flink.connector.testframe.utils.CollectIteratorAssertions;
 import org.apache.flink.connectors.cassandra.utils.Pojo;
-import org.apache.flink.streaming.api.CheckpointingMode;
+import org.apache.flink.core.execution.CheckpointingMode;
 import org.apache.flink.util.CloseableIterator;
 
 import org.junit.jupiter.api.Disabled;
diff --git a/pom.xml b/pom.xml
index a6c7119..d0b036f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,9 +42,10 @@ under the License.
        </scm>
 
        <properties>
-               <flink.version>1.18.0</flink.version>
+               <flink.version>1.20.0</flink.version>
                <japicmp.referenceVersion>3.1.0-1.17</japicmp.referenceVersion>
                <guava.version>19.0</guava.version>
+               <log4j.version>2.24.3</log4j.version>
        </properties>
 
        <modules>
@@ -80,6 +81,27 @@ under the License.
                                <artifactId>commons-lang3</artifactId>
                                <version>3.14.0</version>
                        </dependency>
+
+                       <!-- For dependency convergence -->
+                       <dependency>
+                               <groupId>org.apache.logging.log4j</groupId>
+                               <artifactId>log4j-api</artifactId>
+                               <version>${log4j.version}</version>
+                       </dependency>
+
+                       <!-- For dependency convergence -->
+                       <dependency>
+                               <groupId>org.apache.logging.log4j</groupId>
+                               <artifactId>log4j-core</artifactId>
+                               <version>${log4j.version}</version>
+                       </dependency>
+
+                       <!-- For dependency convergence -->
+                       <dependency>
+                               <groupId>org.apache.logging.log4j</groupId>
+                               <artifactId>log4j-slf4j-impl</artifactId>
+                               <version>${log4j.version}</version>
+                       </dependency>
                </dependencies>
        </dependencyManagement>
 

Reply via email to