Merge branch 'master' into 5.x

# Conflicts:
#       CHANGES.md
#       cassandra/pom.xml
#       core/pom.xml
#       couchdb/pom.xml
#       csv/pom.xml
#       elasticsearch/common/pom.xml
#       elasticsearch/native/pom.xml
#       elasticsearch/pom.xml
#       elasticsearch/rest/pom.xml
#       
elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java
#       excel/pom.xml
#       fixedwidth/pom.xml
#       
fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthColumnSpec.java
#       
fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthConfiguration.java
#       
fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthConfigurationReader.java
#       full/pom.xml
#       hadoop/pom.xml
#       hbase/pom.xml
#       jdbc/pom.xml
#       
jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/PostgresqlTest.java
#       json/pom.xml
#       mongodb/common/pom.xml
#       mongodb/mongo2/pom.xml
#       mongodb/mongo3/pom.xml
#       mongodb/pom.xml
#       neo4j/pom.xml
#       openoffice/pom.xml
#       pojo/pom.xml
#       pom.xml
#       salesforce/pom.xml
#       spring/pom.xml
#       sugarcrm/pom.xml
#       xml/pom.xml


Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/c4788a27
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/c4788a27
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/c4788a27

Branch: refs/heads/5.x
Commit: c4788a27270110ee630e0337402f4f48b6147ac1
Parents: 02397db b0cfe3a
Author: Kasper Sørensen <i.am.kasper.soren...@gmail.com>
Authored: Tue May 9 20:40:08 2017 -0700
Committer: Kasper Sørensen <i.am.kasper.soren...@gmail.com>
Committed: Tue May 9 20:53:48 2017 -0700

