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

stevenwu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git


The following commit(s) were added to refs/heads/main by this push:
     new f8ee29e6eb Core: Drop support for Java 11 (#14400)
f8ee29e6eb is described below

commit f8ee29e6eb8b5f33ea0e91fa4406a76643cb4ef6
Author: Manu Zhang <[email protected]>
AuthorDate: Tue Jan 13 00:14:17 2026 +0800

    Core: Drop support for Java 11 (#14400)
---
 .github/workflows/delta-conversion-ci.yml |  4 ++--
 .github/workflows/flink-ci.yml            |  2 +-
 .github/workflows/hive-ci.yml             |  2 +-
 .github/workflows/java-ci.yml             |  6 +++---
 .github/workflows/kafka-connect-ci.yml    |  2 +-
 .github/workflows/spark-ci.yml            |  6 +-----
 README.md                                 |  2 +-
 baseline.gradle                           |  2 +-
 build.gradle                              | 17 ++++++-----------
 jmh.gradle                                |  4 ++--
 site/docs/contribute.md                   |  2 +-
 11 files changed, 20 insertions(+), 29 deletions(-)

diff --git a/.github/workflows/delta-conversion-ci.yml 
b/.github/workflows/delta-conversion-ci.yml
index c7c71085b3..65da3a445f 100644
--- a/.github/workflows/delta-conversion-ci.yml
+++ b/.github/workflows/delta-conversion-ci.yml
@@ -72,7 +72,7 @@ jobs:
     runs-on: ubuntu-24.04
     strategy:
       matrix:
-        jvm: [11, 17, 21]
+        jvm: [17, 21]
     env:
       SPARK_LOCAL_IP: localhost
     steps:
@@ -101,7 +101,7 @@ jobs:
     runs-on: ubuntu-24.04
     strategy:
       matrix:
-        jvm: [11, 17, 21]
+        jvm: [17, 21]
     env:
       SPARK_LOCAL_IP: localhost
     steps:
diff --git a/.github/workflows/flink-ci.yml b/.github/workflows/flink-ci.yml
index 7e8786c672..479cafd2fe 100644
--- a/.github/workflows/flink-ci.yml
+++ b/.github/workflows/flink-ci.yml
@@ -74,7 +74,7 @@ jobs:
     runs-on: ubuntu-24.04
     strategy:
       matrix:
-        jvm: [11, 17, 21]
+        jvm: [17, 21]
         flink: ['1.20', '2.0', '2.1']
     env:
       SPARK_LOCAL_IP: localhost
diff --git a/.github/workflows/hive-ci.yml b/.github/workflows/hive-ci.yml
index 5827d3d2fd..7044c30d0f 100644
--- a/.github/workflows/hive-ci.yml
+++ b/.github/workflows/hive-ci.yml
@@ -73,7 +73,7 @@ jobs:
     runs-on: ubuntu-24.04
     strategy:
       matrix:
-        jvm: [11, 17, 21]
+        jvm: [17, 21]
     env:
       SPARK_LOCAL_IP: localhost
     steps:
diff --git a/.github/workflows/java-ci.yml b/.github/workflows/java-ci.yml
index 8ff7bb1d4c..0e48f3bb18 100644
--- a/.github/workflows/java-ci.yml
+++ b/.github/workflows/java-ci.yml
@@ -68,7 +68,7 @@ jobs:
     runs-on: ubuntu-24.04
     strategy:
       matrix:
-        jvm: [11, 17, 21]
+        jvm: [17, 21]
     env:
       SPARK_LOCAL_IP: localhost
     steps:
@@ -97,7 +97,7 @@ jobs:
     runs-on: ubuntu-24.04
     strategy:
       matrix:
-        jvm: [11, 17, 21]
+        jvm: [17, 21]
     steps:
     - uses: actions/checkout@v6
     - uses: actions/setup-java@v5
@@ -110,7 +110,7 @@ jobs:
     runs-on: ubuntu-24.04
     strategy:
       matrix:
-        jvm: [11, 17, 21]
+        jvm: [17, 21]
     steps:
     - uses: actions/checkout@v6
     - uses: actions/setup-java@v5
diff --git a/.github/workflows/kafka-connect-ci.yml 
b/.github/workflows/kafka-connect-ci.yml
index 463a7a85f8..8074958f39 100644
--- a/.github/workflows/kafka-connect-ci.yml
+++ b/.github/workflows/kafka-connect-ci.yml
@@ -73,7 +73,7 @@ jobs:
     runs-on: ubuntu-24.04
     strategy:
       matrix:
-        jvm: [11, 17, 21]
+        jvm: [17, 21]
     env:
       SPARK_LOCAL_IP: localhost
     steps:
diff --git a/.github/workflows/spark-ci.yml b/.github/workflows/spark-ci.yml
index 4daf93048f..71428a100b 100644
--- a/.github/workflows/spark-ci.yml
+++ b/.github/workflows/spark-ci.yml
@@ -72,16 +72,12 @@ jobs:
     runs-on: ubuntu-24.04
     strategy:
       matrix:
-        jvm: [11, 17, 21]
+        jvm: [17, 21]
         spark: ['3.4', '3.5', '4.0', '4.1']
         scala: ['2.12', '2.13']
         exclude:
           # Spark 3.5 is the first version not failing on Java 21 
(https://issues.apache.org/jira/browse/SPARK-42369)
           # Full Java 21 support is coming in Spark 4 
(https://issues.apache.org/jira/browse/SPARK-43831)
-          - jvm: 11
-            spark: '4.0'
-          - jvm: 11
-            spark: '4.1'
           - jvm: 21
             spark: '3.4'
           - spark: '4.0'
diff --git a/README.md b/README.md
index 582e108b76..ea967e077f 100644
--- a/README.md
+++ b/README.md
@@ -51,7 +51,7 @@ Community discussions happen primarily on the [dev mailing 
list][dev-list] or on
 
 ### Building
 
-Iceberg is built using Gradle with Java 11, 17, or 21.
+Iceberg is built using Gradle with Java 17 or 21.
 
 * To invoke a build and run tests: `./gradlew build`
 * To skip tests: `./gradlew build -x test -x integrationTest`
diff --git a/baseline.gradle b/baseline.gradle
index 438687f431..7884c1a65a 100644
--- a/baseline.gradle
+++ b/baseline.gradle
@@ -58,7 +58,7 @@ subprojects {
       java {
         target 'src/main/java/**/*.java', 'src/test/java/**/*.java', 
'src/testFixtures/java/**/*.java', 'src/jmh/java/**/*.java', 
'src/integration/java/**/*.java'
         // 1.23.0 has an issue in formatting comments 
https://github.com/google/google-java-format/issues/1155
-        // so we stick to 1.22.0 to produce consistent result for JDK 11/17/21
+        // so we stick to 1.22.0 to produce consistent result for JDK 17/21
         googleJavaFormat("1.22.0")
         removeUnusedImports()
         licenseHeaderFile 
"$rootDir/.baseline/copyright/copyright-header-java.txt"
diff --git a/build.gradle b/build.gradle
index 258b111ce5..d917b8d4c5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -51,10 +51,7 @@ try {
   project.logger.error(e.getMessage())
 }
 
-if (JavaVersion.current() == JavaVersion.VERSION_11) {
-  project.ext.jdkVersion = '11'
-  project.ext.extraJvmArgs = []
-} else if (JavaVersion.current() == JavaVersion.VERSION_17 || 
JavaVersion.current() == JavaVersion.VERSION_21) {
+if (JavaVersion.current() == JavaVersion.VERSION_17 || JavaVersion.current() 
== JavaVersion.VERSION_21) {
   project.ext.jdkVersion = JavaVersion.current().getMajorVersion().toString()
   project.ext.extraJvmArgs = ["--add-opens", "java.base/java.io=ALL-UNNAMED",
                               "--add-opens", 
"java.base/java.lang.invoke=ALL-UNNAMED",
@@ -78,7 +75,7 @@ if (JavaVersion.current() == JavaVersion.VERSION_11) {
                               "--add-opens", 
"java.base/sun.security.action=ALL-UNNAMED",
                               "--add-opens", 
"java.base/sun.util.calendar=ALL-UNNAMED"]
 } else {
-  throw new GradleException("This build must be run with JDK 11 or 17 or 21 
but was executed with JDK " + JavaVersion.current())
+  throw new GradleException("This build must be run with JDK 17 or 21 but was 
executed with JDK " + JavaVersion.current())
 }
 
 tasks.withType(AbstractArchiveTask).configureEach {
@@ -203,7 +200,7 @@ subprojects {
 
   tasks.withType(JavaCompile.class).configureEach {
     options.encoding = "UTF-8"
-    options.release = 11
+    options.release = 17
   }
 
   javadoc {
@@ -262,9 +259,9 @@ subprojects {
     tasks.withType(ScalaCompile.class) {
       scalaCompileOptions.keepAliveMode.set(KeepAliveMode.DAEMON)
       // `options.release` doesn't seem to work for ScalaCompile :(
-      sourceCompatibility = "11"
-      targetCompatibility = "11"
-      scalaCompileOptions.additionalParameters.add("-release:11")
+      sourceCompatibility = "17"
+      targetCompatibility = "17"
+      scalaCompileOptions.additionalParameters.add("-release:17")
     }
   }
 }
@@ -958,8 +955,6 @@ project(':iceberg-arrow') {
 }
 
 project(':iceberg-nessie') {
-  // Starting from Nessie 0.104.2, JDK 17+ is required for test dependencies
-  test.onlyIf { JavaVersion.current() != JavaVersion.VERSION_11 }
   test {
     useJUnitPlatform()
   }
diff --git a/jmh.gradle b/jmh.gradle
index d2c4709bf3..4df063f131 100644
--- a/jmh.gradle
+++ b/jmh.gradle
@@ -17,8 +17,8 @@
  * under the License.
  */
 
-if (jdkVersion != '11' && jdkVersion != '17' && jdkVersion != '21') {
-  throw new GradleException("The JMH benchmarks must be run with JDK 11 or JDK 
17 or JDK 21")
+if (jdkVersion != '17' && jdkVersion != '21') {
+  throw new GradleException("The JMH benchmarks must be run with JDK 17 or JDK 
21")
 }
 
 def flinkVersions = (System.getProperty("flinkVersions") != null ? 
System.getProperty("flinkVersions") : 
System.getProperty("defaultFlinkVersions")).split(",")
diff --git a/site/docs/contribute.md b/site/docs/contribute.md
index 54aa076639..2389f01b11 100644
--- a/site/docs/contribute.md
+++ b/site/docs/contribute.md
@@ -95,7 +95,7 @@ settle disagreements or to force a decision.
 
 ## Building the Project Locally
 
-Iceberg is built using Gradle with Java 11, 17, or 21.
+Iceberg is built using Gradle with Java 17 or 21.
 
 * To invoke a build and run tests: `./gradlew build`
 * To skip tests: `./gradlew build -x test -x integrationTest`

Reply via email to