You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by st...@apache.org on 2020/04/06 09:00:20 UTC

[phoenix] branch master updated: PHOENIX-5780 Add mvn dependency:analyze to build process

This is an automated email from the ASF dual-hosted git repository.

stoty pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/master by this push:
     new bd73613  PHOENIX-5780 Add mvn dependency:analyze to build process
bd73613 is described below

commit bd736137354b5e60ad7678e9c53f2f503a106b0f
Author: Istvan Toth <st...@apache.org>
AuthorDate: Mon Mar 16 08:16:16 2020 +0100

    PHOENIX-5780 Add mvn dependency:analyze to build process
    
    cleanup/reorganize dependency handling
    also includes the following java code changes:
    * remove accidental jline usages
    * fix accidental shaded guava import
    * replace commins-lang with commons-lang3 everywhere
    * replace incidental commons-logging usages
    * replace netty ThreadLocalRandom with j.u.c.ThreadLocalRandom
    * replace com.sun.istack.NotNull with edu.umd.cs.findbugs.annotations.NonNull
    * update testing instructions in BUILDING.md
    
    Closes #744
---
 BUILDING.md                                        |   8 +-
 phoenix-client/pom.xml                             |  21 +-
 phoenix-core/pom.xml                               | 328 +++----
 .../phoenix/end2end/BackwardCompatibilityIT.java   |   2 +-
 .../phoenix/end2end/ParallelStatsDisabledIT.java   |   2 +-
 .../end2end/index/GlobalIndexCheckerIT.java        |   7 +-
 .../end2end/index/MutableIndexExtendedIT.java      |  10 +-
 .../salted/SaltedTableVarLengthRowKeyIT.java       |   2 +-
 .../org/apache/phoenix/compile/DeleteCompiler.java |   5 +-
 .../apache/phoenix/compile/RVCOffsetCompiler.java  |   2 +-
 .../phoenix/hbase/index/IndexRegionObserver.java   |   6 +-
 .../AbstractParallelWriterIndexCommitter.java      |   6 +-
 .../write/LazyParallelWriterIndexCommitter.java    |   4 -
 .../apache/phoenix/index/GlobalIndexChecker.java   |   6 +-
 .../phoenix/iterate/BaseResultIterators.java       |   1 -
 .../org/apache/phoenix/jdbc/PhoenixResultSet.java  |   2 +-
 .../java/org/apache/phoenix/log/QueryLogger.java   |   2 +-
 .../apache/phoenix/mapreduce/OrphanViewTool.java   |   2 +-
 .../phoenix/parse/UpdateStatisticsStatement.java   |   4 +-
 .../org/apache/phoenix/trace/util/Tracing.java     |   5 +-
 .../java/org/apache/phoenix/util/DateUtil.java     |   5 +-
 .../java/org/apache/phoenix/util/JDBCUtil.java     |   5 +-
 .../java/org/apache/phoenix/util/QueryBuilder.java |   2 +-
 phoenix-hbase-compat-2.0.1/pom.xml                 |  14 +-
 phoenix-hbase-compat-2.1.6/pom.xml                 |  14 +-
 phoenix-hbase-compat-2.2.1/pom.xml                 |  14 +-
 phoenix-pherf/pom.xml                              | 962 +++++++++++----------
 .../apache/phoenix/pherf/result/ResultUtil.java    |   2 +
 .../phoenix/pherf/workload/WorkloadExecutor.java   |   1 -
 phoenix-server/pom.xml                             |  17 +-
 phoenix-tracing-webapp/pom.xml                     |  60 +-
 pom.xml                                            | 653 +++++++-------
 32 files changed, 1216 insertions(+), 958 deletions(-)

diff --git a/BUILDING.md b/BUILDING.md
index dd7e944..08f67af 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -76,9 +76,15 @@ Use the m2e eclipse plugin and do Import->Maven Project and just pick the root '
 Running the tests
 -----------------
 
-All tests  
+All Unit Tests  
 `$ mvn clean test`
 
+All Unit Tests and Integration tests  
+`$ mvn clean verify`
+
+The verify maven target will also run dependency:analyze-only, which checks if the dependencies
+ used in the code and declared in the maven projects match.
+
 Findbugs
 --------
 
diff --git a/phoenix-client/pom.xml b/phoenix-client/pom.xml
index cdbf3f0..e753925 100644
--- a/phoenix-client/pom.xml
+++ b/phoenix-client/pom.xml
@@ -53,7 +53,15 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jar-plugin</artifactId>
       </plugin>
-
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <configuration>
+          <ignoredDependencies>
+            <ignoredDependency>*</ignoredDependency>
+          </ignoredDependencies>
+         </configuration>
+      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-shade-plugin</artifactId>
@@ -432,6 +440,17 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>sqlline</groupId>
+      <artifactId>sqlline</artifactId>
+      <scope>runtime</scope>
     </dependency>
   </dependencies>
 </project>
diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml
index e53c3ce..80063e9 100644
--- a/phoenix-core/pom.xml
+++ b/phoenix-core/pom.xml
@@ -167,8 +167,121 @@
   </build>
 
   <dependencies>
+    <!-- HBase compat dependency -->
+    <dependency>
+      <groupId>org.apache.phoenix</groupId>
+      <artifactId>phoenix-hbase-compat-${hbase.compat.version}</artifactId>
+    </dependency>
+    <!-- Hadoop dependencies -->
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-auth</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-yarn-api</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-mapreduce-client-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-hdfs-client</artifactId>
+    </dependency>
+
+    <!-- Hadoop test dependencies -->
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-minikdc</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-hdfs</artifactId>
+      <type>test-jar</type>
+      <classifier>tests</classifier>
+      <scope>test</scope>
+    </dependency>
+
+    <!-- HBase dependencies -->
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-mapreduce</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-metrics-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-metrics</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-protocol</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-protocol-shaded</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-client</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-server</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-hadoop-compat</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-hadoop2-compat</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-zookeeper</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.hbase.thirdparty</groupId>
+      <artifactId>hbase-shaded-miscellaneous</artifactId>
+    </dependency>
+
+    <!-- HBase test dependencies -->
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-it</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-common</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-server</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
     <!-- Transaction dependencies -->
-    <!-- Omid -->
+    <!-- Omid dependencies -->
     <dependency>
       <groupId>org.apache.omid</groupId>
       <artifactId>omid-hbase-client-hbase2.x</artifactId>
@@ -199,11 +312,25 @@
     </dependency>
     <dependency>
       <groupId>org.apache.omid</groupId>
+      <artifactId>omid-transaction-client</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.omid</groupId>
+      <artifactId>omid-commit-table</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.omid</groupId>
+      <artifactId>omid-common</artifactId>
+    </dependency>
+
+    <!-- Omid test dependencies -->
+    <dependency>
+      <groupId>org.apache.omid</groupId>
       <artifactId>omid-tso-server-hbase2.x</artifactId>
       <type>test-jar</type>
     </dependency>
 
-    <!-- Tephra -->
+    <!-- Tephra dependencies -->
     <dependency>
       <groupId>org.apache.tephra</groupId>
       <artifactId>tephra-api</artifactId>
@@ -214,29 +341,15 @@
     </dependency>
     <dependency>
       <groupId>org.apache.tephra</groupId>
-      <artifactId>tephra-core</artifactId>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.tephra</groupId>
       <artifactId>tephra-hbase-compat-2.0</artifactId>
     </dependency>
 
-    <!-- Make sure we have all the antlr dependencies -->
+    <!-- Other dependencies -->
     <dependency>
       <groupId>org.antlr</groupId>
       <artifactId>antlr-runtime</artifactId>
     </dependency>
     <dependency>
-      <groupId>jline</groupId>
-      <artifactId>jline</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>sqlline</groupId>
-      <artifactId>sqlline</artifactId>
-    </dependency>
-    <dependency>
       <groupId>net.sourceforge.argparse4j</groupId>
       <artifactId>argparse4j</artifactId>
     </dependency>
@@ -245,10 +358,13 @@
       <artifactId>guava</artifactId>
     </dependency>
     <dependency>
+      <groupId>com.google.inject</groupId>
+      <artifactId>guice</artifactId>
+    </dependency>
+    <dependency>
       <groupId>joda-time</groupId>
       <artifactId>joda-time</artifactId>
     </dependency>
-    <!-- JSR-305 and jcip-annotations -->
     <dependency>
       <groupId>com.github.stephenc.findbugs</groupId>
       <artifactId>findbugs-annotations</artifactId>
@@ -258,52 +374,34 @@
       <artifactId>jcip-annotations</artifactId>
     </dependency>
     <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
+      <groupId>com.google.code.findbugs</groupId>
+      <artifactId>jsr305</artifactId>
     </dependency>
     <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
+      <groupId>org.iq80.snappy</groupId>
+      <artifactId>snappy</artifactId>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
     </dependency>
     <dependency>
       <groupId>com.google.protobuf</groupId>
       <artifactId>protobuf-java</artifactId>
     </dependency>
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
+      <groupId>org.apache.htrace</groupId>
+      <artifactId>htrace-core</artifactId>
     </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.iq80.snappy</groupId>
-      <artifactId>snappy</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.github.stephenc.high-scale-lib</groupId>
-      <artifactId>high-scale-lib</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.yammer.metrics</groupId>
-      <artifactId>metrics-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.htrace</groupId>
-      <artifactId>htrace-core</artifactId>
-    </dependency>
-    <dependency>
       <groupId>commons-cli</groupId>
       <artifactId>commons-cli</artifactId>
     </dependency>
@@ -324,143 +422,83 @@
       <artifactId>commons-lang3</artifactId>
     </dependency>
     <dependency>
