From 652338edc98b1270c7ba00a6f62a97c67709b9ea Mon Sep 17 00:00:00 2001 From: Peter-Phi-Tran Date: Sat, 20 Jun 2026 03:15:20 -0500 Subject: [PATCH 01/10] [IcebergIO] Bump Java floor to 17 (prep for Iceberg 1.11.0) Iceberg 1.11.0 is published as Java 17 bytecode (class file version 61); Gradle module metadata declares "org.gradle.jvm.version": 17. The current Java 11 floor on sdks/java/io/iceberg causes Iceberg 1.11.0 artifacts to fail resolution. Raise the floor independently so the version bump is a clean diff. Iceberg 1.10.0 still resolves under Java 17 (10.0 only requires Java 11+). Tracks #38925. --- CHANGES.md | 4 ++++ sdks/java/io/iceberg/build.gradle | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index a1fdede94494..c5da08bd1a5f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -79,6 +79,10 @@ * (Python) Removed `google-perftools` from the SDK container images. Users who wish to use `--profiler_agent=tcmalloc` should install google-perftools APT package in their custom container images separately ([#39323](https://github.com/apache/beam/issues/39323)). * `DoFn.process` returning a `str`, `bytes`, or `dict` (instead of an iterable wrapping one) now raises a `TypeError` rather than silently iterating per-character/byte/key (Python) ([#18712](https://github.com/apache/beam/issues/18712)). * (Java) Added `DRAINING` and `DRAINED` states to `PipelineResult`, including runner state mappings and Dataflow update handling ([#39020](https://github.com/apache/beam/issues/39020)). +* (Python) Typehints of dataclass fields are honored during type inferences. To restore the behavior of fallback-to-any, + use pipeline option `--exclude_infer_dataclass_field_type` ([#38797](https://github.com/apache/beam/issues/38797)). + However fixing forward is recommended. +* (Java) IcebergIO now requires Java 17 at runtime. This raises the floor in preparation for the Iceberg 1.11.0 upgrade ([#38925](https://github.com/apache/beam/issues/38925)). ## Deprecations diff --git a/sdks/java/io/iceberg/build.gradle b/sdks/java/io/iceberg/build.gradle index 8142c5f5b90b..7cdd32ed90e4 100644 --- a/sdks/java/io/iceberg/build.gradle +++ b/sdks/java/io/iceberg/build.gradle @@ -23,8 +23,8 @@ import java.util.stream.Collectors plugins { id 'org.apache.beam.module' } applyJavaNature( automaticModuleName: 'org.apache.beam.sdk.io.iceberg', - // iceberg ended support for Java 8 in 1.7.0 - requireJavaVersion: JavaVersion.VERSION_11, + // iceberg ended support for Java 11 in 1.11.0 + requireJavaVersion: JavaVersion.VERSION_17, ) description = "Apache Beam :: SDKs :: Java :: IO :: Iceberg" From 3cd88d3314a266fb350ec13ec8e36c3b7770ad54 Mon Sep 17 00:00:00 2001 From: Peter-Phi-Tran Date: Mon, 22 Jun 2026 11:39:44 -0500 Subject: [PATCH 02/10] [IcebergIO] Run IcebergIO CI workflows on Java 17 Iceberg 1.11.0 dropped Java 11 support and this branch raised the iceberg module floor to Java 17 (requireJavaVersion VERSION_17). The IO_Iceberg_* workflows call setup-environment-action without a java-version, which defaults to Java 11, so the module would fail to build or be disabled on CI. Pin these workflows to Java 17, matching the Delta and Debezium IO workflows. For #38925 Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/IO_Iceberg_Integration_Tests.yml | 2 ++ .github/workflows/IO_Iceberg_Integration_Tests_Dataflow.yml | 2 ++ .../workflows/IO_Iceberg_Managed_Integration_Tests_Dataflow.yml | 2 ++ .github/workflows/IO_Iceberg_Performance_Tests.yml | 2 ++ .github/workflows/IO_Iceberg_Unit_Tests.yml | 2 ++ 5 files changed, 10 insertions(+) diff --git a/.github/workflows/IO_Iceberg_Integration_Tests.yml b/.github/workflows/IO_Iceberg_Integration_Tests.yml index 8780bfee5b3a..fa85215f8fc3 100644 --- a/.github/workflows/IO_Iceberg_Integration_Tests.yml +++ b/.github/workflows/IO_Iceberg_Integration_Tests.yml @@ -74,6 +74,8 @@ jobs: github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }}) - name: Setup environment uses: ./.github/actions/setup-environment-action + with: + java-version: 17 - name: Run IcebergIO Integration Test uses: ./.github/actions/gradle-command-self-hosted-action with: diff --git a/.github/workflows/IO_Iceberg_Integration_Tests_Dataflow.yml b/.github/workflows/IO_Iceberg_Integration_Tests_Dataflow.yml index 3ec2845d7704..c569100c63d6 100644 --- a/.github/workflows/IO_Iceberg_Integration_Tests_Dataflow.yml +++ b/.github/workflows/IO_Iceberg_Integration_Tests_Dataflow.yml @@ -74,6 +74,8 @@ jobs: github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }}) - name: Setup environment uses: ./.github/actions/setup-environment-action + with: + java-version: 17 - name: Run IcebergIO Integration Tests on Dataflow uses: ./.github/actions/gradle-command-self-hosted-action with: diff --git a/.github/workflows/IO_Iceberg_Managed_Integration_Tests_Dataflow.yml b/.github/workflows/IO_Iceberg_Managed_Integration_Tests_Dataflow.yml index 4cf38c3ff3fd..bec849eebd4f 100644 --- a/.github/workflows/IO_Iceberg_Managed_Integration_Tests_Dataflow.yml +++ b/.github/workflows/IO_Iceberg_Managed_Integration_Tests_Dataflow.yml @@ -74,6 +74,8 @@ jobs: github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }}) - name: Setup environment uses: ./.github/actions/setup-environment-action + with: + java-version: 17 - name: Run IcebergIO Managed Integration Tests on Dataflow uses: ./.github/actions/gradle-command-self-hosted-action with: diff --git a/.github/workflows/IO_Iceberg_Performance_Tests.yml b/.github/workflows/IO_Iceberg_Performance_Tests.yml index 3cb9c24c26b6..e0bdd59d9b66 100644 --- a/.github/workflows/IO_Iceberg_Performance_Tests.yml +++ b/.github/workflows/IO_Iceberg_Performance_Tests.yml @@ -74,6 +74,8 @@ jobs: github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }}) - name: Setup environment uses: ./.github/actions/setup-environment-action + with: + java-version: 17 - name: Run IcebergIO Performance Test uses: ./.github/actions/gradle-command-self-hosted-action with: diff --git a/.github/workflows/IO_Iceberg_Unit_Tests.yml b/.github/workflows/IO_Iceberg_Unit_Tests.yml index f3fd63a9d479..4f184da47a3c 100644 --- a/.github/workflows/IO_Iceberg_Unit_Tests.yml +++ b/.github/workflows/IO_Iceberg_Unit_Tests.yml @@ -93,6 +93,8 @@ jobs: github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }}) - name: Setup environment uses: ./.github/actions/setup-environment-action + with: + java-version: 17 - name: run IcebergIO build script uses: ./.github/actions/gradle-command-self-hosted-action with: From f0bf17943b7edbf256c1797d040074d27a0fc742 Mon Sep 17 00:00:00 2001 From: Peter-Phi-Tran Date: Mon, 22 Jun 2026 14:58:10 -0500 Subject: [PATCH 03/10] [IcebergIO] Raise Java 17 floor for IcebergIO's Java 11 dependents Bumping the iceberg module to Java 17 (Iceberg 1.11.0 dropped Java 11) breaks the Java 11 modules that depend on it, because Gradle's JVM-version variant resolution refuses to let a Java 11 consumer depend on a Java 17 library. Raise requireJavaVersion 11 -> 17 in: - sdks/java/extensions/sql/iceberg - examples/java/iceberg The Java IO expansion service (sdks/java/io/expansion-service) also depends on IcebergIO but was already raised to Java 17 on master in For #38925 Co-Authored-By: Claude Opus 4.8 (1M context) --- examples/java/iceberg/build.gradle | 4 ++-- sdks/java/extensions/sql/iceberg/build.gradle | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/java/iceberg/build.gradle b/examples/java/iceberg/build.gradle index 4d4a1fb44413..2cff15c5fb0d 100644 --- a/examples/java/iceberg/build.gradle +++ b/examples/java/iceberg/build.gradle @@ -26,8 +26,8 @@ plugins { applyJavaNature( exportJavadoc: false, automaticModuleName: 'org.apache.beam.examples.iceberg', - // iceberg requires Java11+ - requireJavaVersion: JavaVersion.VERSION_11 + // iceberg requires Java17+ + requireJavaVersion: JavaVersion.VERSION_17 ) description = "Apache Beam :: Examples :: Java :: Iceberg" diff --git a/sdks/java/extensions/sql/iceberg/build.gradle b/sdks/java/extensions/sql/iceberg/build.gradle index 893a485e7d86..97a128d69e9e 100644 --- a/sdks/java/extensions/sql/iceberg/build.gradle +++ b/sdks/java/extensions/sql/iceberg/build.gradle @@ -22,8 +22,8 @@ plugins { id 'org.apache.beam.module' } applyJavaNature( automaticModuleName: 'org.apache.beam.sdk.extensions.sql.meta.provider.hcatalog', - // iceberg requires Java11+ - requireJavaVersion: JavaVersion.VERSION_11, + // iceberg requires Java17+ + requireJavaVersion: JavaVersion.VERSION_17, ) dependencies { From 030c8b5ca68b56c82e8b79ad9555e0f195f7993c Mon Sep 17 00:00:00 2001 From: Peter-Phi-Tran Date: Wed, 24 Jun 2026 00:31:00 -0500 Subject: [PATCH 04/10] [IcebergIO] Fix Checker skipUses regex dropped on forked Java 17 compile Raising the Java 17 floor routes IcebergIO through a forked compile: on an older host JDK (e.g. Java 11 CI) the module is compiled by a separate Java 17 javac launched via java17Home, and Gradle passes its arguments through an @argfile. The backslash-escaped '\.' in Beam's Checker Framework -AskipUses and -AskipDefs regexes does not survive that @argfile round-trip, so '^org\.slf4j\.Logger.*' becomes a literal-backslash regex that matches nothing and the org.slf4j.Logger nullness suppression is silently dropped. Two latent Logger.info(@Nullable) calls in IcebergIO then hard-error under the NullnessChecker. Use the backslash-free character class '[.]' (semantically identical to '\.') so the regexes survive the @argfile round-trip. This fixes the suppression for every module that forks to a newer JDK, with no behavior change on the in-process compile path. --- .../org/apache/beam/gradle/BeamModulePlugin.groovy | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 0bf3dc11e2d7..8e536f0dbe3a 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -1257,20 +1257,26 @@ class BeamModulePlugin implements Plugin { maxHeapSize = '2g' } + // NOTE: Use the character class "[.]" instead of an escaped "\\." to match a literal dot in + // these Checker Framework -AskipDefs/-AskipUses regexes. When a module is compiled on an older + // host JDK and forked to a newer JDK via javaXXHome (e.g. iceberg's requireJavaVersion 17 on a + // Java 11 CI host), Gradle passes the javac arguments through an @argfile. Backslash escapes do + // not survive that round-trip intact, so "\\." becomes a literal-backslash regex that matches + // nothing and the suppression is silently dropped. "[.]" is backslash-free and survives. List skipDefRegexes = [] skipDefRegexes << "AutoValue_.*" skipDefRegexes << "AutoBuilder_.*" skipDefRegexes << "AutoOneOf_.*" - skipDefRegexes << ".*\\.jmh_generated\\..*" + skipDefRegexes << ".*[.]jmh_generated[.].*" skipDefRegexes += configuration.generatedClassPatterns skipDefRegexes += configuration.classesTriggerCheckerBugs.keySet() String skipDefCombinedRegex = skipDefRegexes.collect({ regex -> "(${regex})"}).join("|") List skipUsesRegexes = [] // zstd-jni is not annotated, handles Zstd(De)CompressCtx.loadDict(null) just fine - skipUsesRegexes << "^com\\.github\\.luben\\.zstd\\..*" + skipUsesRegexes << "^com[.]github[.]luben[.]zstd[.].*" // SLF4J logger handles null log message parameters - skipUsesRegexes << "^org\\.slf4j\\.Logger.*" + skipUsesRegexes << "^org[.]slf4j[.]Logger.*" String skipUsesCombinedRegex = skipUsesRegexes.collect({ regex -> "(${regex})"}).join("|") project.apply plugin: 'org.checkerframework' From 68c2b63515846cd03d0326db0f51ea786f80e25a Mon Sep 17 00:00:00 2001 From: Peter-Phi-Tran Date: Wed, 24 Jun 2026 00:31:28 -0500 Subject: [PATCH 05/10] [IcebergIO] Run xlang wrapper validation expansion service on Java 17 The cross-language wrapper validation launches the io expansion-service jar from Python via JAVA_HOME. That jar bundles IcebergIO, now Java 17 bytecode, so launching it on the default Java 11 fails with UnsupportedClassVersionError. createCrossLanguageUsingJavaExpansionTask was missing the JAVA_HOME redirect that #38974 added to the other cross-language task factories. Add it, driven by -PtestJavaVersion (resolving java\Home), and pass -PtestJavaVersion=17 in the Xlang_Generated_Transforms precommit so the expansion service runs on a JDK that can load the bundled Java 17 IOs. --- .../groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 8e536f0dbe3a..fe63739e69ff 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -2750,6 +2750,11 @@ class BeamModulePlugin implements Plugin { def usesDataflowRunner = config.pythonPipelineOptions.contains("--runner=TestDataflowRunner") || config.pythonPipelineOptions.contains("--runner=DataflowRunner") String ver = project.findProperty('testJavaVersion') def javaContainerSuffix = ver ? getSupportedJavaVersion(ver) : getSupportedJavaVersion() + // When a specific test JDK is requested (-PtestJavaVersion), launch the Python-started + // expansion service on it as well (see the exec block below). Some bundled IOs (e.g. + // IcebergIO) are compiled for Java 17, so the expansion service must run on a JDK that can + // load them. Mirrors the JAVA_HOME handling in the other cross-language task factories. + String testJavaHome = ver ? project.findProperty("java${ver}Home") : null // Sets up, collects, and runs Python pipeline tests project.tasks.register(config.name+"PythonUsingJava") { @@ -2779,6 +2784,9 @@ class BeamModulePlugin implements Plugin { project.exec { // environment variable to indicate that jars have been built environment "EXPANSION_JARS", config.expansionProjectPaths + if (testJavaHome) { + environment "JAVA_HOME", testJavaHome + } String additionalDependencyCmd = "" if (config.additionalDeps != null && !config.additionalDeps.isEmpty()){ additionalDependencyCmd = "&& pip install ${config.additionalDeps.join(' ')} " From cb159c8ab6ef25cf8a226302012ab21552596c9d Mon Sep 17 00:00:00 2001 From: Peter-Phi-Tran Date: Wed, 1 Jul 2026 17:10:01 -0500 Subject: [PATCH 06/10] Trigger Python Xlang IO postcommits --- .../trigger_files/beam_PostCommit_Python_Xlang_IO_Dataflow.json | 2 +- .../trigger_files/beam_PostCommit_Python_Xlang_IO_Direct.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/trigger_files/beam_PostCommit_Python_Xlang_IO_Dataflow.json b/.github/trigger_files/beam_PostCommit_Python_Xlang_IO_Dataflow.json index e3d6056a5de9..b26833333238 100644 --- a/.github/trigger_files/beam_PostCommit_Python_Xlang_IO_Dataflow.json +++ b/.github/trigger_files/beam_PostCommit_Python_Xlang_IO_Dataflow.json @@ -1,4 +1,4 @@ { "comment": "Modify this file in a trivial way to cause this test suite to run", - "modification": 1 + "modification": 2 } diff --git a/.github/trigger_files/beam_PostCommit_Python_Xlang_IO_Direct.json b/.github/trigger_files/beam_PostCommit_Python_Xlang_IO_Direct.json index 455144f02a35..d6a91b7e2e86 100644 --- a/.github/trigger_files/beam_PostCommit_Python_Xlang_IO_Direct.json +++ b/.github/trigger_files/beam_PostCommit_Python_Xlang_IO_Direct.json @@ -1,4 +1,4 @@ { "comment": "Modify this file in a trivial way to cause this test suite to run", - "modification": 6 + "modification": 7 } From 8a906f0bb444f762bffeae94486f033f3b2e508e Mon Sep 17 00:00:00 2001 From: Peter-Phi-Tran Date: Thu, 2 Jul 2026 09:57:55 -0500 Subject: [PATCH 07/10] [IcebergIO] Run Python Xlang IO postcommits on Java 17 --- .github/workflows/beam_PostCommit_Python_Xlang_IO_Dataflow.yml | 2 +- .github/workflows/beam_PostCommit_Python_Xlang_IO_Direct.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/beam_PostCommit_Python_Xlang_IO_Dataflow.yml b/.github/workflows/beam_PostCommit_Python_Xlang_IO_Dataflow.yml index b848c55d7674..20d93902328f 100644 --- a/.github/workflows/beam_PostCommit_Python_Xlang_IO_Dataflow.yml +++ b/.github/workflows/beam_PostCommit_Python_Xlang_IO_Dataflow.yml @@ -75,7 +75,7 @@ jobs: - name: Setup environment uses: ./.github/actions/setup-environment-action with: - java-version: default + java-version: '17' python-version: | 3.10 3.14 diff --git a/.github/workflows/beam_PostCommit_Python_Xlang_IO_Direct.yml b/.github/workflows/beam_PostCommit_Python_Xlang_IO_Direct.yml index b254774312c9..0767796b1ee0 100644 --- a/.github/workflows/beam_PostCommit_Python_Xlang_IO_Direct.yml +++ b/.github/workflows/beam_PostCommit_Python_Xlang_IO_Direct.yml @@ -75,7 +75,7 @@ jobs: - name: Setup environment uses: ./.github/actions/setup-environment-action with: - java-version: default + java-version: '17' python-version: | 3.10 3.14 From 3011223dd28e4728775a74bde747022e71797b35 Mon Sep 17 00:00:00 2001 From: Peter-Phi-Tran Date: Sun, 5 Jul 2026 18:16:59 -0500 Subject: [PATCH 08/10] [IcebergIO] Pin Java 17 on IO expansion service test suites --- .../beam_PerformanceTests_xlang_KafkaIO_Python.yml | 2 +- .../groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/beam_PerformanceTests_xlang_KafkaIO_Python.yml b/.github/workflows/beam_PerformanceTests_xlang_KafkaIO_Python.yml index 7a7dcb72f0d8..5adb09f24624 100644 --- a/.github/workflows/beam_PerformanceTests_xlang_KafkaIO_Python.yml +++ b/.github/workflows/beam_PerformanceTests_xlang_KafkaIO_Python.yml @@ -75,7 +75,7 @@ jobs: - name: Setup environment uses: ./.github/actions/setup-environment-action with: - java-version: default + java-version: '17' python-version: default - name: Set k8s access uses: ./.github/actions/setup-k8s-access diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index fe63739e69ff..8e536f0dbe3a 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -2750,11 +2750,6 @@ class BeamModulePlugin implements Plugin { def usesDataflowRunner = config.pythonPipelineOptions.contains("--runner=TestDataflowRunner") || config.pythonPipelineOptions.contains("--runner=DataflowRunner") String ver = project.findProperty('testJavaVersion') def javaContainerSuffix = ver ? getSupportedJavaVersion(ver) : getSupportedJavaVersion() - // When a specific test JDK is requested (-PtestJavaVersion), launch the Python-started - // expansion service on it as well (see the exec block below). Some bundled IOs (e.g. - // IcebergIO) are compiled for Java 17, so the expansion service must run on a JDK that can - // load them. Mirrors the JAVA_HOME handling in the other cross-language task factories. - String testJavaHome = ver ? project.findProperty("java${ver}Home") : null // Sets up, collects, and runs Python pipeline tests project.tasks.register(config.name+"PythonUsingJava") { @@ -2784,9 +2779,6 @@ class BeamModulePlugin implements Plugin { project.exec { // environment variable to indicate that jars have been built environment "EXPANSION_JARS", config.expansionProjectPaths - if (testJavaHome) { - environment "JAVA_HOME", testJavaHome - } String additionalDependencyCmd = "" if (config.additionalDeps != null && !config.additionalDeps.isEmpty()){ additionalDependencyCmd = "&& pip install ${config.additionalDeps.join(' ')} " From 893f51d51e5aa1a9c47d6c243ccd68bab42479d6 Mon Sep 17 00:00:00 2001 From: Peter-Phi-Tran Date: Fri, 17 Jul 2026 08:55:36 -0500 Subject: [PATCH 09/10] [IcebergIO] Address Java 17 review comments --- .github/workflows/IO_Iceberg_Integration_Tests.yml | 2 -- .github/workflows/IO_Iceberg_Integration_Tests_Dataflow.yml | 2 -- .../workflows/IO_Iceberg_Managed_Integration_Tests_Dataflow.yml | 2 -- .github/workflows/IO_Iceberg_Performance_Tests.yml | 2 -- .github/workflows/IO_Iceberg_Unit_Tests.yml | 2 -- 5 files changed, 10 deletions(-) diff --git a/.github/workflows/IO_Iceberg_Integration_Tests.yml b/.github/workflows/IO_Iceberg_Integration_Tests.yml index fa85215f8fc3..8780bfee5b3a 100644 --- a/.github/workflows/IO_Iceberg_Integration_Tests.yml +++ b/.github/workflows/IO_Iceberg_Integration_Tests.yml @@ -74,8 +74,6 @@ jobs: github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }}) - name: Setup environment uses: ./.github/actions/setup-environment-action - with: - java-version: 17 - name: Run IcebergIO Integration Test uses: ./.github/actions/gradle-command-self-hosted-action with: diff --git a/.github/workflows/IO_Iceberg_Integration_Tests_Dataflow.yml b/.github/workflows/IO_Iceberg_Integration_Tests_Dataflow.yml index c569100c63d6..3ec2845d7704 100644 --- a/.github/workflows/IO_Iceberg_Integration_Tests_Dataflow.yml +++ b/.github/workflows/IO_Iceberg_Integration_Tests_Dataflow.yml @@ -74,8 +74,6 @@ jobs: github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }}) - name: Setup environment uses: ./.github/actions/setup-environment-action - with: - java-version: 17 - name: Run IcebergIO Integration Tests on Dataflow uses: ./.github/actions/gradle-command-self-hosted-action with: diff --git a/.github/workflows/IO_Iceberg_Managed_Integration_Tests_Dataflow.yml b/.github/workflows/IO_Iceberg_Managed_Integration_Tests_Dataflow.yml index bec849eebd4f..4cf38c3ff3fd 100644 --- a/.github/workflows/IO_Iceberg_Managed_Integration_Tests_Dataflow.yml +++ b/.github/workflows/IO_Iceberg_Managed_Integration_Tests_Dataflow.yml @@ -74,8 +74,6 @@ jobs: github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }}) - name: Setup environment uses: ./.github/actions/setup-environment-action - with: - java-version: 17 - name: Run IcebergIO Managed Integration Tests on Dataflow uses: ./.github/actions/gradle-command-self-hosted-action with: diff --git a/.github/workflows/IO_Iceberg_Performance_Tests.yml b/.github/workflows/IO_Iceberg_Performance_Tests.yml index e0bdd59d9b66..3cb9c24c26b6 100644 --- a/.github/workflows/IO_Iceberg_Performance_Tests.yml +++ b/.github/workflows/IO_Iceberg_Performance_Tests.yml @@ -74,8 +74,6 @@ jobs: github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }}) - name: Setup environment uses: ./.github/actions/setup-environment-action - with: - java-version: 17 - name: Run IcebergIO Performance Test uses: ./.github/actions/gradle-command-self-hosted-action with: diff --git a/.github/workflows/IO_Iceberg_Unit_Tests.yml b/.github/workflows/IO_Iceberg_Unit_Tests.yml index 4f184da47a3c..f3fd63a9d479 100644 --- a/.github/workflows/IO_Iceberg_Unit_Tests.yml +++ b/.github/workflows/IO_Iceberg_Unit_Tests.yml @@ -93,8 +93,6 @@ jobs: github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }}) - name: Setup environment uses: ./.github/actions/setup-environment-action - with: - java-version: 17 - name: run IcebergIO build script uses: ./.github/actions/gradle-command-self-hosted-action with: From a8b09783c147ac3b9193aeacfa3aaa3e74ec3a08 Mon Sep 17 00:00:00 2001 From: Peter-Phi-Tran Date: Tue, 28 Jul 2026 22:47:10 -0500 Subject: [PATCH 10/10] [IcebergIO] Raise Iceberg integration tests to Java 17 --- it/iceberg/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/it/iceberg/build.gradle b/it/iceberg/build.gradle index f11374a1ca4f..3fa42fab8a79 100644 --- a/it/iceberg/build.gradle +++ b/it/iceberg/build.gradle @@ -22,8 +22,8 @@ plugins { id 'org.apache.beam.module' } applyJavaNature( automaticModuleName: 'org.apache.beam.it.iceberg', exportJavadoc: false, - // iceberg ended support for Java 8 in 1.7.0 - requireJavaVersion: JavaVersion.VERSION_11, + // iceberg ended support for Java 11 in 1.11.0 + requireJavaVersion: JavaVersion.VERSION_17, ) description = "Apache Beam :: IT :: Iceberg"