Also agree - shading of guava & protobuf would be super valuable. Phoenix
ended up not supporting shading of protobuf because of difficulties getting
it to work (maybe because HBase dependency?). I think we support shading of
Guava, though. Is that correct, Sergey?

On Sat, Sep 3, 2016 at 10:02 AM, Jacques Nadeau <jacq...@apache.org> wrote:

> +1 on shading guava/protobuf.
>
> On Sat, Sep 3, 2016 at 9:48 AM, Andrew Purtell <andrew.purt...@gmail.com>
> wrote:
>
> > Since Calcite should become a widely used library (smile) I think it
> would
> > be prudent to shade Guava and protobuf if Calcite depends on them. Then
> you
> > will play very nicely indeed on the classpath no matter what versions are
> > required by calling code.
> >
> > Jacques - Good lord. Let me see about shading HBase use of Guava, or
> > eliminating it. Unfortunately that will be no help in the short term.
> > Related, our Stack is wrestling with shading protobuf already, and is
> neck
> > deep in the Swamp of Classloading at the moment.
> >
> > > On Sep 3, 2016, at 9:06 AM, Jacques Nadeau <jacq...@apache.org> wrote:
> > >
> > > It isn't a real solution but in Drill we solved the HBase
> incompatibility
> > > issue on the server side (for tests only) by patching Guava 18 to allow
> > the
> > > HBase Guava calls that are missing. They are really quite trivial and
> > > support Andrew's arguments that Guava is the devil...
> > >
> > > https://github.com/apache/drill/blob/master/exec/java-
> > exec/src/main/java/org/apache/drill/exec/util/GuavaPatcher.java
> > >
> > > On Sat, Sep 3, 2016 at 8:16 AM, Andrew Purtell <
> andrew.purt...@gmail.com
> > >
> > > wrote:
> > >
> > >> While that seems very unfriendly of them, the main issue is Guava is
> the
> > >> devil (and protobuf is a minor demon). Would shading be an option?
> > >>
> > >>> On Sep 3, 2016, at 2:03 AM, CPC <acha...@gmail.com> wrote:
> > >>>
> > >>> Cassandra driver 3.x require min guava 16.0.1. If it detects an
> earlier
> > >>> version in classpath it stops working.
> > >>>
> > >>>> On Sep 3, 2016 04:26, "Julian Hyde" <jh...@apache.org> wrote:
> > >>>>
> > >>>> James & Andrew, I hear you. We’ll stay on Guava 12 if we have to.
> > >>>>
> > >>>> But can we try an experiment to see if it’s possible to get away
> with
> > >> 14?
> > >>>>
> > >>>> I propose that Maryann (who is developing the branch of Phoenix that
> > >> uses
> > >>>> Calcite) tries running with https://github.com/apache/
> > calcite/pull/277
> > >> <
> > >>>> https://github.com/apache/calcite/pull/277>. If we discover
> problems,
> > >> we
> > >>>> can try various solutions, like make the DateRangeRules disabled by
> > >> default
> > >>>> (these, and the Druid adapter, are the only parts of Calcite that
> need
> > >>>> Guava 14), or even copy the Guava classes that we need. If there
> > aren’t
> > >>>> problems, it means that we’ve slipped out of the shackles of inertia
> > >> that
> > >>>> are trying to drag us into an early grave.
> > >>>>
> > >>>> Julian
> > >>>>
> > >>>>
> > >>>>> On Sep 2, 2016, at 5:35 PM, James Taylor <jamestay...@apache.org>
> > >> wrote:
> > >>>>>
> > >>>>> On the server-side, HBase depends on Guava 12 (because Hadoop
> depends
> > >> on
> > >>>>> the same). For that reason, we've made sure Phoenix can work with
> > this
> > >>>>> version too. Phoenix may not need to depend on Calcite on the
> > >>>> server-side,
> > >>>>> and Phoenix and HBase both have shading, so there may be some
> avenues
> > >> of
> > >>>>> escape.
> > >>>>>
> > >>>>> Sorry for the muddled answer.
> > >>>>>
> > >>>>>> On Fri, Sep 2, 2016 at 5:21 PM, Andrew Purtell <
> apurt...@apache.org
> > >
> > >>>>> wrote:
> > >>>>>
> > >>>>>> Use of Guava 14 introduces at least a compile time problem with
> > HBase,
> > >>>> upon
> > >>>>>> which Phoenix depends, so I'm not sure Phoenix can move off of 13.
> > I'd
> > >>>> be
> > >>>>>> happy to be proven wrong.
> > >>>>>>
> > >>>>>>> On Fri, Sep 2, 2016 at 4:35 PM, Julian Hyde <jh...@apache.org>
> > >> wrote:
> > >>>>>>>
> > >>>>>>> Calcite currently supports a wide range of Guava versions, from
> > >> 12.0.1
> > >>>> to
> > >>>>>>> 19.0*. For https://issues.apache.org/jira/browse/CALCITE-1334 <
> > >>>>>>> https://issues.apache.org/jira/browse/CALCITE-1334> I’d like to
> > use
> > >>>>>>> RangeSet, which was introduced in Guava 14.
> > >>>>>>>
> > >>>>>>> Would anyone have a problem if we made Calcite’s minimum Guava
> > >> version
> > >>>>>>> 14.0.1?
> > >>>>>>>
> > >>>>>>> I see that Hive uses 14.0.1, Phoenix uses 13, Drill uses 18.
> > >>>>>>>
> > >>>>>>> Julian
> > >>>>>>>
> > >>>>>>> * Except for the Druid adapter, which requires 14; see
> > >>>>>>> https://issues.apache.org/jira/browse/CALCITE-1325 <
> > >>>>>>> https://issues.apache.org/jira/browse/CALCITE-1325>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>> --
> > >>>>>> Best regards,
> > >>>>>>
> > >>>>>> - Andy
> > >>>>>>
> > >>>>>> Problems worthy of attack prove their worth by hitting back. -
> Piet
> > >> Hein
> > >>>>>> (via Tom White)
> > >>
> >
>

Reply via email to