-      <groupId>com.google.code.findbugs</groupId>
-      <artifactId>jsr305</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-testing-util</artifactId>
-      <scope>test</scope>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-it</artifactId>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-annotations</artifactId>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-configuration2</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-mapreduce</artifactId>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-metrics-api</artifactId>
+      <groupId>com.clearspring.analytics</groupId>
+      <artifactId>stream</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-metrics</artifactId>
+      <groupId>com.salesforce.i18n</groupId>
+      <artifactId>i18n-util</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-common</artifactId>
-      <scope>test</scope>
-      <type>test-jar</type>
+      <groupId>com.lmax</groupId>
+      <artifactId>disruptor</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-protocol</artifactId>
+      <groupId>org.apache.twill</groupId>
+      <artifactId>twill-common</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-client</artifactId>
+      <groupId>org.apache.twill</groupId>
+      <artifactId>twill-discovery-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-server</artifactId>
+      <groupId>org.apache.twill</groupId>
+      <artifactId>twill-zookeeper</artifactId>
     </dependency>
-    <!-- TODO remove after HBASE-19256 -->
     <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-http</artifactId>
+      <groupId>org.apache.twill</groupId>
+      <artifactId>twill-discovery-core</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-security</artifactId>
+      <groupId>org.apache.zookeeper</groupId>
+      <artifactId>zookeeper</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-server</artifactId>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-servlet</artifactId>
+      <groupId>org.codehaus.jettison</groupId>
+      <artifactId>jettison</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-webapp</artifactId>
+      <groupId>org.apache.thrift</groupId>
+      <artifactId>libthrift</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-server</artifactId>
-      <type>test-jar</type>
-      <scope>test</scope>
+      <groupId>org.jruby.joni</groupId>
+      <artifactId>joni</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-hadoop-compat</artifactId>
+      <groupId> org.jruby.jcodings</groupId>
+      <artifactId>jcodings</artifactId>
     </dependency>
+
+    <!-- Other test dependencies -->
     <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-hadoop-compat</artifactId>
-      <type>test-jar</type>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-hadoop2-compat</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-hadoop2-compat</artifactId>
-      <type>test-jar</type>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-mapreduce-client-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-minicluster</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-minikdc</artifactId>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-core</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.jruby.joni</groupId>
-      <artifactId>joni</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.clearspring.analytics</groupId>
-      <artifactId>stream</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.salesforce.i18n</groupId>
-      <artifactId>i18n-util</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.lmax</groupId>
-      <artifactId>disruptor</artifactId>
-     </dependency>
+
   </dependencies>
 
   <reporting>
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/BackwardCompatibilityIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/BackwardCompatibilityIT.java
index ae5dc38..b8580ef 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/BackwardCompatibilityIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/BackwardCompatibilityIT.java
@@ -41,7 +41,6 @@ import java.util.Properties;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.curator.shaded.com.google.common.collect.Lists;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
@@ -65,6 +64,7 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
+import com.google.common.collect.Lists;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParallelStatsDisabledIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParallelStatsDisabledIT.java
index 08a6ed2..bf4817e 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParallelStatsDisabledIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParallelStatsDisabledIT.java
@@ -19,7 +19,7 @@
 package org.apache.phoenix.end2end;
 
 import com.google.common.collect.Maps;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.phoenix.query.BaseTest;
 import org.apache.phoenix.util.QueryBuilder;
 import org.apache.phoenix.util.QueryUtil;
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexCheckerIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexCheckerIT.java
index ae3da0b..cf24c70 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexCheckerIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexCheckerIT.java
@@ -32,8 +32,6 @@ import java.util.Map;
 import java.util.Properties;
 
 import com.google.common.collect.Maps;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.phoenix.end2end.BaseUniqueNamesOwnClusterIT;
 import org.apache.phoenix.end2end.IndexToolIT;
 import org.apache.phoenix.hbase.index.IndexRegionObserver;
