Small improvements and fixed the existing Unit Test
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/f15d0272 Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/f15d0272 Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/f15d0272 Branch: refs/heads/master Commit: f15d02721910678e29c1452c1bf6f4b495609efc Parents: 6ad602b Author: HUMANINFERENCE\g.dellemann <[email protected]> Authored: Mon Apr 23 16:53:03 2018 +0200 Committer: HUMANINFERENCE\g.dellemann <[email protected]> Committed: Mon Apr 23 16:53:03 2018 +0200 ---------------------------------------------------------------------- hbase/pom.xml | 6 ++ .../metamodel/hbase/HBaseDataContext.java | 6 -- .../hbase/qualifiers/FindQualifiersDriver.java | 9 +- .../metamodel/hbase/HBaseDataContextTest.java | 98 ++++++++++++++------ 4 files changed, 80 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/f15d0272/hbase/pom.xml ---------------------------------------------------------------------- diff --git a/hbase/pom.xml b/hbase/pom.xml index aed4f63..47101ba 100644 --- a/hbase/pom.xml +++ b/hbase/pom.xml @@ -264,6 +264,12 @@ <artifactId>slf4j-log4j12</artifactId> <scope>provided</scope> </dependency> + <dependency> + <groupId>io.netty</groupId> + <artifactId>netty-transport</artifactId> + <version>4.1.13.Final</version> + <scope>test</scope> + </dependency> <!-- Test dependencies --> <dependency> http://git-wip-us.apache.org/repos/asf/metamodel/blob/f15d0272/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java ---------------------------------------------------------------------- diff --git a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java index 6b48723..841b225 100644 --- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java +++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java @@ -72,9 +72,6 @@ public class HBaseDataContext extends QueryPostprocessDataContext { Configuration config = createConfig(configuration); _configuration = configuration; _connection = createConnection(config); - - // HBaseUpdateCallback updateCallback = new HBaseUpdateCallback(this); - // updateCallback.writeRow(); } /** @@ -87,9 +84,6 @@ public class HBaseDataContext extends QueryPostprocessDataContext { super(false); _configuration = configuration; _connection = connection; - - // HBaseUpdateCallback updateCallback = new HBaseUpdateCallback(this); - // updateCallback.writeRow(); } private Connection createConnection(Configuration config) { http://git-wip-us.apache.org/repos/asf/metamodel/blob/f15d0272/hbase/src/main/java/org/apache/metamodel/hbase/qualifiers/FindQualifiersDriver.java ---------------------------------------------------------------------- diff --git a/hbase/src/main/java/org/apache/metamodel/hbase/qualifiers/FindQualifiersDriver.java b/hbase/src/main/java/org/apache/metamodel/hbase/qualifiers/FindQualifiersDriver.java index 3efa311..9292d06 100644 --- a/hbase/src/main/java/org/apache/metamodel/hbase/qualifiers/FindQualifiersDriver.java +++ b/hbase/src/main/java/org/apache/metamodel/hbase/qualifiers/FindQualifiersDriver.java @@ -39,6 +39,7 @@ import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; +import org.apache.metamodel.hbase.HBaseConfiguration; public class FindQualifiersDriver extends Configured implements Tool { @@ -101,10 +102,10 @@ public class FindQualifiersDriver extends Configured implements Tool { protected Configuration createConfig() { Configuration config = org.apache.hadoop.hbase.HBaseConfiguration.create(); config.set("hbase.zookeeper.quorum", "bigdatavm"); - config.set("hbase.zookeeper.property.clientPort", Integer.toString(2181)); - config.set("hbase.client.retries.number", Integer.toString(1)); - config.set("zookeeper.session.timeout", Integer.toString(5000)); - config.set("zookeeper.recovery.retry", Integer.toString(1)); + config.set("hbase.zookeeper.property.clientPort", Integer.toString(HBaseConfiguration.DEFAULT_ZOOKEEPER_PORT)); + config.set("hbase.client.retries.number", Integer.toString(HBaseConfiguration.DEFAULT_HBASE_CLIENT_RETRIES)); + config.set("zookeeper.session.timeout", Integer.toString(HBaseConfiguration.DEFAULT_ZOOKEEPER_SESSION_TIMEOUT)); + config.set("zookeeper.recovery.retry", Integer.toString(HBaseConfiguration.DEFAULT_ZOOKEEPER_RECOVERY_RETRIES)); return config; } http://git-wip-us.apache.org/repos/asf/metamodel/blob/f15d0272/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java ---------------------------------------------------------------------- diff --git a/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java b/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java index 6187f2c..fb21b46 100644 --- a/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java +++ b/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java @@ -32,8 +32,32 @@ import org.apache.metamodel.util.SimpleTableDef; public class HBaseDataContextTest extends HBaseTestCase { + // Table private static final String EXAMPLE_TABLE_NAME = "table_for_junit"; + // ColumnFamilies + private static final String CF_FOO = "foo"; + private static final String CF_BAR = "bar"; + + // Qualifiers + private static final String Q_HELLO = "hello"; + private static final String Q_HI = "hi"; + private static final String Q_HEY = "hey"; + private static final String Q_BAH = "bah"; + + // RowKeys + private static final String RK_1 = "junit1"; + private static final String RK_2 = "junit2"; + + private static final int NUMBER_OF_ROWS = 2; + + // Values + private static final String V_WORLD = "world"; + private static final String V_THERE = "there"; + private static final String V_YO = "yo"; + private static final byte[] V_123_BYTE_ARRAY = new byte[] { 1, 2, 3 }; + private static final String V_YOU = "you"; + private HBaseDataContext _dataContext; @Override @@ -59,7 +83,9 @@ public class HBaseDataContextTest extends HBaseTestCase { final Table table = _dataContext.getDefaultSchema().getTableByName(EXAMPLE_TABLE_NAME); assertNotNull(table); - assertEquals("[_id, bar, foo]", Arrays.toString(table.getColumnNames().toArray())); + assertEquals("[" + HBaseDataContext.FIELD_ID + ", " + CF_BAR + ", " + CF_FOO + "]", Arrays.toString(table + .getColumnNames() + .toArray())); assertEquals(ColumnType.MAP, table.getColumn(1).getType()); // insert two records @@ -69,33 +95,39 @@ public class HBaseDataContextTest extends HBaseTestCase { final DataSet dataSet1 = _dataContext.query().from(EXAMPLE_TABLE_NAME).selectAll().execute(); try { assertTrue(dataSet1.next()); - assertEquals( - "Row[values=[junit1, {[104, 101, 121]=[121, 111],[104, 105]=[116, 104, 101, 114, 101]}, {[104, 101, 108, 108, 111]=[119, 111, 114, 108, 100]}]]", - dataSet1.getRow().toString()); + assertEquals("Row[values=[" + RK_1 + ", {" + Q_HEY + "=" + V_YO + "," + Q_HI + "=" + V_THERE + "}, {" + + Q_HELLO + "=" + V_WORLD + "}]]", dataSet1.getRow().toString()); assertTrue(dataSet1.next()); - assertEquals("Row[values=[junit2, {[98, 97, 104]=[1, 2, 3],[104, 105]=[121, 111, 117]}, {}]]", dataSet1 - .getRow().toString()); + assertEquals("Row[values=[" + RK_2 + ", {" + Q_BAH + "=" + new String(V_123_BYTE_ARRAY) + "," + Q_HI + "=" + + V_YOU + "}, {}]]", dataSet1.getRow().toString()); assertFalse(dataSet1.next()); } finally { dataSet1.close(); } // query using custom table definitions - final String[] columnNames = new String[] { "foo", "bar:hi", "bar:hey" }; + final String columnName1 = CF_FOO; + final String columnName2 = CF_BAR + ":" + Q_HI; + final String columnName3 = CF_BAR + ":" + Q_HEY; + final String[] columnNames = new String[] { columnName1, columnName2, columnName3 }; final ColumnType[] columnTypes = new ColumnType[] { ColumnType.MAP, ColumnType.VARCHAR, ColumnType.VARCHAR }; final SimpleTableDef[] tableDefinitions = new SimpleTableDef[] { new SimpleTableDef(EXAMPLE_TABLE_NAME, columnNames, columnTypes) }; _dataContext = new HBaseDataContext(new HBaseConfiguration("SCH", getZookeeperHostname(), getZookeeperPort(), tableDefinitions, ColumnType.VARCHAR)); - final DataSet dataSet2 = _dataContext.query().from(EXAMPLE_TABLE_NAME).select("foo", "bar:hi", "bar:hey") + final DataSet dataSet2 = _dataContext + .query() + .from(EXAMPLE_TABLE_NAME) + .select(columnName1, columnName2, columnName3) .execute(); try { assertTrue(dataSet2.next()); - assertEquals("Row[values=[{[104, 101, 108, 108, 111]=[119, 111, 114, 108, 100]}, there, yo]]", dataSet2 - .getRow().toString()); + assertEquals("Row[values=[{" + Q_HELLO + "=" + V_WORLD + "}, " + V_THERE + ", " + V_YO + "]]", dataSet2 + .getRow() + .toString()); assertTrue(dataSet2.next()); - assertEquals("Row[values=[{}, you, null]]", dataSet2.getRow().toString()); + assertEquals("Row[values=[{}, " + V_YOU + ", null]]", dataSet2.getRow().toString()); assertFalse(dataSet2.next()); } finally { dataSet2.close(); @@ -105,33 +137,41 @@ public class HBaseDataContextTest extends HBaseTestCase { final DataSet dataSet3 = _dataContext.query().from(EXAMPLE_TABLE_NAME).selectCount().execute(); try { assertTrue(dataSet3.next()); - assertEquals("Row[values=[2]]", dataSet3.getRow().toString()); + assertEquals("Row[values=[" + NUMBER_OF_ROWS + "]]", dataSet3.getRow().toString()); assertFalse(dataSet3.next()); } finally { dataSet3.close(); } // query only id - final DataSet dataSet4 = _dataContext.query().from(EXAMPLE_TABLE_NAME).select(HBaseDataContext.FIELD_ID) + final DataSet dataSet4 = _dataContext + .query() + .from(EXAMPLE_TABLE_NAME) + .select(HBaseDataContext.FIELD_ID) .execute(); try { assertTrue(dataSet4.next()); - assertEquals("Row[values=[junit1]]", dataSet4.getRow().toString()); + assertEquals("Row[values=[" + RK_1 + "]]", dataSet4.getRow().toString()); assertTrue(dataSet4.next()); - assertEquals("Row[values=[junit2]]", dataSet4.getRow().toString()); + assertEquals("Row[values=[" + RK_2 + "]]", dataSet4.getRow().toString()); assertFalse(dataSet4.next()); } finally { dataSet4.close(); } // primary key lookup query - using GET - final DataSet dataSet5 = _dataContext.query().from(EXAMPLE_TABLE_NAME).select(HBaseDataContext.FIELD_ID) - .where(HBaseDataContext.FIELD_ID).eq("junit1").execute(); + final DataSet dataSet5 = _dataContext + .query() + .from(EXAMPLE_TABLE_NAME) + .select(HBaseDataContext.FIELD_ID) + .where(HBaseDataContext.FIELD_ID) + .eq(RK_1) + .execute(); try { assertTrue(dataSet5.next()); - assertEquals("Row[values=[junit1]]", dataSet5.getRow().toString()); + assertEquals("Row[values=[" + RK_1 + "]]", dataSet5.getRow().toString()); assertFalse(dataSet5.next()); } finally { dataSet5.close(); @@ -141,16 +181,16 @@ public class HBaseDataContextTest extends HBaseTestCase { private void insertRecordsNatively() throws Exception { final org.apache.hadoop.hbase.client.Table hTable = _dataContext.getHTable(EXAMPLE_TABLE_NAME); try { - final Put put1 = new Put("junit1".getBytes()); - put1.addColumn("foo".getBytes(), "hello".getBytes(), "world".getBytes()); - put1.addColumn("bar".getBytes(), "hi".getBytes(), "there".getBytes()); - put1.addColumn("bar".getBytes(), "hey".getBytes(), "yo".getBytes()); + final Put put1 = new Put(RK_1.getBytes()); + put1.addColumn(CF_FOO.getBytes(), Q_HELLO.getBytes(), V_WORLD.getBytes()); + put1.addColumn(CF_BAR.getBytes(), Q_HI.getBytes(), V_THERE.getBytes()); + put1.addColumn(CF_BAR.getBytes(), Q_HEY.getBytes(), V_YO.getBytes()); - final Put put2 = new Put("junit2".getBytes()); - put2.addColumn("bar".getBytes(), "bah".getBytes(), new byte[] { 1, 2, 3 }); - put2.addColumn("bar".getBytes(), "hi".getBytes(), "you".getBytes()); + final Put put2 = new Put(RK_2.getBytes()); + put2.addColumn(CF_BAR.getBytes(), Q_BAH.getBytes(), V_123_BYTE_ARRAY); + put2.addColumn(CF_BAR.getBytes(), Q_HI.getBytes(), V_YOU.getBytes()); - final Object[] result = new Object[2]; + final Object[] result = new Object[NUMBER_OF_ROWS]; hTable.batch(Arrays.asList(put1, put2), result); } finally { hTable.close(); @@ -159,7 +199,7 @@ public class HBaseDataContextTest extends HBaseTestCase { private void createTableNatively() throws Exception { final TableName tableName = TableName.valueOf(EXAMPLE_TABLE_NAME); - + // check if the table exists if (_dataContext.getAdmin().isTableAvailable(tableName)) { System.out.println("Unittest table already exists: " + EXAMPLE_TABLE_NAME); @@ -170,8 +210,8 @@ public class HBaseDataContextTest extends HBaseTestCase { Admin admin = _dataContext.getAdmin(); System.out.println("Creating table"); final HTableDescriptor tableDescriptor = new HTableDescriptor(tableName); - tableDescriptor.addFamily(new HColumnDescriptor("foo".getBytes())); - tableDescriptor.addFamily(new HColumnDescriptor("bar".getBytes())); + tableDescriptor.addFamily(new HColumnDescriptor(CF_FOO.getBytes())); + tableDescriptor.addFamily(new HColumnDescriptor(CF_BAR.getBytes())); admin.createTable(tableDescriptor); System.out.println("Created table"); }
