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-omid.git


The following commit(s) were added to refs/heads/master by this push:
     new 78a04cd  OMID-156 refactor Omid to use phoenix-shaded-guava
78a04cd is described below

commit 78a04cd4cdae4dbb43be6a2e12651e17ebca6d99
Author: Istvan Toth <[email protected]>
AuthorDate: Tue Jul 14 13:07:29 2020 +0200

    OMID-156 refactor Omid to use phoenix-shaded-guava
    
    includes the fixes for OMID-157
    - change travis to OpenJDK8 from Oracle JDK8
    - do not hardcode source directory name
    - update default network interface detection logic
    
    Closes #62
---
 .travis.yml                                        |  5 +++--
 benchmarks/pom.xml                                 |  6 +++---
 .../apache/omid/benchmarks/tso/RawTxRunner.java    |  4 ++--
 .../omid/benchmarks/tso/TSOServerBenchmark.java    |  2 +-
 .../omid/metrics/CodahaleMetricsProvider.java      |  6 +++---
 commit-table/pom.xml                               |  6 +++---
 .../org/apache/omid/committable/CommitTable.java   |  4 ++--
 .../omid/committable/InMemoryCommitTable.java      |  6 +++---
 .../apache/omid/committable/NullCommitTable.java   |  6 +++---
 common/pom.xml                                     |  5 +++++
 .../main/java/org/apache/omid/NetworkUtils.java    | 19 ++++++++++++-----
 .../src/main/java/org/apache/omid/YAMLUtils.java   |  4 ++--
 .../omid/examples/SnapshotIsolationExample.java    |  2 +-
 hbase-client/pom.xml                               |  5 +++++
 .../omid/transaction/HBaseAsyncPostCommitter.java  |  4 ++--
 .../org/apache/omid/transaction/HBaseCellId.java   |  4 ++--
 .../transaction/HBaseOmidClientConfiguration.java  |  2 +-
 .../omid/transaction/HBaseSyncPostCommitter.java   |  4 ++--
 .../omid/transaction/HBaseTransactionManager.java  |  8 ++++----
 .../omid/transaction/SnapshotFilterImpl.java       | 14 ++++++-------
 .../org/apache/omid/transaction/OmidTestBase.java  |  6 ++++--
 .../transaction/TestAsynchronousPostCommitter.java | 12 +++++------
 .../org/apache/omid/transaction/TestCellUtils.java |  2 +-
 .../apache/omid/transaction/TestCheckpoint.java    |  4 ++--
 .../omid/transaction/TestColumnIterator.java       |  2 +-
 .../transaction/TestEndToEndScenariosWithHA.java   | 17 +++++++++------
 .../org/apache/omid/transaction/TestFilters.java   |  4 ++--
 .../transaction/TestHBaseTransactionClient.java    |  6 +++---
 .../apache/omid/transaction/TestOmidLLRaces.java   |  3 ++-
 .../apache/omid/transaction/TestShadowCells.java   |  6 +++---
 .../org/apache/omid/transaction/TestTSOModule.java |  2 +-
 .../omid/transaction/TestTTableBehaviour.java      |  2 +-
 .../omid/transaction/TestTransactionCleanup.java   |  2 +-
 hbase-commit-table/pom.xml                         |  6 +++---
 .../omid/committable/hbase/HBaseCommitTable.java   |  8 ++++----
 .../committable/hbase/TestHBaseCommitTable.java    |  4 ++--
 .../omid/committable/hbase/RegionSplitter.java     |  2 +-
 .../java/org/apache/omid/transaction/CellInfo.java |  4 ++--
 .../org/apache/omid/transaction/CellUtils.java     | 17 +++++++--------
 .../apache/omid/transaction/CompactorScanner.java  |  8 ++++----
 .../org/apache/omid/transaction/OmidCompactor.java |  2 +-
 .../TransactionVisibilityFilterBase.java           |  2 +-
 .../apache/omid/transaction/TestCompaction.java    |  8 +++++---
 .../apache/omid/transaction/TestCompactionLL.java  |  8 +++++---
 .../omid/transaction/TestCompactorScanner.java     |  2 +-
 .../omid/transaction/TestSnapshotFilter.java       |  8 +++++---
 .../omid/transaction/TestSnapshotFilterLL.java     |  6 ++++--
 hbase-shims/pom.xml                                | 10 +++++++++
 metrics/pom.xml                                    |  6 +++---
 .../apache/omid/metrics/MetricsRegistryMap.java    |  2 +-
 pom.xml                                            |  5 +++--
 timestamp-storage/pom.xml                          |  6 +++---
 transaction-client/pom.xml                         |  6 +++---
 .../omid/transaction/AbstractTransaction.java      |  2 +-
 .../transaction/AbstractTransactionManager.java    | 12 +++++------
 .../omid/transaction/CommitTimestampLocator.java   |  2 +-
 .../apache/omid/transaction/PostCommitActions.java |  2 +-
 .../org/apache/omid/transaction/Transaction.java   |  2 +-
 .../omid/tso/client/ForwardingTSOFuture.java       |  2 +-
 .../org/apache/omid/tso/client/MockTSOClient.java  |  2 +-
 .../java/org/apache/omid/tso/client/TSOClient.java | 14 ++++++-------
 .../apache/omid/tso/client/TestMockTSOClient.java  |  2 +-
 tso-server/pom.xml                                 |  6 +++---
 .../apache/omid/tso/AbstractRequestProcessor.java  |  4 ++--
 .../src/main/java/org/apache/omid/tso/Batch.java   |  8 ++++----
 .../apache/omid/tso/HALeaseManagementModule.java   |  2 +-
 .../java/org/apache/omid/tso/LeaseManager.java     | 14 +++++++------
 .../apache/omid/tso/LowWatermarkWriterImpl.java    |  2 +-
 .../org/apache/omid/tso/MonitoringContextImpl.java |  9 ++++----
 .../org/apache/omid/tso/NetworkInterfaceUtils.java |  2 +-
 .../java/org/apache/omid/tso/PersistEvent.java     |  6 +++---
 .../org/apache/omid/tso/PersistenceProcessor.java  |  2 +-
 .../omid/tso/PersistenceProcessorHandler.java      |  6 +++---
 .../apache/omid/tso/PersistenceProcessorImpl.java  | 10 ++++-----
 .../omid/tso/PersitenceProcessorNullImpl.java      |  2 +-
 .../java/org/apache/omid/tso/ReplyProcessor.java   |  2 +-
 .../org/apache/omid/tso/ReplyProcessorImpl.java    |  6 +++---
 .../apache/omid/tso/RequestProcessorPersistCT.java |  2 +-
 .../apache/omid/tso/RequestProcessorSkipCT.java    |  2 +-
 .../org/apache/omid/tso/RetryProcessorImpl.java    |  4 ++--
 .../org/apache/omid/tso/TSOChannelHandler.java     |  4 ++--
 .../main/java/org/apache/omid/tso/TSOModule.java   |  2 +-
 .../main/java/org/apache/omid/tso/TSOServer.java   |  8 +++++---
 .../java/org/apache/omid/tso/TSOServerConfig.java  |  2 +-
 .../org/apache/omid/tso/TSOStateManagerImpl.java   |  2 +-
 .../org/apache/omid/tso/TimestampOracleImpl.java   |  4 ++--
 .../java/org/apache/omid/tso/TsoServerDaemon.java  |  6 ++++--
 .../org/apache/omid/tso/WorldClockOracleImpl.java  |  4 ++--
 .../org/apache/omid/tso/ProgrammableTSOServer.java |  2 +-
 .../java/org/apache/omid/tso/TSOMockModule.java    |  2 +-
 .../test/java/org/apache/omid/tso/TestBatch.java   |  2 +-
 .../java/org/apache/omid/tso/TestLeaseManager.java |  2 +-
 .../java/org/apache/omid/tso/TestPanicker.java     |  2 +-
 .../apache/omid/tso/TestPersistenceProcessor.java  |  2 +-
 .../omid/tso/TestPersistenceProcessorHandler.java  |  2 +-
 .../org/apache/omid/tso/TestReplyProcessor.java    |  4 ++--
 .../org/apache/omid/tso/TestRequestProcessor.java  |  6 +++---
 .../org/apache/omid/tso/TestRetryProcessor.java    |  2 +-
 .../omid/tso/TestTSOChannelHandlerNetty.java       |  2 +-
 .../test/java/org/apache/omid/tso/TestTSOLL.java   | 10 +++++----
 .../org/apache/omid/tso/client/TSOClientRaw.java   |  4 ++--
 ...grationOfTSOClientServerBasicFunctionality.java | 12 ++++++-----
 .../tso/client/TestTSOClientConnectionToTSO.java   | 24 ++++++++++++++--------
 .../TestTSOClientRequestAndResponseBehaviours.java |  8 +++++---
 .../TestTSOClientRowAndCellLevelConflict.java      |  8 +++++---
 105 files changed, 314 insertions(+), 245 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 0c4d4d6..dbfc9e3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,7 +8,7 @@ notifications:
   on_failure: always
 
 jdk:
-  - oraclejdk8
+  - openjdk8
 
 branches:
   only:
@@ -27,12 +27,13 @@ before_script:
   - umask 022
   - git config --global user.email "[email protected]"
   - git config --global user.name "Omid CI"
+  - REPO_DIR=$(pwd)
   # Install protobuf to genearte TSO client-server protocol in each compilation
   - cd ..
   - wget 
https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
   - tar -xzvf protobuf-2.5.0.tar.gz
   - cd protobuf-2.5.0 && ./configure --prefix=/usr && make && sudo make install
-  - cd ../incubator-omid
+  - cd $REPO_DIR
 
 script:
   - if [ "${TRAVIS_PULL_REQUEST}" = "false" ] ; then
diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml
index e6a9bb3..7156fae 100644
--- a/benchmarks/pom.xml
+++ b/benchmarks/pom.xml
@@ -70,9 +70,9 @@
         </dependency>
 
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>${guava.version}</version>
+            <groupId>org.apache.phoenix.thirdparty</groupId>
+            <artifactId>phoenix-shaded-guava</artifactId>
+            <version>${phoenix.thirdparty.version}</version>
         </dependency>
 
         <!-- end utils -->
diff --git 
a/benchmarks/src/main/java/org/apache/omid/benchmarks/tso/RawTxRunner.java 
b/benchmarks/src/main/java/org/apache/omid/benchmarks/tso/RawTxRunner.java
index 27ac437..09d02c8 100644
--- a/benchmarks/src/main/java/org/apache/omid/benchmarks/tso/RawTxRunner.java
+++ b/benchmarks/src/main/java/org/apache/omid/benchmarks/tso/RawTxRunner.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.benchmarks.tso;
 
-import com.google.common.util.concurrent.RateLimiter;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.RateLimiter;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.google.inject.Binder;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
diff --git 
a/benchmarks/src/main/java/org/apache/omid/benchmarks/tso/TSOServerBenchmark.java
 
