> > This would make downstream applications/users a little more simple -- > not having to worry about the HBase version in use (since their concerns > are what version of Phoenix is being used, instead). We could even > introduce non-Phoenix-versioned symlinks for these jars (e.g. > phoenix-client.jar and phoenix-server.jar).
I thought user still need to care about which hbase version in use? phoenix-server-xxx-hbase-2.1.jar not worked with hbase 2.2.x cluster now? > > Istvan Toth <st...@apache.org> 于2020年3月26日周四 上午5:09写道: > Hi! > > According to comments in the POMs, the phoenix-VERSION-client/server.jar > symlinks are deprecated. (The symlinks were already there BTW, I just > updated their targets) > I kind of agree with the deprecation, as permuting the components of the > jar name to distinguish the shaded and non-shaded versions feels unintitive > and error-prone. > > The phoenix-xx-VERSION.jars were meant to be the unshaded JARs. However, > that doesn't make sense for the client and server artifacts, as those are > just shaded views of core. > > Removing the useless unshaded client and server JAR maven artifacts would > free up those names, and we could create both symlinks in the assembly that > you suggest. > > This would also mean that maven wouldn't return a useless artifact for > phoenix-client and phoenix-server without classifiers, which would also be > one less unpleasant surprise to users. > > So the user could use the canonical maven artifact filename, or one of the > two (or three if we keep the deprecate old name) symlinks from the > assembly. > If she wanted to use an artifact from artifact, she'd have to specify the > hbase version as classifier to get the correct client. (this doesn't > change) > > The same naming solution (or whatever we agree on) should be extended to > PQS and connectors as well. > > On Wed, Mar 25, 2020 at 8:01 PM Josh Elser <els...@apache.org> wrote: > > > Background: IstvanT has done a lot of really great work to clean up the > > HBase 2.x compatibility issues for us. This lets us move away from the > > HBase-version-tagged releases of Phoenix (e.g. HBase-1.3, HBase-1.4, > > etc), and keep a single branch which can build all of these. > > > > Building master locally, I noticed the following in my tarball, > > specifically the jars > > > > <snip> > > phoenix-5.1.0-SNAPSHOT-hbase-2.2-client.jar -> > > phoenix-client-5.1.0-SNAPSHOT-hbase-2.2.jar > > phoenix-5.1.0-SNAPSHOT-hbase-2.2-server.jar > > phoenix-5.1.0-SNAPSHOT-server.jar > > phoenix-client-5.1.0-SNAPSHOT-hbase-2.2.jar > > </snip> > > > > I think there are two things happening here. One is that the > > phoenix-5.1.0-SNAPSHOT-server.jar is "empty" -- it's not the shaded > > server jar, but the hbase-2.2-server.jar is the correct jar. I think > > this is just a bug (you agree, Istvan?) > > > > The other thing I notice is that it feels like Istvan was try to > > simplify some things via symlinks. My feeling was that we could take > > this a step further. What if, instead of just having "hbase-x.y" named > > jars, we give symlinked jars as well. Creating something like... > > > > <snip> > > phoenix-5.1.0-SNAPSHOT-client.jar -> > > phoenix-client-5.1.0-SNAPSHOT-hbase-2.2-client.jar > > phoenix-client-5.1.0-SNAPSHOT-hbase-2.2-client.jar > > phoenix-5.1.0-SNAPSHOT-server.jar -> > > phoenix-server-5.1.0-SNAPSHOT-hbase-2.2-server.jar > > phoenix-server-5.1.0-SNAPSHOT-hbase-2.2-server.jar > > </snip> > > > > This would make downstream applications/users a little more simple -- > > not having to worry about the HBase version in use (since their concerns > > are what version of Phoenix is being used, instead). We could even > > introduce non-Phoenix-versioned symlinks for these jars (e.g. > > phoenix-client.jar and phoenix-server.jar). I think this also moves us a > > little closer to what we used to have. > > > > Sounds like a good idea to others? > > >