Li Jin created ARROW-705:
----------------------------
Summary: [Java] Make Arrow library more shade-friendly
Key: ARROW-705
URL: https://issues.apache.org/jira/browse/ARROW-705
Project: Apache Arrow
Issue Type: Improvement
Reporter: Li Jin
Sometimes user of Arrow library have conflict in its dependency such as netty
and wants to shade Arrow's dependency.
Because arrow has public classes (such as ArrowBuf) under io.netty namespace
that is part of Arrow API, relocate the entire io.netty package will cause user
code to break.
Next, I tried to exclude all classes created by Arrow under io.netty package.
This also breaks - UnsafeDirectLittleEndian extends a package private class in
netty, therefore I need to relocate UnsafeDirectLittleEndian as well.
The feedback is it's not clear how to shade netty dependency for Arrow, for now
I shaded every thing under io.netty except for ArrowBuf and it "appears" to
work, but I don't know if another class under memory/io/netty/buffer can be
returned by a public API. Does it make sense to put API such as ArrowBuf under
arrow package namespace? (Not saying we should do this, just wondering if that
makes sense)
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)