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

Enis Soztutar commented on PHOENIX-2535:
----------------------------------------

Thanks Sergey for the updated patch. 

One question I was thinking of was how clients consume the client jars. The 
client and server jars are not pushed to the maven repository it seems, only 
the phoenix-core, phoenix-spark, etc. So, if a MR phoenix application or a JDBC 
application using phoenix depends on phoenix-core, they will not get the shaded 
jars at all with the patch as it is. Maybe we have to do a different maven 
module like {{phoenix-shaded-core}} / {{phoenix-shaded-client}} or something 
like that (similar to hbase-shaded-client). If we are going with shaded client 
all the time, then maybe just do {{phoenix-client}} without shaded in the name. 

Do also shading in the {{phoenix-server-client}} module as well? wdyt 
[~elserj]? 
Same thing for the phoenix-spark-client. I think that the way we are doing 
these jars in the assembly is not correct (not due to this patch of course), 
since they are not getting pushed to the maven repository, but they are just 
released inside the tarball. We should do a maven module to build the artifact 
jars (one module for phoenix-client, phoenix-server-client, 
phoenix-spark-client, etc) so that these jars get released. 

bq. Only client is shadowing. Server part stays intact. The only difference 
that for building it shadow plugin is using instead of assemble.
Alright, I saw the server using the shading module, but did not check whether 
there was actual shading. 

{{org/objectweb}} is still not shaded. 

We are also now generating empty jars for phoenix-assembly, which are not 
needed {{phoenix-assembly-4.8.0-HBase-1.1-SNAPSHOT-XXX.jar}}. 

I skimmed through some of the code in Phoenix to see whether we maybe breaking 
backwards compatibility accidentally, but it seems that we are not. A second 
look from another reviewer will also help if possible. 

> Create shaded clients (thin + thick) 
> -------------------------------------
>
>                 Key: PHOENIX-2535
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2535
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Enis Soztutar
>            Assignee: Sergey Soldatov
>             Fix For: 4.8.0
>
>         Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, 
> PHOENIX-2535-3.patch, PHOENIX-2535-4.patch
>
>
> Having shaded client artifacts helps greatly in minimizing the dependency 
> conflicts at the run time. We are seeing more of Phoenix JDBC client being 
> used in Storm topologies and other settings where guava versions become a 
> problem. 
> I think we can do a parallel artifact for the thick client with shaded 
> dependencies and also using shaded hbase. For thin client, maybe shading 
> should be the default since it is new? 



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

Reply via email to