b/benchmarks/src/main/java/org/apache/omid/benchmarks/tso/TSOServerBenchmark.java
index 4b8c3b2..630cb73 100644
--- 
a/benchmarks/src/main/java/org/apache/omid/benchmarks/tso/TSOServerBenchmark.java
+++ 
b/benchmarks/src/main/java/org/apache/omid/benchmarks/tso/TSOServerBenchmark.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.benchmarks.tso;
 
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/codahale-metrics/src/main/java/org/apache/omid/metrics/CodahaleMetricsProvider.java
 
b/codahale-metrics/src/main/java/org/apache/omid/metrics/CodahaleMetricsProvider.java
index 576a053..9401ded 100644
--- 
a/codahale-metrics/src/main/java/org/apache/omid/metrics/CodahaleMetricsProvider.java
+++ 
b/codahale-metrics/src/main/java/org/apache/omid/metrics/CodahaleMetricsProvider.java
@@ -26,8 +26,8 @@ import com.codahale.metrics.Slf4jReporter;
 import com.codahale.metrics.Timer.Context;
 import com.codahale.metrics.graphite.Graphite;
 import com.codahale.metrics.graphite.GraphiteReporter;
-import com.google.common.base.Strings;
-import com.google.common.net.HostAndPort;
+import org.apache.phoenix.thirdparty.com.google.common.base.Strings;
+import org.apache.phoenix.thirdparty.com.google.common.net.HostAndPort;
 import org.apache.commons.io.FileUtils;
 import org.apache.omid.metrics.CodahaleMetricsConfig.Reporter;
 import org.slf4j.Logger;
@@ -141,7 +141,7 @@ public class CodahaleMetricsProvider implements 
MetricsProvider, MetricsRegistry
         HostAndPort addr = HostAndPort.fromString(graphiteHost);
 
         final Graphite graphite = new Graphite(
-                new InetSocketAddress(addr.getHostText(), addr.getPort()));
+                new InetSocketAddress(addr.getHost(), addr.getPort()));
 
         return GraphiteReporter.forRegistry(metrics)
                 .prefixedWith(prefix)
diff --git a/commit-table/pom.xml b/commit-table/pom.xml
index 5b77df0..4baffbf 100644
--- a/commit-table/pom.xml
+++ b/commit-table/pom.xml
@@ -31,9 +31,9 @@
         <!-- utils -->
 
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>${guava.version}</version>
+            <groupId>org.apache.phoenix.thirdparty</groupId>
+            <artifactId>phoenix-shaded-guava</artifactId>
+            <version>${phoenix.thirdparty.version}</version>
         </dependency>
 
         <!-- end utils -->
diff --git 
a/commit-table/src/main/java/org/apache/omid/committable/CommitTable.java 
b/commit-table/src/main/java/org/apache/omid/committable/CommitTable.java
index bde7485..51ccc9b 100644
--- a/commit-table/src/main/java/org/apache/omid/committable/CommitTable.java
+++ b/commit-table/src/main/java/org/apache/omid/committable/CommitTable.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.committable;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ListenableFuture;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
 
 import java.io.IOException;
 
diff --git 
a/commit-table/src/main/java/org/apache/omid/committable/InMemoryCommitTable.java
 
b/commit-table/src/main/java/org/apache/omid/committable/InMemoryCommitTable.java
index ab699f7..a39c43f 100644
--- 
a/commit-table/src/main/java/org/apache/omid/committable/InMemoryCommitTable.java
+++ 
b/commit-table/src/main/java/org/apache/omid/committable/InMemoryCommitTable.java
@@ -17,9 +17,9 @@
  */
 package org.apache.omid.committable;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 import org.apache.omid.committable.CommitTable.CommitTimestamp.Location;
 
 import java.io.IOException;
diff --git 
a/commit-table/src/main/java/org/apache/omid/committable/NullCommitTable.java 
b/commit-table/src/main/java/org/apache/omid/committable/NullCommitTable.java
index 70e45da..e1ae21c 100644
--- 
a/commit-table/src/main/java/org/apache/omid/committable/NullCommitTable.java
+++ 
b/commit-table/src/main/java/org/apache/omid/committable/NullCommitTable.java
@@ -17,9 +17,9 @@
  */
 package org.apache.omid.committable;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 
 import java.io.IOException;
 
diff --git a/common/pom.xml b/common/pom.xml
index 100a79e..bfef674 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -58,6 +58,11 @@
         <!-- utils -->
 
         <dependency>
+            <groupId>org.apache.phoenix.thirdparty</groupId>
+            <artifactId>phoenix-shaded-guava</artifactId>
+            <version>${phoenix.thirdparty.version}</version>
+        </dependency>
+        <dependency>
             <groupId>org.yaml</groupId>
             <artifactId>snakeyaml</artifactId>
             <version>${snakeyaml.version}</version>
diff --git a/common/src/main/java/org/apache/omid/NetworkUtils.java 
b/common/src/main/java/org/apache/omid/NetworkUtils.java
index 5d7bce2..d6e1920 100644
--- a/common/src/main/java/org/apache/omid/NetworkUtils.java
+++ b/common/src/main/java/org/apache/omid/NetworkUtils.java
@@ -17,14 +17,16 @@
  */
 package org.apache.omid;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import java.net.DatagramSocket;
