You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tephra.apache.org by go...@apache.org on 2016/05/13 21:03:08 UTC

incubator-tephra git commit: Support for HBase v1.2 [Forced Update!]

Repository: incubator-tephra
Updated Branches:
  refs/heads/hbase12-support 23268559d -> 288b9c866 (forced update)


Support for HBase v1.2

Change unit tests to accomodate multiple HBase versions in ConfigurationProviderTest


Project: http://git-wip-us.apache.org/repos/asf/incubator-tephra/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tephra/commit/288b9c86
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tephra/tree/288b9c86
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tephra/diff/288b9c86

Branch: refs/heads/hbase12-support
Commit: 288b9c8666179ceeea07ac97c300b239a159baec
Parents: 3918b8a
Author: Gokul Gunasekaran <go...@apache.org>
Authored: Thu May 12 18:49:42 2016 -0700
Committer: Gokul Gunasekaran <go...@apache.org>
Committed: Fri May 13 14:02:47 2016 -0700

----------------------------------------------------------------------
 .../org/apache/tephra/util/HBaseVersion.java    | 11 ++-------
 .../util/HBaseVersionSpecificFactory.java       |  2 +-
 .../util/AbstractConfigurationProviderTest.java |  8 +++++--
 .../apache/tephra/util/HBaseVersionTest.java    |  3 +++
 tephra-examples/pom.xml                         | 25 +++++++-------------
 .../apache/tephra/examples/BalanceBooks.java    | 24 ++++---------------
 .../tephra/examples/BalanceBooksTest.java       |  5 +---
 .../hbase/HBase96ConfigurationProviderTest.java |  7 ++++--
 .../hbase/HBase98ConfigurationProviderTest.java |  7 ++++--
 .../hbase/HBase10ConfigurationProviderTest.java |  7 ++++--
 .../hbase/HBase10ConfigurationProviderTest.java |  7 ++++--
 tephra-hbase-compat-1.1/pom.xml                 | 12 ++++++++++
 .../hbase/HBase11ConfigurationProviderTest.java |  7 ++++--
 13 files changed, 62 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-core/src/main/java/org/apache/tephra/util/HBaseVersion.java