@@ -51,11 +49,14 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import com.google.common.collect.Lists;
 
 @RunWith(Parameterized.class)
 public class GlobalIndexCheckerIT extends BaseUniqueNamesOwnClusterIT {
-    private static final Log LOG = LogFactory.getLog(GlobalIndexCheckerIT.class);
+    private static final Logger LOG = LoggerFactory.getLogger(GlobalIndexCheckerIT.class);
     private final boolean async;
     private final boolean encoded;
     private final String tableDDLOptions;
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexExtendedIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexExtendedIT.java
index 5d9d6d0..8e27736 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexExtendedIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexExtendedIT.java
@@ -17,7 +17,6 @@
  */
 package org.apache.phoenix.end2end.index;
 
-import jline.internal.Log;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.*;
 import org.apache.hadoop.hbase.regionserver.HRegion;
@@ -42,6 +41,8 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.sql.*;
 import java.sql.Connection;
@@ -57,6 +58,7 @@ import static org.junit.Assert.*;
 @Category(NeedsOwnMiniClusterTest.class)
 public class MutableIndexExtendedIT extends ParallelStatsDisabledIT {
 
+    private static final Logger LOG = LoggerFactory.getLogger(MutableIndexExtendedIT.class);
     protected final boolean localIndex;
     protected final String tableDDLOptions;
 
@@ -241,20 +243,20 @@ public class MutableIndexExtendedIT extends ParallelStatsDisabledIT {
                 }
                 if (!merged) {
                     List<RegionInfo> regions = admin.getRegions(indexTable);
-                    Log.info("Merging: " + regions.size());
+                    LOG.info("Merging: " + regions.size());
                     admin.mergeRegionsAsync(regions.get(0).getEncodedNameAsBytes(),
                             regions.get(1).getEncodedNameAsBytes(), false);
                     merged = true;
                     Threads.sleep(10000);
                 }
             } catch (Exception ex) {
-                Log.info(ex);
+                LOG.info("error:", ex);
             }
             long waitStartTime = System.currentTimeMillis();
             // wait until merge happened
             while (System.currentTimeMillis() - waitStartTime < 10000) {
                 List<RegionInfo> regions = admin.getRegions(indexTable);
-                Log.info("Waiting:" + regions.size());
+                LOG.info("Waiting:" + regions.size());
                 if (regions.size() < numRegions) {
                     break;
                 }
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableVarLengthRowKeyIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableVarLengthRowKeyIT.java
index 85d518d..20179b4 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableVarLengthRowKeyIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableVarLengthRowKeyIT.java
@@ -32,7 +32,7 @@ import java.sql.ResultSet;
 import java.util.Arrays;
 import java.util.Properties;
 
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.phoenix.end2end.ParallelStatsDisabledIT;
 import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/DeleteCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/DeleteCompiler.java
index 45d7159..78b1531 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/DeleteCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/DeleteCompiler.java
@@ -93,7 +93,8 @@ import org.apache.phoenix.util.ScanUtil;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
-import com.sun.istack.NotNull;
+
+import edu.umd.cs.findbugs.annotations.NonNull;
 
 public class DeleteCompiler {
     private static ParseNodeFactory FACTORY = new ParseNodeFactory();
@@ -331,7 +332,7 @@ public class DeleteCompiler {
         private final MutationPlan firstPlan;
         private final QueryPlan dataPlan;
 
-        public MultiRowDeleteMutationPlan(QueryPlan dataPlan, @NotNull List<MutationPlan> plans) {
+        public MultiRowDeleteMutationPlan(QueryPlan dataPlan, @NonNull List<MutationPlan> plans) {
             Preconditions.checkArgument(!plans.isEmpty());
             this.plans = plans;
             this.firstPlan = plans.get(0);
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/RVCOffsetCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/RVCOffsetCompiler.java
index b7cdfb8..cc1cbe6 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/RVCOffsetCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/RVCOffsetCompiler.java
@@ -19,7 +19,7 @@ package org.apache.phoenix.compile;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Optional;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.phoenix.expression.AndExpression;
 import org.apache.phoenix.expression.CoerceExpression;
 import org.apache.phoenix.expression.ComparisonExpression;
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/IndexRegionObserver.java b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/IndexRegionObserver.java
index 7bfefb2..1b13153 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/IndexRegionObserver.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/IndexRegionObserver.java
@@ -33,8 +33,6 @@ import java.util.concurrent.ConcurrentHashMap;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Lists;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
@@ -96,6 +94,8 @@ import org.apache.phoenix.util.ByteUtil;
 import org.apache.phoenix.util.EnvironmentEdgeManager;
 import org.apache.phoenix.util.ServerUtil;
 import org.apache.phoenix.util.ServerUtil.ConnectionType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.Set;
 
@@ -113,7 +113,7 @@ import static org.apache.phoenix.coprocessor.IndexRebuildRegionScanner.removeCol
  */
 public class IndexRegionObserver implements RegionObserver, RegionCoprocessor {
 
-  private static final Log LOG = LogFactory.getLog(IndexRegionObserver.class);
+  private static final Logger LOG = LoggerFactory.getLogger(IndexRegionObserver.class);
   private static final OperationStatus IGNORE = new OperationStatus(OperationStatusCode.SUCCESS);
   private static final OperationStatus NOWRITE = new OperationStatus(OperationStatusCode.SUCCESS);
     protected static final byte VERIFIED_BYTE = 1;
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/AbstractParallelWriterIndexCommitter.java b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/AbstractParallelWriterIndexCommitter.java
index 3e54689..16a7b19 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/AbstractParallelWriterIndexCommitter.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/AbstractParallelWriterIndexCommitter.java
@@ -24,8 +24,6 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.Stoppable;
 import org.apache.hadoop.hbase.client.Mutation;
@@ -43,6 +41,8 @@ import org.apache.phoenix.hbase.index.table.HTableInterfaceReference;
 import org.apache.phoenix.hbase.index.util.KeyValueBuilder;
 import org.apache.phoenix.index.PhoenixIndexFailurePolicy;
 import org.apache.phoenix.util.IndexUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Multimap;
 
@@ -54,7 +54,7 @@ public abstract class AbstractParallelWriterIndexCommitter implements IndexCommi
     public static final String NUM_CONCURRENT_INDEX_WRITER_THREADS_CONF_KEY = "index.writer.threads.max";
     private static final int DEFAULT_CONCURRENT_INDEX_WRITER_THREADS = 10;
     public static final String INDEX_WRITER_KEEP_ALIVE_TIME_CONF_KEY = "index.writer.threads.keepalivetime";
-    private static final Log LOG = LogFactory.getLog(AbstractParallelWriterIndexCommitter.class);
+    private static final Logger LOG = LoggerFactory.getLogger(IndexWriter.class);
 
     protected HTableFactory retryingFactory;
     protected HTableFactory noRetriesFactory;
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/LazyParallelWriterIndexCommitter.java b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/LazyParallelWriterIndexCommitter.java
index f070278..4ed6925 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/LazyParallelWriterIndexCommitter.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/LazyParallelWriterIndexCommitter.java
@@ -17,10 +17,6 @@
  */
 package org.apache.phoenix.hbase.index.write;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.phoenix.hbase.index.table.HTableFactory;
-
 /**
  * Like the {@link ParallelWriterIndexCommitter}, but does not block
  *
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/index/GlobalIndexChecker.java b/phoenix-core/src/main/java/org/apache/phoenix/index/GlobalIndexChecker.java
index b0d0db5..6c4a054 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/index/GlobalIndexChecker.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/index/GlobalIndexChecker.java
@@ -30,8 +30,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Optional;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
@@ -64,6 +62,8 @@ import org.apache.phoenix.schema.types.PLong;
 import org.apache.phoenix.util.EnvironmentEdgeManager;
 import org.apache.phoenix.util.IndexUtil;
 import org.apache.phoenix.util.ServerUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 
@@ -89,7 +89,7 @@ import org.apache.phoenix.util.ServerUtil;
  *
  */
 public class GlobalIndexChecker implements RegionCoprocessor, RegionObserver {
-    private static final Log LOG = LogFactory.getLog(GlobalIndexChecker.class);
+    private static final Logger LOG = LoggerFactory.getLogger(GlobalIndexChecker.class);
     private GlobalIndexCheckerSource metricsSource;
     public enum RebuildReturnCode {
         NO_DATA_ROW(0),
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/iterate/BaseResultIterators.java b/phoenix-core/src/main/java/org/apache/phoenix/iterate/BaseResultIterators.java
index fe7425d..407f9a8 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/iterate/BaseResultIterators.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/iterate/BaseResultIterators.java
@@ -58,7 +58,6 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 
 import org.apache.commons.codec.binary.Hex;
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HRegionLocation;
 import org.apache.hadoop.hbase.TableName;
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixResultSet.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixResultSet.java
index 3a82af2..49afd16 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixResultSet.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixResultSet.java
@@ -50,7 +50,7 @@ import java.util.Map;
 
 import com.google.common.primitives.Bytes;
 import com.google.protobuf.InvalidProtocolBufferException;
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/log/QueryLogger.java b/phoenix-core/src/main/java/org/apache/phoenix/log/QueryLogger.java
index 27d4ba4..29b752a 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/log/QueryLogger.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/log/QueryLogger.java
@@ -19,6 +19,7 @@ package org.apache.phoenix.log;
 
 import java.util.Map;
 import java.util.UUID;
+import java.util.concurrent.ThreadLocalRandom;
 
 import org.apache.phoenix.jdbc.PhoenixConnection;
 import org.apache.phoenix.monitoring.MetricType;
@@ -29,7 +30,6 @@ import org.slf4j.LoggerFactory;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableMap.Builder;
 
-import io.netty.util.internal.ThreadLocalRandom;
 
 /*
  * Wrapper for query translator
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/OrphanViewTool.java b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/OrphanViewTool.java
index dbbb003..ae55a3c 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/OrphanViewTool.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/OrphanViewTool.java
@@ -54,7 +54,7 @@ import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.PosixParser;
-import org.apache.commons.lang.exception.ExceptionUtils;
+import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.hbase.HBaseConfiguration;
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/parse/UpdateStatisticsStatement.java b/phoenix-core/src/main/java/org/apache/phoenix/parse/UpdateStatisticsStatement.java
index 6f7b736..10f0b2f 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/parse/UpdateStatisticsStatement.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/parse/UpdateStatisticsStatement.java
@@ -25,14 +25,14 @@ import java.util.Map;
 
 import org.apache.phoenix.schema.stats.StatisticsCollectionScope;
 
-import com.sun.istack.NotNull;
+import edu.umd.cs.findbugs.annotations.NonNull;
 
 
 public class UpdateStatisticsStatement extends SingleTableStatement {
     private final StatisticsCollectionScope scope;
     private final Map<String,Object> props;
     
-    public UpdateStatisticsStatement(NamedTableNode table, @NotNull StatisticsCollectionScope scope, Map<String,Object> props) {
+    public UpdateStatisticsStatement(NamedTableNode table, @NonNull StatisticsCollectionScope scope, Map<String,Object> props) {
         super(table, 0);
         this.scope = scope;
         this.props = props;
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/trace/util/Tracing.java b/phoenix-core/src/main/java/org/apache/phoenix/trace/util/Tracing.java
index f68d8cd..d213460 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/trace/util/Tracing.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/trace/util/Tracing.java
@@ -49,7 +49,8 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Function;
 import com.google.common.base.Preconditions;
-import com.sun.istack.NotNull;
+
+import edu.umd.cs.findbugs.annotations.NonNull;
 
 /**
  * Helper class to manage using the {@link Tracer} within Phoenix
@@ -221,7 +222,7 @@ public class Tracing {
         return new TracingWrapper(conn, desc);
     }
 
-    private static void addCustomAnnotationsToSpan(@Nullable Span span, @NotNull PhoenixConnection conn) {
+    private static void addCustomAnnotationsToSpan(@Nullable Span span, @NonNull PhoenixConnection conn) {
         Preconditions.checkNotNull(conn);
 
         if (span == null) {
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/DateUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/util/DateUtil.java
index 138c85b..0caf0f7 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/DateUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/DateUtil.java
@@ -47,7 +47,8 @@ import org.joda.time.format.DateTimeFormatterBuilder;
 import org.joda.time.format.ISODateTimeFormat;
 
 import com.google.common.collect.Lists;
-import com.sun.istack.NotNull;
+
+import edu.umd.cs.findbugs.annotations.NonNull;
 
 
 @SuppressWarnings({ "serial", "deprecation" })
@@ -80,7 +81,7 @@ public class DateUtil {
     private DateUtil() {
     }
 
-    @NotNull
+    @NonNull
     public static PDataCodec getCodecFor(PDataType type) {
         PDataCodec codec = type.getCodec();
         if (codec != null) {
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/JDBCUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/util/JDBCUtil.java
index e4f490a..ef6989e 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/JDBCUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/JDBCUtil.java
@@ -33,7 +33,8 @@ import org.apache.phoenix.schema.PName;
 import org.apache.phoenix.schema.PNameFactory;
 
 import com.google.common.base.Preconditions;
-import com.sun.istack.NotNull;
+
+import edu.umd.cs.findbugs.annotations.NonNull;
 
 
 
@@ -113,7 +114,7 @@ public class JDBCUtil {
 		return result;
     }
     
-    public static Map<String, String> getAnnotations(@NotNull String url, @NotNull Properties info) {
+    public static Map<String, String> getAnnotations(@NonNull String url, @NonNull Properties info) {
         Preconditions.checkNotNull(url);
         Preconditions.checkNotNull(info);
         
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/QueryBuilder.java b/phoenix-core/src/main/java/org/apache/phoenix/util/QueryBuilder.java
index afce0dd..36ed966 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/QueryBuilder.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/QueryBuilder.java
@@ -20,7 +20,7 @@ package org.apache.phoenix.util;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.phoenix.parse.HintNode;
 
 import java.util.Collections;
diff --git a/phoenix-hbase-compat-2.0.1/pom.xml b/phoenix-hbase-compat-2.0.1/pom.xml
index cfa04e1..2039075 100644
--- a/phoenix-hbase-compat-2.0.1/pom.xml
+++ b/phoenix-hbase-compat-2.0.1/pom.xml
@@ -55,7 +55,19 @@
        <!-- HBase dependencies -->
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-endpoint</artifactId>
+        <artifactId>hbase-client</artifactId>
+        <version>2.0.1</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hbase</groupId>
+        <artifactId>hbase-common</artifactId>
+        <version>2.0.1</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hbase</groupId>
+        <artifactId>hbase-server</artifactId>
         <version>2.0.1</version>
         <scope>provided</scope>
       </dependency>
diff --git a/phoenix-hbase-compat-2.1.6/pom.xml b/phoenix-hbase-compat-2.1.6/pom.xml
index 18a52ec..b105402 100644
--- a/phoenix-hbase-compat-2.1.6/pom.xml
+++ b/phoenix-hbase-compat-2.1.6/pom.xml
@@ -55,7 +55,19 @@
        <!-- HBase dependencies -->
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-endpoint</artifactId>
+        <artifactId>hbase-client</artifactId>
+        <version>2.1.6</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hbase</groupId>
+        <artifactId>hbase-common</artifactId>
+        <version>2.1.6</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hbase</groupId>
+        <artifactId>hbase-server</artifactId>
         <version>2.1.6</version>
         <scope>provided</scope>
       </dependency>
diff --git a/phoenix-hbase-compat-2.2.1/pom.xml b/phoenix-hbase-compat-2.2.1/pom.xml
index f142a36..f25a2f7 100644
--- a/phoenix-hbase-compat-2.2.1/pom.xml
+++ b/phoenix-hbase-compat-2.2.1/pom.xml
@@ -55,7 +55,19 @@
        <!-- HBase dependencies -->
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-endpoint</artifactId>
+        <artifactId>hbase-client</artifactId>
+        <version>2.2.1</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hbase</groupId>
+        <artifactId>hbase-common</artifactId>
+        <version>2.2.1</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hbase</groupId>
+        <artifactId>hbase-server</artifactId>
         <version>2.2.1</version>
         <scope>provided</scope>
       </dependency>
diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml
index d50c89c..9b5914e 100644
--- a/phoenix-pherf/pom.xml
+++ b/phoenix-pherf/pom.xml
@@ -15,463 +15,545 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.phoenix</groupId>
-		<artifactId>phoenix</artifactId>
-		<version>5.1.0-SNAPSHOT</version>
-	</parent>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.phoenix</groupId>
+    <artifactId>phoenix</artifactId>
+    <version>5.1.0-SNAPSHOT</version>
+  </parent>
 
-	<artifactId>phoenix-pherf</artifactId>
-	<packaging>jar</packaging>
-	<name>Phoenix - Pherf</name>
+  <artifactId>phoenix-pherf</artifactId>
+  <packaging>jar</packaging>
+  <name>Phoenix - Pherf</name>
 
-	<properties>
-		<top.dir>${project.basedir}/..</top.dir>
-		<shaded.package>org.apache.phoenix.shaded</shaded.package>
-	</properties>
+  <properties>
+    <top.dir>${project.basedir}/..</top.dir>
+    <shaded.package>org.apache.phoenix.shaded</shaded.package>
 
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.phoenix</groupId>
-			<artifactId>phoenix-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.phoenix</groupId>
-			<artifactId>phoenix-core</artifactId>
-			<type>test-jar</type>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>com.googlecode.java-diff-utils</groupId>
-			<artifactId>diffutils</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.commons</groupId>
-			<artifactId>commons-lang3</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.commons</groupId>
-			<artifactId>commons-math3</artifactId>
-		</dependency>
+    <!-- Versions for pherf-only dependencies -->
+    <diffutils.version>1.2.1</diffutils.version>
+    <commons-math3.version>3.3</commons-math3.version>
+    <activation.version>1.1</activation.version>
+    <jcabi-jdbc.version>0.15</jcabi-jdbc.version>
+    <system-rules.version>1.8.0</system-rules.version>
+    <stax.version>1.0.1</stax.version>
+    <jaxb.version>2.2.11</jaxb.version>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>com.googlecode.java-diff-utils</groupId>
+        <artifactId>diffutils</artifactId>
+        <version>${diffutils.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-math3</artifactId>
+        <version>${commons-math3.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.activation</groupId>
+        <artifactId>activation</artifactId>
+        <version>${activation.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>stax</groupId>
+        <artifactId>stax-api</artifactId>
+        <version>${stax.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.xml.bind</groupId>
+        <artifactId>jaxb-api</artifactId>
+        <version>${jaxb.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jaxb</groupId>
+        <artifactId>jaxb-runtime</artifactId>
+        <version>${jaxb.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.jcabi</groupId>
+        <artifactId>jcabi-jdbc</artifactId>
+        <version>${jcabi-jdbc.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>com.github.stefanbirkner</groupId>
+        <artifactId>system-rules</artifactId>
+        <version>${system-rules.version}</version>
+        <scope>test</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.phoenix</groupId>
+      <artifactId>phoenix-core</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.googlecode.java-diff-utils</groupId>
+      <artifactId>diffutils</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-math3</artifactId>
+    </dependency>
     <dependency>
       <groupId>commons-cli</groupId>
       <artifactId>commons-cli</artifactId>
     </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-csv</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>joda-time</groupId>
+      <artifactId>joda-time</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>stax</groupId>
+      <artifactId>stax-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
 
-		<!-- Test Dependencies -->
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>com.jcabi</groupId>
-			<artifactId>jcabi-jdbc</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.hamcrest</groupId>
-			<artifactId>hamcrest-junit</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>com.github.stefanbirkner</groupId>
-			<artifactId>system-rules</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.hbase</groupId>
-			<artifactId>hbase-testing-util</artifactId>
-			<scope>test</scope>
-			<optional>true</optional>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.hbase</groupId>
-			<artifactId>hbase-it</artifactId>
-			<type>test-jar</type>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.tephra</groupId>
-			<artifactId>tephra-core</artifactId>
-			<type>test-jar</type>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.hadoop</groupId>
-			<artifactId>hadoop-minicluster</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.mockito</groupId>
-			<artifactId>mockito-all</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<!-- Java 11 -->
-		<dependency>
-			<groupId>jakarta.activation</groupId>
-			<artifactId>jakarta.activation-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.glassfish.jaxb</groupId>
-			<artifactId>jaxb-runtime</artifactId>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
+    <!-- Test Dependencies -->
+    <dependency>
+      <groupId>org.apache.phoenix</groupId>
+      <artifactId>phoenix-core</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hbase</groupId>
+      <artifactId>hbase-it</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.jcabi</groupId>
+      <artifactId>jcabi-jdbc</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.github.stefanbirkner</groupId>
+      <artifactId>system-rules</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- Java 11 -->
+    <dependency>
+      <groupId>javax.activation</groupId>
+      <artifactId>activation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>javax.xml.bind</groupId>
+      <artifactId>jaxb-api</artifactId>
+    </dependency>
+  </dependencies>
 
-	<build>
-		<resources>
-			<resource>
-				<directory>src/main/resources</directory>
-			</resource>
-			<resource>
-				<directory>config</directory>
-				<excludes>
-					<exclude>**/*.sql</exclude>
-					<exclude>**/*.xml</exclude>
-				</excludes>
-			</resource>
-		</resources>
-		<testResources>
-			<testResource>
-				<directory>src/test/resources</directory>
-			</testResource>
-			<testResource>
-				<directory>${project.basedir}/config</directory>
-			</testResource>
-		</testResources>
-		<plugins>
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>build-helper-maven-plugin</artifactId>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-failsafe-plugin</artifactId>
-			</plugin>
-			<plugin>
-				<artifactId>maven-dependency-plugin</artifactId>
-			</plugin>
+  <build>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+      <resource>
+        <directory>config</directory>
+        <excludes>
+          <exclude>**/*.sql</exclude>
+          <exclude>**/*.xml</exclude>
+        </excludes>
+      </resource>
+    </resources>
+    <testResources>
+      <testResource>
+        <directory>src/test/resources</directory>
+      </testResource>
+      <testResource>
+        <directory>${project.basedir}/config</directory>
+      </testResource>
+    </testResources>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <configuration>
+          <ignoredUnusedDeclaredDependencies>
+            <ignoredUnusedDeclaredDependency>
+              javax.activation:activation
+            </ignoredUnusedDeclaredDependency>
+            <ignoredUnusedDeclaredDependency>
+              javax.xml.bind:jaxb-api
+            </ignoredUnusedDeclaredDependency>
+            <ignoredUnusedDeclaredDependency>
+              org.glassfish.jaxb:jax-runtime
+            </ignoredUnusedDeclaredDependency>
+            <ignoredUnusedDeclaredDependency>
+              org.apache.hbase:hbase-it
+            </ignoredUnusedDeclaredDependency>
+          </ignoredUnusedDeclaredDependencies>
+        </configuration>
+      </plugin>
 
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<configuration>
-					<source>1.7</source>
-					<target>1.7</target>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-surefire-plugin</artifactId>
-					<configuration>
-						<workingDirectory>${java.io.tmpdir}</workingDirectory>
-						<forkCount>1</forkCount>
-					</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-resources-plugin</artifactId>
-			</plugin>
-		<plugin>
-			<groupId>org.apache.maven.plugins</groupId>
-			<artifactId>maven-install-plugin</artifactId>
-			<executions>
-				<execution>
-					<goals>
-						<goal>install-file</goal>
-					</goals>
-					<id>default-install</id>
-					<configuration>
-						<skip>true</skip>
-					</configuration>
-					<phase>install</phase>
-				</execution>
-			</executions>
-			<configuration>
-				<file>${basedir}/target/phoenix-pherf-${project.version}-minimal.jar</file>
-			</configuration>
-		</plugin>
-		<plugin>
-			<groupId>org.apache.maven.plugins</groupId>
-			<artifactId>maven-shade-plugin</artifactId>
-			<executions>
-				<execution>
-					<phase>package</phase>
-					<goals>
-						<goal>shade</goal>
-					</goals>
-					<configuration>
-						<finalName>phoenix-pherf-${project.version}-minimal</finalName>
-						<shadedArtifactAttached>false</shadedArtifactAttached>
-						<promoteTransitiveDependencies>true</promoteTransitiveDependencies>
-						<shadeTestJar>false</shadeTestJar>
-						<transformers>
-							<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
-							<transformer
-									implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
-								<resource>README.md</resource>
-								<file>${project.basedir}/../README.md</file>
-							</transformer>
-							<transformer
-									implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
-								<resource>LICENSE.txt</resource>
-								<file>${project.basedir}/../LICENSE</file>
-							</transformer>
-							<transformer
-									implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
-								<resource>NOTICE</resource>
-								<file>${project.basedir}/../NOTICE</file>
-							</transformer>
-						</transformers>
-						<artifactSet>
-							<includes>
-								<include>org.apache.phoenix:phoenix-pherf</include>
-								<include>com.googlecode.java-diff-utils:diffutils</include>
-								<include>org.apache.commons:commons-lang3</include>
-								<include>org.apache.commons:commons-math3</include>
-								<include>commons-cli:commons-cli</include>
-								<include>joda-time:joda-time</include>
-								<include>org.apache.commons:commons-csv</include>
-								<include>commons-lang:commons-lang</include>
-							</includes>
-						</artifactSet>
-						<filters>
-							<filter>
-								<artifact>*:*</artifact>
-								<excludes>
-									<exclude>META-INF/*.SF</exclude>
-									<exclude>META-INF/*.DSA</exclude>
-									<exclude>META-INF/*.RSA</exclude>
-									<exclude>META-INF/license/*</exclude>
-									<exclude>LICENSE.*</exclude>
-									<exclude>NOTICE.*</exclude>
-								</excludes>
-							</filter>
-						</filters>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <workingDirectory>${java.io.tmpdir}</workingDirectory>
+          <forkCount>1</forkCount>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-resources-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <id>default-install</id>
+            <configuration>
+              <skip>true</skip>
+            </configuration>
+            <phase>install</phase>
+          </execution>
+        </executions>
+        <configuration>
+          <file>${basedir}/target/phoenix-pherf-${project.version}-minimal.jar</file>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              <finalName>phoenix-pherf-${project.version}-minimal</finalName>
+              <shadedArtifactAttached>false</shadedArtifactAttached>
+              <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
+              <shadeTestJar>false</shadeTestJar>
+              <transformers>
+                <transformer
+                  implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
+                <transformer
+                  implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+                  <resource>README.md</resource>
+                  <file>${project.basedir}/../README.md</file>
+                </transformer>
+                <transformer
+                  implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+                  <resource>LICENSE.txt</resource>
+                  <file>${project.basedir}/../LICENSE</file>
+                </transformer>
+                <transformer
+                  implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+                  <resource>NOTICE</resource>
+                  <file>${project.basedir}/../NOTICE</file>
+                </transformer>
+              </transformers>
+              <artifactSet>
+                <includes>
+                  <include>org.apache.phoenix:phoenix-pherf</include>
+                  <include>com.googlecode.java-diff-utils:diffutils</include>
+                  <include>org.apache.commons:commons-lang3</include>
+                  <include>org.apache.commons:commons-math3</include>
+                  <include>commons-cli:commons-cli</include>
+                  <include>joda-time:joda-time</include>
+                  <include>org.apache.commons:commons-csv</include>
+                  <include>commons-lang:commons-lang</include>
+                </includes>
+              </artifactSet>
+              <filters>
+                <filter>
+                  <artifact>*:*</artifact>
+                  <excludes>
+                    <exclude>META-INF/*.SF</exclude>
+                    <exclude>META-INF/*.DSA</exclude>
+                    <exclude>META-INF/*.RSA</exclude>
+                    <exclude>META-INF/license/*</exclude>
+                    <exclude>LICENSE.*</exclude>
+                    <exclude>NOTICE.*</exclude>
+                  </excludes>
+                </filter>
+              </filters>
 
-						<relocations>
+              <relocations>
 
-							<!-- COM relocation -->
-							<relocation>
-								<pattern>com.codahale</pattern>
-								<shadedPattern>${shaded.package}.com.codahale</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>com.fasterxml</pattern>
-								<shadedPattern>${shaded.package}.com.fasterxml</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>com.jamesmurty</pattern>
-								<shadedPattern>${shaded.package}.com.jamesmurty</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>com.jcraft</pattern>
-								<shadedPattern>${shaded.package}.com.jcraft</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>com.lmax</pattern>
-								<shadedPattern>${shaded.package}.com.lmax</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>com.thoughtworks</pattern>
-								<shadedPattern>${shaded.package}.com.thoughtworks</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>com.yammer</pattern>
-								<shadedPattern>${shaded.package}.com.yammer</shadedPattern>
-							</relocation>
+                <!-- COM relocation -->
+                <relocation>
+                  <pattern>com.codahale</pattern>
+                  <shadedPattern>${shaded.package}.com.codahale</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>com.fasterxml</pattern>
+                  <shadedPattern>${shaded.package}.com.fasterxml</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>com.jamesmurty</pattern>
+                  <shadedPattern>${shaded.package}.com.jamesmurty</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>com.jcraft</pattern>
+                  <shadedPattern>${shaded.package}.com.jcraft</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>com.lmax</pattern>
+                  <shadedPattern>${shaded.package}.com.lmax</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>com.thoughtworks</pattern>
+                  <shadedPattern>${shaded.package}.com.thoughtworks</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>com.yammer</pattern>
+                  <shadedPattern>${shaded.package}.com.yammer</shadedPattern>
+                </relocation>
 
-							<!-- IO relocations -->
-							<relocation>
-								<pattern>io.netty</pattern>
-								<shadedPattern>${shaded.package}.io.netty</shadedPattern>
-							</relocation>
+                <!-- IO relocations -->
+                <relocation>
+                  <pattern>io.netty</pattern>
+                  <shadedPattern>${shaded.package}.io.netty</shadedPattern>
+                </relocation>
 
-							<!-- ORG relocations -->
-							<relocation>
-								<pattern>org.antlr</pattern>
-								<shadedPattern>${shaded.package}.org.antlr</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.aopalliance</pattern>
-								<shadedPattern>${shaded.package}.org.aopalliance</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.codehaus</pattern>
-								<shadedPattern>${shaded.package}.org.codehaus</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.fusesource</pattern>
-								<shadedPattern>${shaded.package}.org.fusesource</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.hamcrest</pattern>
-								<shadedPattern>${shaded.package}.org.hamcrest</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.hsqldb</pattern>
-								<shadedPattern>${shaded.package}.org.hsqldb</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.iq80</pattern>
-								<shadedPattern>${shaded.package}.org.iq80</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.jamon</pattern>
-								<shadedPattern>${shaded.package}.org.jamon</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.jboss</pattern>
-								<shadedPattern>${shaded.package}.org.jboss</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.jcodings</pattern>
-								<shadedPattern>${shaded.package}.org.jcodings</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.jets3t</pattern>
-								<shadedPattern>${shaded.package}.org.jets3t</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.joda</pattern>
-								<shadedPattern>${shaded.package}.org.joda</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.joni</pattern>
-								<shadedPattern>${shaded.package}.org.joni</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.junit</pattern>
-								<shadedPattern>${shaded.package}.org.junit</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.kosmix</pattern>
-								<shadedPattern>${shaded.package}.org.kosmix</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.mortbay</pattern>
-								<shadedPattern>${shaded.package}.org.mortbay</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.objectweb</pattern>
-								<shadedPattern>${shaded.package}.org.objectweb</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.stringtemplate</pattern>
-								<shadedPattern>${shaded.package}.org.stringtemplate</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.tukaani</pattern>
-								<shadedPattern>${shaded.package}.org.tukaani</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.znerd</pattern>
-								<shadedPattern>${shaded.package}.org.znerd</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.avro</pattern>
-								<shadedPattern>${shaded.package}.org.apache.avro</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.commons</pattern>
-								<shadedPattern>${shaded.package}.org.apache.commons</shadedPattern>
-								<excludes>
-									<exclude>org.apache.commons.csv.**</exclude>
-									<exclude>org.apache.commons.logging.**</exclude>
-								</excludes>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.directory</pattern>
-								<shadedPattern>${shaded.package}.org.apache.directory</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.http</pattern>
-								<shadedPattern>${shaded.package}.org.apache.http</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.jasper</pattern>
-								<shadedPattern>${shaded.package}.org.apache.jasper</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.jute</pattern>
-								<shadedPattern>${shaded.package}.org.apache.jute</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.mina</pattern>
-								<shadedPattern>${shaded.package}.org.apache.mina</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.oro</pattern>
-								<shadedPattern>${shaded.package}.org.apache.oro</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.taglibs</pattern>
-								<shadedPattern>${shaded.package}.org.apache.taglibs</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.thrift</pattern>
-								<shadedPattern>${shaded.package}.org.apache.thrift</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.tools</pattern>
-								<shadedPattern>${shaded.package}.org.apache.tools</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.twill</pattern>
-								<shadedPattern>${shaded.package}.org.apache.twill</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.velocity</pattern>
-								<shadedPattern>${shaded.package}.org.apache.velocity</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>org.apache.zookeeper</pattern>
-								<shadedPattern>${shaded.package}.org.apache.zookeeper</shadedPattern>
-							</relocation>
+                <!-- ORG relocations -->
+                <relocation>
+                  <pattern>org.antlr</pattern>
+                  <shadedPattern>${shaded.package}.org.antlr</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.aopalliance</pattern>
+                  <shadedPattern>${shaded.package}.org.aopalliance</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.codehaus</pattern>
+                  <shadedPattern>${shaded.package}.org.codehaus</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.fusesource</pattern>
+                  <shadedPattern>${shaded.package}.org.fusesource</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.hamcrest</pattern>
+                  <shadedPattern>${shaded.package}.org.hamcrest</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.hsqldb</pattern>
+                  <shadedPattern>${shaded.package}.org.hsqldb</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.iq80</pattern>
+                  <shadedPattern>${shaded.package}.org.iq80</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.jamon</pattern>
+                  <shadedPattern>${shaded.package}.org.jamon</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.jboss</pattern>
+                  <shadedPattern>${shaded.package}.org.jboss</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.jcodings</pattern>
+                  <shadedPattern>${shaded.package}.org.jcodings</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.jets3t</pattern>
+                  <shadedPattern>${shaded.package}.org.jets3t</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.joda</pattern>
+                  <shadedPattern>${shaded.package}.org.joda</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.joni</pattern>
+                  <shadedPattern>${shaded.package}.org.joni</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.junit</pattern>
+                  <shadedPattern>${shaded.package}.org.junit</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.kosmix</pattern>
+                  <shadedPattern>${shaded.package}.org.kosmix</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.mortbay</pattern>
+                  <shadedPattern>${shaded.package}.org.mortbay</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.objectweb</pattern>
+                  <shadedPattern>${shaded.package}.org.objectweb</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.stringtemplate</pattern>
+                  <shadedPattern>${shaded.package}.org.stringtemplate</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.tukaani</pattern>
+                  <shadedPattern>${shaded.package}.org.tukaani</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.znerd</pattern>
+                  <shadedPattern>${shaded.package}.org.znerd</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.avro</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.avro</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.commons</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.commons</shadedPattern>
+                  <excludes>
+                    <exclude>org.apache.commons.csv.**</exclude>
+                    <exclude>org.apache.commons.logging.**</exclude>
+                  </excludes>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.directory</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.directory</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.http</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.http</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.jasper</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.jasper</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.jute</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.jute</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.mina</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.mina</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.oro</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.oro</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.taglibs</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.taglibs</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.thrift</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.thrift</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.tools</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.tools</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.twill</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.twill</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.velocity</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.velocity</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.zookeeper</pattern>
+                  <shadedPattern>${shaded.package}.org.apache.zookeeper</shadedPattern>
+                </relocation>
 
-							<!-- NET relocations -->
-							<relocation>
-								<pattern>net</pattern>
-								<shadedPattern>${shaded.package}.net</shadedPattern>
-							</relocation>
+                <!-- NET relocations -->
+                <relocation>
+                  <pattern>net</pattern>
+                  <shadedPattern>${shaded.package}.net</shadedPattern>
+                </relocation>
 
-							<!-- Misc relocations -->
-							<relocation>
-								<pattern>antlr</pattern>
-								<shadedPattern>${shaded.package}.antlr</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>it.unimi</pattern>
-								<shadedPattern>${shaded.package}.it.unimi</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>jline</pattern>
-								<shadedPattern>${shaded.package}.jline</shadedPattern>
-							</relocation>
-							<relocation>
-								<pattern>junit</pattern>
-								<shadedPattern>${shaded.package}.junit</shadedPattern>
-							</relocation>
-						</relocations>
-					</configuration>
-				</execution>
-			</executions>
-		</plugin>
+                <!-- Misc relocations -->
+                <relocation>
+                  <pattern>antlr</pattern>
+                  <shadedPattern>${shaded.package}.antlr</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>it.unimi</pattern>
+                  <shadedPattern>${shaded.package}.it.unimi</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>jline</pattern>
+                  <shadedPattern>${shaded.package}.jline</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>junit</pattern>
+                  <shadedPattern>${shaded.package}.junit</shadedPattern>
+                </relocation>
+              </relocations>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
 
 
 
-			<plugin>
-				<groupId>org.apache.rat</groupId>
-				<artifactId>apache-rat-plugin</artifactId>
-				<configuration>
-					<excludes>
-						<exclude>*/RESULTS/**</exclude>
-						<exclude>README.md</exclude>
-					</excludes>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>*/RESULTS/**</exclude>
+            <exclude>README.md</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/ResultUtil.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/ResultUtil.java
index 30988ef..a0ddc0c 100644
--- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/ResultUtil.java
+++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/ResultUtil.java
@@ -167,6 +167,8 @@ public class ResultUtil {
     public void deleteDir(String directory) throws IOException {
         File baseDir = new File(directory);
         if (baseDir.exists()) {
+            //deleteDirectory seems to have a problem with MacOs tmp dir symlinks
+            FileUtils.cleanDirectory(baseDir);
             FileUtils.deleteDirectory(baseDir);
         }
     }
diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/WorkloadExecutor.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/WorkloadExecutor.java
index ff599b8..1d38e3d 100644
--- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/WorkloadExecutor.java
+++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/WorkloadExecutor.java
@@ -19,7 +19,6 @@
 package org.apache.phoenix.pherf.workload;
 
 import com.google.common.annotations.VisibleForTesting;
-import jline.internal.TestAccessible;
 import org.apache.phoenix.pherf.PherfConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/phoenix-server/pom.xml b/phoenix-server/pom.xml
index 8bf085d..5683379 100644
--- a/phoenix-server/pom.xml
+++ b/phoenix-server/pom.xml
@@ -83,7 +83,15 @@
  	  <pomFile>${basedir}/pom.xml</pomFile>
         </configuration>
       </plugin>
-
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <configuration>
+          <ignoredDependencies>
+            <ignoredDependency>*</ignoredDependency>
+          </ignoredDependencies>
+        </configuration>
+      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-shade-plugin</artifactId>
@@ -299,7 +307,6 @@
   </build>
 
   <dependencies>
-    <!-- Depend on all other internal projects -->
     <dependency>
       <groupId>org.apache.phoenix</groupId>
       <artifactId>phoenix-core</artifactId>
@@ -367,11 +374,5 @@
       <artifactId>protobuf-java</artifactId>
       <scope>provided</scope>
     </dependency>
-    <dependency>
-      <groupId>org.apache.tephra</groupId>
-      <artifactId>tephra-core</artifactId>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 </project>
diff --git a/phoenix-tracing-webapp/pom.xml b/phoenix-tracing-webapp/pom.xml
index 64db1fe..33e90d1 100755
--- a/phoenix-tracing-webapp/pom.xml
+++ b/phoenix-tracing-webapp/pom.xml
@@ -31,34 +31,60 @@
 
     <properties>
        <top.dir>${project.basedir}/..</top.dir>
+
+       <!-- tracing webapp only versions -->
+       <servlet.api.version>3.1.0</servlet.api.version>
+       <jetty.version>9.3.27.v20190418</jetty.version>
     </properties>
 
+    <dependencyManagement>
+      <dependencies>
+        <dependency>
+          <groupId>javax.servlet</groupId>
+          <artifactId>javax.servlet-api</artifactId>
+          <version>${servlet.api.version}</version>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-server</artifactId>
+          <version>${jetty.version}</version>
+        </dependency>
+        <dependency>
+          <groupId>org.eclipse.jetty</groupId>
+          <artifactId>jetty-webapp</artifactId>
+          <version>${jetty.version}</version>
+        </dependency>
+      </dependencies>
+    </dependencyManagement>
+
     <dependencies>
       <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-http</artifactId>
+        <groupId>javax.servlet</groupId>
+        <artifactId>javax.servlet-api</artifactId>
       </dependency>
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-security</artifactId>
+        <artifactId>jetty-server</artifactId>
       </dependency>
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-server</artifactId>
+        <artifactId>jetty-webapp</artifactId>
       </dependency>
       <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-servlet</artifactId>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-api</artifactId>
+        <scope>provided</scope>
       </dependency>
       <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-webapp</artifactId>
+        <groupId>log4j</groupId>
+        <artifactId>log4j</artifactId>
+        <scope>compile</scope>
       </dependency>
       <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-common</artifactId>
-          <scope>provided</scope>
-        </dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-common</artifactId>
+        <scope>provided</scope>
+      </dependency>
       <dependency>
         <groupId>org.apache.phoenix</groupId>
         <artifactId>phoenix-core</artifactId>
@@ -70,15 +96,15 @@
         <scope>provided</scope>
       </dependency>
       <dependency>
-        <groupId>commons-logging</groupId>
-        <artifactId>commons-logging</artifactId>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-databind</artifactId>
         <scope>provided</scope>
       </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-log4j12</artifactId>
+        <scope>runtime</scope>
+      </dependency>
     </dependencies>
 
     <build>
diff --git a/pom.xml b/pom.xml
index ca1a80e..44ec04e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,8 +76,11 @@
     <hbase.profile>2.2</hbase.profile>
     <hbase.profile.string>hbase-${hbase.profile}</hbase.profile.string>
 
-    <!-- Hadoop Version -->
+    <!-- Hadoop and Hbase-thirdparty version -->
+    <!-- These are expected to be overridden to conform to cluster versions
+    along with hbase.version (defined in profiles) -->
     <hadoop.version>3.0.0</hadoop.version>
+    <hbase.thirdparty.version>2.2.1</hbase.thirdparty.version>
 
     <!-- General Properties -->
     <antlr-input.dir>src/main/antlr3</antlr-input.dir>
@@ -94,15 +97,15 @@
     <disruptor.version>3.3.6</disruptor.version>
     <slf4j.version>1.6.4</slf4j.version>
     <protobuf-java.version>2.5.0</protobuf-java.version>
-    <commons-io.version>2.1</commons-io.version>
+    <commons-io.version>2.5</commons-io.version>
     <commons-lang.version>3.8</commons-lang.version>
-    <commons-logging.version>1.2</commons-logging.version>
     <commons-csv.version>1.0</commons-csv.version>
-    <sqlline.version>1.7.0</sqlline.version>
+    <sqlline.version>1.9.0</sqlline.version>
+    <commons-configuration2.version>2.1.1</commons-configuration2.version>
     <guava.version>13.0.1</guava.version>
     <findbugs-annotations.version>1.3.9-1</findbugs-annotations.version>
     <jcip-annotations.version>1.0-1</jcip-annotations.version>
-    <jline.version>2.11</jline.version>
+    <jsr305.version>2.0.1</jsr305.version>
     <snappy.version>0.3</snappy.version>
     <commons-codec.version>1.7</commons-codec.version>
     <htrace.version>3.1.0-incubating</htrace.version>
@@ -110,15 +113,22 @@
     <!-- Do not change jodatime.version until HBASE-15199 is fixed -->
     <jodatime.version>1.6</jodatime.version>
     <joni.version>2.1.2</joni.version>
-    <jetty.version>9.3.27.v20190418</jetty.version>
     <tephra.version>0.15.0-incubating</tephra.version>
     <omid.version>1.0.1</omid.version>
     <stream.version>2.9.5</stream.version>
     <i18n-util.version>1.0.4</i18n-util.version>
-    <servlet.api.version>3.1.0</servlet.api.version>
+    <twill.version>0.8.0</twill.version>
+    <guice.version>4.0</guice.version>
+    <gson.version>2.2.4</gson.version>
+    <jettison.version>1.1</jettison.version>
+    <zookeeper.version>3.4.10</zookeeper.version>
+    <curator.version>4.0.0</curator.version>
+    <jcodings.version>1.0.18</jcodings.version>
+    <thrift.version>0.9.0</thrift.version>
     <!-- Test Dependencies -->
-    <mockito-all.version>1.8.5</mockito-all.version>
+    <mockito.version>1.8.5</mockito.version>
     <junit.version>4.12</junit.version>
+    <hamcrest.version>1.3</hamcrest.version>
 
     <!-- Plugin versions -->
     <maven-eclipse-plugin.version>2.9</maven-eclipse-plugin.version>
@@ -135,7 +145,6 @@
     <!-- Set default encoding so multi-byte tests work correctly on the Mac -->
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-    <curator.version>4.0.0</curator.version>
 
   </properties>
 
@@ -337,6 +346,25 @@
         </plugin>
         <plugin>
           <artifactId>maven-dependency-plugin</artifactId>
+          <configuration>
+              <ignoredUnusedDeclaredDependencies>
+                <ignoredUnusedDeclaredDependency>
+                  org.apache.omid:omid-hbase-shims-hbase2.x
+                </ignoredUnusedDeclaredDependency>
+                <ignoredUnusedDeclaredDependency>
+                  org.apache.omid:omid-hbase-common-hbase2.x:jar
+                </ignoredUnusedDeclaredDependency>
+                <ignoredUnusedDeclaredDependency>
+                  org.apache.omid:omid-hbase-commit-table-hbase2.x
+                </ignoredUnusedDeclaredDependency>
+                <ignoredUnusedDeclaredDependency>
+                  org.apache.omid:omid-timestamp-storage-hbase2.x
+                </ignoredUnusedDeclaredDependency>
+                <ignoredUnusedDeclaredDependency>
+                  org.slf4j:slf4j-log4j12
+                </ignoredUnusedDeclaredDependency>
+              </ignoredUnusedDeclaredDependencies>
+            </configuration>
           <executions>
             <execution>
               <id>create-mrapp-generated-classpath</id>
@@ -347,6 +375,18 @@
               <configuration>
                 <outputFile>${project.build.directory}/classes/mrapp-generated-classpath
                 </outputFile>
+                <ignoredUnusedDeclaredDependencies>
+                    org.apache.omid:*hbase2.x
+                </ignoredUnusedDeclaredDependencies>
+              </configuration>
+            </execution>
+            <execution>
+              <id>enforce-dependencies</id>
+              <goals>
+                <goal>analyze-only</goal>
+              </goals>
+              <configuration>
+                <failOnWarning>true</failOnWarning>
               </configuration>
             </execution>
           </executions>
@@ -574,100 +614,177 @@
       </dependency>
       <dependency>
         <groupId>org.apache.phoenix</groupId>
-        <artifactId>phoenix-core</artifactId>
+        <artifactId>phoenix-hbase-compat-2.0.1</artifactId>
         <version>${project.version}</version>
-        <type>test-jar</type>
-        <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.apache.phoenix</groupId>
-        <artifactId>phoenix-hbase-compat-2.0.1</artifactId>
+        <artifactId>phoenix-hbase-compat-2.1.6</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.phoenix</groupId>
-        <artifactId>phoenix-hbase-compat-2.1.6</artifactId>
+        <artifactId>phoenix-hbase-compat-2.2.1</artifactId>
         <version>${project.version}</version>
       </dependency>
+
+      <!-- Intra-project test dependencies -->
       <dependency>
         <groupId>org.apache.phoenix</groupId>
-        <artifactId>phoenix-hbase-compat-2.2.1</artifactId>
+        <artifactId>phoenix-core</artifactId>
         <version>${project.version}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
       </dependency>
-      <!-- HBase dependencies -->
+
+      <!-- Hadoop Dependencies -->
       <dependency>
-        <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-annotations</artifactId>
-        <version>${hbase.version}</version>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-common</artifactId>
+        <version>${hadoop.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.apache.htrace</groupId>
+            <artifactId>htrace-core4</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
-        <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-testing-util</artifactId>
-        <version>${hbase.version}</version>
-        <scope>test</scope>
-        <optional>true</optional>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-mapreduce-client-core</artifactId>
+        <version>${hadoop.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-hdfs-client</artifactId>
+        <version>${hadoop.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-yarn-api</artifactId>
+        <version>${hadoop.version}</version>
+      </dependency>
+
+      <!-- These are referenced indirectly -->
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-client</artifactId>
+        <version>${hadoop.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-distcp</artifactId>
+        <version>${hadoop.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-hdfs</artifactId>
+        <version>${hadoop.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-auth</artifactId>
         <exclusions>
           <exclusion>
-            <groupId>org.jruby</groupId>
-            <artifactId>jruby-complete</artifactId>
+            <groupId>net.minidev</groupId>
+            <artifactId>json-smart</artifactId>
           </exclusion>
           <exclusion>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-hdfs</artifactId>
+            <groupId>net.minidev</groupId>
+            <artifactId>accessors-smart</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.ow2.asm</groupId>
+            <artifactId>asm</artifactId>
           </exclusion>
         </exclusions>
+        <version>${hadoop.version}</version>
       </dependency>
+      <!-- Only for shading in phoenix-server - remove ? -->
       <dependency>
-        <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-it</artifactId>
-        <version>${hbase.version}</version>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-annotations</artifactId>
+        <version>${hadoop.version}</version>
+      </dependency>
+
+      <!-- Hadoop test Dependencies -->
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-minicluster</artifactId>
+        <version>${hadoop.version}</version>
+        <scope>test</scope>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-minikdc</artifactId>
+        <version>${hadoop.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-hdfs</artifactId>
         <type>test-jar</type>
+        <classifier>tests</classifier>
+        <version>${hadoop.version}</version>
         <scope>test</scope>
         <exclusions>
           <exclusion>
-            <groupId>org.jruby</groupId>
-            <artifactId>jruby-complete</artifactId>
+            <groupId>org.apache.htrace</groupId>
+            <artifactId>htrace-core4</artifactId>
           </exclusion>
         </exclusions>
       </dependency>
+
+      <!-- These are to fix Hadoop minicluster dependency issues -->
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-mapreduce-client-app</artifactId>
+        <version>${hadoop.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
+        <version>${hadoop.version}</version>
+        <scope>test</scope>
+      </dependency>
+
+      <!-- HBase dependencies -->
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-protocol</artifactId>
+        <artifactId>hbase-annotations</artifactId>
         <version>${hbase.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-common</artifactId>
+        <artifactId>hbase-protocol</artifactId>
         <version>${hbase.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-metrics-api</artifactId>
+        <artifactId>hbase-protocol-shaded</artifactId>
         <version>${hbase.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-metrics</artifactId>
+        <artifactId>hbase-common</artifactId>
         <version>${hbase.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-common</artifactId>
+        <artifactId>hbase-metrics-api</artifactId>
         <version>${hbase.version}</version>
-        <type>test-jar</type>
-        <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-client</artifactId>
+        <artifactId>hbase-metrics</artifactId>
         <version>${hbase.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
         <artifactId>hbase-client</artifactId>
         <version>${hbase.version}</version>
-        <type>test-jar</type>
-        <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
@@ -687,117 +804,60 @@
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-http</artifactId>
+        <artifactId>hbase-mapreduce</artifactId>
         <version>${hbase.version}</version>
-        <type>test-jar</type>
-        <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-server</artifactId>
+        <artifactId>hbase-hadoop-compat</artifactId>
         <version>${hbase.version}</version>
-        <type>test-jar</type>
-        <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-hadoop-compat</artifactId>
+        <artifactId>hbase-hadoop2-compat</artifactId>
         <version>${hbase.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-mapreduce</artifactId>
+        <artifactId>hbase-zookeeper</artifactId>
         <version>${hbase.version}</version>
       </dependency>
+
+      <dependency>
+        <groupId>org.apache.hbase.thirdparty</groupId>
+        <artifactId>hbase-shaded-miscellaneous</artifactId>
+        <version>${hbase.thirdparty.version}</version>
+      </dependency>
+
+      <!-- HBase test dependencies -->
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-hadoop-compat</artifactId>
+        <artifactId>hbase-it</artifactId>
         <version>${hbase.version}</version>
         <type>test-jar</type>
         <scope>test</scope>
+        <exclusions>
+          <exclusion>
+            <groupId>org.jruby</groupId>
+            <artifactId>jruby-complete</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-hadoop2-compat</artifactId>
+        <artifactId>hbase-common</artifactId>
         <version>${hbase.version}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-hadoop2-compat</artifactId>
+        <artifactId>hbase-server</artifactId>
         <version>${hbase.version}</version>
         <type>test-jar</type>
         <scope>test</scope>
       </dependency>
 
-      <!-- Hadoop Dependencies -->
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-common</artifactId>
-        <version>${hadoop.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-annotations</artifactId>
-        <version>${hadoop.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-mapreduce-client-core</artifactId>
-        <version>${hadoop.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-minicluster</artifactId>
-        <version>${hadoop.version}</version>
-        <optional>true</optional>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-client-minicluster</artifactId>
-        <version>${hadoop.version}</version>
-        <scope>test</scope>
-      </dependency>
-
-      <!-- Required for mini-cluster since hbase built against old version of hadoop -->
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-auth</artifactId>
-        <version>${hadoop.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-mapreduce-client-common</artifactId>
-        <version>${hadoop.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
-        <version>${hadoop.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-client</artifactId>
-        <version>${hadoop.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-hdfs</artifactId>
-        <version>${hadoop.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-hdfs</artifactId>
-        <version>${hadoop.version}</version>
-        <type>test-jar</type> <!-- this does not work which is typical for maven.-->
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-minikdc</artifactId>
-        <version>${hadoop.version}</version>
-      </dependency>
-
       <!-- Transaction dependencies -->
       <!-- Tephra -->
       <dependency>
@@ -846,46 +906,10 @@
       </dependency>
       <dependency>
         <groupId>org.apache.tephra</groupId>
-        <artifactId>tephra-core</artifactId>
-        <type>test-jar</type>
-        <version>${tephra.version}</version>
-        <scope>test</scope>
-        <exclusions>
-          <exclusion>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-core</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpcore</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>it.unimi.dsi</groupId>
-            <artifactId>fastutil</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.apache.zookeeper</groupId>
-            <artifactId>zookeeper</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>io.dropwizard.metrics</groupId>
-            <artifactId>metrics-core</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.tephra</groupId>
         <artifactId>tephra-hbase-compat-2.0</artifactId>
         <version>${tephra.version}</version>
       </dependency>
+
       <!-- Omid -->
       <dependency>
         <groupId>org.apache.omid</groupId>
@@ -1098,8 +1122,45 @@
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
           </exclusion>
-       </exclusions>
-    </dependency>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.omid</groupId>
+        <artifactId>omid-transaction-client</artifactId>
+        <version>${omid.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.omid</groupId>
+        <artifactId>omid-commit-table</artifactId>
+        <version>${omid.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.omid</groupId>
+        <artifactId>omid-common</artifactId>
+        <version>${omid.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>commons-beanutils</groupId>
+            <artifactId>commons-beanutils</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
       <dependency>
         <groupId>org.apache.curator</groupId>
         <artifactId>curator-framework</artifactId>
@@ -1115,22 +1176,25 @@
         <artifactId>curator-recipes</artifactId>
         <version>${curator.version}</version>
       </dependency>
-      
-      <!-- Make sure we have all the antlr dependencies -->
+
+      <!-- Fix omid dependency scopes -->
       <dependency>
-        <groupId>org.antlr</groupId>
-        <artifactId>antlr-runtime</artifactId>
-        <version>${antlr.version}</version>
+        <groupId>org.apache.hbase</groupId>
+        <artifactId>hbase-testing-util</artifactId>
+        <version>${hbase.version}</version>
+        <scope>test</scope>
       </dependency>
+
+      <!-- Other dependencies -->
       <dependency>
-        <groupId>jline</groupId>
-        <artifactId>jline</artifactId>
-        <version>2.11</version>
+        <groupId>org.apache.zookeeper</groupId>
+        <artifactId>zookeeper</artifactId>
+        <version>${zookeeper.version}</version>
       </dependency>
       <dependency>
-        <groupId>sqlline</groupId>
-        <artifactId>sqlline</artifactId>
-        <version>${sqlline.version}</version>
+        <groupId>org.antlr</groupId>
+        <artifactId>antlr-runtime</artifactId>
+        <version>${antlr.version}</version>
       </dependency>
       <dependency>
         <groupId>net.sourceforge.argparse4j</groupId>
@@ -1143,6 +1207,27 @@
         <version>${guava.version}</version>
       </dependency>
       <dependency>
+        <groupId>com.google.code.gson</groupId>
+        <artifactId>gson</artifactId>
+        <version>${gson.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.jettison</groupId>
+        <artifactId>jettison</artifactId>
+        <version>${jettison.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>stax</groupId>
+            <artifactId>stax-api</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>com.google.inject</groupId>
+        <artifactId>guice</artifactId>
+        <version>${guice.version}</version>
+      </dependency>
+      <dependency>
         <groupId>com.github.stephenc.findbugs</groupId>
         <artifactId>findbugs-annotations</artifactId>
         <version>${findbugs-annotations.version}</version>
@@ -1153,6 +1238,11 @@
         <version>${jcip-annotations.version}</version>
       </dependency>
       <dependency>
+        <groupId>com.google.code.findbugs</groupId>
+        <artifactId>jsr305</artifactId>
+        <version>${jsr305.version}</version>
+      </dependency>
+      <dependency>
         <groupId>org.iq80.snappy</groupId>
         <artifactId>snappy</artifactId>
         <version>${snappy.version}</version>
@@ -1161,7 +1251,6 @@
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-core</artifactId>
         <version>${jackson.version}</version>
-        <scope>compile</scope>
       </dependency>
       <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
@@ -1174,64 +1263,16 @@
         <version>${jackson.version}</version>
       </dependency>
       <dependency>
-        <groupId>com.google.code.findbugs</groupId>
-        <artifactId>jsr305</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>${junit.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-all</artifactId>
-        <version>${mockito-all.version}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>com.github.stephenc.high-scale-lib</groupId>
-        <artifactId>high-scale-lib</artifactId>
-        <version>1.1.1</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>com.yammer.metrics</groupId>
-        <artifactId>metrics-core</artifactId>
-        <version>2.1.2</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
         <groupId>com.google.protobuf</groupId>
         <artifactId>protobuf-java</artifactId>
         <version>${protobuf-java.version}</version>
       </dependency>
       <dependency>
-        <groupId>log4j</groupId>
-        <artifactId>log4j</artifactId>
-        <version>${log4j.version}</version>
-      </dependency>
-      <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
         <version>${slf4j.version}</version>
       </dependency>
       <dependency>
-      <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-log4j12</artifactId>
-        <version>1.7.7</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-cli</groupId>
-        <artifactId>commons-cli</artifactId>
-        <version>${commons-cli.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-logging</groupId>
-        <artifactId>commons-logging</artifactId>
-        <version>${commons-logging.version}</version>
-      </dependency>
-      <dependency>
         <groupId>org.apache.htrace</groupId>
         <artifactId>htrace-core</artifactId>
         <version>${htrace.version}</version>
@@ -1257,6 +1298,21 @@
         <version>${commons-lang.version}</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-configuration2</artifactId>
+        <version>${commons-configuration2.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <version>${commons-io.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-cli</groupId>
+        <artifactId>commons-cli</artifactId>
+        <version>${commons-cli.version}</version>
+      </dependency>
+      <dependency>
         <groupId>joda-time</groupId>
         <artifactId>joda-time</artifactId>
         <version>${jodatime.version}</version>
@@ -1272,88 +1328,101 @@
         <version>${i18n-util.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-http</artifactId>
-        <version>${jetty.version}</version>
+        <groupId>com.lmax</groupId>
+        <artifactId>disruptor</artifactId>
+        <version>${disruptor.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-util</artifactId>
-        <version>${jetty.version}</version>
+        <groupId>org.jruby.joni</groupId>
+        <artifactId>joni</artifactId>
+        <version>${joni.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-security</artifactId>
-        <version>${jetty.version}</version>
+        <groupId>org.apache.twill</groupId>
+        <artifactId>twill-zookeeper</artifactId>
+        <version>${twill.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-server</artifactId>
-        <version>${jetty.version}</version>
+        <groupId>org.apache.twill</groupId>
+        <artifactId>twill-common</artifactId>
+        <version>${twill.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-servlet</artifactId>
-        <version>${jetty.version}</version>
+        <groupId>org.apache.twill</groupId>
+        <artifactId>twill-discovery-api</artifactId>
+        <version>${twill.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-webapp</artifactId>
-        <version>${jetty.version}</version>
+        <groupId>org.apache.twill</groupId>
+        <artifactId>twill-discovery-core</artifactId>
+        <version>${twill.version}</version>
       </dependency>
       <dependency>
-        <groupId>javax.servlet</groupId>
-        <artifactId>javax.servlet-api</artifactId>
-        <version>${servlet.api.version}</version>
+        <groupId>org.jruby.jcodings</groupId>
+        <artifactId>jcodings</artifactId>
+        <version>${jcodings.version}</version>
       </dependency>
       <dependency>
-        <groupId>com.lmax</groupId>
-        <artifactId>disruptor</artifactId>
-        <version>${disruptor.version}</version>
+        <groupId>org.apache.thrift</groupId>
+        <artifactId>libthrift</artifactId>
+        <version>${thrift.version}</version>
+        <exclusions>
+           <exclusion>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
+
+      <!-- Other test dependencies -->
       <dependency>
-        <groupId>org.jruby.joni</groupId>
-        <artifactId>joni</artifactId>
-        <version>${joni.version}</version>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>${junit.version}</version>
+        <scope>test</scope>
       </dependency>
-      <!-- Pherf dependencies -->
       <dependency>
-        <groupId>com.googlecode.java-diff-utils</groupId>
-        <artifactId>diffutils</artifactId>
-        <version>1.2.1</version>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+        <version>${mockito.version}</version>
+        <scope>test</scope>
       </dependency>
       <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-math3</artifactId>
-        <version>3.3</version>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>hamcrest-core</artifactId>
+        <version>${hamcrest.version}</version>
+        <scope>test</scope>
       </dependency>
-      <dependency>
-        <groupId>com.jcabi</groupId>
-        <artifactId>jcabi-jdbc</artifactId>
-        <version>0.15</version>
+
+       <!-- Runtime dependencies -->
+       <dependency>
+         <groupId>log4j</groupId>
+         <artifactId>log4j</artifactId>
+         <version>${log4j.version}</version>
+         <scope>runtime</scope>
       </dependency>
       <dependency>
-        <groupId>org.hamcrest</groupId>
-        <artifactId>hamcrest-junit</artifactId>
-        <version>1.0.0.0</version>
-        <scope>test</scope>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-log4j12</artifactId>
+        <version>${slf4j.version}</version>
+        <scope>runtime</scope>
       </dependency>
       <dependency>
-        <groupId>com.github.stefanbirkner</groupId>
-        <artifactId>system-rules</artifactId>
-        <version>1.8.0</version>
-       </dependency>
-       <dependency>
-         <groupId>jakarta.activation</groupId>
-         <artifactId>jakarta.activation-api</artifactId>
-         <version>1.2.1</version>
-       </dependency>
-       <dependency>
-         <groupId>org.glassfish.jaxb</groupId>
-         <artifactId>jaxb-runtime</artifactId>
-         <version>2.3.2</version>
-         <scope>test</scope>
-       </dependency>
+        <groupId>sqlline</groupId>
+        <artifactId>sqlline</artifactId>
+        <version>${sqlline.version}</version>
+        <scope>runtime</scope>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 
@@ -1392,6 +1461,8 @@
       </build>
     </profile>
     <!-- See BUILDING.md for profile selection-->
+    <!-- The dependencies should be defined only in phoenix-core
+    ,but maven doesn't seem to support that -->
     <profile>
       <id>phoenix-hbase-compat-2.2.1-default</id>
       <activation>
@@ -1399,12 +1470,6 @@
           <name>!hbase.profile</name>
         </property>
       </activation>
-      <dependencies>
-        <dependency>
-          <groupId>org.apache.phoenix</groupId>
-          <artifactId>phoenix-hbase-compat-2.2.1</artifactId>
-        </dependency>
-      </dependencies>
       <properties>
         <hbase.profile>2.2</hbase.profile>
         <hbase.compat.version>2.2.1</hbase.compat.version>
@@ -1419,12 +1484,6 @@
           <value>2.2</value>
         </property>
       </activation>
-      <dependencies>
-        <dependency>
-          <groupId>org.apache.phoenix</groupId>
-          <artifactId>phoenix-hbase-compat-2.2.1</artifactId>
-        </dependency>
-      </dependencies>
       <properties>
         <hbase.profile>2.2</hbase.profile>
         <hbase.compat.version>2.2.1</hbase.compat.version>
@@ -1441,12 +1500,6 @@
           <value>2.1</value>
         </property>
       </activation>
-      <dependencies>
-        <dependency>
-          <groupId>org.apache.phoenix</groupId>
-          <artifactId>phoenix-hbase-compat-2.1.6</artifactId>
-        </dependency>
-      </dependencies>
       <properties>
         <hbase.profile>2.1</hbase.profile>
         <hbase.compat.version>2.1.6</hbase.compat.version>
@@ -1463,12 +1516,6 @@
           <value>2.0</value>
         </property>
       </activation>
-      <dependencies>
-        <dependency>
-          <groupId>org.apache.phoenix</groupId>
-          <artifactId>phoenix-hbase-compat-2.0.1</artifactId>
-        </dependency>
-      </dependencies>
       <properties>
         <hbase.profile>2.0</hbase.profile>
         <hbase.compat.version>2.0.1</hbase.compat.version>