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

Vincent Poon commented on PHOENIX-5213:
---------------------------------------

[~elserj]  Thanks.  I now went with a different approach in v2:  I still have 
the old shaded jar, but now create an additional new shaded jar with the 
classifier "embedded".  That way we don't have to change any of the existing 
client tools, and the slf4j-log4j12 binding is still there for the old shaded 
jar.

The new "embedded" shaded jar removes the log binding and adds the source jar.  
The reason for the source jar is to make debugging easier when using the shaded 
jar in another project.

As for the {{com.sun}} and {{javax}} relocations, I haven't run into any issues 
so far, but AFAIK we don't have a suite of tests for this shaded jar?  It's not 
exhaustive, but when I embed this in Presto there is a test-suite there that 
runs 425 CRUD-like tests, which all pass.  That is, the Presto queries are all 
translated to Phoenix calls which return the expected results.  There are some 
metadata tests too like creating/dropping schemas and tables.

Btw, on #3, I still don't think there's a way to change the naming convention 
in the repo.  Again, you can change the jar name when it's created in /target , 
which can then be bundled in the assembly tarball, but when installing to the 
repo, it is always renamed to artifact-version.jar .  So we still have that 
inconsistency. 

> Phoenix-client improvements:  add more relocations, exclude log binding, 
> change naming
> --------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-5213
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5213
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 5.0.0, 4.15.0
>            Reporter: Vincent Poon
>            Assignee: Vincent Poon
>            Priority: Major
>         Attachments: PHOENIX-5213.4.x-HBase-1.4.v1.patch, 
> PHOENIX-5213.4.x-HBase-1.4.v2.patch
>
>
> To make the existing phoenix-client, I'm proposing the following changes:
> 1)  Add additional relocations of some packages
> 2)  Exclude the slf4j-log4j12 binding.  Apparently this isn't pulled in 
> directly from phoenix-core itself, but transitively from other projects.  
> It's generally considered best practice to not impose a log binding on 
> downstream projects.  The slf4j-log4j12 jar will still be in the phoenix 
> tarball's /lib folder.
> 3)  Changing the jar naming from phoenix\-\[version\]\-client.jar to 
> phoenix-client-\[version\].jar
> The reason for this is that there is no way, AFAIK, to change the naming 
> convention in maven's repo.  You can change the jar name locally, but when it 
> gets installed to the repo, it always has to follow the artfiactname-version 
> naming convention.  To avoid confusion of having two separate jar file names, 
> I propose we just change it to Maven's convention so we can publish releases 
> of phoenix-client.
> 4)  Create a source jar for phoenix-client.
> 5)  Create a dependency-reduced pom, so that the client can be used directly 
> in downstream projects without having to exclude transitive artifacts.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to