[
https://issues.apache.org/jira/browse/BEAM-1092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15882607#comment-15882607
]
ASF GitHub Bot commented on BEAM-1092:
--------------------------------------
GitHub user aviemzur opened a pull request:
https://github.com/apache/beam/pull/2096
[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](https://www.apache.org/licenses/icla.txt).
---
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/aviemzur/beam shade-guava-generically
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/beam/pull/2096.patch
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 <[email protected]>
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: https://issues.apache.org/jira/browse/BEAM-1092
> 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
(v6.3.15#6346)