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);
}
}