Repository: metamodel Updated Branches: refs/heads/master 09e4beb78 -> e22fc4aa5
METAMODEL-1205: Fixed CassandraUnit, Guava, Hadoop for JDK9+ Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/beb8b513 Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/beb8b513 Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/beb8b513 Branch: refs/heads/master Commit: beb8b51332c2feab4ba0806f824832b96b212f3d Parents: 09e4beb Author: Kasper Sørensen <[email protected]> Authored: Mon Nov 26 18:45:49 2018 -0800 Committer: Kasper Sørensen <[email protected]> Committed: Mon Nov 26 18:45:49 2018 -0800 ---------------------------------------------------------------------- cassandra/pom.xml | 13 +++-- .../cassandra/CassandraDataContextTest.java | 19 ++++--- cassandra/src/test/resources/logback.xml | 33 ++++++++++++ hadoop/pom.xml | 12 ----- .../util/HdfsDirectoryInputStream.java | 2 +- .../org/apache/metamodel/util/HdfsResource.java | 4 +- hbase/pom.xml | 20 +++----- .../org/apache/metamodel/hbase/HBaseClient.java | 16 +++--- .../org/apache/metamodel/hbase/HBaseColumn.java | 3 ++ .../metamodel/hbase/HBaseDataContext.java | 11 ++-- .../org/apache/metamodel/hbase/HBaseTable.java | 22 ++++---- .../metamodel/hbase/HBaseDataContextTest.java | 54 ++++++++------------ .../jdbc/dialects/HsqldbQueryRewriter.java | 5 +- .../jdbc/dialects/OracleQueryRewriterTest.java | 1 - pom.xml | 50 ++++++++++-------- 15 files changed, 146 insertions(+), 119 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/cassandra/pom.xml ---------------------------------------------------------------------- diff --git a/cassandra/pom.xml b/cassandra/pom.xml index b89bc87..620810b 100644 --- a/cassandra/pom.xml +++ b/cassandra/pom.xml @@ -9,7 +9,9 @@ License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <artifactId>MetaModel</artifactId> <groupId>org.apache.metamodel</groupId> @@ -20,8 +22,8 @@ <name>MetaModel module for Apache Cassandra database</name> <properties> - <cassandra.driver.latest.version>3.0.2</cassandra.driver.latest.version> - <cassandraunit.latest.version>2.2.2.1</cassandraunit.latest.version> + <cassandra.driver.latest.version>3.6.0</cassandra.driver.latest.version> + <cassandraunit.latest.version>3.5.0.1</cassandraunit.latest.version> </properties> <dependencies> @@ -49,8 +51,9 @@ </dependency> <!-- test --> <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <version>1.2.3</version> <scope>test</scope> </dependency> <dependency> http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java ---------------------------------------------------------------------- diff --git a/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java b/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java index 575bb5f..dd1fa25 100644 --- a/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java +++ b/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java @@ -39,6 +39,7 @@ import org.apache.metamodel.schema.ColumnType; import org.apache.metamodel.schema.Table; import org.cassandraunit.utils.EmbeddedCassandraServerHelper; import org.junit.AfterClass; +import org.junit.Assume; import org.junit.BeforeClass; import org.junit.Test; @@ -50,7 +51,7 @@ public class CassandraDataContextTest { private static CassandraSimpleClient client = new CassandraSimpleClient(); private static Cluster cluster; private static CassandraDataContext dc; - + private static final int defaultCassandraPort = 9142; private static final String cassandraNode = "127.0.0.1"; private static String keyspaceName = "my_keyspace"; @@ -63,10 +64,16 @@ public class CassandraDataContextTest { private static String secondRowTitle = "My second song"; private static String thirdRowTitle = "My third song"; private static String urlName = "my_url"; - + @BeforeClass public static void setUpCluster() throws Exception { - EmbeddedCassandraServerHelper.startEmbeddedCassandra(); + try { + EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.DEFAULT_CASSANDRA_YML_FILE); + } catch (Throwable e) { + // CassandraUnit not working working on JDK 9+, see https://github.com/jsevellec/cassandra-unit/issues/249 + Assume.assumeTrue("Embedded Cassandra server didn't come up: " + e.getMessage(), false); + return; + } client.connect(cassandraNode, defaultCassandraPort); cluster = client.getCluster(); Session session = cluster.connect(); @@ -126,11 +133,11 @@ public class CassandraDataContextTest { ds.close(); } } - + @Test public void testPrimaryKeyLookup() throws Exception { - DataSet ds = dc.query().from(testTableName).select("id").and("title").where("id").isEquals(firstRowId) - .execute(); + DataSet ds = + dc.query().from(testTableName).select("id").and("title").where("id").isEquals(firstRowId).execute(); assertEquals(InMemoryDataSet.class, ds.getClass()); try { http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/cassandra/src/test/resources/logback.xml ---------------------------------------------------------------------- diff --git a/cassandra/src/test/resources/logback.xml b/cassandra/src/test/resources/logback.xml new file mode 100644 index 0000000..8ba8596 --- /dev/null +++ b/cassandra/src/test/resources/logback.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<configuration> + + <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> + <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> + </encoder> + </appender> + + <logger name="org.apache.metamodel" level="info" /> + + <root level="warn"> + <appender-ref ref="consoleAppender" /> + </root> +</configuration> http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/hadoop/pom.xml ---------------------------------------------------------------------- diff --git a/hadoop/pom.xml b/hadoop/pom.xml index 87f7ff4..14c92bf 100644 --- a/hadoop/pom.xml +++ b/hadoop/pom.xml @@ -27,21 +27,9 @@ </dependency> <dependency> <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-common</artifactId> - </dependency> - <dependency> - <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> </dependency> <dependency> - <groupId>commons-beanutils</groupId> - <artifactId>commons-beanutils</artifactId> - </dependency> - <dependency> - <groupId>net.sourceforge.findbugs</groupId> - <artifactId>annotations</artifactId> - </dependency> - <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/hadoop/src/main/java/org/apache/metamodel/util/HdfsDirectoryInputStream.java ---------------------------------------------------------------------- diff --git a/hadoop/src/main/java/org/apache/metamodel/util/HdfsDirectoryInputStream.java b/hadoop/src/main/java/org/apache/metamodel/util/HdfsDirectoryInputStream.java index f02f2ff..f7ddb9a 100644 --- a/hadoop/src/main/java/org/apache/metamodel/util/HdfsDirectoryInputStream.java +++ b/hadoop/src/main/java/org/apache/metamodel/util/HdfsDirectoryInputStream.java @@ -46,7 +46,7 @@ class HdfsDirectoryInputStream extends AbstractDirectoryInputStream<FileStatus> @Override public boolean accept(final Path path) { try { - return _fs.isFile(path); + return _fs.getFileStatus(path).isFile(); } catch (IOException e) { return false; } http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/hadoop/src/main/java/org/apache/metamodel/util/HdfsResource.java ---------------------------------------------------------------------- diff --git a/hadoop/src/main/java/org/apache/metamodel/util/HdfsResource.java b/hadoop/src/main/java/org/apache/metamodel/util/HdfsResource.java index b66280c..6a6905a 100644 --- a/hadoop/src/main/java/org/apache/metamodel/util/HdfsResource.java +++ b/hadoop/src/main/java/org/apache/metamodel/util/HdfsResource.java @@ -201,7 +201,7 @@ public class HdfsResource extends AbstractResource implements Serializable { public long getSize() { final FileSystem fs = getHadoopFileSystem(); try { - if (fs.isFile(getHadoopPath())) { + if (fs.getFileStatus(getHadoopPath()).isFile()) { return fs.getFileStatus(getHadoopPath()).getLen(); } else { return fs.getContentSummary(getHadoopPath()).getLength(); @@ -258,7 +258,7 @@ public class HdfsResource extends AbstractResource implements Serializable { try { final Path hadoopPath = getHadoopPath(); // return a wrapper InputStream which manages the 'fs' closeable - if (fs.isFile(hadoopPath)) { + if (fs.getFileStatus(hadoopPath).isFile()) { in = fs.open(hadoopPath); return new HdfsFileInputStream(in, fs); } else { http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/hbase/pom.xml ---------------------------------------------------------------------- diff --git a/hbase/pom.xml b/hbase/pom.xml index f30f478..137dd71 100644 --- a/hbase/pom.xml +++ b/hbase/pom.xml @@ -20,7 +20,7 @@ <name>MetaModel module for Apache HBase</name> <properties> - <hbase.version>1.1.1</hbase.version> + <hbase.version>2.1.1</hbase.version> </properties> <dependencies> @@ -30,10 +30,6 @@ <version>${project.version}</version> </dependency> <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-common</artifactId> - </dependency> - <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>${hbase.version}</version> @@ -63,9 +59,13 @@ <groupId>org.mortbay.jetty</groupId> </exclusion> <exclusion> - <groupId>com.github.stephenc.findbugs</groupId> - <artifactId>findbugs-annotations</artifactId> - </exclusion> + <groupId>com.github.stephenc.findbugs</groupId> + <artifactId>findbugs-annotations</artifactId> + </exclusion> + <exclusion> + <groupId>net.jcip</groupId> + <artifactId>jcip-annotations</artifactId> + </exclusion> <exclusion> <groupId>tomcat</groupId> <artifactId>jasper-runtime</artifactId> @@ -141,10 +141,6 @@ </exclusions> </dependency> <dependency> - <groupId>net.sourceforge.findbugs</groupId> - <artifactId>annotations</artifactId> - </dependency> - <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/hbase/src/main/java/org/apache/metamodel/hbase/HBaseClient.java ---------------------------------------------------------------------- diff --git a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseClient.java b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseClient.java index ecf5e4c..2b25d84 100644 --- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseClient.java +++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseClient.java @@ -21,15 +21,16 @@ package org.apache.metamodel.hbase; import java.io.IOException; import java.util.Set; -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.Delete; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Table; +import org.apache.hadoop.hbase.client.TableDescriptorBuilder; import org.apache.hadoop.hbase.util.Bytes; import org.apache.metamodel.MetaModelException; import org.slf4j.Logger; @@ -155,15 +156,16 @@ final class HBaseClient { } try (final Admin admin = _connection.getAdmin()) { final TableName hBasetableName = TableName.valueOf(tableName); - final HTableDescriptor tableDescriptor = new HTableDescriptor(hBasetableName); + final TableDescriptorBuilder tableBuilder = TableDescriptorBuilder.newBuilder(hBasetableName); // Add all columnFamilies to the tableDescriptor. - for (final String columnFamilie : columnFamilies) { + for (final String columnFamily : columnFamilies) { // The ID-column isn't needed because, it will automatically be created. - if (!columnFamilie.equals(HBaseDataContext.FIELD_ID)) { - tableDescriptor.addFamily(new HColumnDescriptor(columnFamilie)); + if (!columnFamily.equals(HBaseDataContext.FIELD_ID)) { + final ColumnFamilyDescriptor columnDescriptor = ColumnFamilyDescriptorBuilder.of(columnFamily); + tableBuilder.setColumnFamily(columnDescriptor); } } - admin.createTable(tableDescriptor); + admin.createTable(tableBuilder.build()); } catch (IOException e) { throw new MetaModelException(e); } http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/hbase/src/main/java/org/apache/metamodel/hbase/HBaseColumn.java ---------------------------------------------------------------------- diff --git a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseColumn.java b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseColumn.java index f798b07..b6a400c 100644 --- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseColumn.java +++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseColumn.java @@ -23,6 +23,9 @@ import org.apache.metamodel.schema.MutableColumn; import org.apache.metamodel.schema.Table; final class HBaseColumn extends MutableColumn { + + private static final long serialVersionUID = 1L; + public static final ColumnType DEFAULT_COLUMN_TYPE_FOR_ID_COLUMN = ColumnType.BINARY; public static final ColumnType DEFAULT_COLUMN_TYPE_FOR_COLUMN_FAMILIES = ColumnType.LIST; http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/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 48a4695..1d0db49 100644 --- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java +++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java @@ -22,7 +22,6 @@ import java.io.IOException; import java.util.List; import org.apache.hadoop.conf.Configuration; -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.Connection; @@ -31,6 +30,7 @@ import org.apache.hadoop.hbase.client.Get; 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.filter.PageFilter; import org.apache.metamodel.DataContext; import org.apache.metamodel.MetaModelException; @@ -129,10 +129,11 @@ public class HBaseDataContext extends QueryPostprocessDataContext implements Upd SimpleTableDef[] tableDefinitions = _configuration.getTableDefinitions(); if (tableDefinitions == null) { try { - final HTableDescriptor[] tables = getAdmin().listTables(); - tableDefinitions = new SimpleTableDef[tables.length]; - for (int i = 0; i < tables.length; i++) { - SimpleTableDef emptyTableDef = new SimpleTableDef(tables[i].getNameAsString(), new String[0]); + final List<TableDescriptor> tables = getAdmin().listTableDescriptors(); + tableDefinitions = new SimpleTableDef[tables.size()]; + for (int i = 0; i < tables.size(); i++) { + final String tableName = tables.get(i).getTableName().getNameAsString(); + final SimpleTableDef emptyTableDef = new SimpleTableDef(tableName, new String[0]); tableDefinitions[i] = emptyTableDef; } } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/hbase/src/main/java/org/apache/metamodel/hbase/HBaseTable.java ---------------------------------------------------------------------- diff --git a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseTable.java b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseTable.java index dab24b0..3338691 100644 --- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseTable.java +++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseTable.java @@ -22,7 +22,7 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import org.apache.hadoop.hbase.HColumnDescriptor; +import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.metamodel.MetaModelException; import org.apache.metamodel.schema.Column; import org.apache.metamodel.schema.ColumnType; @@ -45,13 +45,14 @@ final class HBaseTable extends MutableTable { private final transient ColumnType _defaultRowKeyColumnType; /** - * Creates an HBaseTable. If the tableDef variable doesn't include the ID-column (see {@link HBaseDataContext#FIELD_ID}). - * Then it's first added. + * Creates an HBaseTable. If the tableDef variable doesn't include the ID-column (see + * {@link HBaseDataContext#FIELD_ID}). Then it's first added. + * * @param dataContext * @param tableDef Table definition. The tableName, columnNames and columnTypes variables are used. * @param schema {@link MutableSchema} where the table belongs to. - * @param defaultRowKeyColumnType This variable determines the {@link ColumnType}, - * used when the tableDef doesn't include the ID column (see {@link HBaseDataContext#FIELD_ID}). + * @param defaultRowKeyColumnType This variable determines the {@link ColumnType}, used when the tableDef doesn't + * include the ID column (see {@link HBaseDataContext#FIELD_ID}). */ public HBaseTable(final HBaseDataContext dataContext, final SimpleTableDef tableDef, final MutableSchema schema, final ColumnType defaultRowKeyColumnType) { @@ -63,6 +64,7 @@ final class HBaseTable extends MutableTable { /** * Add multiple columns to this table + * * @param tableDef */ private void addColumns(final SimpleTableDef tableDef) { @@ -135,7 +137,7 @@ final class HBaseTable extends MutableTable { // What about timestamp? // Add the other column (with columnNumbers starting from 2) - final HColumnDescriptor[] columnFamilies = table.getTableDescriptor().getColumnFamilies(); + final ColumnFamilyDescriptor[] columnFamilies = table.getDescriptor().getColumnFamilies(); for (int i = 0; i < columnFamilies.length; i++) { addColumn(columnFamilies[i].getNameAsString(), HBaseColumn.DEFAULT_COLUMN_TYPE_FOR_COLUMN_FAMILIES, i + 2); @@ -153,11 +155,7 @@ final class HBaseTable extends MutableTable { * @return {@link Set}<{@link String}> of columnFamilies */ Set<String> getColumnFamilies() { - return getColumnsInternal() - .stream() - .map(column -> (HBaseColumn) column) - .map(HBaseColumn::getColumnFamily) - .distinct() - .collect(Collectors.toSet()); + return getColumnsInternal().stream().map(column -> (HBaseColumn) column).map(HBaseColumn::getColumnFamily) + .distinct().collect(Collectors.toSet()); } } http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/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 7d07e57..c9f3322 100644 --- a/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java +++ b/hbase/src/test/java/org/apache/metamodel/hbase/HBaseDataContextTest.java @@ -18,16 +18,19 @@ */ package org.apache.metamodel.hbase; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.Arrays; -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.ColumnFamilyDescriptorBuilder; import org.apache.hadoop.hbase.client.Put; +import org.apache.hadoop.hbase.client.TableDescriptorBuilder; import org.apache.metamodel.data.DataSet; import org.apache.metamodel.schema.ColumnType; import org.apache.metamodel.schema.Table; @@ -50,9 +53,8 @@ public class HBaseDataContextTest extends HBaseTestCase { final Table table = getDataContext().getDefaultSchema().getTableByName(TABLE_NAME); assertNotNull(table); - assertEquals("[" + HBaseDataContext.FIELD_ID + ", " + CF_BAR + ", " + CF_FOO + "]", Arrays.toString(table - .getColumnNames() - .toArray())); + assertEquals("[" + HBaseDataContext.FIELD_ID + ", " + CF_BAR + ", " + CF_FOO + "]", + Arrays.toString(table.getColumnNames().toArray())); assertEquals(HBaseColumn.DEFAULT_COLUMN_TYPE_FOR_COLUMN_FAMILIES, table.getColumn(1).getType()); // insert two records @@ -75,20 +77,16 @@ public class HBaseDataContextTest extends HBaseTestCase { 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(TABLE_NAME, columnNames, - columnTypes) }; + final SimpleTableDef[] tableDefinitions = + new SimpleTableDef[] { new SimpleTableDef(TABLE_NAME, columnNames, columnTypes) }; setDataContext(new HBaseDataContext(new HBaseConfiguration("SCH", getZookeeperHostname(), getZookeeperPort(), tableDefinitions, ColumnType.VARCHAR))); - try (final DataSet dataSet2 = getDataContext() - .query() - .from(TABLE_NAME) - .select(columnName1, columnName2, columnName3) - .execute()) { + try (final DataSet dataSet2 = + getDataContext().query().from(TABLE_NAME).select(columnName1, columnName2, columnName3).execute()) { assertTrue(dataSet2.next()); - assertEquals("Row[values=[{" + Q_HELLO + "=" + V_WORLD + "}, " + V_THERE + ", " + V_YO + "]]", dataSet2 - .getRow() - .toString()); + assertEquals("Row[values=[{" + Q_HELLO + "=" + V_WORLD + "}, " + V_THERE + ", " + V_YO + "]]", + dataSet2.getRow().toString()); assertTrue(dataSet2.next()); assertEquals("Row[values=[{}, " + V_YOU + ", null]]", dataSet2.getRow().toString()); assertFalse(dataSet2.next()); @@ -102,11 +100,8 @@ public class HBaseDataContextTest extends HBaseTestCase { } // query only id - try (final DataSet dataSet4 = getDataContext() - .query() - .from(TABLE_NAME) - .select(HBaseDataContext.FIELD_ID) - .execute()) { + try (final DataSet dataSet4 = + getDataContext().query().from(TABLE_NAME).select(HBaseDataContext.FIELD_ID).execute()) { assertTrue(dataSet4.next()); assertEquals("Row[values=[" + RK_1 + "]]", dataSet4.getRow().toString()); assertTrue(dataSet4.next()); @@ -115,13 +110,8 @@ public class HBaseDataContextTest extends HBaseTestCase { } // primary key lookup query - using GET - try (final DataSet dataSet5 = getDataContext() - .query() - .from(TABLE_NAME) - .select(HBaseDataContext.FIELD_ID) - .where(HBaseDataContext.FIELD_ID) - .eq(RK_1) - .execute()) { + try (final DataSet dataSet5 = getDataContext().query().from(TABLE_NAME).select(HBaseDataContext.FIELD_ID) + .where(HBaseDataContext.FIELD_ID).eq(RK_1).execute()) { assertTrue(dataSet5.next()); assertEquals("Row[values=[" + RK_1 + "]]", dataSet5.getRow().toString()); assertFalse(dataSet5.next()); @@ -155,10 +145,10 @@ public class HBaseDataContextTest extends HBaseTestCase { } else { // Create table System.out.println("Creating table"); - final HTableDescriptor tableDescriptor = new HTableDescriptor(tableName); - tableDescriptor.addFamily(new HColumnDescriptor(CF_FOO.getBytes())); - tableDescriptor.addFamily(new HColumnDescriptor(CF_BAR.getBytes())); - admin.createTable(tableDescriptor); + final TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(tableName); + tableDescriptor.setColumnFamily(ColumnFamilyDescriptorBuilder.of(CF_FOO.getBytes())); + tableDescriptor.setColumnFamily(ColumnFamilyDescriptorBuilder.of(CF_BAR.getBytes())); + admin.createTable(tableDescriptor.build()); System.out.println("Created table"); } } http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/HsqldbQueryRewriter.java ---------------------------------------------------------------------- diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/HsqldbQueryRewriter.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/HsqldbQueryRewriter.java index 1f9a37c..4f736a8 100644 --- a/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/HsqldbQueryRewriter.java +++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/HsqldbQueryRewriter.java @@ -26,8 +26,6 @@ import org.apache.metamodel.query.SelectItem; import org.apache.metamodel.schema.Column; import org.apache.metamodel.schema.ColumnType; -import com.google.common.base.CharMatcher; - /** * Query rewriter for HSQLDB */ @@ -106,8 +104,7 @@ public class HsqldbQueryRewriter extends DefaultQueryRewriter { */ @Override public boolean needsQuoting(String alias, String identifierQuoteString) { - - boolean containsLowerCase = CharMatcher.JAVA_LOWER_CASE.matchesAnyOf(identifierQuoteString); + final boolean containsLowerCase = identifierQuoteString.chars().anyMatch(Character::isLowerCase); return containsLowerCase || super.needsQuoting(alias, identifierQuoteString); } http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/jdbc/src/test/java/org/apache/metamodel/jdbc/dialects/OracleQueryRewriterTest.java ---------------------------------------------------------------------- diff --git a/jdbc/src/test/java/org/apache/metamodel/jdbc/dialects/OracleQueryRewriterTest.java b/jdbc/src/test/java/org/apache/metamodel/jdbc/dialects/OracleQueryRewriterTest.java index bdec92d..7938e3c 100644 --- a/jdbc/src/test/java/org/apache/metamodel/jdbc/dialects/OracleQueryRewriterTest.java +++ b/jdbc/src/test/java/org/apache/metamodel/jdbc/dialects/OracleQueryRewriterTest.java @@ -66,7 +66,6 @@ public class OracleQueryRewriterTest { public void testOffsetFetchConstruct() { final int offset = 1000; final int rows = 100; - final String where = "x > 1"; final String offsetClause = " OFFSET " + (offset - 1) + " ROWS"; final String fetchClause = " FETCH NEXT " + rows + " ROWS ONLY"; http://git-wip-us.apache.org/repos/asf/metamodel/blob/beb8b513/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 7f412c03..7c04733 100644 --- a/pom.xml +++ b/pom.xml @@ -17,17 +17,19 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <sshwagon.version>2.6</sshwagon.version> <javadoc.version>2.10.3</javadoc.version> - <slf4j.version>1.7.7</slf4j.version> + <slf4j.version>1.7.25</slf4j.version> <junit.version>4.12</junit.version> - <guava.version>16.0.1</guava.version> - <hadoop.version>2.6.0</hadoop.version> - <jackson.version>2.6.3</jackson.version> + <guava.version>27.0.1-jre</guava.version> + <hadoop.version>3.1.1</hadoop.version> + <jackson.version>2.6.7</jackson.version> <easymock.version>3.2</easymock.version> <spring.version>4.2.6.RELEASE</spring.version> <httpcomponents.version>4.4.1</httpcomponents.version> @@ -316,8 +318,11 @@ under the License. <exclude>stax:stax-api:*</exclude> <exclude>javax.xml.stream:stax-api</exclude> - <!-- findbugs-annotations is overlapping with annotations --> + <!-- findbugs-annotations is overlapping with net.sourceforge.findbugs:annotations --> <exclude>com.github.stephenc.findbugs:findbugs-annotations:*</exclude> + + <!-- net.jcip:jcip-annotations is overlapping with net.sourceforge.findbugs:annotations --> + <exclude>net.jcip:jcip-annotations</exclude> </excludes> </bannedDependencies> </rules> @@ -389,7 +394,8 @@ under the License. <artifactId>apache-rat-plugin</artifactId> <configuration> <licenses> - <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense"> + <license + implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense"> <licenseFamilyCategory>ASL20</licenseFamilyCategory> <licenseFamilyName>Apache Software License, 2.0</licenseFamilyName> <notes>Single licensed ASL v2.0</notes> @@ -577,28 +583,28 @@ under the License. <artifactId>hsqldb</artifactId> <version>1.8.0.10</version> </dependency> - + <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - <version>${spring.version}</version> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + <version>${spring.version}</version> </dependency> <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-test</artifactId> - <version>${spring.version}</version> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> @@ -617,6 +623,10 @@ under the License. <groupId>org.mortbay.jetty</groupId> </exclusion> <exclusion> + <groupId>net.jcip</groupId> + <artifactId>jcip-annotations</artifactId> + </exclusion> + <exclusion> <groupId>com.github.stephenc.findbugs</groupId> <artifactId>findbugs-annotations</artifactId> </exclusion>