+import java.net.InetAddress;
 import java.net.NetworkInterface;
 import java.net.SocketException;
 import java.util.Collections;
 import java.util.Enumeration;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 public class NetworkUtils {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(NetworkUtils.class);
@@ -34,6 +36,14 @@ public class NetworkUtils {
 
     public static String getDefaultNetworkInterface() {
 
+        try (DatagramSocket s=new DatagramSocket()) {
+            s.connect(InetAddress.getByAddress(new byte[]{1,1,1,1}), 0);
+            return 
NetworkInterface.getByInetAddress(s.getLocalAddress()).getName();
+        } catch (Exception e) {
+            //fall through
+        }
+
+        //Fall back to old logic
         try {
             Enumeration<NetworkInterface> networkInterfaces = 
NetworkInterface.getNetworkInterfaces();
             String fallBackName = null;
@@ -56,9 +66,8 @@ public class NetworkUtils {
         } catch (SocketException ignored) {
             throw new RuntimeException("Failed to find any network 
interfaces", ignored);
         }
+
         throw new IllegalArgumentException(String.format("No network 
'%s*'/'%s*' interfaces found",
                                                          
MAC_TSO_NET_IFACE_PREFIX, LINUX_TSO_NET_IFACE_PREFIX));
-
     }
-
 }
diff --git a/common/src/main/java/org/apache/omid/YAMLUtils.java 
b/common/src/main/java/org/apache/omid/YAMLUtils.java
index 7518e3f..7d0522b 100644
--- a/common/src/main/java/org/apache/omid/YAMLUtils.java
+++ b/common/src/main/java/org/apache/omid/YAMLUtils.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid;
 
-import com.google.common.base.Preconditions;
-import com.google.common.io.Resources;
+import org.apache.phoenix.thirdparty.com.google.common.base.Preconditions;
+import org.apache.phoenix.thirdparty.com.google.common.io.Resources;
 import org.apache.commons.beanutils.BeanUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/examples/src/main/java/org/apache/omid/examples/SnapshotIsolationExample.java 
b/examples/src/main/java/org/apache/omid/examples/SnapshotIsolationExample.java
index 2b5ed84..ffa3529 100644
--- 
a/examples/src/main/java/org/apache/omid/examples/SnapshotIsolationExample.java
+++ 
b/examples/src/main/java/org/apache/omid/examples/SnapshotIsolationExample.java
@@ -34,7 +34,7 @@ import org.apache.omid.transaction.TransactionManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Preconditions;
+import org.apache.phoenix.thirdparty.com.google.common.base.Preconditions;
 
 /**
  * 
****************************************************************************************************************
diff --git a/hbase-client/pom.xml b/hbase-client/pom.xml
index d30ed77..14f89fd 100644
--- a/hbase-client/pom.xml
+++ b/hbase-client/pom.xml
@@ -33,6 +33,11 @@
 
         <dependency>
             <groupId>org.apache.omid</groupId>
+            <artifactId>omid-common</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.omid</groupId>
             <artifactId>omid-transaction-client</artifactId>
             <version>${project.version}</version>
         </dependency>
diff --git 
a/hbase-client/src/main/java/org/apache/omid/transaction/HBaseAsyncPostCommitter.java
 
b/hbase-client/src/main/java/org/apache/omid/transaction/HBaseAsyncPostCommitter.java
index de187db..99c438a 100644
--- 
a/hbase-client/src/main/java/org/apache/omid/transaction/HBaseAsyncPostCommitter.java
+++ 
b/hbase-client/src/main/java/org/apache/omid/transaction/HBaseAsyncPostCommitter.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListeningExecutorService;
 import org.apache.omid.tso.client.CellId;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/hbase-client/src/main/java/org/apache/omid/transaction/HBaseCellId.java 
b/hbase-client/src/main/java/org/apache/omid/transaction/HBaseCellId.java
index a70cfef..7c21bc8 100644
--- a/hbase-client/src/main/java/org/apache/omid/transaction/HBaseCellId.java
+++ b/hbase-client/src/main/java/org/apache/omid/transaction/HBaseCellId.java
@@ -21,8 +21,8 @@ import static com.google.common.base.Charsets.UTF_8;
 
 import org.apache.omid.tso.client.CellId;
 
-import com.google.common.hash.Hasher;
-import com.google.common.hash.Hashing;
+import org.apache.phoenix.thirdparty.com.google.common.hash.Hasher;
+import org.apache.phoenix.thirdparty.com.google.common.hash.Hashing;
 
 public class HBaseCellId implements CellId {
 
diff --git 
a/hbase-client/src/main/java/org/apache/omid/transaction/HBaseOmidClientConfiguration.java
 
b/hbase-client/src/main/java/org/apache/omid/transaction/HBaseOmidClientConfiguration.java
index 2800fb6..b526267 100644
--- 
a/hbase-client/src/main/java/org/apache/omid/transaction/HBaseOmidClientConfiguration.java
+++ 
b/hbase-client/src/main/java/org/apache/omid/transaction/HBaseOmidClientConfiguration.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.annotations.VisibleForTesting;
+import 
org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
 import org.apache.commons.beanutils.BeanUtils;
diff --git 
a/hbase-client/src/main/java/org/apache/omid/transaction/HBaseSyncPostCommitter.java
 
b/hbase-client/src/main/java/org/apache/omid/transaction/HBaseSyncPostCommitter.java
index 6e2f9ed..f818519 100644
--- 
a/hbase-client/src/main/java/org/apache/omid/transaction/HBaseSyncPostCommitter.java
+++ 
b/hbase-client/src/main/java/org/apache/omid/transaction/HBaseSyncPostCommitter.java
@@ -40,8 +40,8 @@ import org.apache.omid.tso.client.CellId;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 
 public class HBaseSyncPostCommitter implements PostCommitActions {
 
diff --git 
a/hbase-client/src/main/java/org/apache/omid/transaction/HBaseTransactionManager.java
 
b/hbase-client/src/main/java/org/apache/omid/transaction/HBaseTransactionManager.java
index 5620be3..ffc3850 100644
--- 
a/hbase-client/src/main/java/org/apache/omid/transaction/HBaseTransactionManager.java
+++ 
b/hbase-client/src/main/java/org/apache/omid/transaction/HBaseTransactionManager.java
@@ -39,10 +39,10 @@ import org.apache.omid.tso.client.TSOProtocol;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.common.util.concurrent.MoreExecutors;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListeningExecutorService;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.MoreExecutors;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 
 public class HBaseTransactionManager extends AbstractTransactionManager 
implements HBaseTransactionClient {
 
diff --git 
a/hbase-client/src/main/java/org/apache/omid/transaction/SnapshotFilterImpl.java
 
b/hbase-client/src/main/java/org/apache/omid/transaction/SnapshotFilterImpl.java
index 24b6aab..6d99e7a 100644
--- 
a/hbase-client/src/main/java/org/apache/omid/transaction/SnapshotFilterImpl.java
+++ 
b/hbase-client/src/main/java/org/apache/omid/transaction/SnapshotFilterImpl.java
@@ -49,13 +49,13 @@ import 
org.apache.omid.transaction.HBaseTransactionManager.CommitTimestampLocato
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Multimaps;
+import org.apache.phoenix.thirdparty.com.google.common.base.Function;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Predicate;
+import org.apache.phoenix.thirdparty.com.google.common.collect.ImmutableList;
+import org.apache.phoenix.thirdparty.com.google.common.collect.Iterables;
+import org.apache.phoenix.thirdparty.com.google.common.collect.Maps;
+import org.apache.phoenix.thirdparty.com.google.common.collect.Multimaps;
 
 public class SnapshotFilterImpl implements SnapshotFilter {
 
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/OmidTestBase.java 
b/hbase-client/src/test/java/org/apache/omid/transaction/OmidTestBase.java
index 0e7969d..71b1961 100644
--- a/hbase-client/src/test/java/org/apache/omid/transaction/OmidTestBase.java
+++ b/hbase-client/src/test/java/org/apache/omid/transaction/OmidTestBase.java
@@ -95,7 +95,8 @@ public abstract class OmidTestBase {
         TSOServer tso = injector.getInstance(TSOServer.class);
         hBaseCommitTableConfig = 
injector.getInstance(HBaseCommitTableConfig.class);
         HBaseTimestampStorageConfig hBaseTimestampStorageConfig = 
injector.getInstance(HBaseTimestampStorageConfig.class);
-        tso.startAndWait();
+        tso.startAsync();
+        tso.awaitRunning();
         TestUtils.waitForSocketListening("localhost", 1234, 100);
         LOG.info("Finished loading TSO");
         context.setAttribute("tso", tso);
@@ -212,7 +213,8 @@ public abstract class OmidTestBase {
         }
 
         getClient(context).close().get();
-        getTSO(context).stopAndWait();
+        getTSO(context).stopAsync();
+        getTSO(context).awaitTerminated();
         TestUtils.waitForSocketNotListening("localhost", 1234, 1000);
     }
 
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestAsynchronousPostCommitter.java
 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestAsynchronousPostCommitter.java
index e2c9933..9a98b84 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestAsynchronousPostCommitter.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestAsynchronousPostCommitter.java
@@ -43,12 +43,12 @@ import org.slf4j.LoggerFactory;
 import org.testng.ITestContext;
 import org.testng.annotations.Test;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.common.util.concurrent.MoreExecutors;
-import com.google.common.util.concurrent.SettableFuture;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListeningExecutorService;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.MoreExecutors;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 
 @Test(groups = "sharedHBase")
 public class TestAsynchronousPostCommitter extends OmidTestBase {
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestCellUtils.java 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestCellUtils.java
index cbf53d0..f2100fa 100644
--- a/hbase-client/src/test/java/org/apache/omid/transaction/TestCellUtils.java
+++ b/hbase-client/src/test/java/org/apache/omid/transaction/TestCellUtils.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.KeyValue.Type;
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestCheckpoint.java 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestCheckpoint.java
index c639ab6..972f556 100644
--- a/hbase-client/src/test/java/org/apache/omid/transaction/TestCheckpoint.java
+++ b/hbase-client/src/test/java/org/apache/omid/transaction/TestCheckpoint.java
@@ -30,8 +30,8 @@ import java.util.List;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicLong;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ListenableFuture;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.TableName;
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestColumnIterator.java
 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestColumnIterator.java
index f7281cd..b809988 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestColumnIterator.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestColumnIterator.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.collect.ImmutableList;
+import org.apache.phoenix.thirdparty.com.google.common.collect.ImmutableList;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.KeyValue;
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestEndToEndScenariosWithHA.java
 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestEndToEndScenariosWithHA.java
index 95d7fcc..e3e4dc0 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestEndToEndScenariosWithHA.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestEndToEndScenariosWithHA.java
@@ -52,7 +52,7 @@ import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import com.google.common.base.Charsets;
+import org.apache.phoenix.thirdparty.com.google.common.base.Charsets;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 
@@ -122,7 +122,8 @@ public class TestEndToEndScenariosWithHA extends 
OmidTestBase {
         LOG.info("===================== Starting TSO 1 =====================");
         tso1 = injector1.getInstance(TSOServer.class);
         leaseManager1 = (PausableLeaseManager) 
injector1.getInstance(LeaseManagement.class);
-        tso1.startAndWait();
+        tso1.startAsync();
+        tso1.awaitRunning();
         TestUtils.waitForSocketListening("localhost", TSO1_PORT, 100);
         LOG.info("================ Finished loading TSO 1 ==================");
 
@@ -135,7 +136,8 @@ public class TestEndToEndScenariosWithHA extends 
OmidTestBase {
         LOG.info("===================== Starting TSO 2 =====================");
         tso2 = injector2.getInstance(TSOServer.class);
         injector2.getInstance(LeaseManagement.class);
-        tso2.startAndWait();
+        tso2.startAsync();
+        tso2.awaitRunning();
         // Don't do this here: TestUtils.waitForSocketListening("localhost", 
4321, 100);
         LOG.info("================ Finished loading TSO 2 ==================");
 
@@ -165,9 +167,11 @@ public class TestEndToEndScenariosWithHA extends 
OmidTestBase {
         
hBaseUtils.createTable(TableName.valueOf((DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME)),
                                new 
byte[][]{DEFAULT_TIMESTAMP_STORAGE_CF_NAME.getBytes()},
                                Integer.MAX_VALUE);
-        tso1.stopAndWait();
+        tso1.stopAsync();
+        tso1.awaitTerminated();
         TestUtils.waitForSocketNotListening("localhost", TSO1_PORT, 100);
-        tso2.stopAndWait();
+        tso2.stopAsync();
+        tso2.awaitTerminated();
         TestUtils.waitForSocketNotListening("localhost", TSO2_PORT, 100);
 
         zkClient.delete().forPath(TSO_LEASE_PATH);
@@ -319,7 +323,8 @@ public class TestEndToEndScenariosWithHA extends 
OmidTestBase {
             LOG.info("++++++++++++++++++++ KILLING TSO 1 +++++++++++++++++++");
             LOG.info("++++++++++++++++++++++++++++++++++++++++++++++++++++++");
             LOG.info("++++++++++++++++++++++++++++++++++++++++++++++++++++++");
-            tso1.stopAndWait();
+            tso1.stopAsync();
+            tso1.awaitTerminated();
             TestUtils.waitForSocketNotListening("localhost", TSO1_PORT, 100);
 
             // Try to commit, but it should abort due to the change in 
mastership
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestFilters.java 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestFilters.java
index d375084..efe33b3 100644
--- a/hbase-client/src/test/java/org/apache/omid/transaction/TestFilters.java
+++ b/hbase-client/src/test/java/org/apache/omid/transaction/TestFilters.java
@@ -41,8 +41,8 @@ import org.mockito.stubbing.Answer;
 import org.testng.ITestContext;
 import org.testng.annotations.Test;
 
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 
 /**
  * Tests to verify that Get and Scan filters still work with transactions 
tables
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestHBaseTransactionClient.java
 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestHBaseTransactionClient.java
index f2cae5a..7430a1f 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestHBaseTransactionClient.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestHBaseTransactionClient.java
@@ -42,9 +42,9 @@ import 
org.apache.omid.transaction.HBaseTransactionManager.CommitTimestampLocato
 import org.testng.ITestContext;
 import org.testng.annotations.Test;
 
-import com.google.common.base.Optional;
-import com.google.common.collect.Maps;
-import com.google.common.util.concurrent.SettableFuture;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.collect.Maps;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 
 @Test(groups = "sharedHBase")
 public class TestHBaseTransactionClient extends OmidTestBase {
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestOmidLLRaces.java 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestOmidLLRaces.java
index 213615d..e680f99 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestOmidLLRaces.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestOmidLLRaces.java
@@ -103,7 +103,8 @@ public class TestOmidLLRaces {
         LOG.info("Starting TSO");
         TSOServer tso = injector.getInstance(TSOServer.class);
         HBaseTimestampStorageConfig hBaseTimestampStorageConfig = 
injector.getInstance(HBaseTimestampStorageConfig.class);
-        tso.startAndWait();
+        tso.startAsync();
+        tso.awaitRunning();
         TestUtils.waitForSocketListening("localhost", 1234, 100);
         LOG.info("Finished loading TSO");
 
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestShadowCells.java 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestShadowCells.java
index e7712e3..14a2e02 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestShadowCells.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestShadowCells.java
@@ -61,9 +61,9 @@ import org.slf4j.LoggerFactory;
 import org.testng.ITestContext;
 import org.testng.annotations.Test;
 
-import com.google.common.base.Charsets;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ListenableFuture;
+import org.apache.phoenix.thirdparty.com.google.common.base.Charsets;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
 
 @Test(groups = "sharedHBase")
 public class TestShadowCells extends OmidTestBase {
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestTSOModule.java 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestTSOModule.java
index 5f52644..98e29e1 100644
--- a/hbase-client/src/test/java/org/apache/omid/transaction/TestTSOModule.java
+++ b/hbase-client/src/test/java/org/apache/omid/transaction/TestTSOModule.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.base.Preconditions;
+import org.apache.phoenix.thirdparty.com.google.common.base.Preconditions;
 import com.google.inject.AbstractModule;
 import com.google.inject.Provider;
 import com.google.inject.Provides;
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestTTableBehaviour.java
 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestTTableBehaviour.java
index 9c217b4..36fb3b5 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestTTableBehaviour.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestTTableBehaviour.java
@@ -28,7 +28,7 @@ import org.apache.hadoop.hbase.util.Bytes;
 import org.mockito.Mockito;
 import org.testng.annotations.Test;
 
-import com.google.common.base.Charsets;
+import org.apache.phoenix.thirdparty.com.google.common.base.Charsets;
 
 @Test(groups = "noHBase")
 public class TestTTableBehaviour {
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestTransactionCleanup.java
 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestTransactionCleanup.java
index acc74af..f743857 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestTransactionCleanup.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestTransactionCleanup.java
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
 import org.testng.ITestContext;
 import org.testng.annotations.Test;
 
-import com.google.common.util.concurrent.SettableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 
 @Test(groups = "sharedHBase")
 public class TestTransactionCleanup extends OmidTestBase {
diff --git a/hbase-commit-table/pom.xml b/hbase-commit-table/pom.xml
index c0b924d..80a0ba5 100644
--- a/hbase-commit-table/pom.xml
+++ b/hbase-commit-table/pom.xml
@@ -67,9 +67,9 @@
         <!-- utils -->
 
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>${guava.version}</version>
+            <groupId>org.apache.phoenix.thirdparty</groupId>
+            <artifactId>phoenix-shaded-guava</artifactId>
+            <version>${phoenix.thirdparty.version}</version>
         </dependency>
         <dependency>
             <groupId>com.google.inject</groupId>
diff --git 
a/hbase-commit-table/src/main/java/org/apache/omid/committable/hbase/HBaseCommitTable.java
 
b/hbase-commit-table/src/main/java/org/apache/omid/committable/hbase/HBaseCommitTable.java
index e6b773b..c096ea4 100644
--- 
a/hbase-commit-table/src/main/java/org/apache/omid/committable/hbase/HBaseCommitTable.java
+++ 
b/hbase-commit-table/src/main/java/org/apache/omid/committable/hbase/HBaseCommitTable.java
@@ -43,10 +43,10 @@ import 
org.apache.omid.committable.CommitTable.CommitTimestamp.Location;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.AbstractFuture;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 import com.google.protobuf.CodedInputStream;
 import com.google.protobuf.CodedOutputStream;
 
diff --git 
a/hbase-commit-table/src/test/java/org/apache/omid/committable/hbase/TestHBaseCommitTable.java
 
b/hbase-commit-table/src/test/java/org/apache/omid/committable/hbase/TestHBaseCommitTable.java
index ae19a32..35d40db 100644
--- 
a/hbase-commit-table/src/test/java/org/apache/omid/committable/hbase/TestHBaseCommitTable.java
+++ 
b/hbase-commit-table/src/test/java/org/apache/omid/committable/hbase/TestHBaseCommitTable.java
@@ -48,8 +48,8 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ListenableFuture;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
 
 public class TestHBaseCommitTable {
 
diff --git 
a/hbase-common/src/main/java/org/apache/omid/committable/hbase/RegionSplitter.java
 
b/hbase-common/src/main/java/org/apache/omid/committable/hbase/RegionSplitter.java
index e1654ae..0b28552 100644
--- 
a/hbase-common/src/main/java/org/apache/omid/committable/hbase/RegionSplitter.java
+++ 
b/hbase-common/src/main/java/org/apache/omid/committable/hbase/RegionSplitter.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.committable.hbase;
 
-import com.google.common.base.Preconditions;
+import org.apache.phoenix.thirdparty.com.google.common.base.Preconditions;
 
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.hadoop.conf.Configuration;
diff --git 
a/hbase-common/src/main/java/org/apache/omid/transaction/CellInfo.java 
b/hbase-common/src/main/java/org/apache/omid/transaction/CellInfo.java
index 7650f1a..692b540 100644
--- a/hbase-common/src/main/java/org/apache/omid/transaction/CellInfo.java
+++ b/hbase-common/src/main/java/org/apache/omid/transaction/CellInfo.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.base.Objects;
+import org.apache.phoenix.thirdparty.com.google.common.base.MoreObjects;
 import org.apache.hadoop.hbase.Cell;
 
 public class CellInfo {
@@ -49,7 +49,7 @@ public class CellInfo {
 
     @Override
     public String toString() {
-        return Objects.toStringHelper(this)
+        return MoreObjects.toStringHelper(this)
                 .add("ts", timestamp)
                 .add("cell", cell)
                 .add("shadow cell", shadowCell)
diff --git 
a/hbase-common/src/main/java/org/apache/omid/transaction/CellUtils.java 
b/hbase-common/src/main/java/org/apache/omid/transaction/CellUtils.java
index c5a291e..e86c28f 100644
--- a/hbase-common/src/main/java/org/apache/omid/transaction/CellUtils.java
+++ b/hbase-common/src/main/java/org/apache/omid/transaction/CellUtils.java
@@ -36,13 +36,14 @@ import org.apache.omid.HBaseShims;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Charsets;
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.hash.Hasher;
-import com.google.common.hash.Hashing;
+import org.apache.phoenix.thirdparty.com.google.common.base.Charsets;
+import org.apache.phoenix.thirdparty.com.google.common.base.MoreObjects;
+import org.apache.phoenix.thirdparty.com.google.common.base.Objects;
+import 
org.apache.phoenix.thirdparty.com.google.common.base.MoreObjects.ToStringHelper;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Preconditions;
+import org.apache.phoenix.thirdparty.com.google.common.hash.Hasher;
+import org.apache.phoenix.thirdparty.com.google.common.hash.Hashing;
 
 @SuppressWarnings("all")
 public final class CellUtils {
@@ -465,7 +466,7 @@ public final class CellUtils {
 
         @Override
         public String toString() {
-            ToStringHelper helper = Objects.toStringHelper(this);
+            ToStringHelper helper = MoreObjects.toStringHelper(this);
             helper.add("row", Bytes.toStringBinary(cell.getRowArray(), 
cell.getRowOffset(), cell.getRowLength()));
             helper.add("family", Bytes.toString(cell.getFamilyArray(), 
cell.getFamilyOffset(), cell.getFamilyLength()));
             helper.add("is shadow cell?", isShadowCell);
diff --git 
a/hbase-coprocessor/src/main/java/org/apache/omid/transaction/CompactorScanner.java
 
b/hbase-coprocessor/src/main/java/org/apache/omid/transaction/CompactorScanner.java
index df30586..24932ff 100644
--- 
a/hbase-coprocessor/src/main/java/org/apache/omid/transaction/CompactorScanner.java
+++ 
b/hbase-coprocessor/src/main/java/org/apache/omid/transaction/CompactorScanner.java
@@ -17,10 +17,10 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
-import com.google.common.collect.Iterators;
-import com.google.common.collect.PeekingIterator;
+import 
org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.collect.Iterators;
+import org.apache.phoenix.thirdparty.com.google.common.collect.PeekingIterator;
 import org.apache.commons.collections4.map.LRUMap;
 import org.apache.omid.HBaseShims;
 import org.apache.omid.committable.CommitTable;
diff --git 
a/hbase-coprocessor/src/main/java/org/apache/omid/transaction/OmidCompactor.java
 
b/hbase-coprocessor/src/main/java/org/apache/omid/transaction/OmidCompactor.java
index 57f82b0..b5d164d 100644
--- 
a/hbase-coprocessor/src/main/java/org/apache/omid/transaction/OmidCompactor.java
+++ 
b/hbase-coprocessor/src/main/java/org/apache/omid/transaction/OmidCompactor.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.annotations.VisibleForTesting;
+import 
org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
 
 
 import org.apache.hadoop.hbase.client.Connection;
diff --git 
a/hbase-coprocessor/src/main/java/org/apache/omid/transaction/TransactionVisibilityFilterBase.java
 
b/hbase-coprocessor/src/main/java/org/apache/omid/transaction/TransactionVisibilityFilterBase.java
index 06e10f7..a8fe3b2 100644
--- 
a/hbase-coprocessor/src/main/java/org/apache/omid/transaction/TransactionVisibilityFilterBase.java
+++ 
b/hbase-coprocessor/src/main/java/org/apache/omid/transaction/TransactionVisibilityFilterBase.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 
 
 import org.apache.commons.collections4.map.LRUMap;
diff --git 
a/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompaction.java
 
b/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompaction.java
index 6e9c93b..a03a581 100644
--- 
a/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompaction.java
+++ 
b/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompaction.java
@@ -76,7 +76,7 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import com.google.common.util.concurrent.SettableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 
@@ -173,7 +173,8 @@ public class TestCompaction {
 
     private void setupTSO() throws IOException, InterruptedException {
         tso = injector.getInstance(TSOServer.class);
-        tso.startAndWait();
+        tso.startAsync();
+        tso.awaitRunning();
         TestUtils.waitForSocketListening("localhost", 1234, 100);
         Thread.currentThread().setName("UnitTest(s) thread");
     }
@@ -185,7 +186,8 @@ public class TestCompaction {
     }
 
     private void teardownTSO() throws IOException, InterruptedException {
-        tso.stopAndWait();
+        tso.stopAsync();
+        tso.awaitTerminated();
         TestUtils.waitForSocketNotListening("localhost", 1234, 1000);
     }
 
diff --git 
a/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompactionLL.java
 
b/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompactionLL.java
index 38b3a3d..a6ccbe6 100644
--- 
a/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompactionLL.java
+++ 
b/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompactionLL.java
@@ -68,7 +68,7 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import com.google.common.util.concurrent.SettableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 
@@ -166,7 +166,8 @@ public class TestCompactionLL {
 
     private void setupTSO() throws IOException, InterruptedException {
         tso = injector.getInstance(TSOServer.class);
-        tso.startAndWait();
+        tso.startAsync();
+        tso.awaitRunning();
         TestUtils.waitForSocketListening("localhost", 1235, 100);
         Thread.currentThread().setName("UnitTest(s) thread");
     }
@@ -178,7 +179,8 @@ public class TestCompactionLL {
     }
 
     private void teardownTSO() throws IOException, InterruptedException {
-        tso.stopAndWait();
+        tso.stopAsync();
+        tso.awaitTerminated();
         TestUtils.waitForSocketNotListening("localhost", 1235, 1000);
     }
 
diff --git 
a/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompactorScanner.java
 
b/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompactorScanner.java
index eca9714..7320ccc 100644
--- 
a/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompactorScanner.java
+++ 
b/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestCompactorScanner.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.util.concurrent.SettableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.KeyValue.Type;
diff --git 
a/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestSnapshotFilter.java
 
b/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestSnapshotFilter.java
index 9471aa2..ce52b68 100644
--- 
a/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestSnapshotFilter.java
+++ 
b/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestSnapshotFilter.java
@@ -74,7 +74,7 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 import static org.testng.Assert.fail;
 
-import com.google.common.util.concurrent.ListenableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 
@@ -180,7 +180,8 @@ public class TestSnapshotFilter {
 
     private void setupTSO() throws IOException, InterruptedException {
         tso = injector.getInstance(TSOServer.class);
-        tso.startAndWait();
+        tso.startAsync();
+        tso.awaitRunning();
         TestUtils.waitForSocketListening("localhost", 5679, 100);
         Thread.currentThread().setName("UnitTest(s) thread");
     }
@@ -192,7 +193,8 @@ public class TestSnapshotFilter {
     }
 
     private void teardownTSO() throws IOException, InterruptedException {
-        tso.stopAndWait();
+        tso.stopAsync();
+        tso.awaitTerminated();
         TestUtils.waitForSocketNotListening("localhost", 5679, 1000);
     }
 
diff --git 
a/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestSnapshotFilterLL.java
 
b/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestSnapshotFilterLL.java
index 3496bde..db1174a 100644
--- 
a/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestSnapshotFilterLL.java
+++ 
b/hbase-coprocessor/src/test/java/org/apache/omid/transaction/TestSnapshotFilterLL.java
@@ -158,7 +158,8 @@ public class TestSnapshotFilterLL {
 
     private void setupTSO() throws IOException, InterruptedException {
         tso = injector.getInstance(TSOServer.class);
-        tso.startAndWait();
+        tso.startAsync();
+        tso.awaitRunning();
         TestUtils.waitForSocketListening("localhost", 5678, 100);
         Thread.currentThread().setName("UnitTest(s) thread");
     }
@@ -170,7 +171,8 @@ public class TestSnapshotFilterLL {
     }
 
     private void teardownTSO() throws IOException, InterruptedException {
-        tso.stopAndWait();
+        tso.stopAsync();
+        tso.awaitTerminated();
         TestUtils.waitForSocketNotListening("localhost", 5678, 1000);
     }
 
diff --git a/hbase-shims/pom.xml b/hbase-shims/pom.xml
index fbe9486..ea0e118 100644
--- a/hbase-shims/pom.xml
+++ b/hbase-shims/pom.xml
@@ -75,6 +75,16 @@
 
         <!-- end distributed comm -->
 
+        <!-- utils -->
+
+        <dependency>
+            <groupId>org.apache.phoenix.thirdparty</groupId>
+            <artifactId>phoenix-shaded-guava</artifactId>
+            <version>${phoenix.thirdparty.version}</version>
+        </dependency>
+
+        <!-- end utils -->
+
         <!-- logging -->
 
         <dependency>
diff --git a/metrics/pom.xml b/metrics/pom.xml
index 6106c1c..6288ea1 100644
--- a/metrics/pom.xml
+++ b/metrics/pom.xml
@@ -50,9 +50,9 @@
         <!-- utils -->
 
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>${guava.version}</version>
+            <groupId>org.apache.phoenix.thirdparty</groupId>
+            <artifactId>phoenix-shaded-guava</artifactId>
+            <version>${phoenix.thirdparty.version}</version>
         </dependency>
         <dependency>
             <groupId>com.google.inject</groupId>
diff --git 
a/metrics/src/main/java/org/apache/omid/metrics/MetricsRegistryMap.java 
b/metrics/src/main/java/org/apache/omid/metrics/MetricsRegistryMap.java
index 55ace3b..258e204 100644
--- a/metrics/src/main/java/org/apache/omid/metrics/MetricsRegistryMap.java
+++ b/metrics/src/main/java/org/apache/omid/metrics/MetricsRegistryMap.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.metrics;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/pom.xml b/pom.xml
index 912a2de..51c56ef 100644
--- a/pom.xml
+++ b/pom.xml
@@ -175,7 +175,7 @@
         <hbase2.version>2.0.1</hbase2.version>
         <hadoop1.version>2.7.5</hadoop1.version>
         <hadoop2.version>3.0.0</hadoop2.version>
-        <guava.version>14.0.1</guava.version>
+        <phoenix.thirdparty.version>1.0.0-SNAPSHOT</phoenix.thirdparty.version>
         <guice.version>3.0</guice.version>
         <testng.version>6.10</testng.version>
         <slf4j.version>1.7.7</slf4j.version>
@@ -189,7 +189,8 @@
         <jcommander.version>1.35</jcommander.version>
         <commons.conf.version>1.10</commons.conf.version>
         <hamcrest.version>1.3</hamcrest.version>
-        <curator.version>2.6.0</curator.version>
+        <!-- 2.12+ shades guava -->
+        <curator.version>2.13.0</curator.version>
         <zookeeper.version>3.4.9</zookeeper.version>
         <snakeyaml.version>1.11</snakeyaml.version>
         <beanutils.version>1.8.3</beanutils.version>
diff --git a/timestamp-storage/pom.xml b/timestamp-storage/pom.xml
index 6139da4..8bf711d 100644
--- a/timestamp-storage/pom.xml
+++ b/timestamp-storage/pom.xml
@@ -76,9 +76,9 @@
         <!-- utils -->
 
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>${guava.version}</version>
+            <groupId>org.apache.phoenix.thirdparty</groupId>
+            <artifactId>phoenix-shaded-guava</artifactId>
+            <version>${phoenix.thirdparty.version}</version>
         </dependency>
         <dependency>
             <groupId>com.google.inject</groupId>
diff --git a/transaction-client/pom.xml b/transaction-client/pom.xml
index 5b69574..687e862 100644
--- a/transaction-client/pom.xml
+++ b/transaction-client/pom.xml
@@ -83,9 +83,9 @@
             <version>${commons.conf.version}</version>
         </dependency>
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>${guava.version}</version>
+            <groupId>org.apache.phoenix.thirdparty</groupId>
+            <artifactId>phoenix-shaded-guava</artifactId>
+            <version>${phoenix.thirdparty.version}</version>
         </dependency>
 
         <!-- end utils -->
diff --git 
a/transaction-client/src/main/java/org/apache/omid/transaction/AbstractTransaction.java
 
b/transaction-client/src/main/java/org/apache/omid/transaction/AbstractTransaction.java
index 8359f51..b821005 100644
--- 
a/transaction-client/src/main/java/org/apache/omid/transaction/AbstractTransaction.java
+++ 
b/transaction-client/src/main/java/org/apache/omid/transaction/AbstractTransaction.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.tso.client.CellId;
diff --git 
a/transaction-client/src/main/java/org/apache/omid/transaction/AbstractTransactionManager.java
 
b/transaction-client/src/main/java/org/apache/omid/transaction/AbstractTransactionManager.java
index 6ee4f5e..f192fb6 100644
--- 
a/transaction-client/src/main/java/org/apache/omid/transaction/AbstractTransactionManager.java
+++ 
b/transaction-client/src/main/java/org/apache/omid/transaction/AbstractTransactionManager.java
@@ -17,11 +17,11 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.hash.Hashing;
-import com.google.common.util.concurrent.Futures;
-
+import org.apache.phoenix.thirdparty.com.google.common.base.Function;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.hash.Hashing;
+import org.apache.phoenix.thirdparty.com.google.common.util.concurrent.Futures;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.MoreExecutors;
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.committable.CommitTable.CommitTimestamp;
 import org.apache.omid.metrics.Counter;
@@ -477,7 +477,7 @@ public abstract class AbstractTransactionManager implements 
TransactionManager {
                 postCommitter.removeCommitTableEntry(tx);
                 return null;
             }
-        });
+        }, MoreExecutors.directExecutor());
 
     }
 
diff --git 
a/transaction-client/src/main/java/org/apache/omid/transaction/CommitTimestampLocator.java
 
b/transaction-client/src/main/java/org/apache/omid/transaction/CommitTimestampLocator.java
index 7fc038b..6fec749 100644
--- 
a/transaction-client/src/main/java/org/apache/omid/transaction/CommitTimestampLocator.java
+++ 
b/transaction-client/src/main/java/org/apache/omid/transaction/CommitTimestampLocator.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 
 import java.io.IOException;
 
diff --git 
a/transaction-client/src/main/java/org/apache/omid/transaction/PostCommitActions.java
 
b/transaction-client/src/main/java/org/apache/omid/transaction/PostCommitActions.java
index 99096bc..b9ca9fb 100644
--- 
a/transaction-client/src/main/java/org/apache/omid/transaction/PostCommitActions.java
+++ 
b/transaction-client/src/main/java/org/apache/omid/transaction/PostCommitActions.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.util.concurrent.ListenableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
 import org.apache.omid.tso.client.CellId;
 
 public interface PostCommitActions {
diff --git 
a/transaction-client/src/main/java/org/apache/omid/transaction/Transaction.java 
b/transaction-client/src/main/java/org/apache/omid/transaction/Transaction.java
index 9ae5cdb..8f1936c 100644
--- 
a/transaction-client/src/main/java/org/apache/omid/transaction/Transaction.java
+++ 
b/transaction-client/src/main/java/org/apache/omid/transaction/Transaction.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.transaction;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 
 /**
  * This interface defines the transaction state and behavior exposed to users.
diff --git 
a/transaction-client/src/main/java/org/apache/omid/tso/client/ForwardingTSOFuture.java
 
b/transaction-client/src/main/java/org/apache/omid/tso/client/ForwardingTSOFuture.java
index aa18ee2..cdb05be 100644
--- 
a/transaction-client/src/main/java/org/apache/omid/tso/client/ForwardingTSOFuture.java
+++ 
b/transaction-client/src/main/java/org/apache/omid/tso/client/ForwardingTSOFuture.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso.client;
 
-import com.google.common.util.concurrent.ListenableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
 
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executor;
diff --git 
a/transaction-client/src/main/java/org/apache/omid/tso/client/MockTSOClient.java
 
b/transaction-client/src/main/java/org/apache/omid/tso/client/MockTSOClient.java
index 7535143..7958904 100644
--- 
a/transaction-client/src/main/java/org/apache/omid/tso/client/MockTSOClient.java
+++ 
b/transaction-client/src/main/java/org/apache/omid/tso/client/MockTSOClient.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso.client;
 
-import com.google.common.util.concurrent.SettableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 
 import org.apache.omid.committable.CommitTable;
 
diff --git 
a/transaction-client/src/main/java/org/apache/omid/tso/client/TSOClient.java 
b/transaction-client/src/main/java/org/apache/omid/tso/client/TSOClient.java
index 960f3a4..43eaaa6 100644
--- a/transaction-client/src/main/java/org/apache/omid/tso/client/TSOClient.java
+++ b/transaction-client/src/main/java/org/apache/omid/tso/client/TSOClient.java
@@ -17,10 +17,10 @@
  */
 package org.apache.omid.tso.client;
 
-import com.google.common.base.Charsets;
-import com.google.common.net.HostAndPort;
-import com.google.common.util.concurrent.AbstractFuture;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import org.apache.phoenix.thirdparty.com.google.common.base.Charsets;
+import org.apache.phoenix.thirdparty.com.google.common.net.HostAndPort;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 
 import org.apache.omid.proto.TSOProto;
 import 
org.apache.omid.tso.client.OmidClientConfiguration.ConflictDetectionLevel;
@@ -143,14 +143,14 @@ public class TSOClient implements TSOProtocol, 
NodeCacheListener {
                 // TSO info includes the new TSO host:port address and epoch
                 String[] currentTSOAndEpochArray = tsoInfo.split("#");
                 hp = HostAndPort.fromString(currentTSOAndEpochArray[0]);
-                setTSOAddress(hp.getHostText(), hp.getPort());
+                setTSOAddress(hp.getHost(), hp.getPort());
                 epoch = Long.parseLong(currentTSOAndEpochArray[1]);
                 LOG.info("\t* Current TSO host:port found in ZK: {} Epoch {}", 
hp, getEpoch());
                 break;
             case DIRECT:
             default:
                 hp = HostAndPort.fromString(omidConf.getConnectionString());
-                setTSOAddress(hp.getHostText(), hp.getPort());
+                setTSOAddress(hp.getHost(), hp.getPort());
                 LOG.info("\t* TSO host:port {} will be connected directly", 
hp);
                 break;
         }
@@ -339,7 +339,7 @@ public class TSOClient implements TSOProtocol, 
NodeCacheListener {
         // TSO info includes the new TSO host:port address and epoch
         String[] currentTSOAndEpochArray = tsoInfo.split("#");
         HostAndPort hp = HostAndPort.fromString(currentTSOAndEpochArray[0]);
-        setTSOAddress(hp.getHostText(), hp.getPort());
+        setTSOAddress(hp.getHost(), hp.getPort());
         epoch = Long.parseLong(currentTSOAndEpochArray[1]);
         LOG.info("CurrentTSO ZNode changed. New TSO Host & Port {}/Epoch {}", 
hp, getEpoch());
         if (currentChannel != null && currentChannel.isConnected()) {
diff --git 
a/transaction-client/src/test/java/org/apache/omid/tso/client/TestMockTSOClient.java
 
b/transaction-client/src/test/java/org/apache/omid/tso/client/TestMockTSOClient.java
index b68b552..917a4ef 100644
--- 
a/transaction-client/src/test/java/org/apache/omid/tso/client/TestMockTSOClient.java
+++ 
b/transaction-client/src/test/java/org/apache/omid/tso/client/TestMockTSOClient.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso.client;
 
-import com.google.common.collect.Sets;
+import org.apache.phoenix.thirdparty.com.google.common.collect.Sets;
 
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.committable.InMemoryCommitTable;
diff --git a/tso-server/pom.xml b/tso-server/pom.xml
index d340f80..dcdc430 100644
--- a/tso-server/pom.xml
+++ b/tso-server/pom.xml
@@ -169,9 +169,9 @@
         <!-- utils -->
 
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>${guava.version}</version>
+            <groupId>org.apache.phoenix.thirdparty</groupId>
+            <artifactId>phoenix-shaded-guava</artifactId>
+            <version>${phoenix.thirdparty.version}</version>
         </dependency>
         <dependency>
             <groupId>com.google.code.findbugs</groupId>
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/AbstractRequestProcessor.java 
b/tso-server/src/main/java/org/apache/omid/tso/AbstractRequestProcessor.java
index 8a527ab..9f502df 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/AbstractRequestProcessor.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/AbstractRequestProcessor.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.lmax.disruptor.EventFactory;
 import com.lmax.disruptor.EventHandler;
 import com.lmax.disruptor.RingBuffer;
diff --git a/tso-server/src/main/java/org/apache/omid/tso/Batch.java 
b/tso-server/src/main/java/org/apache/omid/tso/Batch.java
index 7e6f43b..3c3e432 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/Batch.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/Batch.java
@@ -17,9 +17,9 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Objects;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
+import org.apache.phoenix.thirdparty.com.google.common.base.MoreObjects;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Preconditions;
 import org.apache.commons.pool2.BasePooledObjectFactory;
 import org.apache.commons.pool2.PooledObject;
 import org.apache.commons.pool2.impl.DefaultPooledObject;
@@ -146,7 +146,7 @@ public class Batch {
 
     @Override
     public String toString() {
-        return Objects.toStringHelper(this)
+        return MoreObjects.toStringHelper(this)
                 .add("id", id)
                 .add("size", size)
                 .add("num events", numEvents)
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/HALeaseManagementModule.java 
b/tso-server/src/main/java/org/apache/omid/tso/HALeaseManagementModule.java
index 6bbec42..d9b641b 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/HALeaseManagementModule.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/HALeaseManagementModule.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.annotations.VisibleForTesting;
+import 
org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
 import org.apache.curator.framework.CuratorFramework;
diff --git a/tso-server/src/main/java/org/apache/omid/tso/LeaseManager.java 
b/tso-server/src/main/java/org/apache/omid/tso/LeaseManager.java
index 6b726b2..81130fe 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/LeaseManager.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/LeaseManager.java
@@ -17,10 +17,10 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Charsets;
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.AbstractScheduledService;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import org.apache.phoenix.thirdparty.com.google.common.base.Charsets;
+import org.apache.phoenix.thirdparty.com.google.common.base.Preconditions;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractScheduledService;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.utils.EnsurePath;
 import org.apache.omid.tso.TSOStateManager.TSOState;
@@ -104,12 +104,14 @@ class LeaseManager extends AbstractScheduledService 
implements LeaseManagement {
     public void startService() throws LeaseManagementException {
         createLeaseManagementZNode();
         createCurrentTSOZNode();
-        startAndWait();
+        startAsync();
+        awaitRunning();
     }
 
     @Override
     public void stopService() throws LeaseManagementException {
-        stopAndWait();
+        stopAsync();
+        awaitTerminated();
     }
 
     @Override
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/LowWatermarkWriterImpl.java 
b/tso-server/src/main/java/org/apache/omid/tso/LowWatermarkWriterImpl.java
index 8de1b20..a53e498 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/LowWatermarkWriterImpl.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/LowWatermarkWriterImpl.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.google.inject.Inject;
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.metrics.MetricsRegistry;
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/MonitoringContextImpl.java 
b/tso-server/src/main/java/org/apache/omid/tso/MonitoringContextImpl.java
index 5792a77..4b9263a 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/MonitoringContextImpl.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/MonitoringContextImpl.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Stopwatch;
-import com.google.common.base.Throwables;
+import org.apache.phoenix.thirdparty.com.google.common.base.Stopwatch;
+import org.apache.phoenix.thirdparty.com.google.common.base.Throwables;
 import org.apache.omid.metrics.MetricsRegistry;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -45,8 +45,7 @@ public class MonitoringContextImpl implements 
MonitoringContext{
     }
 
     public void timerStart(String name) {
-        Stopwatch stopwatch = new Stopwatch();
-        stopwatch.start();
+        Stopwatch stopwatch = Stopwatch.createStarted();
         timers.put(name, stopwatch);
     }
 
@@ -61,7 +60,7 @@ public class MonitoringContextImpl implements 
MonitoringContext{
                     String.format("There is no %s timer in the %s monitoring 
context.", name, this));
         }
         activeStopwatch.stop();
-        elapsedTimeMsMap.put(name, 
activeStopwatch.elapsedTime(TimeUnit.NANOSECONDS));
+        elapsedTimeMsMap.put(name, 
activeStopwatch.elapsed(TimeUnit.NANOSECONDS));
         timers.remove(name);
     }
 
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/NetworkInterfaceUtils.java 
b/tso-server/src/main/java/org/apache/omid/tso/NetworkInterfaceUtils.java
index 72bb59b..ad39bf3 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/NetworkInterfaceUtils.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/NetworkInterfaceUtils.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.net.HostAndPort;
+import org.apache.phoenix.thirdparty.com.google.common.net.HostAndPort;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tso-server/src/main/java/org/apache/omid/tso/PersistEvent.java 
b/tso-server/src/main/java/org/apache/omid/tso/PersistEvent.java
index 977af00..9528d66 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/PersistEvent.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/PersistEvent.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Objects;
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.MoreObjects;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import org.jboss.netty.channel.Channel;
 
 public final class PersistEvent {
@@ -119,7 +119,7 @@ public final class PersistEvent {
 
     @Override
     public String toString() {
-        return Objects.toStringHelper(this)
+        return MoreObjects.toStringHelper(this)
                 .add("type", type)
                 .add("ST", startTimestamp)
                 .add("CT", commitTimestamp)
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessor.java 
b/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessor.java
index 12831fa..beb51c4 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessor.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessor.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import org.jboss.netty.channel.Channel;
 
 import java.io.Closeable;
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessorHandler.java 
b/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessorHandler.java
index f30aea3..7ef81f6 100644
--- 
a/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessorHandler.java
+++ 
b/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessorHandler.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Objects;
+import 
org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
+import org.apache.phoenix.thirdparty.com.google.common.base.MoreObjects;
 import com.lmax.disruptor.WorkHandler;
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.metrics.Histogram;
@@ -209,7 +209,7 @@ public class PersistenceProcessorHandler implements 
WorkHandler<PersistenceProce
     @Override
     public String toString() {
 
-        return Objects.toStringHelper(this).add("id", id).toString();
+        return MoreObjects.toStringHelper(this).add("id", id).toString();
 
     }
 
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessorImpl.java 
b/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessorImpl.java
index 123f783..9360881 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessorImpl.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/PersistenceProcessorImpl.java
@@ -17,10 +17,10 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Objects;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import 
org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
+import org.apache.phoenix.thirdparty.com.google.common.base.MoreObjects;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.google.inject.name.Named;
 import com.lmax.disruptor.EventFactory;
 import com.lmax.disruptor.RingBuffer;
@@ -206,7 +206,7 @@ class PersistenceProcessorImpl implements 
PersistenceProcessor {
 
         @Override
         public String toString() {
-            return Objects.toStringHelper(this)
+            return MoreObjects.toStringHelper(this)
                     .add("batchSequence", batchSequence)
                     .add("batch", batch)
                     .toString();
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/PersitenceProcessorNullImpl.java 
b/tso-server/src/main/java/org/apache/omid/tso/PersitenceProcessorNullImpl.java
index 8e0d171..e4aed24 100644
--- 
a/tso-server/src/main/java/org/apache/omid/tso/PersitenceProcessorNullImpl.java
+++ 
b/tso-server/src/main/java/org/apache/omid/tso/PersitenceProcessorNullImpl.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import org.jboss.netty.channel.Channel;
 
 import java.io.IOException;
diff --git a/tso-server/src/main/java/org/apache/omid/tso/ReplyProcessor.java 
b/tso-server/src/main/java/org/apache/omid/tso/ReplyProcessor.java
index 6c8186c..d548909 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/ReplyProcessor.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/ReplyProcessor.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import org.jboss.netty.channel.Channel;
 
 import java.io.Closeable;
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/ReplyProcessorImpl.java 
b/tso-server/src/main/java/org/apache/omid/tso/ReplyProcessorImpl.java
index c350266..b51612e 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/ReplyProcessorImpl.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/ReplyProcessorImpl.java
@@ -17,9 +17,9 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import 
org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
 import com.lmax.disruptor.EventFactory;
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/RequestProcessorPersistCT.java 
b/tso-server/src/main/java/org/apache/omid/tso/RequestProcessorPersistCT.java
index a967de4..7323638 100644
--- 
a/tso-server/src/main/java/org/apache/omid/tso/RequestProcessorPersistCT.java
+++ 
b/tso-server/src/main/java/org/apache/omid/tso/RequestProcessorPersistCT.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import com.google.inject.Inject;
 import org.apache.omid.metrics.MetricsRegistry;
 import org.jboss.netty.channel.Channel;
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/RequestProcessorSkipCT.java 
b/tso-server/src/main/java/org/apache/omid/tso/RequestProcessorSkipCT.java
index dcfc57e..2760e19 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/RequestProcessorSkipCT.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/RequestProcessorSkipCT.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import com.google.inject.Inject;
 import org.apache.omid.metrics.MetricsRegistry;
 import org.jboss.netty.channel.Channel;
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/RetryProcessorImpl.java 
b/tso-server/src/main/java/org/apache/omid/tso/RetryProcessorImpl.java
index e667271..988e3cd 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/RetryProcessorImpl.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/RetryProcessorImpl.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.google.inject.name.Named;
 import com.lmax.disruptor.EventFactory;
 import com.lmax.disruptor.EventHandler;
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/TSOChannelHandler.java 
b/tso-server/src/main/java/org/apache/omid/tso/TSOChannelHandler.java
index f936e88..6269bb8 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/TSOChannelHandler.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/TSOChannelHandler.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import 
org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.omid.metrics.MetricsRegistry;
 import org.apache.omid.proto.TSOProto;
 import org.jboss.netty.bootstrap.ServerBootstrap;
diff --git a/tso-server/src/main/java/org/apache/omid/tso/TSOModule.java 
b/tso-server/src/main/java/org/apache/omid/tso/TSOModule.java
index 5c96aa3..4c8623a 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/TSOModule.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/TSOModule.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Preconditions;
+import org.apache.phoenix.thirdparty.com.google.common.base.Preconditions;
 import com.google.inject.AbstractModule;
 import com.google.inject.Provider;
 import com.google.inject.Provides;
diff --git a/tso-server/src/main/java/org/apache/omid/tso/TSOServer.java 
b/tso-server/src/main/java/org/apache/omid/tso/TSOServer.java
index 6d36ec2..5324e2b 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/TSOServer.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/TSOServer.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.util.concurrent.AbstractIdleService;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractIdleService;
 import com.google.inject.Binder;
 import com.google.inject.Guice;
 import com.google.inject.Inject;
@@ -133,7 +133,8 @@ public class TSOServer extends AbstractIdleService {
         Runtime.getRuntime().addShutdownHook(new Thread() {
             @Override
             public void run() {
-                stopAndWait();
+                stopAsync();
+                awaitTerminated();
             }
         });
         LOG.info("Shutdown Hook Attached");
@@ -149,7 +150,8 @@ public class TSOServer extends AbstractIdleService {
         try {
             TSOServer tsoServer = getInitializedTsoServer(config);
             tsoServer.attachShutDownHook();
-            tsoServer.startAndWait();
+            tsoServer.startAsync();
+            tsoServer.awaitRunning();
             if (config.getLowLatency() &&
                     !(config.getCommitTableStoreModule() instanceof 
HBaseCommitTableStorageModule)) {
                 LOG.error("Running low latency mode with memory commit table. 
Use only with testing!");
diff --git a/tso-server/src/main/java/org/apache/omid/tso/TSOServerConfig.java 
b/tso-server/src/main/java/org/apache/omid/tso/TSOServerConfig.java
index e28add3..8907945 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/TSOServerConfig.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/TSOServerConfig.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.annotations.VisibleForTesting;
+import 
org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
 import com.google.inject.Module;
 
 import org.apache.omid.NetworkUtils;
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/TSOStateManagerImpl.java 
b/tso-server/src/main/java/org/apache/omid/tso/TSOStateManagerImpl.java
index 31be592..ba0dfd7 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/TSOStateManagerImpl.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/TSOStateManagerImpl.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Preconditions;
+import org.apache.phoenix.thirdparty.com.google.common.base.Preconditions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/TimestampOracleImpl.java 
b/tso-server/src/main/java/org/apache/omid/tso/TimestampOracleImpl.java
index f49067a..045ea67 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/TimestampOracleImpl.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/TimestampOracleImpl.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import 
org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.metrics.Gauge;
diff --git a/tso-server/src/main/java/org/apache/omid/tso/TsoServerDaemon.java 
b/tso-server/src/main/java/org/apache/omid/tso/TsoServerDaemon.java
index 78f8e74..34acdf5 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/TsoServerDaemon.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/TsoServerDaemon.java
@@ -45,12 +45,14 @@ public class TsoServerDaemon implements Daemon {
 
     @Override
     public void start() throws Exception {
-        tsoServer.startAndWait();
+        tsoServer.startAsync();
+        tsoServer.awaitRunning();
     }
 
     @Override
     public void stop() throws Exception {
-        tsoServer.stopAndWait();
+        tsoServer.stopAsync();
+        tsoServer.awaitTerminated();
     }
 
     @Override
diff --git 
a/tso-server/src/main/java/org/apache/omid/tso/WorldClockOracleImpl.java 
b/tso-server/src/main/java/org/apache/omid/tso/WorldClockOracleImpl.java
index 356518d..12bff3b 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/WorldClockOracleImpl.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/WorldClockOracleImpl.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import 
org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.metrics.Gauge;
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/ProgrammableTSOServer.java 
b/tso-server/src/test/java/org/apache/omid/tso/ProgrammableTSOServer.java
index e973494..0e2c9f6 100644
--- a/tso-server/src/test/java/org/apache/omid/tso/ProgrammableTSOServer.java
+++ b/tso-server/src/test/java/org/apache/omid/tso/ProgrammableTSOServer.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.omid.proto.TSOProto;
 import org.apache.omid.tso.ProgrammableTSOServer.Response.ResponseType;
 import org.jboss.netty.bootstrap.ServerBootstrap;
diff --git a/tso-server/src/test/java/org/apache/omid/tso/TSOMockModule.java 
b/tso-server/src/test/java/org/apache/omid/tso/TSOMockModule.java
index a346e5e..e75d747 100644
--- a/tso-server/src/test/java/org/apache/omid/tso/TSOMockModule.java
+++ b/tso-server/src/test/java/org/apache/omid/tso/TSOMockModule.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Preconditions;
+import org.apache.phoenix.thirdparty.com.google.common.base.Preconditions;
 import com.google.inject.AbstractModule;
 import com.google.inject.Provider;
 import com.google.inject.Provides;
diff --git a/tso-server/src/test/java/org/apache/omid/tso/TestBatch.java 
b/tso-server/src/test/java/org/apache/omid/tso/TestBatch.java
index 0f230cc..3e35f93 100644
--- a/tso-server/src/test/java/org/apache/omid/tso/TestBatch.java
+++ b/tso-server/src/test/java/org/apache/omid/tso/TestBatch.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import org.apache.commons.pool2.PooledObject;
 import org.jboss.netty.channel.Channel;
 import org.mockito.Mock;
diff --git a/tso-server/src/test/java/org/apache/omid/tso/TestLeaseManager.java 
b/tso-server/src/test/java/org/apache/omid/tso/TestLeaseManager.java
index 5c970e8..77acfb1 100644
--- a/tso-server/src/test/java/org/apache/omid/tso/TestLeaseManager.java
+++ b/tso-server/src/test/java/org/apache/omid/tso/TestLeaseManager.java
@@ -46,7 +46,7 @@ import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
-import com.google.common.base.Charsets;
+import org.apache.phoenix.thirdparty.com.google.common.base.Charsets;
 
 public class TestLeaseManager {
 
diff --git a/tso-server/src/test/java/org/apache/omid/tso/TestPanicker.java 
b/tso-server/src/test/java/org/apache/omid/tso/TestPanicker.java
index 7c6e003..e1625a7 100644
--- a/tso-server/src/test/java/org/apache/omid/tso/TestPanicker.java
+++ b/tso-server/src/test/java/org/apache/omid/tso/TestPanicker.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import org.apache.commons.pool2.ObjectPool;
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.metrics.MetricsRegistry;
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/TestPersistenceProcessor.java 
b/tso-server/src/test/java/org/apache/omid/tso/TestPersistenceProcessor.java
index eb7d7f6..be15c62 100644
--- a/tso-server/src/test/java/org/apache/omid/tso/TestPersistenceProcessor.java
+++ b/tso-server/src/test/java/org/apache/omid/tso/TestPersistenceProcessor.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import org.apache.commons.pool2.ObjectPool;
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.metrics.MetricsRegistry;
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/TestPersistenceProcessorHandler.java
 
b/tso-server/src/test/java/org/apache/omid/tso/TestPersistenceProcessorHandler.java
index 473c981..c99dd25 100644
--- 
a/tso-server/src/test/java/org/apache/omid/tso/TestPersistenceProcessorHandler.java
+++ 
b/tso-server/src/test/java/org/apache/omid/tso/TestPersistenceProcessorHandler.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.metrics.MetricsRegistry;
 import org.apache.omid.metrics.NullMetricsProvider;
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/TestReplyProcessor.java 
b/tso-server/src/test/java/org/apache/omid/tso/TestReplyProcessor.java
index 4659fa3..5936b2d 100644
--- a/tso-server/src/test/java/org/apache/omid/tso/TestReplyProcessor.java
+++ b/tso-server/src/test/java/org/apache/omid/tso/TestReplyProcessor.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.SettableFuture;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 import org.apache.commons.pool2.ObjectPool;
 import org.apache.omid.metrics.MetricsRegistry;
 import org.apache.omid.metrics.NullMetricsProvider;
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/TestRequestProcessor.java 
b/tso-server/src/test/java/org/apache/omid/tso/TestRequestProcessor.java
index b7abf2c..a385be7 100644
--- a/tso-server/src/test/java/org/apache/omid/tso/TestRequestProcessor.java
+++ b/tso-server/src/test/java/org/apache/omid/tso/TestRequestProcessor.java
@@ -17,9 +17,9 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
-import com.google.common.collect.Lists;
-import com.google.common.util.concurrent.SettableFuture;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.collect.Lists;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.metrics.MetricsRegistry;
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/TestRetryProcessor.java 
b/tso-server/src/test/java/org/apache/omid/tso/TestRetryProcessor.java
index b2b8694..1b84b31 100644
--- a/tso-server/src/test/java/org/apache/omid/tso/TestRetryProcessor.java
+++ b/tso-server/src/test/java/org/apache/omid/tso/TestRetryProcessor.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
 import com.lmax.disruptor.YieldingWaitStrategy;
 
 import org.apache.commons.pool2.ObjectPool;
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/TestTSOChannelHandlerNetty.java 
b/tso-server/src/test/java/org/apache/omid/tso/TestTSOChannelHandlerNetty.java
index 245f3b6..a155dec 100644
--- 
a/tso-server/src/test/java/org/apache/omid/tso/TestTSOChannelHandlerNetty.java
+++ 
b/tso-server/src/test/java/org/apache/omid/tso/TestTSOChannelHandlerNetty.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso;
 
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.omid.metrics.NullMetricsProvider;
 import org.apache.omid.proto.TSOProto;
 import org.jboss.netty.bootstrap.ClientBootstrap;
diff --git a/tso-server/src/test/java/org/apache/omid/tso/TestTSOLL.java 
b/tso-server/src/test/java/org/apache/omid/tso/TestTSOLL.java
index 17c70f0..b6f1665 100644
--- a/tso-server/src/test/java/org/apache/omid/tso/TestTSOLL.java
+++ b/tso-server/src/test/java/org/apache/omid/tso/TestTSOLL.java
@@ -18,8 +18,8 @@
 package org.apache.omid.tso;
 
 
-import com.google.common.base.Optional;
-import com.google.common.collect.Sets;
+import org.apache.phoenix.thirdparty.com.google.common.base.Optional;
+import org.apache.phoenix.thirdparty.com.google.common.collect.Sets;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 import com.google.inject.Module;
@@ -79,7 +79,8 @@ public class TestTSOLL {
         
LOG.info("==================================================================================================");
 
         tsoServer = injector.getInstance(TSOServer.class);
-        tsoServer.startAndWait();
+        tsoServer.startAsync();
+        tsoServer.awaitRunning();
         TestUtils.waitForSocketListening(TSO_SERVER_HOST, TSO_SERVER_PORT, 
100);
 
         
LOG.info("==================================================================================================");
@@ -101,7 +102,8 @@ public class TestTSOLL {
     public void afterMethod() throws Exception {
 
 
-        tsoServer.stopAndWait();
+        tsoServer.stopAsync();
+        tsoServer.awaitTerminated();
         tsoServer = null;
         TestUtils.waitForSocketNotListening(TSO_SERVER_HOST, TSO_SERVER_PORT, 
1000);
 
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/client/TSOClientRaw.java 
b/tso-server/src/test/java/org/apache/omid/tso/client/TSOClientRaw.java
index 9784817..d40c26c 100644
--- a/tso-server/src/test/java/org/apache/omid/tso/client/TSOClientRaw.java
+++ b/tso-server/src/test/java/org/apache/omid/tso/client/TSOClientRaw.java
@@ -17,8 +17,8 @@
  */
 package org.apache.omid.tso.client;
 
-import com.google.common.util.concurrent.SettableFuture;
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.omid.proto.TSOProto;
 import org.apache.omid.proto.TSOProto.Response;
 import org.jboss.netty.bootstrap.ClientBootstrap;
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/client/TestIntegrationOfTSOClientServerBasicFunctionality.java
 
b/tso-server/src/test/java/org/apache/omid/tso/client/TestIntegrationOfTSOClientServerBasicFunctionality.java
index 2e069fa..6dfa3e4 100644
--- 
a/tso-server/src/test/java/org/apache/omid/tso/client/TestIntegrationOfTSOClientServerBasicFunctionality.java
+++ 
b/tso-server/src/test/java/org/apache/omid/tso/client/TestIntegrationOfTSOClientServerBasicFunctionality.java
@@ -17,9 +17,9 @@
  */
 package org.apache.omid.tso.client;
 
-import com.google.common.collect.Sets;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
+import org.apache.phoenix.thirdparty.com.google.common.collect.Sets;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
+import 
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.SettableFuture;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 import com.google.inject.Module;
@@ -88,7 +88,8 @@ public class 
TestIntegrationOfTSOClientServerBasicFunctionality {
         
LOG.info("==================================================================================================");
 
         tsoServer = injector.getInstance(TSOServer.class);
-        tsoServer.startAndWait();
+        tsoServer.startAsync();
+        tsoServer.awaitRunning();
         TestUtils.waitForSocketListening(TSO_SERVER_HOST, 
tsoServerPortForTest, 100);
 
         
LOG.info("==================================================================================================");
@@ -119,7 +120,8 @@ public class 
TestIntegrationOfTSOClientServerBasicFunctionality {
 
         tsoClient.close().get();
 
-        tsoServer.stopAndWait();
+        tsoServer.stopAsync();
+        tsoServer.awaitTerminated();
         tsoServer = null;
         TestUtils.waitForSocketNotListening(TSO_SERVER_HOST, 
tsoServerPortForTest, 1000);
 
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientConnectionToTSO.java
 
b/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientConnectionToTSO.java
index 69e194a..370d89a 100644
--- 
a/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientConnectionToTSO.java
+++ 
b/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientConnectionToTSO.java
@@ -125,7 +125,8 @@ public class TestTSOClientConnectionToTSO {
         injector = Guice.createInjector(new TSOMockModule(tsoConfig));
         LOG.info("Starting TSO");
         tsoServer = injector.getInstance(TSOServer.class);
-        tsoServer.startAndWait();
+        tsoServer.startAsync();
+        tsoServer.awaitRunning();
         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
         LOG.info("Finished loading TSO");
 
@@ -143,7 +144,8 @@ public class TestTSOClientConnectionToTSO {
 
         // Close the tsoClient connection and stop the TSO Server
         tsoClient.close().get();
-        tsoServer.stopAndWait();
+        tsoServer.stopAsync();
+        tsoServer.awaitTerminated();
         tsoServer = null;
         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
         LOG.info("TSO Server Stopped");
@@ -161,7 +163,8 @@ public class TestTSOClientConnectionToTSO {
         injector = Guice.createInjector(new TSOMockModule(config));
         LOG.info("Starting TSO");
         tsoServer = injector.getInstance(TSOServer.class);
-        tsoServer.startAndWait();
+        tsoServer.startAsync();
+        tsoServer.awaitRunning();
         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
         LOG.info("Finished loading TSO");
 
@@ -181,7 +184,8 @@ public class TestTSOClientConnectionToTSO {
 
         // Close the tsoClient connection and stop the TSO Server
         tsoClient.close().get();
-        tsoServer.stopAndWait();
+        tsoServer.stopAsync();
+        tsoServer.awaitTerminated();
         tsoServer = null;
         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
         LOG.info("TSO Server Stopped");
@@ -199,7 +203,8 @@ public class TestTSOClientConnectionToTSO {
         injector = Guice.createInjector(new TSOMockModule(config));
         LOG.info("Starting Initial TSO");
         tsoServer = injector.getInstance(TSOServer.class);
-        tsoServer.startAndWait();
+        tsoServer.startAsync();
+        tsoServer.awaitRunning();
         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
         LOG.info("Finished loading TSO");
 
@@ -218,7 +223,8 @@ public class TestTSOClientConnectionToTSO {
         assertEquals(startTS.longValue(), CommitTable.MAX_CHECKPOINTS_PER_TXN);
 
         // Then stop the server...
-        tsoServer.stopAndWait();
+        tsoServer.stopAsync();
+        tsoServer.awaitTerminated();
         tsoServer = null;
         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
         LOG.info("Initial TSO Server Stopped");
@@ -242,7 +248,8 @@ public class TestTSOClientConnectionToTSO {
         Injector newInjector = Guice.createInjector(new TSOMockModule(config));
         LOG.info("Re-Starting again the TSO");
         tsoServer = newInjector.getInstance(TSOServer.class);
-        tsoServer.startAndWait();
+        tsoServer.startAsync();
+        tsoServer.awaitRunning();
         TestUtils.waitForSocketListening(TSO_HOST, tsoPortForTest, 100);
         LOG.info("Finished loading restarted TSO");
 
@@ -259,7 +266,8 @@ public class TestTSOClientConnectionToTSO {
         assertNotNull(startTS);
 
         // ...and stop the server
-        tsoServer.stopAndWait();
+        tsoServer.stopAsync();
+        tsoServer.awaitTerminated();
         TestUtils.waitForSocketNotListening(TSO_HOST, tsoPortForTest, 1000);
         LOG.info("Restarted TSO Server Stopped");
     }
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientRequestAndResponseBehaviours.java
 
b/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientRequestAndResponseBehaviours.java
index 4b68479..18f7058 100644
--- 
a/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientRequestAndResponseBehaviours.java
+++ 
b/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientRequestAndResponseBehaviours.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso.client;
 
-import com.google.common.collect.Sets;
+import org.apache.phoenix.thirdparty.com.google.common.collect.Sets;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 import com.google.inject.Module;
@@ -83,7 +83,8 @@ public class TestTSOClientRequestAndResponseBehaviours {
         
LOG.info("==================================================================================================");
 
         tsoServer = injector.getInstance(TSOServer.class);
-        tsoServer.startAndWait();
+        tsoServer.startAsync();
+        tsoServer.awaitRunning();
         TestUtils.waitForSocketListening(TSO_SERVER_HOST, TSO_SERVER_PORT, 
100);
 
         
LOG.info("==================================================================================================");
@@ -104,7 +105,8 @@ public class TestTSOClientRequestAndResponseBehaviours {
     public void afterMethod() throws Exception {
 
 
-        tsoServer.stopAndWait();
+        tsoServer.stopAsync();
+        tsoServer.awaitTerminated();
         tsoServer = null;
         TestUtils.waitForSocketNotListening(TSO_SERVER_HOST, TSO_SERVER_PORT, 
1000);
 
diff --git 
a/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientRowAndCellLevelConflict.java
 
b/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientRowAndCellLevelConflict.java
index da655a3..6a0da71 100644
--- 
a/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientRowAndCellLevelConflict.java
+++ 
b/tso-server/src/test/java/org/apache/omid/tso/client/TestTSOClientRowAndCellLevelConflict.java
@@ -17,7 +17,7 @@
  */
 package org.apache.omid.tso.client;
 
-import com.google.common.collect.Sets;
+import org.apache.phoenix.thirdparty.com.google.common.collect.Sets;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 import com.google.inject.Module;
@@ -67,7 +67,8 @@ public class TestTSOClientRowAndCellLevelConflict {
         
LOG.info("==================================================================================================");
 
         tsoServer = injector.getInstance(TSOServer.class);
-        tsoServer.startAndWait();
+        tsoServer.startAsync();
+        tsoServer.awaitRunning();
         TestUtils.waitForSocketListening(TSO_SERVER_HOST, TSO_SERVER_PORT, 
100);
 
         
LOG.info("==================================================================================================");
@@ -83,7 +84,8 @@ public class TestTSOClientRowAndCellLevelConflict {
 
     @AfterMethod
     public void afterMethod() throws Exception {
-        tsoServer.stopAndWait();
+        tsoServer.stopAsync();
+        tsoServer.awaitTerminated();
         tsoServer = null;
         TestUtils.waitForSocketNotListening(TSO_SERVER_HOST, TSO_SERVER_PORT, 
1000);
     }

Reply via email to