Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.8.0
-
None
-
None
-
None
Description
Guava is a very popular dependency, which often causes version collisions. Especially, due to lack of backwards compatibility.
Adding new dependencies that rely on guava requires us to shade these dependencies. This is hard to maintain and bloats our distribution. Therefore, we should omit guava as a dependency and delegate these problems to our users.
If a user would like to use X-Source with Y-Sink, where X and Y rely on colliding versions of guava, the user will have to shade one of them.
This task should be easier, now that we have moved to Java 1.7. If we move to 1.8 in this release, then most of it becomes virtually trivial.
Flume relies on the following guava imports:
- com.google.common.base.Preconditions
- com.google.common.collect.ArrayListMultimap
- com.google.common.collect.ListMultimap
- com.google.common.collect.Lists
- com.google.common.collect.Maps
- com.google.common.annotations.VisibleForTesting
- com.google.common.util.concurrent.ThreadFactoryBuilder
- com.google.common.base.Charsets
- com.google.common.base.Strings
- com.google.common.base.Throwables
- com.google.common.eventbus.EventBus
- com.google.common.eventbus.Subscribe
- com.google.common.primitives.UnsignedBytes
- com.google.common.cache.CacheBuilder
- com.google.common.cache.CacheLoader
- com.google.common.cache.LoadingCache
- com.google.common.util.concurrent.UncheckedExecutionException
- com.google.common.collect.HashMultimap
- com.google.common.collect.SetMultimap
- com.google.common.collect.ImmutableMap
- com.google.common.base.Joiner
- com.google.common.io.Files
- com.google.common.io.Resources
- com.google.common.collect.ImmutableSortedSet
- com.google.common.base.Splitter
- com.google.common.collect.Iterables
- com.google.common.base.Optional
- com.google.common.io.ByteStreams
- com.google.common.collect.HashBasedTable
- com.google.common.primitives.Longs
- com.google.common.collect.Sets
- com.google.common.collect.ImmutableListMultimap
- com.google.common.collect.ListMultimap
- import com.google.common.collect.Table
- com.google.common.base.Function