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?