----------------------------------------------------------------------
diff --git a/tephra-core/src/main/java/org/apache/tephra/util/HBaseVersion.java b/tephra-core/src/main/java/org/apache/tephra/util/HBaseVersion.java
index 687e46d..e868c6b 100644
--- a/tephra-core/src/main/java/org/apache/tephra/util/HBaseVersion.java
+++ b/tephra-core/src/main/java/org/apache/tephra/util/HBaseVersion.java
@@ -51,7 +51,7 @@ public class HBaseVersion {
     HBASE_10("1.0"),
     HBASE_10_CDH("1.0-cdh"),
     HBASE_11("1.1"),
-    HBASE_12_CDH("1.2-cdh"),
+    HBASE_12("1.2"),
     UNKNOWN("unknown");
 
     final String majorVersion;
@@ -88,14 +88,7 @@ public class HBaseVersion {
       } else if (versionString.startsWith(HBASE_11_VERSION)) {
         currentVersion = Version.HBASE_11;
       } else if (versionString.startsWith(HBASE_12_VERSION)) {
-        VersionNumber ver = VersionNumber.create(versionString);
-        if (ver.getClassifier() != null && ver.getClassifier().startsWith(CDH_CLASSIFIER)) {
-          currentVersion = Version.HBASE_12_CDH;
-        } else {
-          // CDH 5.7 comes with HBase version 1.2.0-CDH5.7.0. However currently there is no
-          // other hadoop distribution that uses HBase 1.2, so the version is set here to UNKNOWN.
-          currentVersion = Version.UNKNOWN;
-        }
+        currentVersion = Version.HBASE_12;
       } else {
         currentVersion = Version.UNKNOWN;
       }

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-core/src/main/java/org/apache/tephra/util/HBaseVersionSpecificFactory.java
----------------------------------------------------------------------
diff --git a/tephra-core/src/main/java/org/apache/tephra/util/HBaseVersionSpecificFactory.java b/tephra-core/src/main/java/org/apache/tephra/util/HBaseVersionSpecificFactory.java
index ebbbd18..9153296 100644
--- a/tephra-core/src/main/java/org/apache/tephra/util/HBaseVersionSpecificFactory.java
+++ b/tephra-core/src/main/java/org/apache/tephra/util/HBaseVersionSpecificFactory.java
@@ -49,7 +49,7 @@ public abstract class HBaseVersionSpecificFactory<T> implements Provider<T> {
           instance = createInstance(getHBase10CDHClassname());
           break;
         case HBASE_11:
-        case HBASE_12_CDH:
+        case HBASE_12:
           instance = createInstance(getHBase11Classname());
           break;
         case UNKNOWN:

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-core/src/test/java/org/apache/tephra/util/AbstractConfigurationProviderTest.java
----------------------------------------------------------------------
diff --git a/tephra-core/src/test/java/org/apache/tephra/util/AbstractConfigurationProviderTest.java b/tephra-core/src/test/java/org/apache/tephra/util/AbstractConfigurationProviderTest.java
index 8526b75..5218b7d 100644
--- a/tephra-core/src/test/java/org/apache/tephra/util/AbstractConfigurationProviderTest.java
+++ b/tephra-core/src/test/java/org/apache/tephra/util/AbstractConfigurationProviderTest.java
@@ -21,8 +21,11 @@ package org.apache.tephra.util;
 import org.apache.hadoop.conf.Configuration;
 import org.junit.Test;
 
+import java.util.Collection;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 /**
  *
@@ -31,10 +34,11 @@ public abstract class AbstractConfigurationProviderTest {
   @Test
   public void testVersionFactory() {
     HBaseVersion.Version foundVersion = HBaseVersion.get();
-    assertEquals(getExpectedVersion(), foundVersion);
+    assertTrue(String.format("%s was not part of the expected versions : %s", foundVersion, getExpectedVersions()),
+               getExpectedVersions().contains(foundVersion));
   }
 
-  protected abstract HBaseVersion.Version getExpectedVersion();
+  protected abstract Collection<HBaseVersion.Version> getExpectedVersions();
 
   @Test
   public void testConfigurationProvider() {

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-core/src/test/java/org/apache/tephra/util/HBaseVersionTest.java
----------------------------------------------------------------------
diff --git a/tephra-core/src/test/java/org/apache/tephra/util/HBaseVersionTest.java b/tephra-core/src/test/java/org/apache/tephra/util/HBaseVersionTest.java
index a2344ba..27f4032 100644
--- a/tephra-core/src/test/java/org/apache/tephra/util/HBaseVersionTest.java
+++ b/tephra-core/src/test/java/org/apache/tephra/util/HBaseVersionTest.java
@@ -81,6 +81,9 @@ public class HBaseVersionTest {
 
     ver = HBaseVersion.VersionNumber.create("1.2.0-CDH5.7.0");
     assertVersionNumber(ver, 1, 2, 0, "CDH5.7.0", false);
+
+    ver = HBaseVersion.VersionNumber.create("1.2.1");
+    assertVersionNumber(ver, 1, 2, 1, null, false);
   }
 
   private void assertVersionNumber(HBaseVersion.VersionNumber version, Integer expectedMajor, Integer expectedMinor,

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-examples/pom.xml
----------------------------------------------------------------------
diff --git a/tephra-examples/pom.xml b/tephra-examples/pom.xml
index af691e5..adfe03e 100644
--- a/tephra-examples/pom.xml
+++ b/tephra-examples/pom.xml
@@ -30,18 +30,9 @@
   <name>Apache Tephra Examples</name>
 
   <properties>
-    <!-- HBase 1.0 only supports Hadoop 2.4 or newer -->
     <hadoop.version>2.6.0</hadoop.version>
-    <hbase10cdh.version>1.0.0-cdh5.4.2</hbase10cdh.version>
+    <hbase12.version>1.2.1</hbase12.version>
   </properties>
-
-  <repositories>
-    <repository>
-      <id>cloudera</id>
-      <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
-    </repository>
-  </repositories>
-
   
   <dependencies>
     <dependency>
@@ -56,31 +47,31 @@
     </dependency>
     <dependency>
       <groupId>org.apache.tephra</groupId>
-      <artifactId>tephra-hbase-compat-1.0-cdh</artifactId>
+      <artifactId>tephra-hbase-compat-1.1</artifactId>
       <version>${project.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.hbase</groupId>
       <artifactId>hbase-common</artifactId>
-      <version>${hbase10cdh.version}</version>
+      <version>${hbase12.version}</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.hbase</groupId>
       <artifactId>hbase-client</artifactId>
-      <version>${hbase10cdh.version}</version>
+      <version>${hbase12.version}</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.hbase</groupId>
       <artifactId>hbase-protocol</artifactId>
-      <version>${hbase10cdh.version}</version>
+      <version>${hbase12.version}</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.hbase</groupId>
       <artifactId>hbase-server</artifactId>
-      <version>${hbase10cdh.version}</version>
+      <version>${hbase12.version}</version>
       <scope>provided</scope>
     </dependency>
 
@@ -99,14 +90,14 @@
     <dependency>
       <groupId>org.apache.hbase</groupId>
       <artifactId>hbase-server</artifactId>
-      <version>${hbase10cdh.version}</version>
+      <version>${hbase12.version}</version>
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.hbase</groupId>
       <artifactId>hbase-testing-util</artifactId>
-      <version>${hbase10cdh.version}</version>
+      <version>${hbase12.version}</version>
       <scope>test</scope>
     </dependency>
   </dependencies>

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-examples/src/main/java/org/apache/tephra/examples/BalanceBooks.java
----------------------------------------------------------------------
diff --git a/tephra-examples/src/main/java/org/apache/tephra/examples/BalanceBooks.java b/tephra-examples/src/main/java/org/apache/tephra/examples/BalanceBooks.java
index e191f5c..b2fbf14 100644
--- a/tephra-examples/src/main/java/org/apache/tephra/examples/BalanceBooks.java
+++ b/tephra-examples/src/main/java/org/apache/tephra/examples/BalanceBooks.java
@@ -153,8 +153,8 @@ public class BalanceBooks implements Closeable {
       LOG.info("VERIFYING BALANCES");
       context.start();
       long totalBalance = 0;
-      ResultScanner scanner = table.getScanner(new Scan());
-      try {
+
+      try (ResultScanner scanner = table.getScanner(new Scan())) {
         for (Result r : scanner) {
           if (!r.isEmpty()) {
             int rowId = Bytes.toInt(r.getRow());
@@ -163,10 +163,6 @@ public class BalanceBooks implements Closeable {
             LOG.info("Client #{}: balance = ${}", rowId, balance);
           }
         }
-      } finally {
-        if (scanner != null) {
-          Closeables.closeQuietly(scanner);
-        }
       }
       if (totalBalance == 0) {
         LOG.info("PASSED!");
@@ -198,8 +194,7 @@ public class BalanceBooks implements Closeable {
 
   protected void createTableIfNotExists(Configuration conf, byte[] tableName, byte[][] columnFamilies)
       throws IOException {
-    HBaseAdmin admin = new HBaseAdmin(conf);
-    try {
+    try (HBaseAdmin admin = new HBaseAdmin(conf)) {
       HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(tableName));
       for (byte[] family : columnFamilies) {
         HColumnDescriptor columnDesc = new HColumnDescriptor(family);
@@ -208,14 +203,6 @@ public class BalanceBooks implements Closeable {
       }
       desc.addCoprocessor(TransactionProcessor.class.getName());
       admin.createTable(desc);
-    } finally {
-      if (admin != null) {
-        try {
-          admin.close();
-        } catch (IOException ioe) {
-          LOG.warn("Error closing HBaseAdmin", ioe);
-        }
-      }
     }
   }
 
@@ -226,15 +213,12 @@ public class BalanceBooks implements Closeable {
       System.exit(1);
     }
 
-    BalanceBooks bb = new BalanceBooks(Integer.parseInt(args[0]), Integer.parseInt(args[1]));
-    try {
+    try (BalanceBooks bb = new BalanceBooks(Integer.parseInt(args[0]), Integer.parseInt(args[1]))) {
       bb.init();
       bb.run();
       bb.verify();
     } catch (Exception e) {
       LOG.error("Failed during BalanceBooks run", e);
-    } finally {
-      bb.close();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-examples/src/test/java/org/apache/tephra/examples/BalanceBooksTest.java
----------------------------------------------------------------------
diff --git a/tephra-examples/src/test/java/org/apache/tephra/examples/BalanceBooksTest.java b/tephra-examples/src/test/java/org/apache/tephra/examples/BalanceBooksTest.java
index d74a133..533b788 100644
--- a/tephra-examples/src/test/java/org/apache/tephra/examples/BalanceBooksTest.java
+++ b/tephra-examples/src/test/java/org/apache/tephra/examples/BalanceBooksTest.java
@@ -119,13 +119,10 @@ public class BalanceBooksTest {
 
   @Test
   public void testBalanceBooks() throws Exception {
-    BalanceBooks bb = new BalanceBooks(5, 100, testUtil.getConfiguration());
-    try {
+    try (BalanceBooks bb = new BalanceBooks(5, 100, testUtil.getConfiguration())) {
       bb.init();
       bb.run();
       assertTrue(bb.verify());
-    } finally {
-      bb.close();
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-hbase-compat-0.96/src/test/java/org/apache/tephra/hbase/HBase96ConfigurationProviderTest.java
----------------------------------------------------------------------
diff --git a/tephra-hbase-compat-0.96/src/test/java/org/apache/tephra/hbase/HBase96ConfigurationProviderTest.java b/tephra-hbase-compat-0.96/src/test/java/org/apache/tephra/hbase/HBase96ConfigurationProviderTest.java
index ea1a4e3..5d07a9b 100644
--- a/tephra-hbase-compat-0.96/src/test/java/org/apache/tephra/hbase/HBase96ConfigurationProviderTest.java
+++ b/tephra-hbase-compat-0.96/src/test/java/org/apache/tephra/hbase/HBase96ConfigurationProviderTest.java
@@ -18,15 +18,18 @@
 
 package org.apache.tephra.hbase;
 
+import com.google.common.collect.ImmutableList;
 import org.apache.tephra.util.AbstractConfigurationProviderTest;
 import org.apache.tephra.util.HBaseVersion;
 
+import java.util.Collection;
+
 /**
  * Test for HBase 0.96 version specific behavior.
  */
 public class HBase96ConfigurationProviderTest extends AbstractConfigurationProviderTest {
   @Override
-  protected HBaseVersion.Version getExpectedVersion() {
-    return HBaseVersion.Version.HBASE_96;
+  protected Collection<HBaseVersion.Version> getExpectedVersions() {
+    return ImmutableList.of(HBaseVersion.Version.HBASE_96);
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-hbase-compat-0.98/src/test/java/org/apache/tephra/hbase/HBase98ConfigurationProviderTest.java
----------------------------------------------------------------------
diff --git a/tephra-hbase-compat-0.98/src/test/java/org/apache/tephra/hbase/HBase98ConfigurationProviderTest.java b/tephra-hbase-compat-0.98/src/test/java/org/apache/tephra/hbase/HBase98ConfigurationProviderTest.java
index 287fd54..02d1819 100644
--- a/tephra-hbase-compat-0.98/src/test/java/org/apache/tephra/hbase/HBase98ConfigurationProviderTest.java
+++ b/tephra-hbase-compat-0.98/src/test/java/org/apache/tephra/hbase/HBase98ConfigurationProviderTest.java
@@ -18,15 +18,18 @@
 
 package org.apache.tephra.hbase;
 
+import com.google.common.collect.ImmutableList;
 import org.apache.tephra.util.AbstractConfigurationProviderTest;
 import org.apache.tephra.util.HBaseVersion;
 
+import java.util.Collection;
+
 /**
  * Test for HBase 0.98 version specific behavior.
  */
 public class HBase98ConfigurationProviderTest extends AbstractConfigurationProviderTest {
   @Override
-  protected HBaseVersion.Version getExpectedVersion() {
-    return HBaseVersion.Version.HBASE_98;
+  protected Collection<HBaseVersion.Version> getExpectedVersions() {
+    return ImmutableList.of(HBaseVersion.Version.HBASE_98);
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-hbase-compat-1.0-cdh/src/test/java/org/apache/tephra/hbase/HBase10ConfigurationProviderTest.java
----------------------------------------------------------------------
diff --git a/tephra-hbase-compat-1.0-cdh/src/test/java/org/apache/tephra/hbase/HBase10ConfigurationProviderTest.java b/tephra-hbase-compat-1.0-cdh/src/test/java/org/apache/tephra/hbase/HBase10ConfigurationProviderTest.java
index 8a7c49c..95c1593 100644
--- a/tephra-hbase-compat-1.0-cdh/src/test/java/org/apache/tephra/hbase/HBase10ConfigurationProviderTest.java
+++ b/tephra-hbase-compat-1.0-cdh/src/test/java/org/apache/tephra/hbase/HBase10ConfigurationProviderTest.java
@@ -18,15 +18,18 @@
 
 package org.apache.tephra.hbase;
 
+import com.google.common.collect.ImmutableList;
 import org.apache.tephra.util.AbstractConfigurationProviderTest;
 import org.apache.tephra.util.HBaseVersion;
 
+import java.util.Collection;
+
 /**
  * Test for HBase 1.0 (CDH) version specific behavior.
  */
 public class HBase10ConfigurationProviderTest extends AbstractConfigurationProviderTest {
   @Override
-  protected HBaseVersion.Version getExpectedVersion() {
-    return HBaseVersion.Version.HBASE_10_CDH;
+  protected Collection<HBaseVersion.Version> getExpectedVersions() {
+    return ImmutableList.of(HBaseVersion.Version.HBASE_10_CDH);
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-hbase-compat-1.0/src/test/java/org/apache/tephra/hbase/HBase10ConfigurationProviderTest.java
----------------------------------------------------------------------
diff --git a/tephra-hbase-compat-1.0/src/test/java/org/apache/tephra/hbase/HBase10ConfigurationProviderTest.java b/tephra-hbase-compat-1.0/src/test/java/org/apache/tephra/hbase/HBase10ConfigurationProviderTest.java
index 828f46c..9d1843f 100644
--- a/tephra-hbase-compat-1.0/src/test/java/org/apache/tephra/hbase/HBase10ConfigurationProviderTest.java
+++ b/tephra-hbase-compat-1.0/src/test/java/org/apache/tephra/hbase/HBase10ConfigurationProviderTest.java
@@ -18,15 +18,18 @@
 
 package org.apache.tephra.hbase;
 
+import com.google.common.collect.ImmutableList;
 import org.apache.tephra.util.AbstractConfigurationProviderTest;
 import org.apache.tephra.util.HBaseVersion;
 
+import java.util.Collection;
+
 /**
  * Test for HBase 1.0 version specific behavior.
  */
 public class HBase10ConfigurationProviderTest extends AbstractConfigurationProviderTest {
   @Override
-  protected HBaseVersion.Version getExpectedVersion() {
-    return HBaseVersion.Version.HBASE_10;
+  protected Collection<HBaseVersion.Version> getExpectedVersions() {
+    return ImmutableList.of(HBaseVersion.Version.HBASE_10);
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-hbase-compat-1.1/pom.xml
----------------------------------------------------------------------
diff --git a/tephra-hbase-compat-1.1/pom.xml b/tephra-hbase-compat-1.1/pom.xml
index 8f80947..aa73670 100644
--- a/tephra-hbase-compat-1.1/pom.xml
+++ b/tephra-hbase-compat-1.1/pom.xml
@@ -103,4 +103,16 @@
     </dependency>
   </dependencies>
 
+  <profiles>
+    <profile>
+      <id>hbase1.2</id>
+      <properties>
+        <hbase11.version>1.2.1</hbase11.version>
+      </properties>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+    </profile>
+  </profiles>
+
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/288b9c86/tephra-hbase-compat-1.1/src/test/java/org/apache/tephra/hbase/HBase11ConfigurationProviderTest.java
----------------------------------------------------------------------
diff --git a/tephra-hbase-compat-1.1/src/test/java/org/apache/tephra/hbase/HBase11ConfigurationProviderTest.java b/tephra-hbase-compat-1.1/src/test/java/org/apache/tephra/hbase/HBase11ConfigurationProviderTest.java
index 9ebf80c..00aa9c4 100644
--- a/tephra-hbase-compat-1.1/src/test/java/org/apache/tephra/hbase/HBase11ConfigurationProviderTest.java
+++ b/tephra-hbase-compat-1.1/src/test/java/org/apache/tephra/hbase/HBase11ConfigurationProviderTest.java
@@ -18,15 +18,18 @@
 
 package org.apache.tephra.hbase;
 
+import com.google.common.collect.ImmutableList;
 import org.apache.tephra.util.AbstractConfigurationProviderTest;
 import org.apache.tephra.util.HBaseVersion;
 
+import java.util.Collection;
+
 /**
  * Test for HBase 1.1 version specific behavior.
  */
 public class HBase11ConfigurationProviderTest extends AbstractConfigurationProviderTest {
   @Override
-  protected HBaseVersion.Version getExpectedVersion() {
-    return HBaseVersion.Version.HBASE_11;
+  protected Collection<HBaseVersion.Version> getExpectedVersions() {
+    return ImmutableList.of(HBaseVersion.Version.HBASE_11, HBaseVersion.Version.HBASE_12);
   }
 }