----------------------------------------------------------------------
 .gitattributes                                  |   2 +
 CHANGES.md                                      |  36 +-
 README.md                                       |  77 ++--
 cassandra/.gitignore                            |   1 +
 .../cassandra/CassandraDataContext.java         |  74 +++-
 .../cassandra/CassandraDataContextTest.java     |  18 +-
 .../metamodel/factory/DataContextFactory.java   |  16 +
 .../insert/AbstractRowInsertionBuilder.java     |   5 +-
 .../metamodel/query/DefaultCompiledQuery.java   |   2 +-
 .../org/apache/metamodel/query/FilterItem.java  |  12 +-
 .../apache/metamodel/query/OperatorType.java    |   6 +-
 .../metamodel/query/OperatorTypeImpl.java       |  74 ++--
 .../query/builder/AbstractFilterBuilder.java    |  24 ++
 .../builder/AbstractQueryFilterBuilder.java     |  21 +
 .../metamodel/query/builder/FilterBuilder.java  |  22 ++
 .../query/builder/GroupedQueryBuilder.java      |   5 +
 .../builder/GroupedQueryBuilderCallback.java    |  16 +
 .../query/builder/GroupedQueryBuilderImpl.java  |  30 +-
 .../query/builder/HavingBuilderImpl.java        | 100 +++--
 .../query/builder/SatisfiedQueryBuilder.java    |   4 +-
 .../apache/metamodel/util/WildcardPattern.java  |  13 +-
 .../ResourceFactoryRegistryImplTest.java        |   3 +-
 .../insert/AbstractRowInsertionBuilderTest.java |  49 +++
 .../apache/metamodel/query/FilterItemTest.java  |  28 ++
 .../query/builder/SyntaxExamplesTest.java       |   5 +
 .../query/builder/WhereBuilderImplTest.java     |  28 ++
 .../metamodel/util/WildcardPatternTest.java     |  11 +
 .../apache/metamodel/csv/CsvConfiguration.java  |   2 +-
 .../metamodel/csv/CsvDataContextTest.java       |  23 ++
 dynamodb/.gitignore                             |   4 +
 dynamodb/pom.xml                                |  61 +++
 .../metamodel/dynamodb/DynamoDbDataContext.java | 306 +++++++++++++++
 .../metamodel/dynamodb/DynamoDbDataSet.java     |  68 ++++
 .../dynamodb/DynamoDbRowInsertionBuilder.java   |  57 +++
 .../dynamodb/DynamoDbTableCreationBuilder.java  | 112 ++++++
 .../dynamodb/DynamoDbTableDropBuilder.java      |  46 +++
 .../dynamodb/DynamoDbUpdateCallback.java        |  85 +++++
 .../metamodel/dynamodb/DynamoDbUtils.java       | 105 +++++
 .../DynamoDbDataContextIntegrationTest.java     | 211 +++++++++++
 .../ElasticSearchDataContextFactory.java        | 165 ++++++++
 ....apache.metamodel.factory.DataContextFactory |   1 +
 .../rest/ElasticSearchRestDataContext.java      |  24 +-
 .../ElasticSearchRestDataContextFactory.java    | 106 ++++++
 ....apache.metamodel.factory.DataContextFactory |   1 +
 ...del-integrationtest-configuration.properties |   7 +
 .../metamodel/excel/ExcelDataContextTest.java   |  17 +
 fixedwidth/pom.xml                              |  46 +--
 .../fixedwidth/EbcdicConfiguration.java         |  67 ++++
 .../metamodel/fixedwidth/EbcdicReader.java      |  79 ++++
 .../fixedwidth/FixedWidthConfiguration.java     | 199 +++++-----
 .../FixedWidthConfigurationReader.java          |  18 +-
 .../fixedwidth/FixedWidthDataContext.java       |  25 +-
 .../metamodel/fixedwidth/FixedWidthDataSet.java |   3 +-
 .../fixedwidth/FixedWidthLineParser.java        | 121 ++++++
 .../metamodel/fixedwidth/FixedWidthReader.java  | 379 +++++++++++--------
 .../apache/metamodel/fixedwidth/EBCDICTest.java |  95 +++++
 .../fixedwidth/FixedWidthConfigurationTest.java |  11 +-
 .../fixedwidth/FixedWidthDataContextTest.java   |  20 +-
 .../fixedwidth/FixedWidthLineParserTest.java    |  66 ++++
 .../fixedwidth/FixedWidthReaderTest.java        | 103 ++++-
 .../test/resources/example_diacritics_utf8.txt  |   4 +
 .../src/test/resources/example_simple3.txt      |   4 +
 .../test/resources/fixed-width-2-7-10-10.ebc    |   1 +
 .../apache/metamodel/DataContextFactory.java    |  22 +-
 jdbc/pom.xml                                    |  13 +-
 .../apache/metamodel/jdbc/JdbcDataContext.java  |  68 ++--
 .../org/apache/metamodel/jdbc/JdbcDataSet.java  |  53 +--
 .../metamodel/jdbc/JdbcDeleteBuilder.java       |   2 +-
 .../metamodel/jdbc/JdbcInsertBuilder.java       |   2 +-
 .../metamodel/jdbc/JdbcUpdateBuilder.java       |   4 +-
 .../org/apache/metamodel/jdbc/JdbcUtils.java    | 140 +------
 .../org/apache/metamodel/jdbc/SqlKeywords.java  |  69 ++--
 .../jdbc/dialects/AbstractQueryRewriter.java    | 197 +++++++++-
 .../jdbc/dialects/DB2QueryRewriter.java         |   2 +-
 .../jdbc/dialects/DefaultQueryRewriter.java     |   9 +-
 .../jdbc/dialects/HiveQueryRewriter.java        |  12 +-
 .../metamodel/jdbc/dialects/IQueryRewriter.java |  30 ++
 .../jdbc/dialects/MysqlQueryRewriter.java       |   2 +-
 .../jdbc/dialects/OffsetFetchQueryRewriter.java |  69 ++++
 .../jdbc/dialects/OracleQueryRewriter.java      |  19 +-
 .../jdbc/dialects/PostgresqlQueryRewriter.java  |  69 +++-
 .../jdbc/dialects/SQLServerQueryRewriter.java   |  13 +-
 .../dialects/SQLServerQueryRewriterTest.java    |  19 +-
 .../metamodel/jdbc/JdbcTestTemplates.java       |  22 ++
 .../jdbc/dialects/OracleQueryRewriterTest.java  | 134 +++++++
 .../dialects/PostgresqlQueryRewriterTest.java   |  49 +++
 .../integrationtests/HiveIntegrationTest.java   |  69 +++-
 .../jdbc/integrationtests/PostgresqlTest.java   | 102 +++--
 pom.xml                                         |   3 +
 salesforce/pom.xml                              |  12 +-
 .../salesforce/SalesforceDataContext.java       |  24 ++
 .../metamodel/salesforce/SalesforceTable.java   |   2 +-
 92 files changed, 3763 insertions(+), 792 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/CHANGES.md
----------------------------------------------------------------------
diff --cc CHANGES.md
index bb64682,ebc7e66..3356b5d
--- a/CHANGES.md
+++ b/CHANGES.md
@@@ -1,12 -1,31 +1,37 @@@
 +### Apache MetaModel 5.0
 +
 + * [METAMODEL-6] - Added update summary containing information about changes 
