phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Istvan Toth <>
Subject [DISCUSS] Unbundling Sqlline and slf4j backend from phoenix-client and phoenix-client embedded
Date Wed, 26 May 2021 08:06:50 GMT

The current purpose of the phoenix-client JAR is twofold:
- It servers as a generic JDBC driver for embedding in applications
- It also contains the sqlline library used by the script, as
well as the slf4j log4j backend.
- (It also contains a some Phoenix code and HBase libraries not necessary
for a client, but we're already tracking that in different tickets)

One major pain point is the slf4j backend, which makes phoenix-client
incompatible with applications and libraries that do not use log4j 1.2 as a
backend, and kind of defeats the purpose of using slf4j in the first place.
phoenix-client-embedded solves this problem by removing the slf4j backend
from Phoenix.

In PHOENIX-6378 <> we aim
to remove sqlline from the phoenix-client JAR, as it further cleans up the
classpath, and avoids locking phoenix to the sqlline version that it was
built with.

In Richard's current patch, we remove sqlline from phoenix-client-embedded,
and use that in the sqlline script.

In our quest for a more useable phoenix-client, we can do two things now:

   1. Remove both the slf4j backend, and sqlline from phoenix-client, and
   also drop phoenix-client-embedded as it would be the same as phoenix-client
   2. Remove sqlline from phoenix-client-embedded, and keep the current
   phoenix-client as backwards compatibility option

I'd prefer the first option, but this is somewhat more disruptive than the

Please share your thoughts. Do you prefer option 1, 2, or something else
entirely ?


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message