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>