diff --git a/BUILDING.md b/BUILDING.md
index c6eeb2a..4b84ede 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -29,8 +29,11 @@ By default, this tarball does not contain a Phoenix client jar as it is meant to
of Phoenix version (one PQS release can be used against any Phoenix version). Today, PQS builds against
the Phoenix 5.1.1 release with HBase 2.4.2.
+In order to use Phoenix Query Server, you need to copy the phoenix-client-embedded jar appropriate
+for your cluster into the Queryserver root directory.
+
Note that the resulting Query Server binaries are not tied to any Phoenix, Hbase or Hadoop versions,
-and will work with all recent Phoenix versions.
+The current release requires at least Phoenix 4.16.0 or 5.1.0.
```
$ mvn clean package
@@ -41,12 +44,10 @@ $ mvn clean package
To build a release of PQS which packages a specific version of Phoenix, specify the `package-phoenix-client` system property
and specify the `phoenix.version` system property to indicate a specific Phoenix version, as well as
the `phoenix.client.artifactid` to choose the phoenix-client HBase variant.
+You need to bundle the embedded client variant, to avoid conflicts with the logging libraries.
```
-$ mvn clean package -Dpackage.phoenix.client -Dphoenix.version=5.1.1 -Dphoenix.client.artifactid=phoenix-client-hbase-2.4 -pl '!phoenix-queryserver-it'
-```
-```
-$ mvn clean package -Dpackage.phoenix.client -Dphoenix.version=4.15.0-HBase-1.4 -Dphoenix.client.artifactid=phoenix-client -pl '!phoenix-queryserver-it'
+$ mvn clean package -Dpackage.phoenix.client -Dphoenix.version=5.1.1 -Dphoenix.client.artifactid=phoenix-client-embedded-hbase-2.4 -pl '!phoenix-queryserver-it'
```
### Running integration tests
diff --git a/bin/phoenix_queryserver_utils.py b/bin/phoenix_queryserver_utils.py
index cbc8f1e..02db08b 100755
--- a/bin/phoenix_queryserver_utils.py
+++ b/bin/phoenix_queryserver_utils.py
@@ -82,9 +82,11 @@ def setPath():
PHOENIX_QUERYSERVER_JAR_PATTERN = "phoenix-queryserver-[!c]*.jar"
PHOENIX_LOADBALANCER_JAR_PATTERN = "load-balancer-*[!t][!e][!s][!t][!s].jar"
SQLLINE_WITH_DEPS_PATTERN = "sqlline-*-jar-with-dependencies.jar"
- SLF4J_SIMPLE_JAR_PATTERN = "slf4j-simple-*[!s].jar"
+ SLF4J_BACKEND_JAR_PATTERN = "slf4j-reload4j-*[!s].jar"
+ LOGGING_JAR_PATTERN = "reload4j-*[!s].jar"
OVERRIDE_SLF4J_BACKEND = "PHOENIX_THIN_OVERRIDE_SLF4J_BACKEND"
+ OVERRIDE_LOGGING = "OVERRIDE_LOGGING_JAR_LOCATION"
# Backward support old env variable PHOENIX_LIB_DIR replaced by PHOENIX_CLASS_PATH
global phoenix_class_path
@@ -159,7 +161,12 @@ def setPath():
global slf4j_backend_jar
slf4j_backend_jar = os.environ.get(OVERRIDE_SLF4J_BACKEND)
if slf4j_backend_jar is None or slf4j_backend_jar == "":
- slf4j_backend_jar = findFileInPathWithoutRecursion(SLF4J_SIMPLE_JAR_PATTERN, os.path.join(current_dir, "..","lib"))
+ slf4j_backend_jar = findFileInPathWithoutRecursion(SLF4J_BACKEND_JAR_PATTERN, os.path.join(current_dir, "..","lib"))
+
+ global logging_jar
+ logging_jar = os.environ.get(OVERRIDE_LOGGING)
+ if logging_jar is None or logging_jar == "":
+ logging_jar = findFileInPathWithoutRecursion(LOGGING_JAR_PATTERN, os.path.join(current_dir, "..","lib"))
return ""
diff --git a/bin/queryserver.py b/bin/queryserver.py
index be17098..24594c3 100755
--- a/bin/queryserver.py
+++ b/bin/queryserver.py
@@ -120,9 +120,13 @@
# " -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true" + \
# The command is run through subprocess so environment variables are automatically inherited
-java_cmd = '%(java)s -cp ' + hbase_conf_dir + os.pathsep + hadoop_conf_dir + os.pathsep + \
+java_cmd = '%(java)s -cp ' +\
+ hbase_conf_dir + os.pathsep + \
+ hadoop_conf_dir + os.pathsep + \
+ phoenix_queryserver_utils.slf4j_backend_jar + os.pathsep + \
+ phoenix_queryserver_utils.logging_jar + os.pathsep + \
phoenix_queryserver_utils.phoenix_client_jar + os.pathsep + \
- phoenix_queryserver_utils.phoenix_queryserver_jar + os.pathsep + \
+ phoenix_queryserver_utils.phoenix_queryserver_jar + \
" -Dproc_phoenixserver" + \
" -Dlog4j.configuration=file:" + os.path.join(phoenix_queryserver_utils.current_dir, "log4j.properties") + \
" -Dpsql.root.logger=%(root_logger)s" + \
diff --git a/bin/sqlline-thin.py b/bin/sqlline-thin.py
index e5ef5f4..b110b22 100755
--- a/bin/sqlline-thin.py
+++ b/bin/sqlline-thin.py
@@ -209,9 +209,11 @@ def get_spnego_auth_disabled():
jdbc_url += ';authentication=SPNEGO'
java_cmd = java + ' $PHOENIX_OPTS ' + \
- ' -cp "' + phoenix_queryserver_utils.sqlline_with_deps_jar \
- + os.pathsep + phoenix_queryserver_utils.phoenix_thin_client_jar + \
- os.pathsep + phoenix_queryserver_utils.slf4j_backend_jar + '" -Dlog4j.configuration=file:' + \
+ ' -cp "' + phoenix_queryserver_utils.sqlline_with_deps_jar + os.pathsep + \
+ phoenix_queryserver_utils.phoenix_thin_client_jar + os.pathsep + \
+ phoenix_queryserver_utils.slf4j_backend_jar + os.pathsep + \
+ phoenix_queryserver_utils.logging_jar +\
+ '" -Dlog4j.configuration=file:' + \
os.path.join(phoenix_queryserver_utils.current_dir, "log4j.properties") + \
' -Djavax.security.auth.useSubjectCredsOnly=false ' + \
disable_jna + \
diff --git a/phoenix-queryserver-assembly/pom.xml b/phoenix-queryserver-assembly/pom.xml
index 5386dd0..c0bec2f 100644
--- a/phoenix-queryserver-assembly/pom.xml
+++ b/phoenix-queryserver-assembly/pom.xml
@@ -48,8 +48,11 @@
org.slf4j
- slf4j-simple
- ${slf4j.version}
+ slf4j-reload4j
+
+
+ ch.qos.reload4j
+ reload4j
diff --git a/phoenix-queryserver-assembly/src/assembly/cluster.xml b/phoenix-queryserver-assembly/src/assembly/cluster.xml
index f472e83..892ad88 100644
--- a/phoenix-queryserver-assembly/src/assembly/cluster.xml
+++ b/phoenix-queryserver-assembly/src/assembly/cluster.xml
@@ -72,7 +72,14 @@
false
phoenix-queryserver-${project.parent.version}/lib
- org.slf4j:slf4j-simple
+ org.slf4j:slf4j-reload4j
+
+
+
+ false
+ phoenix-queryserver-${project.parent.version}/lib
+
+ ch.qos.reload4j:reload4j
diff --git a/pom.xml b/pom.xml
index 8c02ff0..ef7b947 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,7 +84,8 @@
2.11.0
3.2.2
1.9.0
- 1.7.30
+ 1.7.36
+ 1.2.19
1.19.0
3.1.0
3.0.0
@@ -564,6 +565,16 @@
slf4j-api
${slf4j.version}
+
+ org.slf4j
+ slf4j-reload4j
+ ${slf4j.version}
+
+
+ ch.qos.reload4j
+ reload4j
+ ${reload4j.version}
+
net.sourceforge.argparse4j
argparse4j