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

Elliott Clark commented on HBASE-13517:
---------------------------------------

Here's a dependency:tree for a down stream project using hbase-shaded-client. ( 
No guava, No protobuf, No jackson, no jetty, no netty). 

{code}
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ 
test-hbase-client-shade ---
[INFO] test-hbase-client-shade:test-hbase-client-shade:jar:1.0-SNAPSHOT
[INFO] +- org.apache.hbase:hbase-shaded-client:jar:2.0.0-SNAPSHOT:compile
[INFO] |  +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] |  +- commons-codec:commons-codec:jar:1.9:compile
[INFO] |  +- commons-io:commons-io:jar:2.4:compile
[INFO] |  +- commons-lang:commons-lang:jar:2.6:compile
[INFO] |  +- commons-logging:commons-logging:jar:1.2:compile
[INFO] |  +- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] |  +- org.slf4j:slf4j-api:jar:1.7.7:compile
[INFO] |  +- org.slf4j:slf4j-log4j12:jar:1.6.1:compile
[INFO] |  +- org.apache.htrace:htrace-core:jar:3.1.0-incubating:compile
[INFO] |  +- org.jruby.jcodings:jcodings:jar:1.0.8:compile
[INFO] |  +- org.jruby.joni:joni:jar:2.1.2:compile
[INFO] |  +- org.apache.httpcomponents:httpclient:jar:4.2.5:compile
[INFO] |  +- org.apache.httpcomponents:httpcore:jar:4.2.4:compile
[INFO] |  +- 
org.apache.directory.server:apacheds-kerberos-codec:jar:2.0.0-M15:compile
[INFO] |  +- org.apache.directory.server:apacheds-i18n:jar:2.0.0-M15:compile
[INFO] |  +- org.apache.directory.api:api-asn1-api:jar:1.0.0-M20:compile
[INFO] |  +- org.apache.directory.api:api-util:jar:1.0.0-M20:compile
[INFO] |  +- commons-cli:commons-cli:jar:1.2:compile
[INFO] |  +- org.apache.commons:commons-math3:jar:3.1.1:compile
[INFO] |  +- xmlenc:xmlenc:jar:0.52:compile
[INFO] |  +- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] |  +- commons-net:commons-net:jar:3.1:compile
[INFO] |  +- commons-el:commons-el:jar:1.0:runtime
[INFO] |  +- commons-configuration:commons-configuration:jar:1.6:compile
[INFO] |  +- commons-digester:commons-digester:jar:1.8:compile
[INFO] |  +- commons-beanutils:commons-beanutils:jar:1.7.0:compile
[INFO] |  +- commons-beanutils:commons-beanutils-core:jar:1.8.0:compile
[INFO] |  +- com.thoughtworks.paranamer:paranamer:jar:2.3:compile
[INFO] |  +- org.xerial.snappy:snappy-java:jar:1.0.4.1:compile
[INFO] |  +- com.jcraft:jsch:jar:0.1.42:compile
[INFO] |  +- org.apache.commons:commons-compress:jar:1.4.1:compile
[INFO] |  +- org.tukaani:xz:jar:1.0:compile
[INFO] |  +- javax.xml.bind:jaxb-api:jar:2.2.2:compile
[INFO] |  +- javax.activation:activation:jar:1.1:compile
[INFO] |  +- 
com.github.stephenc.findbugs:findbugs-annotations:jar:1.3.9-1:compile
[INFO] |  \- log4j:log4j:jar:1.2.17:compile
[INFO] \- junit:junit:jar:4.11:test
[INFO]    \- org.hamcrest:hamcrest-core:jar:1.3:test
{code}

Should we re-locate the commons-* stuff too ? I think we should leave the 
loggin stuff exposed as that stuff relies on loading classes by name; however 
the rest can move if it's wanted.


Sizes as things stand:
{code}
-rw-r--r--  1 elliott  THEFACEBOOK\Domain Users    19M Apr 21 08:56 
hbase-shaded-client-2.0.0-SNAPSHOT.jar
-rw-r--r--  1 elliott  THEFACEBOOK\Domain Users    36M Apr 21 08:57 
hbase-shaded-server-2.0.0-SNAPSHOT.jar
{code}


> Publish a client artifact with shaded dependencies
> --------------------------------------------------
>
>                 Key: HBASE-13517
>                 URL: https://issues.apache.org/jira/browse/HBASE-13517
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.0.0, 1.1.0
>            Reporter: Elliott Clark
>            Assignee: Elliott Clark
>             Fix For: 2.0.0, 1.1.0
>
>         Attachments: HBASE-13517-v1.patch, HBASE-13517-v2.patch, 
> HBASE-13517.patch
>
>
> Guava's moved on. Hadoop has not.
> Jackson moves whenever it feels like it.
> Protobuf moves with breaking point changes.
> While shading all of the time would break people that require the transitive 
> dependencies for MR or other things. Lets provide an artifact with our 
> dependencies shaded. Then users can have the choice to use the shaded version 
> or the non-shaded version.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to