Repository: metamodel
Updated Branches:
  refs/heads/master 1651957d0 -> 0ca83c373


Fixes #151: Minor tweaks for Membrane to consume API

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

Branch: refs/heads/master
Commit: 0ca83c37340804534fbd7b41dec1a9502d74df60
Parents: 1651957
Author: Kasper Sørensen <i.am.kasper.soren...@gmail.com>
Authored: Wed Jul 26 18:32:07 2017 -0700
Committer: Kasper Sørensen <i.am.kasper.soren...@gmail.com>
Committed: Wed Jul 26 18:32:07 2017 -0700

----------------------------------------------------------------------
 .../factory/DataContextPropertiesImpl.java      |  3 +
 .../apache/metamodel/pojo/PojoDataContext.java  |  4 +-
 .../metamodel/pojo/PojoDataContextFactory.java  | 71 ++++++++++++++++++++
 ....apache.metamodel.factory.DataContextFactory |  1 +
 pom.xml                                         | 38 ++++++++++-
 spring/pom.xml                                  | 12 ----
 6 files changed, 115 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/metamodel/blob/0ca83c37/core/src/main/java/org/apache/metamodel/factory/DataContextPropertiesImpl.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/metamodel/factory/DataContextPropertiesImpl.java
 
b/core/src/main/java/org/apache/metamodel/factory/DataContextPropertiesImpl.java
index e66a811..13ce9c1 100644
--- 
a/core/src/main/java/org/apache/metamodel/factory/DataContextPropertiesImpl.java
+++ 
b/core/src/main/java/org/apache/metamodel/factory/DataContextPropertiesImpl.java
@@ -288,6 +288,9 @@ public class DataContextPropertiesImpl implements 
DataContextProperties {
     @Override
     public SimpleTableDef[] getTableDefs() {
         final Object obj = get(PROPERTY_TABLE_DEFS);
+        if (obj == null) {
+            return null;
+        }
         if (obj instanceof SimpleTableDef[]) {
             return (SimpleTableDef[]) obj;
         }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/0ca83c37/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
----------------------------------------------------------------------
diff --git a/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java 
b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
index 9369e96..340228f 100644
--- a/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
+++ b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
@@ -49,6 +49,8 @@ import org.apache.metamodel.util.SimpleTableDef;
 public class PojoDataContext extends QueryPostprocessDataContext implements 
UpdateableDataContext, Serializable {
 
     private static final long serialVersionUID = 1L;
+    
+    public static final String DEFAULT_SCHEMA_NAME = "Schema";
 
     private final Map<String, TableDataProvider<?>> _tables;
     private final String _schemaName;
@@ -68,7 +70,7 @@ public class PojoDataContext extends 
QueryPostprocessDataContext implements Upda
      * @param tables
      */
     public PojoDataContext(List<TableDataProvider<?>> tables) {
-        this("Schema", tables);
+        this(DEFAULT_SCHEMA_NAME, tables);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/metamodel/blob/0ca83c37/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContextFactory.java
----------------------------------------------------------------------
diff --git 
a/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContextFactory.java 
b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContextFactory.java
new file mode 100644
index 0000000..35842bf
--- /dev/null
+++ b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContextFactory.java
@@ -0,0 +1,71 @@
+/**
+ * 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.
+ */
+package org.apache.metamodel.pojo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.metamodel.ConnectionException;
+import org.apache.metamodel.DataContext;
+import org.apache.metamodel.factory.DataContextFactory;
+import org.apache.metamodel.factory.DataContextProperties;
+import org.apache.metamodel.factory.ResourceFactoryRegistry;
+import org.apache.metamodel.factory.UnsupportedDataContextPropertiesException;
+import org.apache.metamodel.util.SimpleTableDef;
+
+public class PojoDataContextFactory implements DataContextFactory {
+
+    public static final String PROPERTY_TYPE = "pojo";
+
+    @Override
+    public boolean accepts(DataContextProperties properties, 
ResourceFactoryRegistry resourceFactoryRegistry) {
+        return PROPERTY_TYPE.equals(properties.getDataContextType());
+    }
+
+    @Override
+    public DataContext create(DataContextProperties properties, 
ResourceFactoryRegistry resourceFactoryRegistry)
+            throws UnsupportedDataContextPropertiesException, 
ConnectionException {
+
+        assert accepts(properties, resourceFactoryRegistry);
+
+        final String schemaName;
+        if (properties.getDatabaseName() != null) {
+            schemaName = properties.getDatabaseName();
+        } else {
+            schemaName = "Schema";
+        }
+
+        final List<TableDataProvider<?>> tableDataProviders;
+
+        final SimpleTableDef[] tableDefs = properties.getTableDefs();
+        if (tableDefs == null) {
+            tableDataProviders = new ArrayList<>();
+        } else {
+            tableDataProviders = new ArrayList<>(tableDefs.length);
+            for (int i = 0; i < tableDefs.length; i++) {
+                final TableDataProvider<?> tableDataProvider = new 
ArrayTableDataProvider(tableDefs[i],
+                        new ArrayList<Object[]>());
+                tableDataProviders.add(tableDataProvider);
+            }
+        }
+
+        return new PojoDataContext(schemaName, tableDataProviders);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/metamodel/blob/0ca83c37/pojo/src/main/resources/META-INF/services/org.apache.metamodel.factory.DataContextFactory
----------------------------------------------------------------------
diff --git 
a/pojo/src/main/resources/META-INF/services/org.apache.metamodel.factory.DataContextFactory
 
b/pojo/src/main/resources/META-INF/services/org.apache.metamodel.factory.DataContextFactory
new file mode 100644
index 0000000..76f808d
--- /dev/null
+++ 
b/pojo/src/main/resources/META-INF/services/org.apache.metamodel.factory.DataContextFactory
@@ -0,0 +1 @@
+org.apache.metamodel.pojo.PojoDataContextFactory
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/metamodel/blob/0ca83c37/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 0f82d84..3806a8b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,6 +29,7 @@ under the License.
                <hadoop.version>2.6.0</hadoop.version>
                <jackson.version>2.6.3</jackson.version>
                <easymock.version>3.2</easymock.version>
+               <spring.version>4.2.6.RELEASE</spring.version>
                <httpcomponents.version>4.4.1</httpcomponents.version>
                
<checksum-maven-plugin.version>1.2</checksum-maven-plugin.version>
                <skipTests>false</skipTests>
@@ -372,7 +373,7 @@ under the License.
                                                
<excludeSubProjects>false</excludeSubProjects>
                                                <excludes>
                                                        <exclude>KEYS</exclude>
-                                                       <exclude>*.md</exclude>
+                                                       
<exclude>**/*.md</exclude>
                                                        
<exclude>example-metamodel-integrationtest-configuration.properties</exclude>
                                                        
<exclude>travis-metamodel-integrationtest-configuration.properties</exclude>
                                                        
<exclude>**/src/assembly/metamodel-packaged-assembly-descriptor.xml</exclude>
@@ -386,6 +387,7 @@ under the License.
                                                        
<exclude>**/.project</exclude>
                                                        
<exclude>**/.classpath</exclude>
                                                        
<exclude>**/.settings/**</exclude>
+                                                       
<exclude>**/.vscode/**</exclude>
                                                        
<exclude>**/.travis.yml</exclude>
                                                        
<exclude>**/target/**</exclude>
                                                        
<exclude>**/*.iml/**</exclude>
@@ -393,6 +395,7 @@ under the License.
                                                        
<exclude>**/*.ipr/**</exclude>
                                                        
<exclude>**/.idea/**</exclude>
                                                        
<exclude>**/tattletale-filters.properties</exclude>
+                                                       
<exclude>**/swagger-ui/**</exclude>
                                                        
<exclude>DEPENDENCIES</exclude>
                                                        
<exclude>DISCLAIMER</exclude>
                                                        
<exclude>neo4j-community-*/**</exclude>
@@ -515,6 +518,11 @@ under the License.
                                <version>${jackson.version}</version>
                        </dependency>
                        <dependency>
+                               
<groupId>com.fasterxml.jackson.dataformat</groupId>
+                               <artifactId>jackson-dataformat-yaml</artifactId>
+                               <version>${jackson.version}</version>
+                       </dependency>
+                       <dependency>
                                <groupId>com.fasterxml.jackson.core</groupId>
                                <artifactId>jackson-annotations</artifactId>
                                <version>${jackson.version}</version>
@@ -539,6 +547,34 @@ 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>
+                       </dependency>
+                       <dependency>
+                           <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>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.springframework</groupId>
+                               <artifactId>spring-webmvc</artifactId>
+                               <version>${spring.version}</version>
+                       </dependency>
 
                        <!-- Hadoop -->
                        <dependency>

http://git-wip-us.apache.org/repos/asf/metamodel/blob/0ca83c37/spring/pom.xml
----------------------------------------------------------------------
diff --git a/spring/pom.xml b/spring/pom.xml
index 6792582..b6d09b4 100644
--- a/spring/pom.xml
+++ b/spring/pom.xml
@@ -27,10 +27,6 @@ under the License.
        <artifactId>MetaModel-spring</artifactId>
        <name>MetaModel module for Spring enabled configuration</name>
        
-       <properties>
-               <spring.version>3.0.7.RELEASE</spring.version>
-       </properties>
-
        <dependencies>
                <dependency>
                        <groupId>org.apache.metamodel</groupId>
@@ -46,14 +42,7 @@ under the License.
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
-                   <version>${spring.version}</version>
                    <scope>provided</scope>
-                   <exclusions>
-                       <exclusion>
-                               <groupId>commons-logging</groupId>
-                               <artifactId>commons-logging</artifactId>
-                       </exclusion>
-                   </exclusions>
                </dependency>
 
                <!-- test -->
@@ -70,7 +59,6 @@ under the License.
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-test</artifactId>
-                   <version>${spring.version}</version>
                    <scope>test</scope>
                </dependency>
        </dependencies>

Reply via email to