Replace embedded and repackaged GSON library

Replace substituted GSON package names with those provided from the vendor.
Reduce OSGi-metadata declaration of core-module because the artificial package org.jclouds.json.gson.internal was removed.
Remove the Gson module its children Gson bundle, and Gson shaded.
Remove duplication conflict and check-style rules due to the removal of the internal Gson module.
Add maven repository where a custom version of the Gson library gets hosted, which exports all packages.

Remove particular repository

Remove the declaration of the repository that serves a custom build GSON version. The build uses GSON in its original form of the vendor, which gets distributed through the standard distribution channel. The identifiers for group, artifact, and version correspond to the latest stable release of GSON.

Integrate GSON library in Clouds Core Bundle

The change contained in the commit puts the GSON library into the classpath of the JClouds core module.
After several tests with Karaf and Karaf JClouds, especially if the Maven identifier matches the original GSON library, there are only a limited number of ways to keep the deployment effort low.

Specifically, Karaf has a set of predefined Maven repositories that can be easily customized. The order in which a particular repository is resolved into the customized GSON library is more difficult. In normal OSGi applications, which do not have such a management function, I imagine this configuration to be more complicated.  Sure, a unique identifier would help, but then we are back to step 1.

Although I honestly don't like to see this kind of approach in a codebase I'm working with, there are not many alternatives to the main aspect of deployment mentioned above.

Maybe the approach can still ease the problem in the short term. In a further mid-term step, however, this problem must be addressed in general.
13 files changed
tree: 0621d2c845e8455e02c7e6bd50988e446d81b841
  1. all/
  2. allblobstore/
  3. allcompute/
  4. allloadbalancer/
  5. apis/
  6. blobstore/
  7. common/
  8. compute/
  9. core/
  10. drivers/
  11. loadbalancer/
  12. project/
  13. providers/
  14. resources/
  15. scriptbuilder/
  16. skeletons/
  17. .dir-locals.el
  18. .gitattributes
  19. .gitignore
  20. .mailmap
  21. .travis.yml
  22. CONTRIBUTING.md
  23. pom.xml
  24. README.md
README.md

jclouds

Apache jclouds is an open source multi-cloud toolkit for the Java platform that gives you the freedom to create applications that are portable across clouds while giving you full control to use cloud-specific features.

For more information about using or contributing to jclouds, please visit our website at jclouds.apache.org.

License

Copyright (C) 2009-2019 The Apache Software Foundation

Licensed under the Apache License, Version 2.0