[ 
https://issues.apache.org/jira/browse/JCLOUDS-1225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15826496#comment-15826496
 ] 

Ignasi Barrera commented on JCLOUDS-1225:
-----------------------------------------

Shading should not be an option in jclouds. If we go for this approach, where 
is the limit then? Why just shading Guava? Why not Guice? Why not Gson? Why not 
shading every single dependency and making jclouds an uber-jar with no 
dependencies?

That simply does not make sense, and reduces the possibility of users to better 
configure the dependency tree with the dependencyManagement directives, 
exclusions etc. It is simply the wrong way of addressing this.

We try to be compatible with all the Guava versions. You can have a look at our 
[compatibility build 
matrix|https://jclouds.ci.cloudbees.com/job/jclouds-compat/] where we still 
don't support Guava >=20. We do it in a standard way, using Maven so any 
downstream user knows exactly what jclouds is, how it works, and what it 
depends on.

If some projects or environments have issues with the Guava versions supported 
by jclouds, the shading can be done there. This is what the jenkins-jclouds 
plugin and other projects do. Conflict resolution, when it happens, is 
something that should be fixed in the projects using jclouds; we should not 
eagerly apply hacks to the way jclodus is build for that purpose, even more 
when the configuration that could be applied to the consumer projects is so 
straightforward.

> Guava 21 compatibility
> ----------------------
>
>                 Key: JCLOUDS-1225
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-1225
>             Project: jclouds
>          Issue Type: Improvement
>          Components: jclouds-core
>    Affects Versions: 2.0.0
>            Reporter: Ian Springer
>              Labels: guava
>
> The below classes use com.google.common.base.Objects.ToStringHelper, which 
> has been deprecated since Guava 18, and has been removed in Guava 21. This 
> makes it impossible to use jclouds in a project using Guava 21. Please either 
> upgrade to Guava 18+ and switch to using 
> com.google.common.base.MoreObjects.ToStringHelper, or drop the usage of 
> ToStringHelper altogether. This will allow my project to upgrade to Guava 21 
> without having to use a fork of jclouds.
> * org/jclouds/apis/internal/BaseApiMetadata.java
> * org/jclouds/domain/internal/LocationImpl.java
> * org/jclouds/domain/internal/MutableResourceMetadataImpl.java
> * org/jclouds/domain/internal/ResourceMetadataImpl.java
> * org/jclouds/http/HttpMessage.java
> * org/jclouds/http/HttpRequest.java
> * org/jclouds/http/HttpResponse.java
> * org/jclouds/internal/BaseView.java
> * org/jclouds/providers/internal/BaseProviderMetadata.java
> * org/jclouds/reflect/InvocationSuccess.java
> * org/jclouds/rest/internal/BaseHttpApiMetadata.java
> * org/jclouds/rest/suppliers/URIFromStringSupplier.java



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to