[ 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)