phoenix-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vincent Poon (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-5213) Phoenix-client improvements: add more relocations, exclude log binding, change naming
Date Wed, 03 Apr 2019 22:45:00 GMT


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:
>             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

View raw message