Hi! 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 sqlline.py 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 <https://issues.apache.org/jira/browse/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 other. Please share your thoughts. Do you prefer option 1, 2, or something else entirely ? Istvan