You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2017/08/01 05:20:14 UTC
metamodel-membrane git commit: METAMODEL-1147: Fixed tests and use of
Jackson ObjectMapper from codegen
Repository: metamodel-membrane
Updated Branches:
refs/heads/swagger-codegen-model 609cc85b1 -> dfdad119d
METAMODEL-1147: Fixed tests and use of Jackson ObjectMapper from codegen
Project: http://git-wip-us.apache.org/repos/asf/metamodel-membrane/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel-membrane/commit/dfdad119
Tree: http://git-wip-us.apache.org/repos/asf/metamodel-membrane/tree/dfdad119
Diff: http://git-wip-us.apache.org/repos/asf/metamodel-membrane/diff/dfdad119
Branch: refs/heads/swagger-codegen-model
Commit: dfdad119d3d4af0fecb0d587f710f3a253796cd9
Parents: 609cc85
Author: Kasper Sørensen <i....@gmail.com>
Authored: Mon Jul 31 22:20:11 2017 -0700
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Mon Jul 31 22:20:11 2017 -0700
----------------------------------------------------------------------
.../membrane/app/config/JacksonConfig.java | 18 +++++++++
.../resources/context/dispatcher-servlet.xml | 6 ++-
core/src/main/resources/swagger.yaml | 2 +
.../TenantInteractionScenarioTest.java | 40 +++++++++++---------
swagger-codegen/pom.xml | 3 +-
5 files changed, 49 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metamodel-membrane/blob/dfdad119/core/src/main/java/org/apache/metamodel/membrane/app/config/JacksonConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/membrane/app/config/JacksonConfig.java b/core/src/main/java/org/apache/metamodel/membrane/app/config/JacksonConfig.java
new file mode 100644
index 0000000..8021541
--- /dev/null
+++ b/core/src/main/java/org/apache/metamodel/membrane/app/config/JacksonConfig.java
@@ -0,0 +1,18 @@
+package org.apache.metamodel.membrane.app.config;
+
+import org.apache.metamodel.membrane.swagger.invoker.JSON;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@Configuration
+public class JacksonConfig {
+
+ @Bean(name = "objectMapper")
+ public ObjectMapper objectMapper() {
+ // use the JSON class from swagger-codegen
+ final JSON json = new JSON();
+ return json.getContext(Object.class);
+ }
+}
http://git-wip-us.apache.org/repos/asf/metamodel-membrane/blob/dfdad119/core/src/main/resources/context/dispatcher-servlet.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/context/dispatcher-servlet.xml b/core/src/main/resources/context/dispatcher-servlet.xml
index 437d2b1..6be361b 100644
--- a/core/src/main/resources/context/dispatcher-servlet.xml
+++ b/core/src/main/resources/context/dispatcher-servlet.xml
@@ -34,7 +34,7 @@ under the License.
<ref bean="jsonMessageConverter" />
</mvc:message-converters>
</mvc:annotation-driven>
-
+
<!-- Message converters -->
<bean id="jsonMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
@@ -44,6 +44,10 @@ under the License.
<value>application/json</value>
</list>
</property>
+ <property name="objectMapper">
+ <bean class="com.fasterxml.jackson.databind.ObjectMapper">
+ </bean>
+ </property>
</bean>
<bean
http://git-wip-us.apache.org/repos/asf/metamodel-membrane/blob/dfdad119/core/src/main/resources/swagger.yaml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/swagger.yaml b/core/src/main/resources/swagger.yaml
index 0666728..f183feb 100644
--- a/core/src/main/resources/swagger.yaml
+++ b/core/src/main/resources/swagger.yaml
@@ -421,6 +421,8 @@ definitions:
insertionResponse:
description: Represents the result of inserting records to a table
type: object
+ required:
+ - status
properties:
status:
type: string
http://git-wip-us.apache.org/repos/asf/metamodel-membrane/blob/dfdad119/core/src/test/java/org/apache/metamodel/membrane/controllers/TenantInteractionScenarioTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/membrane/controllers/TenantInteractionScenarioTest.java b/core/src/test/java/org/apache/metamodel/membrane/controllers/TenantInteractionScenarioTest.java
index 59dfbb0..eccff2c 100644
--- a/core/src/test/java/org/apache/metamodel/membrane/controllers/TenantInteractionScenarioTest.java
+++ b/core/src/test/java/org/apache/metamodel/membrane/controllers/TenantInteractionScenarioTest.java
@@ -24,9 +24,11 @@ import java.util.Map;
import org.apache.metamodel.membrane.app.InMemoryTenantRegistry;
import org.apache.metamodel.membrane.app.TenantRegistry;
+import org.apache.metamodel.membrane.app.config.JacksonConfig;
import org.junit.Before;
import org.junit.Test;
import org.springframework.http.MediaType;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
@@ -41,17 +43,21 @@ public class TenantInteractionScenarioTest {
@Before
public void init() {
- TenantRegistry tenantRegistry = new InMemoryTenantRegistry();
- TenantController tenantController = new TenantController(tenantRegistry);
- DataSourceController dataContextController = new DataSourceController(tenantRegistry);
- SchemaController schemaController = new SchemaController(tenantRegistry);
- TableController tableController = new TableController(tenantRegistry);
- ColumnController columnController = new ColumnController(tenantRegistry);
- QueryController queryController = new QueryController(tenantRegistry);
- TableDataController tableDataController = new TableDataController(tenantRegistry);
+ final MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
+ messageConverter.setObjectMapper(new JacksonConfig().objectMapper());
+
+ final TenantRegistry tenantRegistry = new InMemoryTenantRegistry();
+ final TenantController tenantController = new TenantController(tenantRegistry);
+ final DataSourceController dataContextController = new DataSourceController(tenantRegistry);
+ final SchemaController schemaController = new SchemaController(tenantRegistry);
+ final TableController tableController = new TableController(tenantRegistry);
+ final ColumnController columnController = new ColumnController(tenantRegistry);
+ final QueryController queryController = new QueryController(tenantRegistry);
+ final TableDataController tableDataController = new TableDataController(tenantRegistry);
mockMvc = MockMvcBuilders.standaloneSetup(tenantController, dataContextController, schemaController,
- tableController, columnController, queryController, tableDataController).build();
+ tableController, columnController, queryController, tableDataController).setMessageConverters(
+ messageConverter).build();
}
@Test
@@ -135,9 +141,8 @@ public class TenantInteractionScenarioTest {
assertEquals("column", map.get("type"));
assertEquals("bar", map.get("name"));
- assertEquals(
- "{number=0, size=null, nullable=true, primary-key=false, indexed=false, column-type=INTEGER, native-type=null, remarks=null}",
- map.get("metadata").toString());
+ assertEquals("{number=0, nullable=true, primary-key=false, indexed=false, column-type=INTEGER}", map.get(
+ "metadata").toString());
}
// query metadata from information_schema
@@ -167,15 +172,15 @@ public class TenantInteractionScenarioTest {
}
{
final MvcResult result = mockMvc.perform(MockMvcRequestBuilders.post(
- "/tenant1/mydata/s/mydata/t/hello_world/d").content("[{'greeting':'Hi','who':'Apache'}]"
- .replace('\'', '"')).contentType(MediaType.APPLICATION_JSON)).andExpect(
- MockMvcResultMatchers.status().isOk()).andReturn();
+ "/tenant1/mydata/s/mydata/t/hello_world/d").content("[{'greeting':'Hi','who':'Apache'}]".replace(
+ '\'', '"')).contentType(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers
+ .status().isOk()).andReturn();
final String content = result.getResponse().getContentAsString();
final Map<?, ?> map = new ObjectMapper().readValue(content, Map.class);
assertEquals("{status=ok}", map.toString());
}
-
+
// query the actual data
// query metadata from information_schema
{
@@ -187,8 +192,7 @@ public class TenantInteractionScenarioTest {
final Map<?, ?> map = new ObjectMapper().readValue(content, Map.class);
assertEquals("dataset", map.get("type"));
assertEquals("[hello_world.greeting, hello_world.who AS who_is_it]", map.get("headers").toString());
- assertEquals("[[Howdy, MetaModel], [Hi, Apache]]", map.get("data")
- .toString());
+ assertEquals("[[Howdy, MetaModel], [Hi, Apache]]", map.get("data").toString());
}
}
}
http://git-wip-us.apache.org/repos/asf/metamodel-membrane/blob/dfdad119/swagger-codegen/pom.xml
----------------------------------------------------------------------
diff --git a/swagger-codegen/pom.xml b/swagger-codegen/pom.xml
index 5f50f49..ace3549 100644
--- a/swagger-codegen/pom.xml
+++ b/swagger-codegen/pom.xml
@@ -50,9 +50,10 @@ under the License.
<inputSpec>${project.basedir}/../core/src/main/resources/swagger.yaml</inputSpec>
<language>java</language>
<modelPackage>org.apache.metamodel.membrane.swagger.model</modelPackage>
- <apiPackage>org.apache.metamodel.membrane.swagger.api</apiPackage>
<invokerPackage>org.apache.metamodel.membrane.swagger.invoker</invokerPackage>
+ <generateApis>false</generateApis>
<library>jersey2</library>
+ <useJaxbAnnotations>true</useJaxbAnnotations>
<configOptions>
<sourceFolder>src/gen/java/main</sourceFolder>
<dateLibrary>java8</dateLibrary>