beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (BEAM-1092) Shade commonly used libraries (e.g. Guava) to avoid class conflicts
Date Fri, 24 Feb 2017 12:48:44 GMT


ASF GitHub Bot commented on BEAM-1092:

GitHub user aviemzur opened a pull request:

    [BEAM-1092] Shade commonly used libraries (e.g. Guava) to avoid class conflicts

    Be sure to do all of the following to help us incorporate your contribution
    quickly and easily:
     - [ ] Make sure the PR title is formatted like:
       `[BEAM-<Jira issue #>] Description of pull request`
     - [ ] Make sure tests pass via `mvn clean verify`. (Even better, enable
           Travis-CI on your fork and ensure the whole test matrix passes).
     - [ ] Replace `<Jira issue #>` in the title with the actual Jira issue
           number, if there is one.
     - [ ] If this contribution is large, please file an Apache
           [Individual Contributor License Agreement](

You can merge this pull request into a Git repository by running:

    $ git pull shade-guava-generically

Alternatively you can review and apply these changes as the patch at:

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #2096
commit ff322937ffddcf3f3b2333534327ff2d11a164ab
Author: Aviem Zur <>
Date:   2017-02-24T12:42:27Z

    [BEAM-1092] Shade commonly used libraries (e.g. Guava) to avoid class conflicts


> Shade commonly used libraries (e.g. Guava) to avoid class conflicts
> -------------------------------------------------------------------
>                 Key: BEAM-1092
>                 URL:
>             Project: Beam
>          Issue Type: Bug
>          Components: examples-java, sdk-java-extensions
>    Affects Versions: 0.3.0-incubating
>            Reporter: Maximilian Michels
>            Assignee: Frances Perry
> Beam shades away some of its dependencies like Guava to avoid user classes from clashing
with these dependencies. Some of the artifacts, e.g. KafkaIO, do not shade any classes and
directly depend on potentially conflicting libraries (e.g. Guava). Also, users might manually
add such libraries as dependencies.
> Runners who add classes to the classpath (e.g. Hadoop) can run into conflict with multiple
versions of the same class. To prevent that, we should adjust the Maven archetypes pom files
used for the Quickstart to perform shading of commonly used libraries (again, Guava is often
the culprit).
> To prevent the problem in the first place, we should expand the shading of Guava and
other libraries to all modules which make use of these. 
> To solve both dimensions of the issue, we need to address:
> 1. Adding shading of commonly used libraries to the archetypes poms
> 2. Properly shade all commonly used libraries in the SDK modules
> 2) seems to be of highest priority since it affects users who simply use the provided
IO modules.

This message was sent by Atlassian JIRA

View raw message