Uploaded image for project: 'Flume'
  1. Flume
  2. FLUME-2944

Remove guava as dependency

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

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

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            liorze Lior Zeno

            Dates

              Created:
              Updated:

              Slack

                Issue deployment