From 052c9966452f68fd4c021fb1045f7450d620a5a7 Mon Sep 17 00:00:00 2001 From: Deji Ibrahim Date: Mon, 2 Feb 2026 01:00:00 +0100 Subject: [PATCH 1/3] support iceberg-aws --- sdks/java/io/expansion-service/build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sdks/java/io/expansion-service/build.gradle b/sdks/java/io/expansion-service/build.gradle index dbd6e279846b..872bfb93412f 100644 --- a/sdks/java/io/expansion-service/build.gradle +++ b/sdks/java/io/expansion-service/build.gradle @@ -84,6 +84,9 @@ dependencies { runtimeOnly project(":sdks:java:io:iceberg") runtimeOnly project(":sdks:java:io:iceberg:hive") runtimeOnly project(path: ":sdks:java:io:iceberg:bqms", configuration: "shadow") + // support for S3-compatible storage + runtimeOnly "org.apache.iceberg:iceberg-aws:1.10.0" + runtimeOnly "org.apache.iceberg:iceberg-aws-bundle:1.10.0" } runtimeOnly library.java.kafka_clients From b08a4d895b60340fc4bf6ccb37f850d7829afcfd Mon Sep 17 00:00:00 2001 From: Deji Ibrahim Date: Mon, 2 Feb 2026 01:53:38 +0100 Subject: [PATCH 2/3] Add iceberg-aws module for S3-compatible storage support --- sdks/java/io/expansion-service/build.gradle | 4 +-- sdks/java/io/iceberg/aws/build.gradle | 35 +++++++++++++++++++++ settings.gradle.kts | 2 ++ 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 sdks/java/io/iceberg/aws/build.gradle diff --git a/sdks/java/io/expansion-service/build.gradle b/sdks/java/io/expansion-service/build.gradle index 872bfb93412f..3bf3c547becc 100644 --- a/sdks/java/io/expansion-service/build.gradle +++ b/sdks/java/io/expansion-service/build.gradle @@ -84,9 +84,7 @@ dependencies { runtimeOnly project(":sdks:java:io:iceberg") runtimeOnly project(":sdks:java:io:iceberg:hive") runtimeOnly project(path: ":sdks:java:io:iceberg:bqms", configuration: "shadow") - // support for S3-compatible storage - runtimeOnly "org.apache.iceberg:iceberg-aws:1.10.0" - runtimeOnly "org.apache.iceberg:iceberg-aws-bundle:1.10.0" + runtimeOnly project(":sdks:java:io:iceberg:aws") } runtimeOnly library.java.kafka_clients diff --git a/sdks/java/io/iceberg/aws/build.gradle b/sdks/java/io/iceberg/aws/build.gradle new file mode 100644 index 000000000000..f3ae7d1b8041 --- /dev/null +++ b/sdks/java/io/iceberg/aws/build.gradle @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +plugins { id 'org.apache.beam.module' } +applyJavaNature( + automaticModuleName: 'org.apache.beam.sdk.io.iceberg.aws', + exportJavadoc: false, + publish: false, // it's an intermediate jar for io-expansion-service +) + +description = "Apache Beam :: SDKs :: Java :: IO :: Iceberg :: AWS" +ext.summary = "Runtime dependencies needed for S3-compatible storage." + +def iceberg_version = "1.10.0" + +dependencies { + // dependencies needed to run with S3-compatible storage + // these dependencies are going to be included in io-expansion-service + runtimeOnly "org.apache.iceberg:iceberg-aws:$iceberg_version" + runtimeOnly "org.apache.iceberg:iceberg-aws-bundle:$iceberg_version" +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 4540fa4b597b..fd8befae9f6b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -366,6 +366,8 @@ include("sdks:java:io:iceberg:hive") findProject(":sdks:java:io:iceberg:hive")?.name = "hive" include("sdks:java:io:iceberg:bqms") findProject(":sdks:java:io:iceberg:bqms")?.name = "bqms" +include("sdks:java:io:iceberg:aws") +findProject(":sdks:java:io:iceberg:aws")?.name = "aws" include("it:clickhouse") findProject(":it:clickhouse")?.name = "clickhouse" include("sdks:java:extensions:sql:iceberg") From 61dd50cae23217ddcb119f7d7f397a7939caf124 Mon Sep 17 00:00:00 2001 From: Deji Ibrahim Date: Mon, 16 Feb 2026 22:43:36 +0100 Subject: [PATCH 3/3] update changes.md --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index e2dcf6e0f2ca..dffda003d49e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -65,6 +65,7 @@ ## I/Os * Add support for Datadog IO (Java) ([#37318](https://github.com/apache/beam/issues/37318)). +* S3-compatible storage support added for Iceberg managed I/O (Java) ([#37614](https://github.com/apache/beam/issues/37614)). ## New Features / Improvements