Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-705

[Java] Make Arrow library more shade-friendly

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      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)

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                icexelloss Li Jin
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: