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 e1bceec8 OMID-223 Refactor Omid to use HBase 2 APIs internally
e1bceec8 is described below

commit e1bceec8e21cf36f9393d6eda82dfee4a15ad9d9
Author: ameszaros <amesza...@cloudera.com>
AuthorDate: Wed Jul 20 15:15:25 2022 +0200

    OMID-223 Refactor Omid to use HBase 2 APIs internally
    
    Co-authored-by: Istvan Toth <st...@apache.org>
---
 .../src/main/java/org/apache/omid/YAMLUtils.java   |  3 -
 .../omid/transaction/HBaseTransactionManager.java  |  4 +-
 .../omid/transaction/SnapshotFilterImpl.java       |  6 +-
 .../java/org/apache/omid/transaction/TTable.java   | 22 +++++--
 .../org/apache/omid/transaction/OmidTestBase.java  | 35 ++++++----
 .../transaction/TestBaillisAnomaliesWithTXs.java   | 18 ++---
 .../omid/transaction/TestBasicTransaction.java     | 28 ++++----
 .../apache/omid/transaction/TestCheckpoint.java    | 10 +--
 .../org/apache/omid/transaction/TestDeletion.java  |  2 +-
 .../transaction/TestEndToEndScenariosWithHA.java   | 16 ++---
 .../org/apache/omid/transaction/TestFilters.java   |  6 +-
 .../apache/omid/transaction/TestOmidLLRaces.java   | 35 ++++++----
 .../apache/omid/transaction/TestShadowCells.java   |  6 +-
 .../omid/transaction/TestTTableBehaviour.java      |  2 +-
 .../omid/transaction/TestTransactionCleanup.java   |  8 +--
 .../omid/transaction/TestTransactionConflict.java  | 42 +++++++-----
 .../apache/omid/transaction/TestTxMgrFailover.java | 10 +--
 .../apache/omid/transaction/TestUpdateScan.java    |  8 +--
 .../omid/committable/hbase/HBaseCommitTable.java   | 11 +++-
 .../committable/hbase/TestHBaseCommitTable.java    | 43 +++++++-----
 .../omid/committable/hbase/RegionSplitter.java     |  2 +-
 .../org/apache/omid/transaction/CellUtils.java     |  4 +-
 .../hbase/regionserver/CompactorScanner.java       |  7 +-
 .../omid/transaction/CellSkipFilterBase.java       | 46 ++++++++-----
 .../omid/transaction/OmidSnapshotFilter.java       |  4 +-
 .../TransactionVisibilityFilterBase.java           | 28 ++++++--
 .../apache/omid/transaction/TestCompaction.java    | 37 +++++++----
 .../apache/omid/transaction/TestCompactionLL.java  | 31 +++++----
 .../omid/transaction/TestCompactorScanner.java     |  6 +-
 .../omid/transaction/TestSnapshotFilter.java       | 76 ++++++++++++----------
 .../omid/transaction/TestSnapshotFilterLL.java     | 36 ++++++----
 .../apache/omid/tools/hbase/OmidTableManager.java  | 28 +++++---
 .../omid/tools/hbase/TestOmidTableManager.java     | 12 ++--
 .../timestamp/storage/HBaseTimestampStorage.java   |  6 +-
 .../storage/TestHBaseTimestampStorage.java         | 32 +++++----
 35 files changed, 405 insertions(+), 265 deletions(-)

diff --git a/common/src/main/java/org/apache/omid/YAMLUtils.java 
b/common/src/main/java/org/apache/omid/YAMLUtils.java
index 7d0522be..d88d1a88 100644
--- a/common/src/main/java/org/apache/omid/YAMLUtils.java
+++ b/common/src/main/java/org/apache/omid/YAMLUtils.java
@@ -53,7 +53,6 @@ public class YAMLUtils {
         }
     }
 
-    @SuppressWarnings("unchecked")
     public Map loadSettings(String resourcePath, String defaultResourcePath) 
