j1wonpark commented on code in PR #4069:
URL: https://github.com/apache/amoro/pull/4069#discussion_r2756470191
##########
amoro-ams/pom.xml:
##########
@@ -510,7 +510,6 @@
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
Review Comment:
Hi @czy006, thanks for reporting the Paimon Hive Catalog issue — that's very
helpful!
This fix should actually resolve the Paimon case as well. The root cause is
that Hive's `HiveConf` directly references unshaded Guava classes (e.g.,
`com.google.common.collect.ImmutableMap`), and both Iceberg's `HiveCatalog` and
Paimon's `HiveCatalog` rely on `HiveConf` at runtime. By promoting Guava from
`test` to `compile` scope in `amoro-ams`, the unshaded Guava classes become
available on the runtime classpath for all Hive-based catalog implementations.
Regarding the shared package concern — I believe there is no actual conflict
here:
- **Amoro's own code** uses the relocated (shaded) Guava under
`org.apache.amoro.shade.guava32.com.google.*`, which is a completely separate
namespace.
- **Hive / Iceberg / Paimon** need unshaded Guava under
`com.google.common.*`.
- These two namespaces coexist without any collision.
- All transitive Guava dependencies are already excluded via `<exclusion>`
across the project, so there is only a single Guava version
(`${guava.version}`) on the classpath — no version conflict.
That said, if you are experiencing a specific issue with Paimon Hive Catalog
that this fix does not resolve, could you share the error details (stack trace,
environment, etc.)? I'd love to understand the exact scenario and work on a
solution together.
Thanks again for the feedback! 🙏
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]