[
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)