phoenix-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vincent Poon (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-5213) Phoenix-client improvements: add more relocations, exclude log binding, change naming
Date Mon, 08 Apr 2019 18:10:00 GMT

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

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

[~elserj] The {{shadedArtifactAttached}} is the same as before - false.  There's no change
there.  I only set it to true for the new "embedded" classifier.

The {{<exclude>org.apache.phoenix:phoenix-client</exclude>}} was also already
there.  I am guessing we had it there because we don't actually have any source code in phoenix-client/src.
 Excluding that doesn't really do anything.

Again, phoenix-client by default is still the same way it is today.  The jar in our tarball
stays the same.  It's only if you add phoenix-client as a dependency in another project with
{{<classifier>embedded</classifier>}} that you lose the log binding.

I guess the whole point here is we want two phoenix-clients.  One that as you say, can act
as a standalone with everything you need included.  And another that is meant to be used as
a dependency within another project.  For that case, you don't want the log binding in the
uber jar because there's no way to exclude it on the import side (unless you do some weird
resource hacks).

FWIW we don't actually have a slf4j-log4j12 dependency defined anywhere in our poms.  It's
actually brought in transitively through other dependencies.  And phoenix-assembly manually
specifies it to include in the tarball (which seems to be the proper way to do things).

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

Mime
View raw message