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

Sergey Soldatov commented on PHOENIX-2535:
------------------------------------------

[~elserj]
{quote}
Why make this change in phoenix-assembly/pom.xml? It seems like you're just 
working around Maven wanting to create a jar then. If you set this to pom, 
AFAIUI, that should not be trying to create any JAR for the module.
{quote}
Actually not. If set it to pom - it's just create a pom file. The only way I 
have found to disable it - set a non existing phase for {{maven-jar-plugin}}
{quote}
Is there a reason why you aren't putting JARs generated by a module within that 
module's target/ directory? This is really confusing to see in practice "I 
built this module. Where the heck are the artifacts?"
{quote}
{{phoenix-assembly}} is generating tarball exactly at the {{target}} directory. 
All this stuff is related to the relative path of jars in this tarball. 

{quote}
Might be a bit more concise to make a property instead of repeating the shaded 
relocation prefix. E.g. 
<shaded.location>org.apache.phoenix.shaded</shaded.location> and then 
<shadedPattern>${shaded.location}.com.fasterxml</shadedPattern>. Is this more 
concise?
{quote}

sounds reasonable. will do that.

{quote}
This looks unnecessary. The maven-shade-plugin should already be defined in 
pluginManagement in /pom.xml.
{quote}
I don't know whether it's a {{maven-assembly-plugin}} specific feature or just 
a bug there, but if we remove those dependencies it will not collect the jar 
dependencies. 

{quote}
I'm surprised to see phoenix-server and phoenix-server-client in this list. My 
initial thought was that phoenix-client would be a shaded jar for the thick 
driver. Either way, neither thick or thin driver will need phoenix-server.
{quote}
Well, that was in the original {{pom.xml}} at phoenix-assembly which was 
producing client jar, so the client had query server as well as calcite inside. 
I will get rid of it. 

{quote}
I hate to be the bearer of bad news, but these are most likely not meeting ASF 
licensing requirements. For every bundled jar that Phoenix ships in a shaded 
jar, we're going to have to
Copy any NOTICE text into a NOTICE file in the shaded jar
Copy necessary license and copyright information for non-ASLv2 licensed jars 
into a LICENSE file in the shaded jar.
Yes, this will be horrible, but it is required.
{quote}
And that's exactly that those transforms are doing (or supposed to do). At 
least for licenses in client jar it creates a directory {{META-INF/license}} 
with all non ASF license files like:
{noformat}
META-INF//license:
total 176
-rw-r--r--  1 ssoldatov  staff   1592 Apr  7 23:41 LICENSE.base64.txt
-rw-r--r--  1 ssoldatov  staff  10174 Apr  7 23:41 LICENSE.commons-logging.txt
-rw-r--r--  1 ssoldatov  staff  10174 Apr  7 23:41 LICENSE.felix.txt
-rw-r--r--  1 ssoldatov  staff  26441 Apr  7 23:41 LICENSE.jboss-logging.txt
-rw-r--r--  1 ssoldatov  staff   1592 Apr  7 23:41 LICENSE.jsr166y.txt
-rw-r--r--  1 ssoldatov  staff   1465 Apr  7 23:41 LICENSE.jzlib.txt
-rw-r--r--  1 ssoldatov  staff  10174 Apr  7 23:41 LICENSE.log4j.txt
-rw-r--r--  1 ssoldatov  staff   1732 Apr  7 23:41 LICENSE.protobuf.txt
-rw-r--r--  1 ssoldatov  staff   1203 Apr  7 23:41 LICENSE.slf4j.txt
-rw-r--r--  1 ssoldatov  staff   1598 Apr  7 23:41 LICENSE.webbit.txt
{noformat}
And we don't have it in the current client jar :)

> 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, PHOENIX-2535-5.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