Repository: incubator-tephra Updated Branches: refs/heads/master bd691fac9 -> 42828c75d
Support for HBase v1.2 Change unit tests to accomodate multiple HBase versions in ConfigurationProviderTest Fix comment for HBase 1.1 ConfigurationProviderTest Remove activation since it is false by default Change doc to reflect HBase v1.2 support Project: http://git-wip-us.apache.org/repos/asf/incubator-tephra/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tephra/commit/845559f0 Tree: http://git-wip-us.apache.org/repos/asf/incubator-tephra/tree/845559f0 Diff: http://git-wip-us.apache.org/repos/asf/incubator-tephra/diff/845559f0 Branch: refs/heads/master Commit: 845559f07ffdd1a7c142dfb717671d27120462de Parents: bd691fa Author: Gokul Gunasekaran <[email protected]> Authored: Thu May 12 18:49:42 2016 -0700 Committer: Gokul Gunasekaran <[email protected]> Committed: Fri May 13 19:32:47 2016 -0700 ---------------------------------------------------------------------- README.rst | 2 +- .../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 | 9 +++++++ .../hbase/HBase11ConfigurationProviderTest.java | 9 ++++--- 14 files changed, 61 insertions(+), 65 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/845559f0/README.rst ---------------------------------------------------------------------- diff --git a/README.rst b/README.rst index 5c72805..6d74f58 100644 --- a/README.rst +++ b/README.rst @@ -189,7 +189,7 @@ with Apache HBase 1.0.x):: <version>${tephra.version}</version> </dependency> -For HBase 1.1.x or CDH 5.7 version of HBase 1.2.x:: +For HBase 1.1.x or HBase 1.2.x:: <dependency> <groupId>org.apache.tephra</groupId> http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/845559f0/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/845559f0/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/845559f0/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/845559f0/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/845559f0/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/845559f0/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/845559f0/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/845559f0/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/845559f0/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/845559f0/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/845559f0/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/845559f0/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..89f530b 100644 --- a/tephra-hbase-compat-1.1/pom.xml +++ b/tephra-hbase-compat-1.1/pom.xml @@ -103,4 +103,13 @@ </dependency> </dependencies> + <profiles> + <profile> + <id>hbase1.2</id> + <properties> + <hbase11.version>1.2.1</hbase11.version> + </properties> + </profile> + </profiles> + </project> http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/845559f0/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..cac80ec 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. + * Test for HBase 1.1 and HBase 1.2 versions 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); } }
