This issue finally irritated me enough to go with option 1 and hack
around with sed:

https://github.com/jclouds/jclouds/pull/1131

This allowed me to use Guava 23 with S3Proxy.  Testing jclouds itself
with Guava 21+ revealed breakage with Java 8 but this does not impact
our users.

I discovered google-java-format[1] which helped with some of the import
changes.  This has similarities to gofmt although it uses a
substantially different coding style than ours.

[1] https://github.com/google/google-java-format

On Mon, Jul 03, 2017 at 06:06:06PM -0700, Andrew Gaul wrote:
> Three months have passed so I guess we chose option 0.  While this issue
> concerns me and prefer options 1 or 2, I do not plan to work on this and
> encourage someone to step forward with a pull request or suggest another
> approach.
> 
> On Thu, Mar 30, 2017 at 10:11:56PM -0700, Andrew Gaul wrote:
> > I want to raise the profile of JCLOUDS-1225[1], Guava 21 compatibility,
> > which has troubled several users recently.  jclouds uses Guava 16 and
> > has compatibility with Guava 16-20.  Guava 21 API changes make it
> > incompatible with jclouds.  We have several plausible solutions:
> > 
> > 0) Ignore the issue
> > 1) Move to Guava 18 and have compatibility with Guava 18-21
> > 2) Use reflection or other workarounds to conditionally call newer
> > Guava APIs
> > 3) Provide some kind of shaded solution to avoid application
> > incompatibilities
> > 
> > I loathe to touch the third rail of dependency versioning given the
> > history of strong opinions and a reversion which addressed this very
> > issue some years back.  How can we move forward here?  0 and 1 cause
> > user issues while 2 and 3 pollute our code with hacks.
> > 
> > [1] https://issues.apache.org/jira/browse/JCLOUDS-1225
> > 
> > -- 
> > Andrew Gaul
> > http://gaul.org/
> 
> -- 
> Andrew Gaul
> http://gaul.org/

-- 
Andrew Gaul
http://gaul.org/

Reply via email to