Reduce size of shaded Guava artifact

Description

Initial mailing list topic here.

In order to avoid the dependency hell issues encountered in previous driver versions (see ), all builds of driver 4.0+, both the "regular" and the "shaded" one, now actually use a shaded version of Guava behind the scenes, and this is not configurable.

Furthermore, this shaded version of Guava is not embedded in the driver jar, but It's packaged separately and pulled in as a regular Maven dependency.

But the Guava shaded jar is 2.9MB currently. It has been requested that we should reduce the resulting artifact to just what's actually necessary for the driver. This could be done e.g. with ProGuard or similar tools.

It should be noted that the main reason we need Guava in driver 4.0 is the TypeToken API: it is used internally mostly to back our implement of our GenericType. We also rely on immutable collections a lot.

Alternatively, we can discuss the option of getting rid of Guava altogether and implementing GenericType from scratch.

Environment

None

Pull Requests

None

Status

Assignee

Unassigned

Reporter

Alexandre Dutra

Labels

None

PM Priority

None

Affects versions

None

Fix versions

Pull Request

None

Doc Impact

None

Size

None

External issue ID

None

External issue ID

None

Priority

Major
Configure