git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Calcite - JDK 8 and Use of Guava


Il gio 26 apr 2018, 06:55 Julian Hyde <jhyde@xxxxxxxxxx> ha scritto:

> In general I would agree that we should replace Guava with JDK features if
> the JDK has them.
>
> However, we must preserve compatibility, so if an API uses Guava Function
> or Predicate or Supplier or ImmutableList then we should probably keep it
> that way. Or let’s discuss it.
>

It would be a very good improvement to drop Guava and in general third
party classes from public API.
For the limited use of Calcite I am doing I am not aware of such critical
points.
Another good step is to shade and relocate Guava so that downstream
projects do not have conflicts.

My 2 cents
Enrico


> Converting Preconditions.checkNotNull to Objects.requireNonNull seems
> pretty safe.
>
> I’ve started work on 2259 in a branch that is not yet committed. (Mainly
> converting anonymous classes to lambdas at this point.) Can you hold off
> making code changes for a few days, until I can commit the branch? In
> CALCITE-2259, make a list of things that we should do, and we can apply it
> to the whole code base. Many lines of code will change, and that increases
> the chances of merge conflicts, so it’s important that we don’t make any
> changes in functionality in that commit.
>
> Julian
>
>
> > On Apr 25, 2018, at 9:15 PM, Kevin Risden <krisden@xxxxxxxxxx> wrote:
> >
> > There is a discussion in SOLR-11763 about Guava and limiting its use by
> > replacing with native JDK 8 alternatives. Since Calcite 0.16.0 is now on
> > minimum JDK 8 this looks to be viable.  CALCITE-2259 identifies a few
> other
> > JDK 8 nice to haves.
> >
> > One example looks to be:
> > * Preconditions.checkNotNull(obj); // Guava
> > * Objects.requireNonNull(obj); // JDK 8
> >
> > Are there any concerns with looking into this? Are there any known
> features
> > of Guava that are necessary? I know some adapters might require Guava.
> >
> > I am just starting to look at this and figured I'd ask before diving in
> > head first. I would start with core and then work out to other modules.
> >
> > [1] https://issues.apache.org/jira/browse/SOLR-11763
> > [2] https://issues.apache.org/jira/browse/CALCITE-2259
> >
> > Kevin Risden
>
> --


-- Enrico Olivelli


( ! ) Warning: include(msgfooter.php): failed to open stream: No such file or directory in /var/www/git/apache-calcite-development/msg03328.html on line 131
Call Stack
#TimeMemoryFunctionLocation
10.0006368760{main}( ).../msg03328.html:0

( ! ) Warning: include(): Failed opening 'msgfooter.php' for inclusion (include_path='.:/var/www/git') in /var/www/git/apache-calcite-development/msg03328.html on line 131
Call Stack
#TimeMemoryFunctionLocation
10.0006368760{main}( ).../msg03328.html:0