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)

Reply via email to