[ 
https://issues.apache.org/jira/browse/HADOOP-14284?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15962810#comment-15962810
 ] 

Sean Busbey commented on HADOOP-14284:
--------------------------------------

Sorry, late on these

{code}
diff --git hadoop-client-modules/hadoop-client-api/pom.xml 
hadoop-client-modules/hadoop-client-api/pom.xml
164                             <!-- Exclude config keys for Guava that is 
shaded in hadoop-common -->
165                             <exclude>com/google/common/*</exclude>
{code}

{code}
diff --git hadoop-client-modules/hadoop-client-minicluster/pom.xml 
hadoop-client-modules/hadoop-client-minicluster/pom.xml
691                             <!-- Exclude config keys for Guava that is 
shaded in hadoop-common -->
692                             <exclude>com/google/common/*</exclude>
{code}

{code}
diff --git hadoop-client-modules/hadoop-client-runtime/pom.xml 
hadoop-client-modules/hadoop-client-runtime/pom.xml
237                             <!-- Exclude config keys for Guava that is 
shaded in hadoop-common -->
238                             <exclude>com/google/common/*</exclude>
{code}

Won't all of these have been rewritten by the third party module? Otherwise 
mustn't whatever is in hadoop-common be referring to a non-relocated Guava?

Related to the above, I don't see where the modules that now depend on 
shaded-third-party are changed to reference the relocated version of Guava. We 
can do it either in the source code or in the build, but I don't see us doing 
either ATM.

For example, [apache avro does this by making a temp jar with non-relocated 
classes they reference, then doing the relocation for both the classes and 
their references in the user facing 
module|https://github.com/apache/avro/commit/f7ec67996b66444f9de2284d1ddfaa66297ba51e].
 Apache HBase does the update-the-source approach for their relocated Google 
Protobuf. (There's not a simple thing to point at for that example, 
unfortunately. [the README for the module that does the 
relocation|https://github.com/apache/hbase/blob/48439e57201ee3be5eb12e6187002501af305a35/hbase-protocol-shaded/README.txt]
 is the closest, since it at least has pointers to what's going on and the 
commits involved.)

> Shade Guava everywhere
> ----------------------
>
>                 Key: HADOOP-14284
>                 URL: https://issues.apache.org/jira/browse/HADOOP-14284
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: build
>    Affects Versions: 3.0.0-alpha3
>            Reporter: Andrew Wang
>            Assignee: Tsuyoshi Ozawa
>            Priority: Blocker
>         Attachments: HADOOP-14238.pre001.patch, HADOOP-14284.002.patch, 
> HADOOP-14284.004.patch
>
>
> HADOOP-10101 upgraded the guava version for 3.x to 21.
> Guava is broadly used by Java projects that consume our artifacts. 
> Unfortunately, these projects also consume our private artifacts like 
> {{hadoop-hdfs}}. They also are unlikely on the new shaded client introduced 
> by HADOOP-11804, currently only available in 3.0.0-alpha2.
> We should shade Guava everywhere to proactively avoid breaking downstreams. 
> This isn't a requirement for all dependency upgrades, but it's necessary for 
> known-bad dependencies like Guava.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to