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`