on returning UpdateableDataContext.executeUpdate(..)
 + * [METAMODEL-222] - Added support for Java 8 lambdas, removed support for 
Java 7.
 + * [METAMODEL-1087] - Removed deprecated APIs from MetaModel's codebase.
 +
- ### Apache MetaModel 4.5.4 (work in progress)
+ ### Apache MetaModel 4.6.0
+ 
+  * [METAMODEL-1136] - New connector for Amazon DynamoDB.
+  * [METAMODEL-1134] - Added NOT IN and NOT LIKE operators to WHERE filters.
+  * [METAMODEL-1133] - Made PojoDataContext thread-safe.
+ 
+ ### Apache MetaModel 4.5.5
+ 
+  * [METAMODEL-1132] - Support native paging on SQL Server and Oracle database.
+  * [METAMODEL-1128] - Fixed bug pertaining to ElasticSearch REST data set 
scrolling.
+  * [METAMODEL-1118] - Fixed bug pertaining to cloning of 
FilterItem.LogicalOperator in compiled queries.
+  * [METAMODEL-1111] - Added WHERE rewrite for Oracle when empty strings are 
considered as NULL.
+  * [METAMODEL-1122] - Optimized the way the Cassandra module executes 
primary key lookup queries.
+  * [METAMODEL-1109] - Fixed diacritics/encoding issue with Fixed Width 
reader.
+  * [METAMODEL-1115] - Added support for passing your own PartnerConnection 
object to the Salesforce.com connector.
+  * [METAMODEL-1113] - Fixed support for ColumnNamingStrategy in CSV connector.
+  * [METAMODEL-1114] - Added support for ColumnNamingStrategy in EBCDIC 
connector.
+  * [METAMODEL-1119] - Worked around Hive JDBC driver issues, avoiding 
non-compliant metadata calls.
+  * [METAMODEL-1123] - Fixed the treatment of a Salesforce.com 'currency' 
value as a number, not a string.
+  * [METAMODEL-1124] - Fixed the date formatting of date values in MS SQL 
server.
+  * [METAMODEL-1127] - Fixed setting of null Map on postgres
+  
+ ### Apache MetaModel 4.5.4
  
   * [METAMODEL-1099] - Created a new DataContextFactory SPI and a extensible 
registry of implementations based on ServiceLoader.
+  * [METAMODEL-1099] - Implemented DataContextFactory SPI for connectors: 
JDBC, CSV, ElasticSearch
+  * [METAMODEL-250] - Added support for EBCDIC files (part of 'fixedwidth' 
module).
+  * [METAMODEL-1103] - Fixed a bug pertaining to anchoring of wildcards in 
LIKE operands.
   * [METAMODEL-1088] - Add support for aliases in MongoDB.
   * [METAMODEL-1086] - Fixed encoding issue when CsvDataContext is 
instantiated with InputStream.
   * [METAMODEL-1094] - Added support for Apache Cassandra version 3.x.

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/core/src/main/java/org/apache/metamodel/query/FilterItem.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/core/src/main/java/org/apache/metamodel/query/builder/AbstractFilterBuilder.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/core/src/main/java/org/apache/metamodel/query/builder/AbstractQueryFilterBuilder.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/core/src/main/java/org/apache/metamodel/query/builder/FilterBuilder.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/dynamodb/pom.xml
----------------------------------------------------------------------
diff --cc dynamodb/pom.xml
index 0000000,ec95902..1de0cb3
mode 000000,100644..100644
--- a/dynamodb/pom.xml
+++ b/dynamodb/pom.xml
@@@ -1,0 -1,61 +1,61 @@@
+ <?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.
+ -->
+ <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>
 -              <version>4.6.1-SNAPSHOT</version>
++              <version>5.0-SNAPSHOT</version>
+       </parent>
+       <modelVersion>4.0.0</modelVersion>
+       <artifactId>MetaModel-dynamodb</artifactId>
+       <name>MetaModel module for Amazon AWS DynamoDB.</name>
+       <dependencies>
+               <dependency>
+                       <groupId>org.apache.metamodel</groupId>
+                       <artifactId>MetaModel-core</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>com.amazonaws</groupId>
+                       <artifactId>aws-java-sdk-dynamodb</artifactId>
+                       <version>1.11.81</version>
+                       <exclusions>
+                               <exclusion>
+                                       <groupId>commons-logging</groupId>
+                                       <artifactId>commons-logging</artifactId>
+                               </exclusion>
+                       </exclusions>
+               </dependency>
+               <dependency>
+                       <groupId>org.slf4j</groupId>
+                       <artifactId>jcl-over-slf4j</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.slf4j</groupId>
+                       <artifactId>slf4j-nop</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
+ </project>

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
----------------------------------------------------------------------
diff --cc 
excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
index eef29ae,f8406c3..ecd6691
--- a/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
+++ b/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
@@@ -34,13 -36,11 +34,14 @@@ import org.apache.metamodel.query.Query
  import org.apache.metamodel.schema.Column;
  import org.apache.metamodel.schema.Schema;
  import org.apache.metamodel.schema.Table;
