Skip to content

Conversation

@zhuangchong
Copy link
Contributor

@zhuangchong zhuangchong commented Nov 27, 2025

Purpose

Linked issue: close #2013

Before building the package jar:
iShot_2025-11-27_15 03 31

After building the package jar:
iShot_2025-11-27_15 20 48

Brief change log

Tests

API and Format

Documentation

Comment on lines 326 to 330
<excludes>
<exclude>org/apache/iceberg/hive/**</exclude>
<exclude>org/apache/iceberg/aws/**</exclude>
<exclude>org/apache/iceberg/nessie/**</exclude>
</excludes>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this approach break the intended isolation of dependencies? E.g. if something else provide iceberg hive/aws/nessie classes in the classpath of version different to what Fluss-lake-icebery depends on, I'd expect that we'll see issues such as NoSuchMethodError.

Should the approach instead be fixing the shading configuration so that fluss.lake.iceberg contains shaded hive/aws/nessie packages?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is not recommended that fluss.lake.iceberg contains the shadow iceberg plug-in package. It will cause the fluss.lake.iceberg package to be bloated and cause some problems with third-party plug-ins.

@MehulBatra MehulBatra requested a review from Copilot November 27, 2025 18:27
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes a class not found issue for the Iceberg AWS Glue catalog by excluding certain Iceberg packages from shading. The problem occurred because the AWS Glue catalog classes were being relocated during the shade plugin process, making them unavailable at runtime.

Key Changes:

  • Modified Maven shade plugin configuration to exclude org/apache/iceberg/hive/**, org/apache/iceberg/aws/**, and org/apache/iceberg/nessie/** from relocation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

<relocations>
<!-- Shade Iceberg to Fluss namespace for complete isolation -->
<relocation>
<pattern>org.apache.iceberg</pattern>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking of remove the shadeing..We introduce the shading is to resolve the class conflict in fluss-quick-start image which contains paimon. But in #1997 , we decide to remove fluss-quick-start which mix iceberg and paimon. We will run container with only iceberg, no paimon. In this case, I think we can remove the shadeing.
@MehulBatra WDYT?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed.

Copy link
Contributor

@MehulBatra MehulBatra Nov 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes this seems a good idea @luoyuxia if we are moving with standard #1997 approach, I would suggest @zhuangchong please test the setup after making changes, if the quickstart working as expected!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great call! If the dependency isolation is not required anymore, removing shading is much better than leaving some transitives unshaded.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 on removing the shading of Iceberg classes

Copy link
Contributor

@luoyuxia luoyuxia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@luoyuxia luoyuxia merged commit a429170 into apache:main Dec 5, 2025
5 checks passed
@zhuangchong zhuangchong deleted the lake-iceberg-aws branch December 5, 2025 08:33
LiebingYu pushed a commit to LiebingYu/fluss that referenced this pull request Dec 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG]ClassNotFoundException: org.apache.fluss.lake.iceberg.shaded.org.apache.iceberg.aws.glue.GlueCatalog

5 participants