throws IOException {
         Map defaultSetting = loadAsMap(defaultResourcePath);
         Preconditions.checkState(defaultSetting.size() > 0, 
String.format("Failed to load file '%s' from classpath", defaultResourcePath));
@@ -64,7 +63,6 @@ public class YAMLUtils {
         return defaultSetting;
     }
 
-    @SuppressWarnings("unchecked")
     public Map loadAsMap(String path) throws IOException {
         try {
             String content = Resources.toString(Resources.getResource(path), 
Charset.forName("UTF-8"));
@@ -75,7 +73,6 @@ public class YAMLUtils {
         }
     }
 
-    @SuppressWarnings("unchecked")
     public Map loadStringAsMap(String content) {
         try {
             Map settings = new Yaml().loadAs(content, Map.class);
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 ffc3850d..2226f969 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
@@ -295,8 +295,8 @@ public class HBaseTransactionManager extends 
AbstractTransactionManager implemen
             byte[] family = hBaseCellId.getFamily();
             byte[] shadowCellQualifier = 
CellUtils.addShadowCellSuffixPrefix(hBaseCellId.getQualifier());
             get.addColumn(family, shadowCellQualifier);
-            get.setMaxVersions(1);
-            get.setTimeStamp(startTimestamp);
+            get.readVersions(1);
+            get.setTimestamp(startTimestamp);
             Result result = tableAccessWrapper.get(get);
             if (result.containsColumn(family, shadowCellQualifier)) {
                 return Optional.of(Bytes.toLong(result.getValue(family, 
shadowCellQualifier)));
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 6d99e7a0..f27efd02 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
@@ -33,8 +33,8 @@ import java.util.Map;
 import java.util.concurrent.ExecutionException;
 
 import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.CellComparator;
 import org.apache.hadoop.hbase.CellUtil;
-import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
@@ -400,7 +400,7 @@ public class SnapshotFilterImpl implements SnapshotFilter {
         pendingGet.addColumn(CellUtil.cloneFamily(cell), 
CellUtils.addShadowCellSuffixPrefix(cell.getQualifierArray(),
                                                                                
        cell.getQualifierOffset(),
                                                                                
        cell.getQualifierLength()));
-        pendingGet.setMaxVersions(versionCount);
+        pendingGet.readVersions(versionCount);
         pendingGet.setTimeRange(0, cell.getTimestamp());
 
         return pendingGet;
@@ -488,7 +488,7 @@ public class SnapshotFilterImpl implements SnapshotFilter {
             }
         }
 
-        Collections.sort(keyValuesInSnapshot, KeyValue.COMPARATOR);
+        Collections.sort(keyValuesInSnapshot, CellComparator.getInstance());
 
         return keyValuesInSnapshot;
     }
diff --git a/hbase-client/src/main/java/org/apache/omid/transaction/TTable.java 
b/hbase-client/src/main/java/org/apache/omid/transaction/TTable.java
index 3311e48f..b80e328c 100644
--- a/hbase-client/src/main/java/org/apache/omid/transaction/TTable.java
+++ b/hbase-client/src/main/java/org/apache/omid/transaction/TTable.java
@@ -46,6 +46,7 @@ import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Row;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.Table;
+import org.apache.hadoop.hbase.client.TableDescriptor;
 import org.apache.hadoop.hbase.io.TimeRange;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.omid.committable.CommitTable;
@@ -197,7 +198,7 @@ public class TTable implements Closeable {
         TimeRange timeRange = get.getTimeRange();
         long startTime = timeRange.getMin();
         long endTime = Math.min(timeRange.getMax(), readTimestamp + 1);
-        tsget.setTimeRange(startTime, endTime).setMaxVersions(1);
+        tsget.setTimeRange(startTime, endTime).readVersions(1);
         Map<byte[], NavigableSet<byte[]>> kvs = get.getFamilyMap();
         for (Map.Entry<byte[], NavigableSet<byte[]>> entry : kvs.entrySet()) {
             byte[] family = entry.getKey();
@@ -292,7 +293,7 @@ public class TTable implements Closeable {
         for (List<Cell> cells : fmap.values()) {
             for (Cell cell : cells) {
                 CellUtils.validateCell(cell, writeTimestamp);
-                switch (KeyValue.Type.codeToType(cell.getTypeByte())) {
+                switch (cell.getType()) {
                     case DeleteColumn:
                         deleteP.addColumn(CellUtil.cloneFamily(cell),
                                     CellUtil.cloneQualifier(cell),
@@ -477,7 +478,7 @@ public class TTable implements Closeable {
         HBaseTransaction transaction = enforceHBaseTransactionAsParam(tx);
 
         Scan tsscan = new Scan(scan);
-        tsscan.setMaxVersions(1);
+        tsscan.readVersions(1);
         tsscan.setTimeRange(0, transaction.getReadTimestamp() + 1);
         propagateAttributes(scan, tsscan);
         Map<byte[], NavigableSet<byte[]>> kvs = scan.getFamilyMap();
@@ -518,6 +519,9 @@ public class TTable implements Closeable {
     /**
      * Delegates to {@link Table#getTableDescriptor()}
      *
+     * This deprecated method is implemented for backwards compatibility 
reasons.
+     * use {@link TTable#getDescriptor()}
+     *
      * @return HTableDescriptor an instance of HTableDescriptor
      * @throws IOException if a remote or network exception occurs.
      */
@@ -525,6 +529,16 @@ public class TTable implements Closeable {
         return table.getTableDescriptor();
     }
 
+    /**
+     * Delegates to {@link Table#getDescriptor()}
+     *
+     * @return TableDescriptor an instance of TableDescriptor
+     * @throws IOException if a remote or network exception occurs.
+     */
+    public TableDescriptor getDescriptor() throws IOException {
+        return table.getDescriptor();
+    }
+
     /**
      * Transactional version of {@link Table#exists(Get get)}
      *
@@ -721,7 +735,7 @@ public class TTable implements Closeable {
     }
 
     private void throwExceptionIfOpSetsTimerange(Mutation userOperation) {
-        if (userOperation.getTimeStamp() != HConstants.LATEST_TIMESTAMP) {
+        if (userOperation.getTimestamp() != HConstants.LATEST_TIMESTAMP) {
             throw new IllegalArgumentException(
                 "Timestamp not allowed in transactional user operations");
         }
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 6edbcb5f..ba61d279 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
@@ -22,23 +22,25 @@ import static 
org.apache.hadoop.hbase.HConstants.HBASE_CLIENT_RETRIES_NUMBER;
 import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Method;
+import java.util.ArrayList;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MiniHBaseCluster;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.Table;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.omid.NetworkUtils;
 import org.apache.omid.TestUtils;
@@ -143,14 +145,21 @@ public abstract class OmidTestBase {
     }
 
     protected void createTestTable() throws IOException {
-        HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
-        HTableDescriptor test_table_desc = new 
HTableDescriptor(TableName.valueOf(TEST_TABLE));
-        HColumnDescriptor datafam = new HColumnDescriptor(TEST_FAMILY);
-        HColumnDescriptor datafam2 = new HColumnDescriptor(TEST_FAMILY2);
-        datafam.setMaxVersions(Integer.MAX_VALUE);
-        datafam2.setMaxVersions(Integer.MAX_VALUE);
-        test_table_desc.addFamily(datafam);
-        test_table_desc.addFamily(datafam2);
+        Admin admin = hBaseUtils.getAdmin();
+        ArrayList<ColumnFamilyDescriptor> fams = new ArrayList<>();
+        fams.add(ColumnFamilyDescriptorBuilder
+                .newBuilder(Bytes.toBytes(TEST_FAMILY))
+                .setMaxVersions(Integer.MAX_VALUE)
+                .build());
+        fams.add(ColumnFamilyDescriptorBuilder
+                .newBuilder(Bytes.toBytes(TEST_FAMILY2))
+                .setMaxVersions(Integer.MAX_VALUE)
+                .build());
+        TableDescriptor test_table_desc = TableDescriptorBuilder
+                .newBuilder(TableName.valueOf(TEST_TABLE))
+                .setColumnFamilies(fams)
+                .build();
+
         admin.createTable(test_table_desc);
     }
 
@@ -227,7 +236,7 @@ public abstract class OmidTestBase {
     public void afterMethod() {
         try {
             LOG.info("tearing Down");
-            Admin admin = hBaseUtils.getHBaseAdmin();
+            Admin admin = hBaseUtils.getAdmin();
             deleteTable(admin, TableName.valueOf(TEST_TABLE));
             createTestTable();
             if (hBaseCommitTableConfig != null) {
@@ -254,7 +263,7 @@ public abstract class OmidTestBase {
                                byte[] fam, byte[] col, byte[] value) {
 
         try {
-            Get g = new Get(row).setMaxVersions(1);
+            Get g = new Get(row).readVersions(1);
             Result r = table.get(g);
             Cell cell = r.getColumnLatestCell(fam, col);
 
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestBaillisAnomaliesWithTXs.java
 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestBaillisAnomaliesWithTXs.java
index 199451df..74eccf73 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestBaillisAnomaliesWithTXs.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestBaillisAnomaliesWithTXs.java
@@ -25,12 +25,12 @@ import static org.testng.Assert.fail;
 import java.io.IOException;
 import java.util.Arrays;
 
+import org.apache.hadoop.hbase.CompareOperator;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
-import org.apache.hadoop.hbase.filter.CompareFilter;
 import org.apache.hadoop.hbase.filter.Filter;
 import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
 import org.apache.hadoop.hbase.util.Bytes;
@@ -96,7 +96,7 @@ public class TestBaillisAnomaliesWithTXs extends OmidTestBase 
{
 
         // 1) select * from test where value = 30; -- T1. Returns nothing
         Scan scan = new Scan();
-        Filter f = new SingleColumnValueFilter(famName, colName, 
CompareFilter.CompareOp.EQUAL, Bytes.toBytes(30));
+        Filter f = new SingleColumnValueFilter(famName, colName, 
CompareOperator.EQUAL, Bytes.toBytes(30));
         scan.setFilter(f);
         ResultScanner tx1Scanner = txTable.getScanner(tx1, scan);
         assertNull(tx1Scanner.next());
@@ -152,7 +152,7 @@ public class TestBaillisAnomaliesWithTXs extends 
OmidTestBase {
 
         // 2) delete from test where value = 20; -- T2, BLOCKS
         Scan scan = new Scan();
-        Filter f = new SingleColumnValueFilter(famName, colName, 
CompareFilter.CompareOp.EQUAL, Bytes.toBytes(20));
+        Filter f = new SingleColumnValueFilter(famName, colName, 
CompareOperator.EQUAL, Bytes.toBytes(20));
         scan.setFilter(f);
         ResultScanner tx2Scanner = txTable.getScanner(tx2, scan);
         // assertEquals(tx2Scanner.next(100).length, 1);
@@ -209,7 +209,7 @@ public class TestBaillisAnomaliesWithTXs extends 
OmidTestBase {
         Transaction tx1 = tm.begin();
         Transaction tx2 = tm.begin();
 
-        Scan scan = new Scan(rowId1, rowId1);
+        Scan scan = new Scan().withStartRow(rowId1).withStopRow(rowId1, true);
         scan.addColumn(famName, colName);
 
         // 1) select * from test where id = 1; -- T1
@@ -285,7 +285,7 @@ public class TestBaillisAnomaliesWithTXs extends 
OmidTestBase {
         Transaction tx1 = tm.begin();
         Transaction tx2 = tm.begin();
 
-        Scan rowId1Scan = new Scan(rowId1, rowId1);
+        Scan rowId1Scan = new Scan().withStartRow(rowId1).withStopRow(rowId1, 
true);
         rowId1Scan.addColumn(famName, colName);
 
         // 1) select * from test where id = 1; -- T1. Shows 1 => 10
@@ -317,7 +317,7 @@ public class TestBaillisAnomaliesWithTXs extends 
OmidTestBase {
             count++;
         }
 
-        Scan rowId2Scan = new Scan(rowId2, rowId2);
+        Scan rowId2Scan = new Scan().withStartRow(rowId2).withStopRow(rowId2, 
true);
         rowId2Scan.addColumn(famName, colName);
 
         // 3) select * from test where id = 2; -- T2
@@ -404,7 +404,7 @@ public class TestBaillisAnomaliesWithTXs extends 
OmidTestBase {
 
         // 6) delete from test where value = 20; -- T1. Prints
         // "ERROR: could not serialize access due to concurrent update"
-        Filter f = new SingleColumnValueFilter(famName, colName, 
CompareFilter.CompareOp.EQUAL, Bytes.toBytes(20));
+        Filter f = new SingleColumnValueFilter(famName, colName, 
CompareOperator.EQUAL, Bytes.toBytes(20));
         Scan checkFor20 = new Scan();
         checkFor20.setFilter(f);
         ResultScanner checkFor20Scanner = txTable.getScanner(tx1, checkFor20);
@@ -446,7 +446,7 @@ public class TestBaillisAnomaliesWithTXs extends 
OmidTestBase {
         Transaction tx1 = tm.begin();
         Transaction tx2 = tm.begin();
 
-        Scan rowId12Scan = new Scan(rowId1, rowId3);
+        Scan rowId12Scan = new Scan().withStartRow(rowId1).withStopRow(rowId3);
         rowId12Scan.addColumn(famName, colName);
 
         // 1) select * from test where id in (1,2); -- T1
@@ -534,7 +534,7 @@ public class TestBaillisAnomaliesWithTXs extends 
OmidTestBase {
         Transaction tx1 = tm.begin();
         Transaction tx2 = tm.begin();
 
-        Filter f = new SingleColumnValueFilter(famName, colName, 
CompareFilter.CompareOp.EQUAL, Bytes.toBytes("30"));
+        Filter f = new SingleColumnValueFilter(famName, colName, 
CompareOperator.EQUAL, Bytes.toBytes("30"));
         Scan value30 = new Scan();
         value30.setFilter(f);
         value30.addColumn(famName, colName);
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestBasicTransaction.java
 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestBasicTransaction.java
index 831f0204..8530ac25 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestBasicTransaction.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestBasicTransaction.java
@@ -65,14 +65,14 @@ public class TestBasicTransaction extends OmidTestBase {
         tt.close();
 
         // Checks
-        Get getResultRow1 = new Get(rowName1).setMaxVersions(1);
+        Get getResultRow1 = new Get(rowName1).readVersions(1);
         Result result1 = tt.getHTable().get(getResultRow1);
         byte[] val1 = result1.getValue(famName1, colName1);
         assertTrue(Bytes.equals(dataValue1, result1.getValue(famName1, 
colName1)),
                 "Unexpected value for row 1 in col 1: " + 
Bytes.toString(val1));
         long tsRow1 = result1.rawCells()[0].getTimestamp();
 
-        Get getResultRow2 = new Get(rowName2).setMaxVersions(1);
+        Get getResultRow2 = new Get(rowName2).readVersions(1);
         Result result2 = tt.getHTable().get(getResultRow2);
         byte[] val2 = result2.getValue(famName1, colName1);
         assertTrue(Bytes.equals(dataValue2, result2.getValue(famName1, 
colName1)),
@@ -125,7 +125,7 @@ public class TestBasicTransaction extends OmidTestBase {
         tt.close();
 
         // Checks
-        Get getResultRow1 = new Get(rowName1).setMaxVersions(2);
+        Get getResultRow1 = new Get(rowName1).readVersions(2);
         Result result1 = tt.getHTable().get(getResultRow1);
         byte[] val1 = result1.getValue(famName1, colName1);
         assertTrue(Bytes.equals(dataValue3, result1.getValue(famName1, 
colName1)),
@@ -134,7 +134,7 @@ public class TestBasicTransaction extends OmidTestBase {
         long lastTsRow1 = result1.rawCells()[0].getTimestamp();
         long previousTsRow1 = result1.rawCells()[1].getTimestamp();
 
-        Get getResultRow2 = new Get(rowName2).setMaxVersions(2);
+        Get getResultRow2 = new Get(rowName2).readVersions(2);
         Result result2 = tt.getHTable().get(getResultRow2);
         byte[] val2 = result2.getValue(famName1, colName1);
         assertTrue(Bytes.equals(dataValue4, result2.getValue(famName1, 
colName1)),
@@ -178,7 +178,7 @@ public class TestBasicTransaction extends OmidTestBase {
         tt.put(t2, p);
         tm.commit(t2);
 
-        Get g = new Get(row).setMaxVersions(1);
+        Get g = new Get(row).readVersions(1);
         Result r = tt.getHTable().get(g);
         assertTrue(Bytes.equals(data2, r.getValue(fam, col)),
                 "Unexpected value for read: " + Bytes.toString(r.getValue(fam, 
col)));
@@ -216,7 +216,7 @@ public class TestBasicTransaction extends OmidTestBase {
         }
         Transaction tread = tm.begin();
 
-        Get g = new Get(row).setMaxVersions(1);
+        Get g = new Get(row).readVersions(1);
         Result r = tt.getHTable().get(g);
         assertTrue(Bytes.equals(data2, r.getValue(fam, col)),
                 "Unexpected value for read: " + Bytes.toString(r.getValue(fam, 
col)));
@@ -253,7 +253,7 @@ public class TestBasicTransaction extends OmidTestBase {
         tt.put(t2, p);
 
         Transaction tread = tm.begin();
-        Get g = new Get(row).setMaxVersions(1);
+        Get g = new Get(row).readVersions(1);
         Result r = tt.get(tread, g);
         assertTrue(Bytes.equals(data1, r.getValue(fam, col)),
                 "Unexpected value for SI read " + tread + ": " + 
Bytes.toString(r.getValue(fam, col)));
@@ -314,7 +314,7 @@ public class TestBasicTransaction extends OmidTestBase {
         txTable.put(tx2, p);
 
         Transaction scanTx = tm.begin(); // This is the concurrent 
transactional scanner
-        ResultScanner rs = txTable.getScanner(scanTx, new 
Scan().setStartRow(startRow).setStopRow(stopRow));
+        ResultScanner rs = txTable.getScanner(scanTx, new 
Scan().withStartRow(startRow).withStopRow(stopRow));
         Result r = rs.next(); // Exercise the next() method
         int i = 0;
         while (r != null) {
@@ -335,7 +335,7 @@ public class TestBasicTransaction extends OmidTestBase {
 
         int modifiedRows = 0;
         Transaction newScanTx = tm.begin();
-        ResultScanner newRS = txTable.getScanner(newScanTx, new 
Scan().setStartRow(startRow).setStopRow(stopRow));
+        ResultScanner newRS = txTable.getScanner(newScanTx, new 
Scan().withStartRow(startRow).withStopRow(stopRow));
         Result[] results = newRS.next(10); // Exercise the next(numRows) method
         for (Result result : results) {
             if (Bytes.equals(data2, result.getValue(fam, col))) {
@@ -347,7 +347,7 @@ public class TestBasicTransaction extends OmidTestBase {
 
         // Same check as before but checking that the results are correct when 
retrieved through the Scanner Iterator
         modifiedRows = 0;
-        ResultScanner iterableRS = txTable.getScanner(newScanTx, new 
Scan().setStartRow(startRow).setStopRow(stopRow));
+        ResultScanner iterableRS = txTable.getScanner(newScanTx, new 
Scan().withStartRow(startRow).withStopRow(stopRow));
         for (Result res : iterableRS) {
             if (Bytes.equals(data2, res.getValue(fam, col))) {
                 LOG.trace("Modified :" + Bytes.toString(res.getRow()));
@@ -403,7 +403,7 @@ public class TestBasicTransaction extends OmidTestBase {
         txTable.put(tx2, p);
 
         int modifiedRows = 0;
-        ResultScanner rs = txTable.getScanner(tx2, new 
Scan().setStartRow(startRow).setStopRow(stopRow));
+        ResultScanner rs = txTable.getScanner(tx2, new 
Scan().withStartRow(startRow).withStopRow(stopRow));
         Result r = rs.next();
         while (r != null) {
             if (Bytes.equals(data2, r.getValue(fam, col))) {
@@ -421,7 +421,7 @@ public class TestBasicTransaction extends OmidTestBase {
         tm.rollback(tx2);
 
         Transaction txScan = tm.begin();
-        rs = txTable.getScanner(txScan, new 
Scan().setStartRow(startRow).setStopRow(stopRow));
+        rs = txTable.getScanner(txScan, new 
Scan().withStartRow(startRow).withStopRow(stopRow));
         r = rs.next();
         while (r != null) {
             LOG.trace("Scan1 :" + Bytes.toString(r.getRow()) + " => " + 
Bytes.toString(r.getValue(fam, col)));
@@ -431,7 +431,7 @@ public class TestBasicTransaction extends OmidTestBase {
         }
 
         // Same check as before but checking that the results are correct when 
retrieved through the Scanner Iterator
-        ResultScanner iterableRS = txTable.getScanner(txScan, new 
Scan().setStartRow(startRow).setStopRow(stopRow));
+        ResultScanner iterableRS = txTable.getScanner(txScan, new 
Scan().withStartRow(startRow).withStopRow(stopRow));
         for (Result result : iterableRS) {
             assertTrue(Bytes.equals(data1, result.getValue(fam, col)),
                     "Unexpected value for SI scan " + txScan + ": " + 
Bytes.toString(result.getValue(fam, col)));
@@ -469,7 +469,7 @@ public class TestBasicTransaction extends OmidTestBase {
 
         Transaction tx3 = tm.begin();
 
-        Get g = new Get(rowName1).setMaxVersions();
+        Get g = new Get(rowName1).readAllVersions();
         g.addColumn(famName1, colName1);
         Result r = tt.get(tx3, g);
         assertEquals(r.size(), 0, "Unexpected size for read.");
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 972f5564..f05fc0a2 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
@@ -88,7 +88,7 @@ public class TestCheckpoint extends OmidTestBase {
         row1.addColumn(famName1, colName1, dataValue1);
         tt.put(tx1, row1);
 
-        Get g = new Get(rowName1).setMaxVersions(1);
+        Get g = new Get(rowName1).readVersions(1);
 
         Result r = tt.get(tx1, g);
         assertTrue(Bytes.equals(dataValue1, r.getValue(famName1, colName1)),
@@ -169,7 +169,7 @@ public class TestCheckpoint extends OmidTestBase {
 
         HBaseTransaction hbaseTx1 = enforceHBaseTransactionAsParam(tx1);
 
-        Get g = new Get(rowName1).setMaxVersions(1);
+        Get g = new Get(rowName1).readVersions(1);
 
         Result r = tt.get(tx1, g);
         assertTrue(Bytes.equals(dataValue0, r.getValue(famName1, colName1)),
@@ -227,7 +227,7 @@ public class TestCheckpoint extends OmidTestBase {
         
         HBaseTransaction hbaseTx1 = enforceHBaseTransactionAsParam(tx1);
 
-        Get g = new Get(rowName1).setMaxVersions(100);
+        Get g = new Get(rowName1).readVersions(100);
 
         Result r = tt.get(tx1, g);
         assertTrue(Bytes.equals(dataValue0, r.getValue(famName1, colName1)),
@@ -237,7 +237,7 @@ public class TestCheckpoint extends OmidTestBase {
         row1.addColumn(famName1, colName1, dataValue1);
         tt.put(tx1, row1);
 
-        g = new Get(rowName1).setMaxVersions(100);
+        g = new Get(rowName1).readVersions(100);
 
         r = tt.get(tx1, g);
         assertTrue(Bytes.equals(dataValue1, r.getValue(famName1, colName1)),
@@ -291,7 +291,7 @@ public class TestCheckpoint extends OmidTestBase {
         row1.addColumn(famName1, colName1, dataValue1);
         tt.put(tx1, row1);
 
-        Get g = new Get(rowName1).setMaxVersions(1);
+        Get g = new Get(rowName1).readVersions(1);
 
         Result r = tt.get(tx1, g);
         assertTrue(Bytes.equals(dataValue1, r.getValue(famName1, colName1)),
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestDeletion.java 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestDeletion.java
index 3c4387d2..79eb5628 100644
--- a/hbase-client/src/test/java/org/apache/omid/transaction/TestDeletion.java
+++ b/hbase-client/src/test/java/org/apache/omid/transaction/TestDeletion.java
@@ -443,7 +443,7 @@ public class TestDeletion extends OmidTestBase {
         // Check data has not been written to HBase
         // --------------------------------------------------------------------
         Get get = new Get(Bytes.toBytes("row1"));
-        get.setTimeStamp(deleteTx.getTransactionId());
+        get.setTimestamp(deleteTx.getTransactionId());
         Result result = txTable.getHTable().get(get);
         assertTrue(result.isEmpty());
 
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 e3e4dc0b..be4084d2 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
@@ -36,8 +36,8 @@ import org.apache.curator.framework.recipes.cache.NodeCache;
 import org.apache.curator.framework.recipes.cache.NodeCacheListener;
 import org.apache.curator.retry.ExponentialBackoffRetry;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.util.Bytes;
@@ -162,7 +162,7 @@ public class TestEndToEndScenariosWithHA extends 
OmidTestBase {
     @AfterMethod(alwaysRun = true, timeOut = 60_000)
     public void cleanup() throws Exception {
         LOG.info("Cleanup");
-        HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
+        Admin admin = hBaseUtils.getAdmin();
         deleteTable(admin, 
TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME));
         
hBaseUtils.createTable(TableName.valueOf((DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME)),
                                new 
byte[][]{DEFAULT_TIMESTAMP_STORAGE_CF_NAME.getBytes()},
@@ -236,7 +236,7 @@ public class TestEndToEndScenariosWithHA extends 
OmidTestBase {
             leaseManager1.pausedInStillInLeasePeriod();
 
             // Read interleaved and check the values writen by tx 1
-            Get getRow1 = new Get(row1).setMaxVersions(1);
+            Get getRow1 = new Get(row1).readVersions(1);
             getRow1.addColumn(TEST_FAMILY.getBytes(), qualifier1);
             Result r = txTable.get(interleavedReadTx, getRow1);
             assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier1), 
initialData,
@@ -255,7 +255,7 @@ public class TestEndToEndScenariosWithHA extends 
OmidTestBase {
             }
 
             // Read interleaved and check the values written by tx 1
-            Get getRow2 = new Get(row2).setMaxVersions(1);
+            Get getRow2 = new Get(row2).readVersions(1);
             r = txTable.get(interleavedReadTx, getRow2);
             assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier2), 
initialData,
                          "Unexpected value for SI read R2Q2" + 
interleavedReadTx + ": "
@@ -346,12 +346,12 @@ public class TestEndToEndScenariosWithHA extends 
OmidTestBase {
             HBaseTransaction tx2 = (HBaseTransaction) tm.begin();
             LOG.info("Starting Tx {} writing values for cells ({}, {}) ", tx2, 
Bytes.toString(data1_q1),
                      Bytes.toString(data1_q2));
-            Get getData1R1Q1 = new Get(row1).setMaxVersions(1);
+            Get getData1R1Q1 = new Get(row1).readVersions(1);
             Result r = txTable.get(tx2, getData1R1Q1);
             assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier1), 
initialData,
                          "Unexpected value for SI read R1Q1" + tx2 + ": "
                                  + 
Bytes.toString(r.getValue(TEST_FAMILY.getBytes(), qualifier1)));
-            Get getData1R2Q2 = new Get(row2).setMaxVersions(1);
+            Get getData1R2Q2 = new Get(row2).readVersions(1);
             r = txTable.get(tx2, getData1R2Q2);
             assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier2), 
initialData,
                          "Unexpected value for SI read R1Q1" + tx2 + ": "
@@ -378,13 +378,13 @@ public class TestEndToEndScenariosWithHA extends 
OmidTestBase {
             throws IOException, RollbackException {
         Transaction readTx = tm.begin();
         LOG.info("Starting Read Tx {} for checking cell values", 
readTx.getTransactionId());
-        Get getRow1 = new Get(row1).setMaxVersions(1);
+        Get getRow1 = new Get(row1).readVersions(1);
         getRow1.addColumn(TEST_FAMILY.getBytes(), qualifier1);
         Result r = txTable.get(readTx, getRow1);
         assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier1), 
expectedDataR1Q1,
                      "Unexpected value for SI read R1Q1" + readTx + ": " + 
Bytes
                              .toString(r.getValue(TEST_FAMILY.getBytes(), 
qualifier1)));
-        Get getRow2 = new Get(row2).setMaxVersions(1);
+        Get getRow2 = new Get(row2).readVersions(1);
         r = txTable.get(readTx, getRow2);
         assertEquals(r.getValue(TEST_FAMILY.getBytes(), qualifier2), 
expectedDataR2Q2,
                      "Unexpected value for SI read R2Q2" + readTx + ": " + 
Bytes
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 c908bafc..07cf0217 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
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.spy;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNull;
 
+import org.apache.hadoop.hbase.CompareOperator;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
@@ -30,7 +31,6 @@ import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.filter.BinaryComparator;
 import org.apache.hadoop.hbase.filter.ColumnPrefixFilter;
-import org.apache.hadoop.hbase.filter.CompareFilter;
 import org.apache.hadoop.hbase.filter.Filter;
 import org.apache.hadoop.hbase.filter.ValueFilter;
 import org.apache.hadoop.hbase.util.Bytes;
@@ -65,7 +65,7 @@ public class TestFilters extends OmidTestBase {
 
     @Test(timeOut = 60_000)
     public void testGetWithValueFilter(ITestContext context) throws Exception {
-        testGet(context, new ValueFilter(CompareFilter.CompareOp.EQUAL, new 
BinaryComparator(col1)));
+        testGet(context, new ValueFilter(CompareOperator.EQUAL, new 
BinaryComparator(col1)));
     }
 
     private void testGet(ITestContext context, Filter f) throws Exception {
@@ -114,7 +114,7 @@ public class TestFilters extends OmidTestBase {
 
     @Test(timeOut = 60_000)
     public void testScanWithValueFilter(ITestContext context) throws Exception 
{
-        testScan(context, new ValueFilter(CompareFilter.CompareOp.EQUAL, new 
BinaryComparator(col1)));
+        testScan(context, new ValueFilter(CompareOperator.EQUAL, new 
BinaryComparator(col1)));
     }
 
     private void testScan(ITestContext context, Filter f) throws Exception {
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 3de0c727..7d2fa76b 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
@@ -48,20 +48,20 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
-
+import java.util.ArrayList;
 
 import org.apache.hadoop.conf.Configuration;
 
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MiniHBaseCluster;
-
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
-
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 
 import org.apache.omid.TestUtils;
 
@@ -150,14 +150,21 @@ public class TestOmidLLRaces {
     }
 
     private void createTestTable() throws IOException {
-        HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
-        HTableDescriptor test_table_desc = new 
HTableDescriptor(TableName.valueOf(TEST_TABLE));
-        HColumnDescriptor datafam = new HColumnDescriptor(TEST_FAMILY);
-        HColumnDescriptor datafam2 = new HColumnDescriptor(TEST_FAMILY2);
-        datafam.setMaxVersions(Integer.MAX_VALUE);
-        datafam2.setMaxVersions(Integer.MAX_VALUE);
-        test_table_desc.addFamily(datafam);
-        test_table_desc.addFamily(datafam2);
+        Admin admin = hBaseUtils.getAdmin();
+        ArrayList<ColumnFamilyDescriptor> fams = new ArrayList<>();
+        fams.add(ColumnFamilyDescriptorBuilder
+                .newBuilder(Bytes.toBytes(TEST_FAMILY))
+                .setMaxVersions(Integer.MAX_VALUE)
+                .build());
+        fams.add(ColumnFamilyDescriptorBuilder
+                .newBuilder(Bytes.toBytes(TEST_FAMILY2))
+                .setMaxVersions(Integer.MAX_VALUE)
+                .build());
+        TableDescriptor test_table_desc = TableDescriptorBuilder
+                .newBuilder(TableName.valueOf(TEST_TABLE))
+                .setColumnFamilies(fams)
+                .build();
+
         admin.createTable(test_table_desc);
     }
 
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 12e2d50a..f73283d7 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
@@ -42,9 +42,9 @@ import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
@@ -269,7 +269,7 @@ public class TestShadowCells extends OmidTestBase {
             @Override
             public ListenableFuture<Void> answer(InvocationOnMock invocation) 
throws Throwable {
                 table.flushCommits();
-                HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
+                Admin admin = hBaseUtils.getAdmin();
                 admin.disableTable(TableName.valueOf(table.getTableName()));
                 return (ListenableFuture<Void>) invocation.callRealMethod();
             }
@@ -284,7 +284,7 @@ public class TestShadowCells extends OmidTestBase {
         tm.commit(tx); // Tx effectively commits but the post Commit Actions 
failed when updating the shadow cells
 
         // Re-enable table to allow the required checks below
-        HBaseAdmin admin = hBaseUtils.getHBaseAdmin();
+        Admin admin = hBaseUtils.getAdmin();
         admin.enableTable(TableName.valueOf(table.getTableName()));
 
         // 1) check that shadow cell is not created...
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 36fb3b50..81832d15 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
@@ -70,7 +70,7 @@ public class TestTTableBehaviour {
 
         // Test that get fails when a timestamp is specified
         Get get = new Get(row);
-        get.setTimeStamp(randomTimestampValue);
+        get.setTimestamp(randomTimestampValue);
         try {
             tt.get(tx, get);
             fail("Should have thrown an IllegalArgumentException due to 
timestamp specification");
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 f7438571..42eb5895 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
@@ -23,7 +23,7 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.testng.Assert.assertEquals;
 
-import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
@@ -100,7 +100,7 @@ public class TestTransactionCleanup extends OmidTestBase {
 
             // So now we have to check that the Delete marker introduced by the
             // cleanup process is there
-            Scan scan = new Scan(row);
+            Scan scan = new Scan().withStartRow(row);
             scan.setRaw(true); // Raw scan to obtain the deleted cells
             ResultScanner resultScanner = txTable.getHTable().getScanner(scan);
             int resultCount = 0;
@@ -108,8 +108,8 @@ public class TestTransactionCleanup extends OmidTestBase {
                 assertEquals(result.size(), 2); // Size == 2, including the 
put and delete from cleanup
                 LOG.trace("Result {}", result);
                 // The last element of the qualifier should have the Delete 
marker
-                byte encodedType = result.getColumnLatestCell(family, 
qual).getTypeByte();
-                assertEquals(KeyValue.Type.codeToType(encodedType), 
KeyValue.Type.Delete);
+                Cell.Type encodedType = result.getColumnLatestCell(family, 
qual).getType();
+                assertEquals(encodedType, Cell.Type.Delete);
                 resultCount++;
             }
             assertEquals(resultCount, ROWS_MODIFIED);
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestTransactionConflict.java
 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestTransactionConflict.java
index 71810401..4960f1ad 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestTransactionConflict.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestTransactionConflict.java
@@ -21,10 +21,10 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.Delete;
@@ -34,6 +34,8 @@ import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.Table;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -93,11 +95,14 @@ public class TestTransactionConflict extends OmidTestBase {
             TableName htable2 = TableName.valueOf(table2);
 
             if (!admin.tableExists(htable2)) {
-                HTableDescriptor desc = new HTableDescriptor(table2Name);
-                HColumnDescriptor datafam = new HColumnDescriptor(TEST_FAMILY);
-                datafam.setMaxVersions(Integer.MAX_VALUE);
-                desc.addFamily(datafam);
-    
+                ColumnFamilyDescriptor datafam = ColumnFamilyDescriptorBuilder
+                        .newBuilder(Bytes.toBytes(TEST_FAMILY))
+                        .setMaxVersions(Integer.MAX_VALUE)
+                        .build();
+                TableDescriptor desc = TableDescriptorBuilder
+                        .newBuilder(table2Name)
+                        .setColumnFamily(datafam)
+                        .build();
                 admin.createTable(desc);
             }
     
@@ -175,7 +180,7 @@ public class TestTransactionConflict extends OmidTestBase {
         p.addColumn(fam, col, data1);
         tt.put(t1, p);
 
-        Get g = new Get(row).setMaxVersions();
+        Get g = new Get(row).readAllVersions();
         g.addColumn(fam, col);
         Result r = tt.getHTable().get(g);
         assertEquals(r.size(), 1, "Unexpected size for read.");
@@ -300,15 +305,18 @@ public class TestTransactionConflict extends OmidTestBase 
{
         TableName table2Name = TableName.valueOf(table2);
 
         try (Connection conn = ConnectionFactory.createConnection(hbaseConf);
-             Admin admin = conn.getAdmin()) {
+            Admin admin = conn.getAdmin()) {
             TableName htable2 = TableName.valueOf(table2);
 
             if (!admin.tableExists(htable2)) {
-                HTableDescriptor desc = new HTableDescriptor(table2Name);
-                HColumnDescriptor datafam = new HColumnDescriptor(TEST_FAMILY);
-                datafam.setMaxVersions(Integer.MAX_VALUE);
-                desc.addFamily(datafam);
-
+                ColumnFamilyDescriptor datafam = ColumnFamilyDescriptorBuilder
+                        .newBuilder(Bytes.toBytes(TEST_FAMILY))
+                        .setMaxVersions(Integer.MAX_VALUE)
+                        .build();
+                TableDescriptor desc = TableDescriptorBuilder
+                        .newBuilder(table2Name)
+                        .setColumnFamily(datafam)
+                        .build();
                 admin.createTable(desc);
             }
 
@@ -337,7 +345,7 @@ public class TestTransactionConflict extends OmidTestBase {
         p.addColumn(fam, col, data1);
         tt.put(t1, p);
 
-        Get g = new Get(row).setMaxVersions();
+        Get g = new Get(row).readAllVersions();
         g.addColumn(fam, col);
         Result r = tt.getHTable().get(g);
         assertEquals(r.size(), 1, "Unexpected size for read.");
@@ -563,7 +571,7 @@ public class TestTransactionConflict extends OmidTestBase {
         p.addColumn(fam, col, data1);
         tt1.put(t1, p);
 
-        Get g = new Get(row).setMaxVersions();
+        Get g = new Get(row).readAllVersions();
         g.addColumn(fam, col);
         Result r = tt1.getHTable().get(g);
         assertEquals(r.size(), 1, "Unexpected size for read.");
@@ -585,7 +593,7 @@ public class TestTransactionConflict extends OmidTestBase {
         assertTrue(Bytes.equals(data2, r.getValue(fam, col)),
                    "Unexpected value for read: " + 
Bytes.toString(r.getValue(fam, col)));
 
-        Get g1 = new Get(row1).setMaxVersions();
+        Get g1 = new Get(row1).readAllVersions();
         g1.addColumn(fam, col);
         r = tt1.getHTable().get(g1);
         assertEquals(r.size(), 1, "Unexpected size for read.");
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestTxMgrFailover.java 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestTxMgrFailover.java
index 4dad9bbf..8b05921e 100644
--- 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestTxMgrFailover.java
+++ 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestTxMgrFailover.java
@@ -110,7 +110,7 @@ public class TestTxMgrFailover extends OmidTestBase {
             put.addColumn(TEST_FAMILY.getBytes(), qualifier, data1);
             txTable.put(tx1, put);
             assertEquals(hBaseUtils.countRows(txTable.getHTable()), 1, "Rows 
should be 1!");
-            checkOperationSuccessOnCell(txTable.getHTable(), 
KeyValue.Type.Put, data1, TEST_TABLE.getBytes(), row1, TEST_FAMILY.getBytes(),
+            checkOperationSuccessOnCell(txTable.getHTable(), Cell.Type.Put, 
data1, TEST_TABLE.getBytes(), row1, TEST_FAMILY.getBytes(),
                     qualifier);
 
             try {
@@ -125,7 +125,7 @@ public class TestTxMgrFailover extends OmidTestBase {
             assertEquals(tx1.getStatus(), Status.ROLLEDBACK);
             assertEquals(tx1.getCommitTimestamp(), 0);
             // Check the cleanup process did its job and the committed data is 
NOT there
-            checkOperationSuccessOnCell(txTable.getHTable(), 
KeyValue.Type.Delete, null, TEST_TABLE.getBytes(), row1, TEST_FAMILY.getBytes(),
+            checkOperationSuccessOnCell(txTable.getHTable(), Cell.Type.Delete, 
null, TEST_TABLE.getBytes(), row1, TEST_FAMILY.getBytes(),
                     qualifier);
         }
 
@@ -136,7 +136,7 @@ public class TestTxMgrFailover extends OmidTestBase {
     // 
----------------------------------------------------------------------------------------------------------------
 
     protected void checkOperationSuccessOnCell(Table table,
-                                               KeyValue.Type targetOp,
+                                               Cell.Type targetOp,
                                                @Nullable byte[] expectedValue,
                                                byte[] tableName,
                                                byte[] row,
@@ -144,13 +144,13 @@ public class TestTxMgrFailover extends OmidTestBase {
                                                byte[] col) {
 
         try {
-            Get get = new Get(row).setMaxVersions(1);
+            Get get = new Get(row).readVersions(1);
             Result result = table.get(get);
             Cell latestCell = result.getColumnLatestCell(fam, col);
 
             switch (targetOp) {
                 case Put:
-                    assertEquals(latestCell.getTypeByte(), targetOp.getCode());
+                    assertEquals(latestCell.getType(), targetOp);
                     assertEquals(CellUtil.cloneValue(latestCell), 
expectedValue);
                     LOG.trace("Value for " + Bytes.toString(tableName) + ":"
                             + Bytes.toString(row) + ":" + Bytes.toString(fam) 
+ ":"
diff --git 
a/hbase-client/src/test/java/org/apache/omid/transaction/TestUpdateScan.java 
b/hbase-client/src/test/java/org/apache/omid/transaction/TestUpdateScan.java
index 255a12de..658aa929 100644
--- a/hbase-client/src/test/java/org/apache/omid/transaction/TestUpdateScan.java
+++ b/hbase-client/src/test/java/org/apache/omid/transaction/TestUpdateScan.java
@@ -20,6 +20,7 @@ package org.apache.omid.transaction;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;
 
+import org.apache.hadoop.hbase.CompareOperator;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
@@ -72,13 +73,12 @@ public class TestUpdateScan extends OmidTestBase {
             }
             tm.commit(t);
 
-            Scan s = new Scan(startKey);
-            CompareFilter.CompareOp op = CompareFilter.CompareOp.LESS_OR_EQUAL;
-            RowFilter toFilter = new RowFilter(op, new 
BinaryPrefixComparator(stopKey));
+            Scan s = new Scan().withStartRow(startKey);
+            RowFilter toFilter = new RowFilter(CompareOperator.LESS_OR_EQUAL, 
new BinaryPrefixComparator(stopKey));
             boolean startInclusive = true;
             if (!startInclusive) {
                 FilterList filters = new 
FilterList(FilterList.Operator.MUST_PASS_ALL);
-                filters.addFilter(new 
RowFilter(CompareFilter.CompareOp.GREATER, new 
BinaryPrefixComparator(startKey)));
+                filters.addFilter(new RowFilter(CompareOperator.GREATER, new 
BinaryPrefixComparator(startKey)));
                 filters.addFilter(new WhileMatchFilter(toFilter));
                 s.setFilter(filters);
             } else {
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 c096ea43..6ef9146f 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
@@ -30,6 +30,7 @@ import javax.inject.Inject;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.CheckAndMutate;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.Delete;
@@ -144,7 +145,10 @@ public class HBaseCommitTable implements CommitTable {
                 Put put = new Put(transactionRow, startTimestamp);
                 byte[] value = encodeCommitTimestamp(startTimestamp, 
commitTimestamp);
                 put.addColumn(commitTableFamily, COMMIT_TABLE_QUALIFIER, 
value);
-                return table.checkAndPut(transactionRow, commitTableFamily, 
INVALID_TX_QUALIFIER, null, put);
+                CheckAndMutate checkAndPut = 
CheckAndMutate.newBuilder(transactionRow)
+                        .ifNotExists(commitTableFamily, INVALID_TX_QUALIFIER)
+                        .build(put);
+                return table.checkAndMutate(checkAndPut).isSuccess();
             }
 
         }
@@ -262,7 +266,10 @@ public class HBaseCommitTable implements CommitTable {
                 // timestamp is added and read by a transaction, then snapshot 
isolation
                 // might not be hold (due to the invalidation)
                 // TODO: Decide what we should we do if we can not contact the 
commit table. loop till succeed???
-                boolean result = table.checkAndPut(row, commitTableFamily, 
COMMIT_TABLE_QUALIFIER, null, invalidationPut);
+                CheckAndMutate checkAndPut = CheckAndMutate.newBuilder(row)
+                        .ifNotExists(commitTableFamily, COMMIT_TABLE_QUALIFIER)
+                        .build(invalidationPut);
+                boolean result = table.checkAndMutate(checkAndPut).isSuccess();
                 f.set(result);
             } catch (IOException ioe) {
                 f.setException(ioe);
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 35d40db5..07e4fe54 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
@@ -21,21 +21,25 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.concurrent.Future;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MiniHBaseCluster;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.Table;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.omid.committable.CommitTable;
 import org.apache.omid.committable.CommitTable.Client;
 import org.apache.omid.committable.CommitTable.CommitTimestamp;
@@ -90,30 +94,33 @@ public class TestHBaseCommitTable {
 
     @BeforeMethod
     public void setUp() throws Exception {
-        Admin admin = testutil.getHBaseAdmin();
+        Admin admin = testutil.getAdmin();
 
         if (!admin.tableExists(TableName.valueOf(TEST_TABLE))) {
-            HTableDescriptor desc = new HTableDescriptor(TABLE_NAME);
 
-            HColumnDescriptor datafam = new 
HColumnDescriptor(commitTableFamily);
-            datafam.setMaxVersions(Integer.MAX_VALUE);
-            desc.addFamily(datafam);
-
-            HColumnDescriptor lowWatermarkFam = new 
HColumnDescriptor(lowWatermarkFamily);
-            lowWatermarkFam.setMaxVersions(Integer.MAX_VALUE);
-            desc.addFamily(lowWatermarkFam);
-
-            // Move to HBaseSims for 2.0 support
-            // For 2.0, use TableDescriptorBuilder to build TableDescriptor
+            ArrayList<ColumnFamilyDescriptor> fams = new ArrayList<>();
+            fams.add(ColumnFamilyDescriptorBuilder
+                    .newBuilder(commitTableFamily)
+                    .setMaxVersions(Integer.MAX_VALUE)
+                    .build());
+            fams.add(ColumnFamilyDescriptorBuilder
+                .newBuilder(lowWatermarkFamily)
+                .setMaxVersions(Integer.MAX_VALUE)
+                .build());
+
+            TableDescriptor desc = TableDescriptorBuilder
+                    .newBuilder(TABLE_NAME)
+                    .setColumnFamilies(fams)
+                    .build();
             admin.createTable(desc);
         }
 
         if (admin.isTableDisabled(TableName.valueOf(TEST_TABLE))) {
             admin.enableTable(TableName.valueOf(TEST_TABLE));
         }
-        HTableDescriptor[] tables = admin.listTables();
-        for (HTableDescriptor t : tables) {
-            LOG.info(t.getNameAsString());
+        List<TableDescriptor> tables = admin.listTableDescriptors();
+        for (TableDescriptor t : tables) {
+            LOG.info(t.getTableName().getNameAsString());
         }
     }
 
@@ -121,7 +128,7 @@ public class TestHBaseCommitTable {
     public void tearDown() {
         try {
             LOG.info("tearing Down");
-            Admin admin = testutil.getHBaseAdmin();
+            Admin admin = testutil.getAdmin();
             admin.disableTable(TableName.valueOf(TEST_TABLE));
             admin.deleteTable(TableName.valueOf(TEST_TABLE));
 
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 635939e5..6b4ecf13 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
@@ -167,7 +167,7 @@ public class RegionSplitter {
             }
         }
         try {
-            return splitClass.asSubclass(SplitAlgorithm.class).newInstance();
+            return 
splitClass.asSubclass(SplitAlgorithm.class).getDeclaredConstructor().newInstance();
         } catch (Exception e) {
             throw new IOException("Problem loading split algorithm: ", e);
         }
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 d5536879..15ac1404 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
@@ -85,7 +85,7 @@ public final class CellUtils {
             throws IOException {
         Get get = new Get(row);
         get.addColumn(family, qualifier);
-        get.setTimeStamp(version);
+        get.setTimestamp(version);
 
         Result result = cellGetter.get(get);
 
@@ -402,7 +402,7 @@ public final class CellUtils {
             Cell otherCell = otherCellId.getCell();
 
             // Row comparison
-            if (!CellUtil.matchingRow(otherCell, cell)) {
+            if (!CellUtil.matchingRows(otherCell, cell)) {
                 return false;
             }
 
diff --git 
a/hbase-coprocessor/src/main/java/org/apache/hadoop/hbase/regionserver/CompactorScanner.java
 
b/hbase-coprocessor/src/main/java/org/apache/hadoop/hbase/regionserver/CompactorScanner.java
index 1c36859f..acb1ce6a 100644
--- 
a/hbase-coprocessor/src/main/java/org/apache/hadoop/hbase/regionserver/CompactorScanner.java
+++ 
b/hbase-coprocessor/src/main/java/org/apache/hadoop/hbase/regionserver/CompactorScanner.java
@@ -28,6 +28,7 @@ import 
org.apache.omid.committable.CommitTable.CommitTimestamp;
 import org.apache.omid.transaction.CellUtils;
 import org.apache.omid.transaction.CellInfo;
 import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.CellComparator;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.Get;
@@ -165,7 +166,7 @@ public class CompactorScanner implements InternalScanner {
             retainLastTimestampedCellsSaved(currentRowWorthValues, 
lastTimestampedCellsInRow);
 
             // 4) Sort the list
-            Collections.sort(currentRowWorthValues, KeyValue.COMPARATOR);
+            Collections.sort(currentRowWorthValues, 
CellComparator.getInstance());
         }
 
         // Chomp current row worth values up to the limit
@@ -192,7 +193,7 @@ public class CompactorScanner implements InternalScanner {
 
     @VisibleForTesting
     public boolean shouldRetainNonTransactionallyDeletedCell(Cell cell) {
-        return (CellUtil.isDelete(cell) || CellUtil.isDeleteFamily(cell))
+        return (CellUtil.isDelete(cell) || cell.getType() == 
Cell.Type.DeleteFamily)
                 &&
                 retainNonTransactionallyDeletedCells;
     }
@@ -232,7 +233,7 @@ public class CompactorScanner implements InternalScanner {
     private Result getShadowCell(byte[] row, byte[] family, byte[] qualifier, 
long timestamp) throws IOException {
         Get g = new Get(row);
         g.addColumn(family, qualifier);
-        g.setTimeStamp(timestamp);
+        g.setTimestamp(timestamp);
         Result r = hRegion.get(g);
         return r;
     }
diff --git 
a/hbase-coprocessor/src/main/java/org/apache/omid/transaction/CellSkipFilterBase.java
 
b/hbase-coprocessor/src/main/java/org/apache/omid/transaction/CellSkipFilterBase.java
index 52ebaedc..9560770a 100644
--- 
a/hbase-coprocessor/src/main/java/org/apache/omid/transaction/CellSkipFilterBase.java
+++ 
b/hbase-coprocessor/src/main/java/org/apache/omid/transaction/CellSkipFilterBase.java
@@ -19,8 +19,7 @@ package org.apache.omid.transaction;
 
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
-import org.apache.hadoop.hbase.KeyValue;
-import org.apache.hadoop.hbase.KeyValueUtil;
+import org.apache.hadoop.hbase.PrivateCellUtil;
 import org.apache.hadoop.hbase.filter.Filter;
 import org.apache.hadoop.hbase.filter.FilterBase;
 
@@ -28,17 +27,17 @@ import java.io.IOException;
 import java.util.List;
 
 /**
- * {@link Filter} that encapsulates another {@link Filter}. It remembers the 
last {@link KeyValue}
+ * {@link Filter} that encapsulates another {@link Filter}. It remembers the 
last {@link Cell}
  * for which the underlying filter returned the {@link ReturnCode#NEXT_COL} or 
{@link ReturnCode#INCLUDE_AND_NEXT_COL},
- * so that when {@link #filterKeyValue} is called again for the same {@link 
KeyValue} with different
+ * so that when {@link #filterCell} is called again for the same {@link Cell} 
with different
  * version, it returns {@link ReturnCode#NEXT_COL} directly without consulting 
the underlying {@link Filter}.
  * Please see TEPHRA-169 for more details.
  */
 
 public class CellSkipFilterBase extends FilterBase {
     private final Filter filter;
-    // remember the previous keyvalue processed by filter when the return code 
was NEXT_COL or INCLUDE_AND_NEXT_COL
-    private KeyValue skipColumn = null;
+    // remember the previous cell processed by filter when the return code was 
NEXT_COL or INCLUDE_AND_NEXT_COL
+    private Cell skipColumn = null;
 
     public CellSkipFilterBase(Filter filter) {
         this.filter = filter;
@@ -46,31 +45,37 @@ public class CellSkipFilterBase extends FilterBase {
 
     /**
      * Determines whether the current cell should be skipped. The cell will be 
skipped
-     * if the previous keyvalue had the same key as the current cell. This 
means filter already responded
-     * for the previous keyvalue with ReturnCode.NEXT_COL or 
ReturnCode.INCLUDE_AND_NEXT_COL.
+     * if the previous cell had the same key as the current cell. This means 
filter already responded
+     * for the previous cell with ReturnCode.NEXT_COL or 
ReturnCode.INCLUDE_AND_NEXT_COL.
      * @param cell the {@link Cell} to be tested for skipping
      * @return true is current cell should be skipped, false otherwise
      */
     private boolean skipCellVersion(Cell cell) {
         return skipColumn != null
-        && CellUtil.matchingRow(cell, skipColumn.getRowArray(), 
skipColumn.getRowOffset(),
-                skipColumn.getRowLength())
-                && CellUtil.matchingFamily(cell, skipColumn.getFamilyArray(), 
skipColumn.getFamilyOffset(),
-                skipColumn.getFamilyLength())
-                && CellUtil.matchingQualifier(cell, 
skipColumn.getQualifierArray(), skipColumn.getQualifierOffset(),
-                skipColumn.getQualifierLength());
+        && CellUtil.matchingRows(cell, skipColumn)
+                && CellUtil.matchingFamily(cell, skipColumn)
+                && CellUtil.matchingQualifier(cell, skipColumn);
     }
 
+    /**
+     * This deprecated method is implemented for backwards compatibility 
reasons.
+     * use {@link CellSkipFilterBase#filterKeyValue(Cell)}
+     */
     @Override
     public ReturnCode filterKeyValue(Cell cell) throws IOException {
+        return filterCell(cell);
+    }
+
+    @Override
+    public ReturnCode filterCell(Cell cell) throws IOException {
         if (skipCellVersion(cell)) {
             return ReturnCode.NEXT_COL;
         }
 
-        ReturnCode code = filter.filterKeyValue(cell);
+        ReturnCode code = filter.filterCell(cell);
         if (code == ReturnCode.NEXT_COL || code == 
ReturnCode.INCLUDE_AND_NEXT_COL) {
             // only store the reference to the keyvalue if we are returning 
NEXT_COL or INCLUDE_AND_NEXT_COL
-            skipColumn = KeyValueUtil.createFirstOnRow(cell.getRowArray(), 
cell.getRowOffset(), cell.getRowLength(),
+            skipColumn = PrivateCellUtil.createFirstOnRow(cell.getRowArray(), 
cell.getRowOffset(), cell.getRowLength(),
                     cell.getFamilyArray(), cell.getFamilyOffset(),
                     cell.getFamilyLength(), cell.getQualifierArray(),
                     cell.getQualifierOffset(), cell.getQualifierLength());
@@ -95,11 +100,20 @@ public class CellSkipFilterBase extends FilterBase {
         filter.reset();
     }
 
+    /**
+     * This deprecated method is implemented for backwards compatibility 
reasons.
+     * use {@link CellSkipFilterBase#filterRowKey(Cell)}
+     */
     @Override
     public boolean filterRowKey(byte[] buffer, int offset, int length) throws 
IOException {
         return filter.filterRowKey(buffer, offset, length);
     }
 
+    @Override
+    public boolean filterRowKey(Cell cell) throws IOException {
+        return filter.filterRowKey(cell);
+    }
+
     @Override
     public boolean filterAllRemaining() throws IOException {
         return filter.filterAllRemaining();
diff --git 
a/hbase-coprocessor/src/main/java/org/apache/omid/transaction/OmidSnapshotFilter.java
 
b/hbase-coprocessor/src/main/java/org/apache/omid/transaction/OmidSnapshotFilter.java
index df59d45b..6896628a 100644
--- 
a/hbase-coprocessor/src/main/java/org/apache/omid/transaction/OmidSnapshotFilter.java
+++ 
b/hbase-coprocessor/src/main/java/org/apache/omid/transaction/OmidSnapshotFilter.java
@@ -120,7 +120,7 @@ public class OmidSnapshotFilter extends BaseRegionObserver {
         SnapshotFilterImpl snapshotFilter = getSnapshotFilter(e);
         snapshotFilterMap.put(get, snapshotFilter);
 
-        get.setMaxVersions();
+        get.readAllVersions();
         Filter newFilter = 
TransactionFilters.getVisibilityFilter(get.getFilter(),
                 snapshotFilter, hbaseTransaction);
         get.setFilter(newFilter);
@@ -159,7 +159,7 @@ public class OmidSnapshotFilter extends BaseRegionObserver {
         HBaseTransaction hbaseTransaction = 
getHBaseTransaction(byteTransaction, isLowLatency);
         SnapshotFilterImpl snapshotFilter = getSnapshotFilter(e);
 
-        scan.setMaxVersions();
+        scan.readAllVersions();
         Filter newFilter = 
TransactionFilters.getVisibilityFilter(scan.getFilter(),
                 snapshotFilter, hbaseTransaction);
         scan.setFilter(newFilter);
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 35552b98..8fa44825 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
@@ -62,8 +62,17 @@ public class TransactionVisibilityFilterBase extends 
FilterBase {
 
     }
 
+    /**
+     * This deprecated method is implemented for backwards compatibility 
reasons.
+     * use {@link TransactionVisibilityFilterBase#filterCell(Cell)}
+    */
     @Override
-    public ReturnCode filterKeyValue(Cell v) throws IOException {
+    public ReturnCode filterKeyValue(Cell cell) throws IOException {
+        return filterCell(cell);
+    }
+
+    @Override
+    public ReturnCode filterCell(Cell v) throws IOException {
         if (CellUtils.isShadowCell(v)) {
             Long commitTs =  Bytes.toLong(CellUtil.cloneValue(v));
             commitCache.put(v.getTimestamp(), commitTs);
@@ -124,7 +133,7 @@ public class TransactionVisibilityFilterBase extends 
FilterBase {
             return snapshotReturn;
         }
 
-        ReturnCode userRes = userFilter.filterKeyValue(v);
+        ReturnCode userRes = userFilter.filterCell(v);
         switch (userRes) {
             case INCLUDE:
                 return snapshotReturn;
@@ -154,7 +163,7 @@ public class TransactionVisibilityFilterBase extends 
FilterBase {
 
             // Try to get shadow cell from region
             final Get get = new Get(CellUtil.cloneRow(v));
-            get.setTimeStamp(v.getTimestamp()).setMaxVersions(1);
+            get.setTimestamp(v.getTimestamp()).readVersions(1);
             get.addColumn(CellUtil.cloneFamily(v), 
CellUtils.addShadowCellSuffixPrefix(CellUtils.FAMILY_DELETE_QUALIFIER));
             Result shadowCell = 
snapshotFilter.getTableAccessWrapper().get(get);
 
@@ -193,7 +202,10 @@ public class TransactionVisibilityFilterBase extends 
FilterBase {
         return super.filterRow();
     }
 
-
+    /**
+     * This deprecated method is implemented for backwards compatibility 
reasons.
+     * use {@link TransactionVisibilityFilterBase#filterRowKey(Cell)}
+     */
     @Override
     public boolean filterRowKey(byte[] buffer, int offset, int length) throws 
IOException {
         if (userFilter != null) {
@@ -202,6 +214,14 @@ public class TransactionVisibilityFilterBase extends 
FilterBase {
         return super.filterRowKey(buffer, offset, length);
     }
 
+    @Override
+    public boolean filterRowKey(Cell cell) throws IOException {
+        if (userFilter != null) {
+            return userFilter.filterRowKey(cell);
+        }
+        return super.filterRowKey(cell);
+    }
+
     @Override
     public boolean filterAllRemaining() throws IOException {
         if (userFilter != null) {
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 bdbf2e1d..ca2dfae3 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
@@ -41,13 +41,14 @@ import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.Coprocessor;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MiniHBaseCluster;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.client.CoprocessorDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.Put;
@@ -57,6 +58,8 @@ import 
org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException;
 import org.apache.hadoop.hbase.client.Row;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.Table;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.regionserver.HRegion;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.omid.TestUtils;
@@ -154,15 +157,21 @@ public class TestCompaction {
     private void createTableIfNotExists(String tableName, byte[]... families) 
throws IOException {
         if (!admin.tableExists(TableName.valueOf(tableName))) {
             LOG.info("Creating {} table...", tableName);
-            HTableDescriptor desc = new 
HTableDescriptor(TableName.valueOf(tableName));
 
+            ArrayList<ColumnFamilyDescriptor> fams = new ArrayList<>();
             for (byte[] family : families) {
-                HColumnDescriptor datafam = new HColumnDescriptor(family);
-                datafam.setMaxVersions(MAX_VERSIONS);
-                desc.addFamily(datafam);
+                fams.add(ColumnFamilyDescriptorBuilder
+                    .newBuilder(family)
+                    .setMaxVersions(MAX_VERSIONS)
+                    .build());
             }
-
-            
desc.addCoprocessor("org.apache.hadoop.hbase.coprocessor.AggregateImplementation",null,Coprocessor.PRIORITY_HIGHEST,null);
+            TableDescriptor desc = TableDescriptorBuilder
+                    .newBuilder(TableName.valueOf(tableName))
+                    .setColumnFamilies(fams)
+                    .setCoprocessor(CoprocessorDescriptorBuilder
+                            
.newBuilder("org.apache.hadoop.hbase.coprocessor.AggregateImplementation")
+                            .setPriority(Coprocessor.PRIORITY_HIGHEST).build())
+                    .build();
             admin.createTable(desc);
             for (byte[] family : families) {
                 CompactorUtil.enableOmidCompaction(connection, 
TableName.valueOf(tableName), family);
@@ -521,7 +530,7 @@ public class TestCompaction {
 
         Transaction tx = tm.begin();
         Get get = new Get(Bytes.toBytes(rowId));
-        get.setMaxVersions(2 * MAX_VERSIONS);
+        get.readVersions(2 * MAX_VERSIONS);
         assertEquals(get.getMaxVersions(), (2 * MAX_VERSIONS), "Max versions 
should be set to " + (2 * MAX_VERSIONS));
         get.addColumn(fam, qual);
         Result result = txTable.get(tx, get);
@@ -542,7 +551,7 @@ public class TestCompaction {
 
         tx = tm.begin();
         get = new Get(Bytes.toBytes(rowId));
-        get.setMaxVersions(2 * MAX_VERSIONS);
+        get.readVersions(2 * MAX_VERSIONS);
         assertEquals(get.getMaxVersions(), (2 * MAX_VERSIONS), "Max versions 
should be set to " + (2 * MAX_VERSIONS));
         get.addColumn(fam, qual);
         result = txTable.get(tx, get);
@@ -786,9 +795,11 @@ public class TestCompaction {
         admin.disableTable(TableName.valueOf(TEST_TABLE));
         byte[] nonOmidCF = Bytes.toBytes("nonOmidCF");
         byte[] nonOmidQual = Bytes.toBytes("nonOmidCol");
-        HColumnDescriptor nonomidfam = new HColumnDescriptor(nonOmidCF);
-        nonomidfam.setMaxVersions(MAX_VERSIONS);
-        admin.addColumn(TableName.valueOf(TEST_TABLE), nonomidfam);
+        ColumnFamilyDescriptor nonomidfam = ColumnFamilyDescriptorBuilder
+                .newBuilder(nonOmidCF)
+                .setMaxVersions(MAX_VERSIONS)
+                .build();
+        admin.addColumnFamily(TableName.valueOf(TEST_TABLE), nonomidfam);
         admin.enableTable(TableName.valueOf(TEST_TABLE));
 
         byte[] rowId = Bytes.toBytes("testRow");
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 a6ccbe64..38623d8a 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
@@ -28,8 +28,7 @@ import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
 import java.io.IOException;
-
-
+import java.util.ArrayList;
 import java.util.Random;
 
 import org.apache.hadoop.conf.Configuration;
@@ -37,20 +36,20 @@ import org.apache.hadoop.conf.Configuration;
 
 import org.apache.hadoop.hbase.Coprocessor;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MiniHBaseCluster;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
-
+import org.apache.hadoop.hbase.client.CoprocessorDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Put;
-
 import org.apache.hadoop.hbase.client.ResultScanner;
-
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.Table;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.util.Bytes;
 
 import org.apache.omid.TestUtils;
@@ -147,15 +146,21 @@ public class TestCompactionLL {
     private void createTableIfNotExists(String tableName, byte[]... families) 
throws IOException {
         if (!admin.tableExists(TableName.valueOf(tableName))) {
             LOG.info("Creating {} table...", tableName);
-            HTableDescriptor desc = new 
HTableDescriptor(TableName.valueOf(tableName));
 
+            ArrayList<ColumnFamilyDescriptor> fams = new ArrayList<>();
             for (byte[] family : families) {
-                HColumnDescriptor datafam = new HColumnDescriptor(family);
-                datafam.setMaxVersions(MAX_VERSIONS);
-                desc.addFamily(datafam);
+                fams.add(ColumnFamilyDescriptorBuilder
+                    .newBuilder(family)
+                    .setMaxVersions(MAX_VERSIONS)
+                    .build());
             }
-
-            
desc.addCoprocessor("org.apache.hadoop.hbase.coprocessor.AggregateImplementation",null,Coprocessor.PRIORITY_HIGHEST,null);
+            TableDescriptor desc = TableDescriptorBuilder
+                    .newBuilder(TableName.valueOf(tableName))
+                    .setColumnFamilies(fams)
+                    .setCoprocessor(CoprocessorDescriptorBuilder
+                            
.newBuilder("org.apache.hadoop.hbase.coprocessor.AggregateImplementation")
+                            .setPriority(Coprocessor.PRIORITY_HIGHEST).build())
+                    .build();
             admin.createTable(desc);
             for (byte[] family : families) {
                 CompactorUtil.enableOmidCompaction(connection, 
TableName.valueOf(tableName), family);
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 7320ccc7..aa86a737 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
@@ -18,9 +18,9 @@
 package org.apache.omid.transaction;
 
 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;
+import org.apache.hadoop.hbase.client.RegionInfo;
 import org.apache.hadoop.hbase.coprocessor.ObserverContext;
 import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
 import org.apache.hadoop.hbase.regionserver.CompactorScanner;
@@ -67,7 +67,7 @@ public class TestCompactorScanner {
 
         RegionCoprocessorEnvironment rce = 
mock(RegionCoprocessorEnvironment.class);
         HRegion hRegion = mock(HRegion.class);
-        HRegionInfo hRegionInfo = mock(HRegionInfo.class);
+        RegionInfo regionInfo = mock(RegionInfo.class);
         SettableFuture<Long> f = SettableFuture.create();
 
         // Wire required mock internals
@@ -75,7 +75,7 @@ public class TestCompactorScanner {
         when(ctClient.readLowWatermark()).thenReturn(f);
         when(ctx.getEnvironment()).thenReturn(rce);
         when(rce.getRegion()).thenReturn(hRegion);
-        when(hRegion.getRegionInfo()).thenReturn(hRegionInfo);
+        when(hRegion.getRegionInfo()).thenReturn(regionInfo);
 
         LOG.info("Testing when retain is {}", retainOption);
         try (CompactorScanner scanner = spy(new CompactorScanner(ctx,
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 ce52b68c..c07679a3 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
@@ -26,21 +26,24 @@ import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.CompareOperator;
 import org.apache.hadoop.hbase.Coprocessor;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MiniHBaseCluster;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.client.CoprocessorDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.Put;
@@ -48,8 +51,9 @@ import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.Table;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.filter.BinaryComparator;
-import org.apache.hadoop.hbase.filter.CompareFilter;
 import org.apache.hadoop.hbase.filter.FamilyFilter;
 import org.apache.hadoop.hbase.filter.Filter;
 import org.apache.hadoop.hbase.filter.FilterList;
@@ -155,19 +159,25 @@ public class TestSnapshotFilter {
     private void createTableIfNotExists(String tableName, byte[]... families) 
throws IOException {
         if (!admin.tableExists(TableName.valueOf(tableName))) {
             LOG.info("Creating {} table...", tableName);
-            HTableDescriptor desc = new 
HTableDescriptor(TableName.valueOf(tableName));
 
+            ArrayList<ColumnFamilyDescriptor> fams = new ArrayList<>();
             for (byte[] family : families) {
-                HColumnDescriptor datafam = new HColumnDescriptor(family);
-                datafam.setMaxVersions(MAX_VERSIONS);
-                desc.addFamily(datafam);
+                fams.add(ColumnFamilyDescriptorBuilder
+                    .newBuilder(family)
+                    .setMaxVersions(MAX_VERSIONS)
+                    .build());
             }
-
             int priority = Coprocessor.PRIORITY_HIGHEST;
-
-            
desc.addCoprocessor(OmidSnapshotFilter.class.getName(),null,++priority,null);
-            
desc.addCoprocessor("org.apache.hadoop.hbase.coprocessor.AggregateImplementation",null,++priority,null);
-
+            TableDescriptor desc = TableDescriptorBuilder
+                    .newBuilder(TableName.valueOf(tableName))
+                    .setColumnFamilies(fams)
+                    .setCoprocessor(CoprocessorDescriptorBuilder
+                            .newBuilder(OmidSnapshotFilter.class.getName())
+                            .setPriority(++priority).build())
+                    .setCoprocessor(CoprocessorDescriptorBuilder
+                            
.newBuilder("org.apache.hadoop.hbase.coprocessor.AggregateImplementation")
+                            .setPriority(++priority).build())
+                    .build();
             admin.createTable(desc);
             try {
                 
hbaseTestUtil.waitTableAvailable(TableName.valueOf(tableName),5000);
@@ -305,7 +315,7 @@ public class TestSnapshotFilter {
         SingleColumnValueFilter filter = new SingleColumnValueFilter(
                 famName1,
                 colName1,
-                CompareFilter.CompareOp.EQUAL,
+                CompareOperator.EQUAL,
                 new SubstringComparator("testWrite-1"));
 
         get.setFilter(filter);
@@ -346,7 +356,7 @@ public class TestSnapshotFilter {
         SingleColumnValueFilter filter = new SingleColumnValueFilter(
                 famName1,
                 colName1,
-                CompareFilter.CompareOp.EQUAL,
+                CompareOperator.EQUAL,
                 new SubstringComparator("testWrite-1"));
 
 
@@ -400,8 +410,8 @@ public class TestSnapshotFilter {
         Get get = new Get(rowName1);
 
         Filter filter1 = new FilterList(FilterList.Operator.MUST_PASS_ONE,
-                new FamilyFilter(CompareFilter.CompareOp.EQUAL, new 
BinaryComparator(Bytes.toBytes(TEST_FAMILY))),
-                new FamilyFilter(CompareFilter.CompareOp.EQUAL, new 
BinaryComparator(famName2)));
+                new FamilyFilter(CompareOperator.EQUAL, new 
BinaryComparator(Bytes.toBytes(TEST_FAMILY))),
+                new FamilyFilter(CompareOperator.EQUAL, new 
BinaryComparator(famName2)));
 
         get.setFilter(filter1);
         Result result = tt.get(tx4, get);
@@ -462,8 +472,8 @@ public class TestSnapshotFilter {
                     Get get = new Get(rowName1);
 
                     Filter filter1 = new 
FilterList(FilterList.Operator.MUST_PASS_ONE,
-                            new FamilyFilter(CompareFilter.CompareOp.EQUAL, 
new BinaryComparator(Bytes.toBytes(TEST_FAMILY))),
-                            new FamilyFilter(CompareFilter.CompareOp.EQUAL, 
new BinaryComparator(famName2)));
+                            new FamilyFilter(CompareOperator.EQUAL, new 
BinaryComparator(Bytes.toBytes(TEST_FAMILY))),
+                            new FamilyFilter(CompareOperator.EQUAL, new 
BinaryComparator(famName2)));
 
                     get.setFilter(filter1);
                     Result result = tt.get(tx4, get);
@@ -531,8 +541,8 @@ public class TestSnapshotFilter {
         Get get = new Get(rowName1);
 
         Filter filter1 = new FilterList(FilterList.Operator.MUST_PASS_ONE,
-                new FamilyFilter(CompareFilter.CompareOp.EQUAL, new 
BinaryComparator(Bytes.toBytes(TEST_FAMILY))),
-                new FamilyFilter(CompareFilter.CompareOp.EQUAL, new 
BinaryComparator(famName2)));
+                new FamilyFilter(CompareOperator.EQUAL, new 
BinaryComparator(Bytes.toBytes(TEST_FAMILY))),
+                new FamilyFilter(CompareOperator.EQUAL, new 
BinaryComparator(famName2)));
 
         get.setFilter(filter1);
         Result result = tt.get(tx3, get);
@@ -540,7 +550,7 @@ public class TestSnapshotFilter {
 
 
         Filter filter2 = new FilterList(FilterList.Operator.MUST_PASS_ONE,
-                new FamilyFilter(CompareFilter.CompareOp.EQUAL, new 
BinaryComparator(Bytes.toBytes(TEST_FAMILY))));
+                new FamilyFilter(CompareOperator.EQUAL, new 
BinaryComparator(Bytes.toBytes(TEST_FAMILY))));
 
         get.setFilter(filter2);
         result = tt.get(tx3, get);
@@ -613,7 +623,7 @@ public class TestSnapshotFilter {
 
         Transaction tx2 = tm.begin();
 
-        ResultScanner iterableRS = tt.getScanner(tx2, new 
Scan().setStartRow(rowName1).setStopRow(rowName1));
+        ResultScanner iterableRS = tt.getScanner(tx2, new 
Scan().withStartRow(rowName1).withStopRow(rowName1, true));
         Result result = iterableRS.next();
         long tsRow = result.rawCells()[0].getTimestamp();
         assertEquals(tsRow, tx1.getTransactionId(), "Reading differnt 
version");
@@ -632,7 +642,7 @@ public class TestSnapshotFilter {
 
         Transaction tx4 = tm.begin();
 
-        ResultScanner iterableRS2 = tt.getScanner(tx4, new 
Scan().setStartRow(rowName1).setStopRow(rowName1));
+        ResultScanner iterableRS2 = tt.getScanner(tx4, new 
Scan().withStartRow(rowName1).withStopRow(rowName1, true));
         Result result2 = iterableRS2.next();
         long tsRow2 = result2.rawCells()[0].getTimestamp();
         assertEquals(tsRow2, tx3.getTransactionId(), "Reading differnt 
version");
@@ -674,8 +684,8 @@ public class TestSnapshotFilter {
 
         Scan scan = new Scan();
         scan.setFilter(new FilterList(FilterList.Operator.MUST_PASS_ONE,
-                new FamilyFilter(CompareFilter.CompareOp.EQUAL, new 
BinaryComparator(Bytes.toBytes(TEST_FAMILY)))));
-        scan.setStartRow(rowName1).setStopRow(rowName1);
+                new FamilyFilter(CompareOperator.EQUAL, new 
BinaryComparator(Bytes.toBytes(TEST_FAMILY)))));
+        scan.withStartRow(rowName1).withStopRow(rowName1, true);
 
         ResultScanner iterableRS = tt.getScanner(tx3, scan);
         Result result = iterableRS.next();
@@ -683,8 +693,8 @@ public class TestSnapshotFilter {
         assertFalse(result.containsColumn(famName2, colName2));
 
         scan.setFilter(new FilterList(FilterList.Operator.MUST_PASS_ONE,
-                new FamilyFilter(CompareFilter.CompareOp.EQUAL, new 
BinaryComparator(Bytes.toBytes(TEST_FAMILY))),
-                new FamilyFilter(CompareFilter.CompareOp.EQUAL, new 
BinaryComparator(famName2))));
+                new FamilyFilter(CompareOperator.EQUAL, new 
BinaryComparator(Bytes.toBytes(TEST_FAMILY))),
+                new FamilyFilter(CompareOperator.EQUAL, new 
BinaryComparator(famName2))));
 
         iterableRS = tt.getScanner(tx3, scan);
         result = iterableRS.next();
@@ -724,7 +734,7 @@ public class TestSnapshotFilter {
 
         Transaction tx3 = tm.begin();
 
-        ResultScanner iterableRS = tt.getScanner(tx3, new 
Scan().setStartRow(rowName1).setStopRow(rowName1));
+        ResultScanner iterableRS = tt.getScanner(tx3, new 
Scan().withStartRow(rowName1).withStopRow(rowName1, true));
         Result result = iterableRS.next();
         long tsRow = result.rawCells()[0].getTimestamp();
         assertEquals(tsRow, tx1.getTransactionId(), "Reading differnt 
version");
@@ -770,7 +780,7 @@ public class TestSnapshotFilter {
 
         Transaction tx3 = tm.begin();
 
-        ResultScanner iterableRS = tt.getScanner(tx3, new 
Scan().setStartRow(rowName1).setStopRow(rowName3));
+        ResultScanner iterableRS = tt.getScanner(tx3, new 
Scan().withStartRow(rowName1).withStopRow(rowName3));
         Result result = iterableRS.next();
         long tsRow = result.rawCells()[0].getTimestamp();
         assertEquals(tsRow, tx1.getTransactionId(), "Reading differnt 
version");
@@ -823,7 +833,7 @@ public class TestSnapshotFilter {
 
         Transaction tx3 = tm.begin();
 
-        ResultScanner iterableRS = tt.getScanner(tx3, new 
Scan().setStartRow(rowName1).setStopRow(rowName3));
+        ResultScanner iterableRS = tt.getScanner(tx3, new 
Scan().withStartRow(rowName1).withStopRow(rowName3));
         Result result = iterableRS.next();
         long tsRow = result.rawCells()[0].getTimestamp();
         assertEquals(tsRow, tx1.getTransactionId(), "Reading differnt 
version");
@@ -874,7 +884,7 @@ public class TestSnapshotFilter {
 
         Transaction tx3 = tm.begin();
 
-        ResultScanner iterableRS = tt.getScanner(tx3, new 
Scan().setStartRow(rowName1).setStopRow(rowName3));
+        ResultScanner iterableRS = tt.getScanner(tx3, new 
Scan().withStartRow(rowName1).withStopRow(rowName3));
         Result result = iterableRS.next();
         long tsRow = result.rawCells()[0].getTimestamp();
         assertEquals(tsRow, tx1.getTransactionId(), "Reading differnt 
version");
@@ -924,7 +934,7 @@ public class TestSnapshotFilter {
 
         for(Result row: scanner) {
             for(Cell cell: row.rawCells()) {
-                newFilter.filterKeyValue(cell);
+                newFilter.filterCell(cell);
 
             }
         }
@@ -969,7 +979,7 @@ public class TestSnapshotFilter {
 
         for(Result row: scanner) {
             for(Cell cell: row.rawCells()) {
-                newFilter.filterKeyValue(cell);
+                newFilter.filterCell(cell);
             }
         }
         verify(snapshotFilter, Mockito.times(1))
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 db1174a6..75a3c765 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
@@ -21,22 +21,26 @@ import static org.mockito.Mockito.spy;
 import static org.testng.Assert.assertTrue;
 
 import java.io.IOException;
+import java.util.ArrayList;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.Coprocessor;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MiniHBaseCluster;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.client.CoprocessorDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.omid.TestUtils;
 import org.apache.omid.committable.CommitTable;
@@ -133,19 +137,25 @@ public class TestSnapshotFilterLL {
     private void createTableIfNotExists(String tableName, byte[]... families) 
throws IOException {
         if (!admin.tableExists(TableName.valueOf(tableName))) {
             LOG.info("Creating {} table...", tableName);
-            HTableDescriptor desc = new 
HTableDescriptor(TableName.valueOf(tableName));
-
+            
+            ArrayList<ColumnFamilyDescriptor> fams = new ArrayList<>();
             for (byte[] family : families) {
-                HColumnDescriptor datafam = new HColumnDescriptor(family);
-                datafam.setMaxVersions(MAX_VERSIONS);
-                desc.addFamily(datafam);
+                fams.add(ColumnFamilyDescriptorBuilder
+                    .newBuilder(family)
+                    .setMaxVersions(MAX_VERSIONS)
+                    .build());
             }
-
             int priority = Coprocessor.PRIORITY_HIGHEST;
-
-            
desc.addCoprocessor(OmidSnapshotFilter.class.getName(),null,++priority,null);
-            
desc.addCoprocessor("org.apache.hadoop.hbase.coprocessor.AggregateImplementation",null,++priority,null);
-
+            TableDescriptor desc = TableDescriptorBuilder
+                    .newBuilder(TableName.valueOf(tableName))
+                    .setColumnFamilies(fams)
+                    .setCoprocessor(CoprocessorDescriptorBuilder
+                            .newBuilder(OmidSnapshotFilter.class.getName())
+                            .setPriority(++priority).build())
+                    .setCoprocessor(CoprocessorDescriptorBuilder
+                            
.newBuilder("org.apache.hadoop.hbase.coprocessor.AggregateImplementation")
+                            .setPriority(++priority).build())
+                    .build();
             admin.createTable(desc);
             try {
                 
hbaseTestUtil.waitTableAvailable(TableName.valueOf(tableName),5000);
@@ -251,7 +261,7 @@ public class TestSnapshotFilterLL {
 
         Transaction tx2 = tm.begin();
 
-        ResultScanner iterableRS = tt.getScanner(tx2, new 
Scan().setStartRow(rowName1).setStopRow(rowName1));
+        ResultScanner iterableRS = tt.getScanner(tx2, new 
Scan().withStartRow(rowName1).withStopRow(rowName1, true));
         assertTrue(iterableRS.next() == null);
 
         tm.commit(tx2);
diff --git 
a/hbase-tools/src/main/java/org/apache/omid/tools/hbase/OmidTableManager.java 
b/hbase-tools/src/main/java/org/apache/omid/tools/hbase/OmidTableManager.java
index d62a5742..f9731cdc 100644
--- 
a/hbase-tools/src/main/java/org/apache/omid/tools/hbase/OmidTableManager.java
+++ 
b/hbase-tools/src/main/java/org/apache/omid/tools/hbase/OmidTableManager.java
@@ -18,15 +18,18 @@
 package org.apache.omid.tools.hbase;
 
 import java.io.IOException;
+import java.util.ArrayList;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.omid.committable.hbase.HBaseCommitTableConfig;
 import org.apache.omid.committable.hbase.KeyGenerator;
@@ -152,18 +155,23 @@ public class OmidTableManager {
             return;
         }
 
-        HTableDescriptor tableDescriptor = new 
HTableDescriptor(TableName.valueOf(tableName));
-
+        ArrayList<ColumnFamilyDescriptor> fams = new ArrayList<>();
         for (byte[] family : families) {
-            HColumnDescriptor colDescriptor = new HColumnDescriptor(family);
-            colDescriptor.setMaxVersions(maxVersions);
-            tableDescriptor.addFamily(colDescriptor);
-            LOG.info("\tAdding Family {}", colDescriptor);
+            fams.add(ColumnFamilyDescriptorBuilder
+                .newBuilder(family)
+                .setMaxVersions(maxVersions)
+                .build());
+            LOG.info("\tAdding Family {}", fams.get(fams.size() - 1));
         }
 
-        admin.createTable(tableDescriptor, splitKeys);
+        TableDescriptor desc = TableDescriptorBuilder
+                .newBuilder(TableName.valueOf(tableName))
+                .setColumnFamilies(fams)
+                .build();
+
+        admin.createTable(desc, splitKeys);
 
-        LOG.info("Table {} created. Regions: {}", tableName, 
admin.getTableRegions(hTableName).size());
+        LOG.info("Table {} created. Regions: {}", tableName, 
admin.getRegions(hTableName).size());
 
     }
 
diff --git 
a/hbase-tools/src/test/java/org/apache/omid/tools/hbase/TestOmidTableManager.java
 
b/hbase-tools/src/test/java/org/apache/omid/tools/hbase/TestOmidTableManager.java
index da04b122..92934df5 100644
--- 
a/hbase-tools/src/test/java/org/apache/omid/tools/hbase/TestOmidTableManager.java
+++ 
b/hbase-tools/src/test/java/org/apache/omid/tools/hbase/TestOmidTableManager.java
@@ -23,7 +23,7 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
 import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.Admin;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
@@ -37,7 +37,7 @@ public class TestOmidTableManager {
 
     private HBaseTestingUtility hBaseTestUtil;
     private Configuration hbaseConf;
-    private HBaseAdmin hBaseAdmin;
+    private Admin hBaseAdmin;
 
     @BeforeClass
     public void setUpClass() throws Exception {
@@ -47,7 +47,7 @@ public class TestOmidTableManager {
         hBaseTestUtil = new HBaseTestingUtility(hbaseConf);
         hBaseTestUtil.startMiniCluster(1);
 
-        hBaseAdmin = hBaseTestUtil.getHBaseAdmin();
+        hBaseAdmin = hBaseTestUtil.getAdmin();
     }
 
     @AfterClass
@@ -70,7 +70,7 @@ public class TestOmidTableManager {
         TableName tableName = 
TableName.valueOf(HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME);
 
         assertTrue(hBaseAdmin.tableExists(tableName));
-        int numRegions = hBaseAdmin.getTableRegions(tableName).size();
+        int numRegions = hBaseAdmin.getRegions(tableName).size();
         assertEquals(numRegions, 1, "Should have only 1 region");
 
     }
@@ -86,7 +86,7 @@ public class TestOmidTableManager {
         TableName tableName = 
TableName.valueOf(HBaseCommitTableConfig.DEFAULT_COMMIT_TABLE_NAME);
 
         assertTrue(hBaseAdmin.tableExists(tableName));
-        int numRegions = hBaseAdmin.getTableRegions(tableName).size();
+        int numRegions = hBaseAdmin.getRegions(tableName).size();
         assertEquals(numRegions, 16, "Should have 16 regions");
 
     }
@@ -102,7 +102,7 @@ public class TestOmidTableManager {
         TableName tableName = TableName.valueOf("my-commit-table");
 
         assertTrue(hBaseAdmin.tableExists(tableName));
-        int numRegions = hBaseAdmin.getTableRegions(tableName).size();
+        int numRegions = hBaseAdmin.getRegions(tableName).size();
         assertEquals(numRegions, 1, "Should have only 1 regions");
     }
 
diff --git 
a/timestamp-storage/src/main/java/org/apache/omid/timestamp/storage/HBaseTimestampStorage.java
 
b/timestamp-storage/src/main/java/org/apache/omid/timestamp/storage/HBaseTimestampStorage.java
index 6ff23aa8..43de55a8 100644
--- 
a/timestamp-storage/src/main/java/org/apache/omid/timestamp/storage/HBaseTimestampStorage.java
+++ 
b/timestamp-storage/src/main/java/org/apache/omid/timestamp/storage/HBaseTimestampStorage.java
@@ -25,6 +25,7 @@ import javax.inject.Inject;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.CheckAndMutate;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.Get;
@@ -72,7 +73,10 @@ public class HBaseTimestampStorage implements 
TimestampStorage {
         if (previousMaxTimestamp != INITIAL_MAX_TS_VALUE) {
             previousVal = Bytes.toBytes(previousMaxTimestamp);
         }
-        if (!table.checkAndPut(TSO_ROW, cfName, TSO_QUALIFIER, previousVal, 
put)) {
+        CheckAndMutate checkAndPut = CheckAndMutate.newBuilder(TSO_ROW)
+                .ifEquals(cfName, TSO_QUALIFIER, previousVal)
+                .build(put);
+        if (!table.checkAndMutate(checkAndPut).isSuccess()) {
             throw new IOException("Previous max timestamp is incorrect");
         }
     }
diff --git 
a/timestamp-storage/src/test/java/org/apache/omid/timestamp/storage/TestHBaseTimestampStorage.java
 
b/timestamp-storage/src/test/java/org/apache/omid/timestamp/storage/TestHBaseTimestampStorage.java
index 86180acb..64d66972 100644
--- 
a/timestamp-storage/src/test/java/org/apache/omid/timestamp/storage/TestHBaseTimestampStorage.java
+++ 
b/timestamp-storage/src/test/java/org/apache/omid/timestamp/storage/TestHBaseTimestampStorage.java
@@ -20,11 +20,14 @@ package org.apache.omid.timestamp.storage;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MiniHBaseCluster;
 import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
+import org.apache.hadoop.hbase.util.Bytes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.Assert;
@@ -35,6 +38,7 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import java.io.IOException;
+import java.util.List;
 
 import static 
org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_CF_NAME;
 import static 
org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME;
@@ -71,13 +75,17 @@ public class TestHBaseTimestampStorage {
 
     @BeforeMethod
     public void setUp() throws Exception {
-        HBaseAdmin admin = testutil.getHBaseAdmin();
+        Admin admin = testutil.getAdmin();
 
         if 
(!admin.tableExists(TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME))) {
-            HTableDescriptor desc = new HTableDescriptor(TABLE_NAME);
-            HColumnDescriptor datafam = new 
HColumnDescriptor(DEFAULT_TIMESTAMP_STORAGE_CF_NAME);
-            datafam.setMaxVersions(Integer.MAX_VALUE);
-            desc.addFamily(datafam);
+            ColumnFamilyDescriptor datafam = ColumnFamilyDescriptorBuilder
+                    
.newBuilder(Bytes.toBytes(DEFAULT_TIMESTAMP_STORAGE_CF_NAME))
+                    .setMaxVersions(Integer.MAX_VALUE)
+                    .build();
+            TableDescriptor desc = TableDescriptorBuilder
+                    .newBuilder(TABLE_NAME)
+                    .setColumnFamily(datafam)
+                    .build();
 
             admin.createTable(desc);
         }
@@ -85,9 +93,9 @@ public class TestHBaseTimestampStorage {
         if 
(admin.isTableDisabled(TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME)))
 {
             
admin.enableTable(TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME));
         }
-        HTableDescriptor[] tables = admin.listTables();
-        for (HTableDescriptor t : tables) {
-            LOG.info(t.getNameAsString());
+        List<TableDescriptor> tables = admin.listTableDescriptors();
+        for (TableDescriptor t : tables) {
+            LOG.info(t.getTableName().getNameAsString());
         }
     }
 
@@ -95,7 +103,7 @@ public class TestHBaseTimestampStorage {
     public void tearDown() {
         try {
             LOG.info("tearing Down");
-            HBaseAdmin admin = testutil.getHBaseAdmin();
+            Admin admin = testutil.getAdmin();
             
admin.disableTable(TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME));
             
admin.deleteTable(TableName.valueOf(DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME));
 

Reply via email to