+ import org.apache.metamodel.schema.naming.CustomColumnNamingStrategy;
  import org.apache.metamodel.util.DateUtils;
  import org.apache.metamodel.util.FileHelper;
 +import org.apache.metamodel.util.FileResource;
  import org.apache.metamodel.util.Month;
  
 +import junit.framework.TestCase;
 +
  public class ExcelDataContextTest extends TestCase {
  
      /**

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/fixedwidth/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
----------------------------------------------------------------------
diff --cc 
fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
index 28ee300,027cdab..952c4b5
--- 
a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
+++ 
b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
@@@ -69,9 -89,24 +69,9 @@@ public class FixedWidthDataContext exte
      }
  
      /**
 -     * Gets the file being read.
 -     * 
 -     * @return a file
 -     * 
 -     * @deprecated use {@link #getResource()} instead.
 -     */
 -    @Deprecated
 -    public File getFile() {
 -        if (_resource instanceof FileResource) {
 -            return ((FileResource) _resource).getFile();
 -        }
 -        return null;
 -    }
 -
 -    /**
       * Gets the resource being read
       * 
-      * @return
+      * @return a {@link Resource} object
       */
      public Resource getResource() {
          return _resource;

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/jdbc/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataContext.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDeleteBuilder.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcInsertBuilder.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcUpdateBuilder.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/jdbc/src/test/java/org/apache/metamodel/jdbc/JdbcTestTemplates.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/PostgresqlTest.java
----------------------------------------------------------------------
diff --cc 
jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/PostgresqlTest.java
index ef3ae28,2668df9..6f8fb09
--- 
a/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/PostgresqlTest.java
+++ 
b/jdbc/src/test/java/org/apache/metamodel/jdbc/integrationtests/PostgresqlTest.java
@@@ -22,8 -22,9 +22,10 @@@ import java.lang.reflect.Method
  import java.sql.Connection;
  import java.sql.DatabaseMetaData;
  import java.util.Arrays;
+ import java.util.HashMap;
  import java.util.List;
 +import java.util.Optional;
+ import java.util.Map;
  import java.util.concurrent.TimeUnit;
  
  import javax.swing.table.TableModel;
@@@ -434,42 -478,6 +481,42 @@@ public class PostgresqlTest extends Abs
          }
      }
  
 +    public void testGetGeneratedKeys() throws Exception {
 +        if (!isConfigured()) {
 +            return;
 +        }
 +
 +        final JdbcDataContext dc = new JdbcDataContext(getConnection());
 +        final Schema schema = dc.getDefaultSchema();
 +        final String tableName = "my_table_with_generated_keys";
 +        
 +        if (schema.getTableByName(tableName) != null) {
 +            dc.executeUpdate(new DropTable(schema, tableName));
 +        }
 +
 +        final UpdateSummary updateSummary = dc.executeUpdate(new 
UpdateScript() {
 +            @Override
 +            public void run(UpdateCallback cb) {
 +                Table table = cb.createTable(schema, 
tableName).withColumn("id").ofType(ColumnType.INTEGER)
 +                        
.ofNativeType("SERIAL").nullable(false).asPrimaryKey().withColumn("foo").ofType(
 +                                ColumnType.STRING).execute();
 +                assertEquals(tableName, table.getName());
 +
 +                cb.insertInto(table).value("foo", "hello").execute();
 +                cb.insertInto(table).value("foo", "world").execute();
 +            }
 +        });
 +
 +        final Optional<Integer> insertedRows = 
updateSummary.getInsertedRows();
 +        assertTrue(insertedRows.isPresent());
 +        assertEquals(2, insertedRows.get().intValue());
 +        
 +        final Optional<Iterable<Object>> generatedKeys = 
updateSummary.getGeneratedKeys();
 +        assertTrue(generatedKeys.isPresent());
 +        assertEquals("[1, 2]", generatedKeys.get().toString());
 +        
 +    }
-     
++
      public void testBlob() throws Exception {
          if (!isConfigured()) {
              return;

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/salesforce/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metamodel/blob/c4788a27/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
----------------------------------------------------------------------

Reply via email to