The sink to iceberg using Gluecatalog via Zeta is not support (yet !?)

What have I done : https://github.com/apache/seatunnel/issues/8559#issuecomment-2831897315

More clearly

1. The Iceberg connector is compiled without the AWS module (the one that contains the GlueCatalog.class)

https://github.com/apache/seatunnel/blob/dev/seatunnel-connectors-v2/connector-iceberg/pom.xml

Its POM lists iceberg-core, api, parquet, orc, hive-metastore… but not iceberg-aws. Consequently the produced connector-iceberg-2.3.10.jar carries no GlueCatalog class.

So basically, when I plug in the configurations like others catalog, it won’t work, since there is no GlueCatalog class for it to understand how to construct one, so, this happens:

Caused by: java.lang.IllegalArgumentException: Cannot initialize Catalog implementation org.apache.iceberg.aws.glue.GlueCatalog: Cannot find constructor for interface org.apache.iceberg.catalog.Catalog

So I tried to install all the possible jar that it probably need (based on seatunnel-connectors-v2/connector-iceberg/pom.xml + iceberg-aws)

image.png

We would find the GlueCatalog class :

image.png

But the problem is, it not gonna load it :

2. SeaTunnel’s “Zeta” engine (the default bin/seatunnel.sh launcher) isolates each connector into its own child-first class-loader, but it also enforces that exactly one JAR may feed that loader per connector.

https://github.com/apache/seatunnel/blob/dev/seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/loader/SeaTunnelChildFirstClassLoader.java