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

vinishjail97 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-xtable.git


The following commit(s) were added to refs/heads/main by this push:
     new a12f6f0b [944] Bundle Iceberg's GlueCatalog and S3FileIO in 
xtable-utilities (#952)
a12f6f0b is described below

commit a12f6f0bc695c1337d3e301e4c3811a7fd9c8fd3
Author: Vinish Reddy <[email protected]>
AuthorDate: Wed Oct 7 11:56:32 2026 +0530

    [944] Bundle Iceberg's GlueCatalog and S3FileIO in xtable-utilities (#952)
    
    * [944] Bundle Iceberg's GlueCatalog and S3FileIO in xtable-utilities
    
    #822 made iceberg-hive-runtime provided in xtable-hive-metastore. That jar
    was the only source of org.apache.iceberg.aws.* and dev.failsafe in the
    utilities bundle, so GlueCatalog stopped loading from the jar in 0.4.0.
    
    Add iceberg-aws (which pulls in failsafe) directly and drop the
    iceberg-hive-runtime shade include that no longer matches anything. The
    AWS SDK clients GlueCatalog and S3FileIO need are already bundled.
    
    * Address review feedback
---
 README.md                |  1 +
 pom.xml                  |  5 +++++
 xtable-utilities/pom.xml | 10 +++++++++-
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 667a0a7c..79bbcc2c 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,7 @@ can be found in the 
[xtable-hadoop-defaults.xml](https://github.com/apache/incub
 The custom hadoop configurations can be passed in with the `--hadoopConfig 
[custom-hadoop-config-file]` option.
 The config in custom hadoop config file will override the default hadoop 
configurations. For an example
 of a custom hadoop config file, see 
[hadoop.xml](https://xtable.apache.org/docs/fabric#step-2-translate-source-table-to-delta-lake-format-using-apache-xtable-incubating).
+The bundled jar includes Iceberg's `org.apache.iceberg.aws.glue.GlueCatalog` 
and `org.apache.iceberg.aws.s3.S3FileIO`. Other catalog implementations must be 
added to the classpath, which means running with `java -cp 
xtable-utilities_2.12-0.5.0-SNAPSHOT-bundled.jar:my-catalog.jar 
org.apache.xtable.utilities.RunSync ...` instead of `java -jar`.
 
 # Running using docker
 
diff --git a/pom.xml b/pom.xml
index d9ea06bf..b66c5887 100644
--- a/pom.xml
+++ b/pom.xml
@@ -313,6 +313,11 @@
                 <artifactId>iceberg-parquet</artifactId>
                 <version>${iceberg.version}</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.iceberg</groupId>
+                <artifactId>iceberg-aws</artifactId>
+                <version>${iceberg.version}</version>
+            </dependency>
             <dependency>
                 <groupId>org.apache.iceberg</groupId>
                 
<artifactId>iceberg-spark-runtime-${spark.version.prefix}_${scala.binary.version}</artifactId>
diff --git a/xtable-utilities/pom.xml b/xtable-utilities/pom.xml
index dc8ff7b6..a0146519 100644
--- a/xtable-utilities/pom.xml
+++ b/xtable-utilities/pom.xml
@@ -200,6 +200,13 @@
             <groupId>org.apache.iceberg</groupId>
             <artifactId>iceberg-parquet</artifactId>
         </dependency>
+        <!-- GlueCatalog and S3FileIO for icebergCatalogConfig. The s3 and sts 
SDK clients are
+             declared below; glue arrives transitively from xtable-aws, so its 
shade include goes
+             stale if xtable-aws ever drops it. -->
+        <dependency>
+            <groupId>org.apache.iceberg</groupId>
+            <artifactId>iceberg-aws</artifactId>
+        </dependency>
         <dependency>
             <groupId>io.delta</groupId>
             <artifactId>delta-core_${scala.binary.version}</artifactId>
@@ -437,6 +444,7 @@
                             <include>commons-logging:commons-logging</include>
                             <include>commons-net:commons-net</include>
                             <include>commons-pool:commons-pool</include>
+                            <include>dev.failsafe:failsafe</include>
                             <include>dnsjava:dnsjava</include>
                             <include>io.airlift:aircompressor</include>
                             
<include>io.delta:delta-core_${scala.binary.version}</include>
@@ -633,10 +641,10 @@
                             <include>org.apache.hudi:hudi-java-client</include>
                             
<include>org.apache.hudi:hudi-timeline-service</include>
                             <include>org.apache.iceberg:iceberg-api</include>
+                            <include>org.apache.iceberg:iceberg-aws</include>
                             
<include>org.apache.iceberg:iceberg-bundled-guava</include>
                             
<include>org.apache.iceberg:iceberg-common</include>
                             <include>org.apache.iceberg:iceberg-core</include>
-                            
<include>org.apache.iceberg:iceberg-hive-runtime</include>
                             
<include>org.apache.iceberg:iceberg-parquet</include>
                             <include>org.apache.ivy:ivy</include>
                             <include>org.apache.kerby:kerb-core</include>

Reply via email to