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