diff --git a/BUILDING.md b/BUILDING.md new file mode 100644 index 0000000..ccf88ad --- /dev/null +++ b/BUILDING.md @@ -0,0 +1,80 @@ + + +![logo](https://phoenix.apache.org/images/phoenix-logo-small.png) + +[Apache Phoenix](http://phoenix.apache.org/) enables OLTP and operational analytics in Hadoop for low latency applications. Visit the Apache Phoenix website [here](http://phoenix.apache.org/). This is the repo for the Phoenix Query Server (PQS). + +Copyright ©2020 [Apache Software Foundation](http://www.apache.org/). All Rights Reserved. + +## Building + +This repository will build a tarball which is capable of running the Phoenix Query Server. + +By default, this tarball does not contain a Phoenix client jar as it is meant to be agnostic +of Phoenix version (one PQS release can be used against any Phoenix version). Today, PQS builds against +the Phoenix 4.15.0-HBase-1.4 release. + +``` +$ mvn package +``` + +### Bundling a Phoenix Client + +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. + +PQS will package the same version of Phoenix used for build/test. This version is controlled by the + `phoenix.version` system property. + +``` +$ mvn package -Dpackage.phoenix.client -Dphoenix.version=5.1.0-SNAPSHOT +``` + +### Running integration tests + +`mvn package` will run the unit tests while building, but it will not run the integration test suite. + +The IT suite is run when executing `mvn install` or `mvn verify`. The Phoenix version specified +with `phoenix.version` is used for running the integration tests. + +When specifying `phoenix.version`, also specify the HBase version to be used +for integration testing by activating the corresponding `hbase` profile. + +When using a Phoenix 5.x version, activate the `hbase-2.x` profile in addition to the +profile for the minor 2.x version. + +``` +$ mvn verify -Dpackage.phoenix.client -Dphoenix.version=4.16.0-SNAPSHOT -Phbase-1.3 +``` +``` +$ mvn install -Dpackage.phoenix.client -Dphoenix.version=5.1.0-SNAPSHOT -Phbase-2.1 -Phbase-2.x +``` + +### Running project reports + +Phoenix-queryserver currently supports generating the standard set of Maven Project Info Reports, +as well as Spotbugs, Apache Creadur RAT, OWASP Dependency-Check, and Jacoco Code Coverage reports. + +To run all available reports +`$ mvn clean verify site -Dspotbugs.site` + +To run OWASP, RAT and Spotbugs, but not Jacoco +`$ mvn clean compile test-compile site -Dspotbugs.site` + +The reports are accessible via `target/site/index.html`, under the main project, +as well as each of the subprojects. (not every project has all reports) diff --git a/README.md b/README.md index a2783df..55e1fba 100644 --- a/README.md +++ b/README.md @@ -30,46 +30,5 @@ all done via the Apache Avatica project (sub-project of Apache Calcite). The reference client implementation for PQS is a "thin" JDBC driver which can communicate with PQS. There are drivers in other languages which exist in varying levels of maturity including Python, Golang, and .NET. -## Building - -This repository will build a tarball which is capable of running the Phoenix Query Server. - -By default, this tarball does not contain a Phoenix client jar as it is meant to be agnostic -of Phoenix version (one PQS release can be used against any Phoenix version). Today, PQS builds against -the Phoenix 4.15.0-HBase-1.4 release. - -``` -$ mvn package -``` - -### Bundling a Phoenix Client - -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. - -PQS will package the same version of Phoenix used for build/test. This version is controlled by the - `phoenix.version` system property. - -``` -$ mvn package -Dpackage.phoenix.client -Dphoenix.version=5.1.0-SNAPSHOT -``` - -### Running integration tests - -`mvn package` will run the unit tests while building, but it will not run the integration test suite. - -The IT suite is run when executing `mvn install` or `mvn verify`. The Phoenix version specified -with `phoenix.version` is used for running the integration tests. - -When specifying `phoenix.version`, also specify the HBase version to be used -for integration testing by activating the corresponding `hbase` profile. - -When using a Phoenix 5.x version, activate the `hbase-2.x` profile in addition to the -profile for the minor 2.x version. - -``` -$ mvn verify -Dpackage.phoenix.client -Dphoenix.version=4.16.0-SNAPSHOT -Phbase-1.3 -``` -``` -$ mvn install -Dpackage.phoenix.client -Dphoenix.version=5.1.0-SNAPSHOT -Phbase-2.1 -Phbase-2.x -``` +The Python driver is maintained by the Phoenix project, and is available in the python-phoenixdb +directory of the phoenix-queryserver repository. \ No newline at end of file diff --git a/phoenix-queryserver-load-balancer/pom.xml b/phoenix-queryserver-load-balancer/pom.xml index 68ea55d..6e76e15 100644 --- a/phoenix-queryserver-load-balancer/pom.xml +++ b/phoenix-queryserver-load-balancer/pom.xml @@ -104,6 +104,10 @@ org.apache.zookeeper zookeeper + + org.apache.zookeeper + zookeeper-jute + org.apache.curator curator-client diff --git a/phoenix-queryserver/pom.xml b/phoenix-queryserver/pom.xml index 441d01b..f5305e4 100644 --- a/phoenix-queryserver/pom.xml +++ b/phoenix-queryserver/pom.xml @@ -157,7 +157,7 @@ org.apache.zookeeper - zookeeper + zookeeper-jute org.apache.hadoop diff --git a/pom.xml b/pom.xml index c57292f..bcd8126 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ org.apache apache - 21 + 23 org.apache.phoenix @@ -75,11 +75,11 @@ 2.7.5 - 3.4.10 + 3.5.8 2.12.0 2.2.4 - 9.4.27.v20200227 + 9.4.31.v20200723 2.5 3.2.2 1.9.0 @@ -95,14 +95,25 @@ 2.9 1.9.1 + 4.1.3 + 4.1.3 + 5.3.2 + 0.8.5 false false + + UTF-8 UTF-8 + + + + 0.0 + 0.0 @@ -186,7 +197,7 @@ maven-surefire-plugin true - -enableassertions -Xmx2250m -XX:MaxPermSize=128m + @{jacocoArgLine} -enableassertions -Xmx2250m -XX:MaxPermSize=128m -Djava.security.egd=file:/dev/./urandom "-Djava.library.path=${hadoop.library.path}${path.separator}${java.library.path}" -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./target/ true kill @@ -204,7 +215,7 @@ alphabetical false alphabetical - -Xmx2000m -XX:MaxPermSize=256m -Djava.security.egd=file:/dev/./urandom "-Djava.library.path=${hadoop.library.path}${path.separator}${java.library.path}" -XX:NewRatio=4 -XX:SurvivorRatio=8 -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:CMSInitiatingOccupancyFraction=68 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./target/ + @{jacocoArgLine} -Xmx2000m -XX:MaxPermSize=256m -Djava.security.egd=file:/dev/./urandom "-Djava.library.path=${hadoop.library.path}${path.separator}${java.library.path}" -XX:NewRatio=4 -XX:SurvivorRatio=8 -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:CMSInitiatingOccupancyFraction=68 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./target/ true kill ${basedir}/src/it/java @@ -238,6 +249,32 @@ + + org.owasp + dependency-check-maven + ${maven-owasp-plugin.version} + + true + true + true + + + + com.github.spotbugs + spotbugs-maven-plugin + ${spotbugs-maven-plugin.version} + + + com.github.spotbugs + spotbugs + ${spotbugs.version} + + + + Max + 2048 + + org.apache.maven.plugins @@ -315,14 +352,6 @@ **/patchprocess/** - - python/requests-kerberos/** - python/phoenixdb/phoenixdb/avatica/proto/* - python/phoenixdb/*.rst - python/phoenixdb/ci/** - python/phoenixdb/doc/*.rst - python/phoenixdb/doc/conf.py - python/phoenixdb/doc/Makefile @@ -444,6 +473,17 @@ + + org.apache.zookeeper + zookeeper-jute + ${zookeeper.version} + + + org.slf4j + slf4j-log4j12 + + + org.eclipse.jetty jetty-util @@ -612,4 +652,121 @@ + + + codecoverage + + + !skip.code-coverage + + + + + + org.jacoco + jacoco-maven-plugin + ${jacoco-maven-plugin.version} + + + prepare-agent + + prepare-agent + + + jacocoArgLine + + + + report + post-integration-test + + report + + + + check + verify + + check + + + + + BUNDLE + + + INSTRUCTION + COVEREDRATIO + ${jacoco.instruction.coverage.percentage} + + + BRANCH + COVEREDRATIO + ${jacoco.branch.coverage.percentage} + + + + + + + + + + + + + spotbugs-site + + + !spotbugs.site + + + + + + com.github.spotbugs + spotbugs-maven-plugin + + true + true + + + + + + + + + + com.github.spotbugs + spotbugs-maven-plugin + + + org.owasp + dependency-check-maven + + + + aggregate + + + + + + org.jacoco + jacoco-maven-plugin + + + + report + + + + + + org.apache.rat + apache-rat-plugin + + +