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>