ah - i tried to find some specific mention of that and didn't come across
it. if that's the case, then i think that maybe we should just head
straight to 2.5.2 on master. would you still go to groovy-all if we did
that? i presume the indy problem would go away in that case then right?

i do think we should just do this all at once as part of one PR - i have
2.5.2. building now with some minor required changes to get it working. i
can push that to a branch and we can go from there....

On Tue, Sep 18, 2018 at 7:16 PM Robert Dale <[email protected]> wrote:

> Indy is gone because invokedynamic is the default in that version.
>
> On Tue, Sep 18, 2018 at 18:30 Stephen Mallette <[email protected]>
> wrote:
>
> > Looking ahead a bit on this one (I'm interested in what it will take to
> get
> > to Groovy 3.0.0) I noticed that 2.5.x requires <type>pom</type> and
> > that groovy-all-x.y.z.jar is no longer available "In order to cater to
> the
> > module system of Java 9+" - i also don't see an "indy" classifier for
> that
> > in central:
> >
> > https://repo1.maven.org/maven2/org/codehaus/groovy/groovy-all/2.5.2/
> >
> > atm, i'm not sure if that changes anything in terms of the direction we
> > were headed.
> >
> > On Mon, Sep 17, 2018 at 3:06 PM Stephen Mallette <[email protected]>
> > wrote:
> >
> > > jeez - hornets nest
> > >
> > > interesting that going to a single module makes our distribution
> smaller.
> > > I assume that we must have though the opposite when we started using
> > pieces
> > > of groovy rather than "-all".   at this point there shouldn't be any
> more
> > > weirdly licensed files in groovy given that they have been releasing
> > under
> > > apache for as long as we have. i can't really come up with a reason not
> > to
> > > go to "-all" on 3.4.0, so i guess i'm +1 for that.
> > >
> > > the :install command could support classifiers because grape/ivy
> support
> > > it as an option. we could treat that as a separate issue i guess - new
> > JIRA?
> > >
> > >
> > >
> > >
> > >
> > > On Sun, Sep 16, 2018 at 6:00 PM Robert Dale <[email protected]> wrote:
> > >
> > >> So, I was taking a closer look at this there's potentially a larger
> mess
> > >> we
> > >> want to address.
> > >>
> > >> TLDR:  instead of removing groovy-sql,  replace all groovy deps with
> > >> groovy-all-indy.
> > >>
> > >> First, a bit of history.  tp32 did actually use groovy.sql.Sql
> > >> in ConsoleImportCustomizerProvider. This class was deprecated in
> 3.2.4.
> > >> Later, it was removed in 3.3.0.
> > >>
> > >> With the plan being to remove groovy-sql completely in 3.4.0, I was
> > >> testing
> > >> my instructions on using the :install feature to reinstall it just in
> > case
> > >> had someone depended on it.  It of course downloaded groovy-sql but it
> > was
> > >> different than what was in lib/.  It was missing '-indy'.  It also
> > >> downloaded the non-indy version of groovy.  I had to go learn what
> > '-indy'
> > >> was about. For those who don't know '-indy' is a maven classifier to
> > >> denote
> > >> that the jar was built with Java 1.7 'invokedymanic' support as
> opposed
> > >> the
> > >> legacy 'call site'.  The short of it is that invokedymanic is more
> > >> performant than call site.
> > >>
> > >> As I was comparing groovy lib/, I noticed that console and server
> > already
> > >> include both groovy-2.4.15-indy.jar and groovy-2.4.15.jar.  However,
> the
> > >> docs[1] state that only one or the other should be included. Same goes
> > for
> > >> any 'indy' and 'non-indy' jar of the same module.  Luckily, we don't
> > have
> > >> any other conflict like that although there is a mix of other indy
> > >> non-indy
> > >> modules.
> > >>
> > >> I tried again and was unable to download the indy version of
> groovy-sql
> > >> because the :install command does not allow a 'classifier' parameter.
> It
> > >> will only download the non-indy verison of modules.  Even if it could
> > >> download the 'indy' version, the groovy dependencies are built such
> that
> > >> all 'indy' modules have a dependency on non-indy modules.
> > >>
> > >> So, there are several issues:
> > >> 1) there is included a conflicting mix of indy and non-indy builds of
> > the
> > >> same module - groovy.  This is bad and should be fixed.
> > >> 2) there is included a mix of indy and non-indy builds of different
> > >> modules. This is not necessarily bad but does mean we're using
> > potentially
> > >> less performant pieces of groovy.
> > >>   indy) groovysh, json, jsr223
> > >>   non-indy) console, swing, templates, xml
> > >> 3) Install command doesn't support classifier parameter.  I'm not
> aware
> > of
> > >> anyone complaining about this before so it's not necessarily an issue
> in
> > >> itself. However, if we were to desire that all groovy modules be
> > >> indy-only,
> > >> then classifier support would be required.  But then I don't know how
> to
> > >> prevent the non-indy dependencies of that module from being
> downloaded.
> > It
> > >> seems like a mix would always occur.
> > >>
> > >> There is one simple solution interestingly enough:  depend only on
> > >> groovy-all-indy.  Not only does this keep all indy modules consistent
> > and
> > >> prevent non-indy conflicts/duplicates, it actually shrinks the
> > >> distribution
> > >> size by 4M.  This is from not distributing the duplicate non-indy
> > version
> > >> of groovy and because groovy-all isn't much bigger than the separate
> > >> modules we have now.  The other benefit is that we can reduce groovy
> > >> dependencies down to a single module across the project.  The
> > alternative
> > >> is ugly - having a direct dependency on each module in the dependency
> > tree
> > >> and having an excludes on each of those dependencies to prevent them
> > from
> > >> loading the non-indy deps.
> > >>
> > >> In conclusion, instead of removing groovy-sql, I am proposing that
> > instead
> > >> we replace all groovy deps with groovy-all-indy.
> > >>
> > >> Thoughts?
> > >>
> > >> Stephen, are the groovy scripts submitted to Gremlin Server compiled
> > with
> > >> invokedynamic?  What about Gremlin Console? I know the groovy console
> > does
> > >> not have this enabled by default.
> > >>
> > >> 1.
> > >>
> > >>
> >
> http://docs.groovy-lang.org/docs/groovy-2.4.15/html/documentation/invokedynamic-support.html#_two_jars
> > >>
> > >> Robert Dale
> > >>
> > >>
> > >> On Fri, Sep 14, 2018 at 9:32 AM Robert Dale <[email protected]>
> wrote:
> > >>
> > >> > No, nothing in the docs. There are some references to
> > java.sql.Timestamp
> > >> > but only within the context of gryo.  I'll just make an upgrade note
> > >> that
> > >> > it was removed and if required, it can be installed through the
> > :install
> > >> > command.
> > >> >
> > >> > Robert Dale
> > >> >
> > >> >
> > >> > On Fri, Sep 14, 2018 at 6:34 AM Stephen Mallette <
> > [email protected]>
> > >> > wrote:
> > >> >
> > >> >> I think groovy-sql was there because there was a time when I was
> into
> > >> >> polyglot data transforms in Gremlin and groovy-sql enabled you to
> > >> connect
> > >> >> to JDBC data sources in a nice way. So, I included groovy-sql as a
> > >> >> convenience. I'm not against removing it, though I think we should
> > >> remove
> > >> >> it in 3.4.0 only in case someone is currently depending on it
> > >> indirectly.
> > >> >> Please try to double check that we aren't using groovy-sql in any
> of
> > >> the
> > >> >> documentation for some odd example or something.
> > >> >>
> > >> >> On Thu, Sep 13, 2018 at 5:20 PM Robert Dale <[email protected]>
> > wrote:
> > >> >>
> > >> >> > gremlin-driver has a direct dependency on groovy-sql.  I removed
> it
> > >> in
> > >> >> > master and all tests pass (docker/build.sh -i -t -n) so there
> does
> > >> not
> > >> >> > appear to be any direct or indirect usage.
> > >> >> >
> > >> >> > Why is it there? Looks like it was pulled in because of
> > >> >> > https://issues.apache.org/jira/browse/TINKERPOP-713
> > >> >> > However, groovy-sql does not appear to be a dependency of
> > >> >> groovy-console or
> > >> >> > anything groovy (except groovy-all). Wasn't then, isn't now.
> > >> >> >
> > >> >> > Any objections to removing it?
> > >> >> >
> > >> >> > --
> > >> >> > Robert Dale
> > >> >> >
> > >> >>
> > >> >
> > >>
> > >
> >
> --
> Robert Dale
>

Reply via email to