olingo-odata4 git commit: [OLINGO-1004] refactored embedded tomcat
Repository: olingo-odata4 Updated Branches: refs/heads/master cc0a6a51a -> 69659a1a9 [OLINGO-1004] refactored embedded tomcat modified pom to write properties to a file. refactored the embedded tomcat to use those properties. Signed-off-by: Christian AmendProject: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/69659a1a Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/69659a1a Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/69659a1a Branch: refs/heads/master Commit: 69659a1a9027d6eb8e758694be20fd8198197c91 Parents: cc0a6a5 Author: Morten Riedel Authored: Tue Oct 18 14:39:24 2016 +0200 Committer: Christian Amend Committed: Wed Oct 19 14:35:03 2016 +0200 -- fit/pom.xml | 48 ++-- .../olingo/fit/server/TomcatTestServer.java | 32 ++--- fit/src/main/resources/tomcat-fit.properties| 21 - fit/src/main/resources/tomcat-users.xml | 28 4 files changed, 49 insertions(+), 80 deletions(-) -- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69659a1a/fit/pom.xml -- diff --git a/fit/pom.xml b/fit/pom.xml index ffb8599..7316376 100644 --- a/fit/pom.xml +++ b/fit/pom.xml @@ -39,6 +39,9 @@ true .*proxy.* + ${project.build.directory}/${project.build.finalName} +${project.build.directory}/emb-tom-fit + ${project.build.outputDirectory} @@ -122,19 +125,6 @@ org.apache.tomcat tomcat-jasper - - - javax.servlet - javax.servlet-api - - - - - - javax.servlet - servlet-api - 2.5 - provided @@ -194,10 +184,40 @@ true + + +org.codehaus.mojo +properties-maven-plugin +1.0.0 + + +generate-resources + + write-project-properties + + + +${project.build.outputDirectory}/mavenBuild.properties + + + + + + org.apache.maven.plugins maven-surefire-plugin + + + buildDirectory + ${project.build.directory} + + + finalName + ${project.build.finalName} + + **/*ITCase.java **/*Test.java @@ -205,7 +225,7 @@ %regex[${exclude.regex}] - + org.apache.maven.plugins http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69659a1a/fit/src/main/java/org/apache/olingo/fit/server/TomcatTestServer.java -- diff --git a/fit/src/main/java/org/apache/olingo/fit/server/TomcatTestServer.java b/fit/src/main/java/org/apache/olingo/fit/server/TomcatTestServer.java index 7d1ed46..9d2c4e4 100644 --- a/fit/src/main/java/org/apache/olingo/fit/server/TomcatTestServer.java +++ b/fit/src/main/java/org/apache/olingo/fit/server/TomcatTestServer.java @@ -48,7 +48,6 @@ import org.apache.catalina.Context; import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleState; import org.apache.catalina.loader.WebappLoader; -import org.apache.catalina.realm.MemoryRealm; import org.apache.catalina.startup.Tomcat; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; @@ -151,9 +150,9 @@ public class TomcatTestServer { } public static class TestServerBuilder { -private static final String TOMCAT_BASE_DIR = "TOMCAT_BASE_DIR"; -private static final String PROJECT_WEB_APP_DIR = "PROJECT_WEB_APP_DIR"; -private static final String PROJECT_RESOURCES_DIR = "PROJECT_RESOURCES_DIR"; +private static final String TOMCAT_BASE_DIR = "tomcat-base-dir"; +private static final String PROJECT_RESOURCES_DIR = "project-resource-dir"; +private static final String PROJECT_WEB_APP_DIR = "project-web-app-dir"; private final Tomcat tomcat; private final File baseDir; @@ -163,7 +162,6 @@ public class TomcatTestServer { private TestServerBuilder(final int fixedPort) { initializeProperties(); - // baseDir = new File(System.getProperty("java.io.tmpdir"), "tomcat-test"); baseDir = getFileForDirProperty(TOMCAT_BASE_DIR); if (!baseDir.exists() && !baseDir.mkdirs()) { throw new RuntimeException("Unable to create temporary test directory at {" +
[1/2] olingo-odata4 git commit: [OLINGO-1037] Support GeoTypes in Json
Repository: olingo-odata4 Updated Branches: refs/heads/master 5255c336e -> cc0a6a51a http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc0a6a51/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java -- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java index 82f49aa..cf29d5f 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java @@ -18,6 +18,9 @@ */ package org.apache.olingo.server.core.serializer.json; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + import java.io.IOException; import java.io.InputStream; import java.net.URI; @@ -44,7 +47,17 @@ import org.apache.olingo.commons.api.edm.EdmEntityContainer; import org.apache.olingo.commons.api.edm.EdmEntitySet; import org.apache.olingo.commons.api.edm.EdmEntityType; import org.apache.olingo.commons.api.edm.EdmPrimitiveType; +import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; import org.apache.olingo.commons.api.edm.EdmProperty; +import org.apache.olingo.commons.api.edm.geo.Point; +import org.apache.olingo.commons.api.edm.geo.Polygon; +import org.apache.olingo.commons.api.edm.geo.SRID; +import org.apache.olingo.commons.api.edm.geo.Geospatial.Dimension; +import org.apache.olingo.commons.api.edm.geo.GeospatialCollection; +import org.apache.olingo.commons.api.edm.geo.LineString; +import org.apache.olingo.commons.api.edm.geo.MultiLineString; +import org.apache.olingo.commons.api.edm.geo.MultiPoint; +import org.apache.olingo.commons.api.edm.geo.MultiPolygon; import org.apache.olingo.commons.api.edmx.EdmxReference; import org.apache.olingo.commons.api.format.ContentType; import org.apache.olingo.server.api.OData; @@ -647,13 +660,13 @@ public class ODataJsonSerializerTest { final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESTwoPrim"); final Entity entity = data.readAll(edmEntitySet).getEntities().get(0); InputStream result = serializer - .entity(metadata, edmEntitySet.getEntityType(), entity, EntitySerializerOptions.with() - .contextURL(ContextURL.with().entitySet(edmEntitySet).suffix(Suffix.ENTITY).build()) -.build()).getContent(); +.entity(metadata, edmEntitySet.getEntityType(), entity, EntitySerializerOptions.with() + .contextURL(ContextURL.with().entitySet(edmEntitySet).suffix(Suffix.ENTITY).build()) +.build()).getContent(); final String resultString = IOUtils.toString(result); -final String expectedResult = "{\"@odata.context\":\"$metadata#ESTwoPrim/$entity\"," + -"\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\"," + -"\"PropertyInt16\":32766,\"PropertyString\":\"Test String1\"}"; +final String expectedResult = "{\"@odata.context\":\"$metadata#ESTwoPrim/$entity\"," ++ "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\"," ++ "\"PropertyInt16\":32766,\"PropertyString\":\"Test String1\"}"; Assert.assertEquals(expectedResult, resultString); } @@ -673,67 +686,67 @@ public class ODataJsonSerializerTest { + "\"value\":[{\"@odata.type\":\"#olingo.odata.test1.ETTwoPrim\",\"@odata.id\":\"ESTwoPrim(32766)\"," + "\"propertyin...@odata.type\":\"#Int16\",\"PropertyInt16\":32766," + "\"PropertyString\":\"Test String1\"," -+"\"#olingo.odata.test1.BAETTwoPrimRTString\":" -+"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTString\"," - +"\"target\":\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTString\"}," -+"\"#olingo.odata.test1.BAETTwoPrimRTCollString\":" -+"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCollString\"," - +"\"target\":\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTCollString\"}," -+"\"#olingo.odata.test1.BAETTwoPrimRTCTAllPrim\":" -+"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"," - +"\"target\":\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTCTAllPrim\"}," -+"\"#olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\":" -+"{\"title\":\"olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"," - +"\"target\":\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTCollCTAllPrim\"}" ++ "\"#olingo.odata.test1.BAETTwoPrimRTString\":" ++ "{\"title\":\"olingo.odata.test1.BAETTwoPrimRTString\"," ++ "\"target\":\"ESTwoPrim(32766)/olingo.odata.test1.BAETTwoPrimRTString\"}," ++ "\"#olingo.odata.test1.BAETTwoPrimRTCollString\":" ++
[2/2] olingo-odata4 git commit: [OLINGO-1037] Support GeoTypes in Json
[OLINGO-1037] Support GeoTypes in Json Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/cc0a6a51 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/cc0a6a51 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/cc0a6a51 Branch: refs/heads/master Commit: cc0a6a51a8d0b1a885b32d4b72e471b862343447 Parents: 5255c33 Author: Christian AmendAuthored: Wed Oct 19 14:33:34 2016 +0200 Committer: Christian Amend Committed: Wed Oct 19 14:33:34 2016 +0200 -- .../json/ODataJsonDeserializer.java | 190 - .../serializer/json/ODataJsonSerializer.java| 126 +++- .../json/ODataJsonDeserializerEntityTest.java | 283 +++- .../json/ODataJsonSerializerTest.java | 701 --- 4 files changed, 990 insertions(+), 310 deletions(-) -- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc0a6a51/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java -- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java index d30d973..9106613 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java @@ -20,9 +20,12 @@ package org.apache.olingo.server.core.deserializer.json; import java.io.IOException; import java.io.InputStream; +import java.math.BigDecimal; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; @@ -53,6 +56,14 @@ import org.apache.olingo.commons.api.edm.EdmType; import org.apache.olingo.commons.api.edm.EdmTypeDefinition; import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.commons.api.edm.constants.EdmTypeKind; +import org.apache.olingo.commons.api.edm.geo.Geospatial; +import org.apache.olingo.commons.api.edm.geo.GeospatialCollection; +import org.apache.olingo.commons.api.edm.geo.LineString; +import org.apache.olingo.commons.api.edm.geo.MultiLineString; +import org.apache.olingo.commons.api.edm.geo.MultiPoint; +import org.apache.olingo.commons.api.edm.geo.MultiPolygon; +import org.apache.olingo.commons.api.edm.geo.Point; +import org.apache.olingo.commons.api.edm.geo.Polygon; import org.apache.olingo.commons.api.format.ContentType; import org.apache.olingo.server.api.ServiceMetadata; import org.apache.olingo.server.api.deserializer.DeserializerException; @@ -76,6 +87,19 @@ import com.fasterxml.jackson.databind.node.ObjectNode; public class ODataJsonDeserializer implements ODataDeserializer { + private static final Map jsonNameToGeoDataType; + static { +Map temp = new HashMap (); +temp.put(Constants.ELEM_POINT, Point.class); +temp.put(Constants.ELEM_MULTIPOINT, MultiPoint.class); +temp.put(Constants.ELEM_LINESTRING, LineString.class); +temp.put("MultiLineString", MultiLineString.class); +temp.put(Constants.ELEM_POLYGON, Polygon.class); +temp.put("MultiPolygon", MultiPolygon.class); +temp.put("GeometryCollection", GeospatialCollection.class); +jsonNameToGeoDataType = Collections.unmodifiableMap(temp); + } + private static final String ODATA_ANNOTATION_MARKER = "@"; private static final String ODATA_CONTROL_INFORMATION_PREFIX = "@odata."; @@ -594,16 +618,21 @@ public class ODataJsonDeserializer implements ODataDeserializer { private Object readPrimitiveValue(final String name, final EdmPrimitiveType type, final boolean isNullable, final Integer maxLength, final Integer precision, final Integer scale, final boolean isUnicode, final EdmMapping mapping, final JsonNode jsonNode) throws DeserializerException { -checkForValueNode(name, jsonNode); if (isValidNull(name, isNullable, jsonNode)) { return null; } +final boolean isGeoType = type.getName().startsWith("Geo"); +if (!isGeoType) { + checkForValueNode(name, jsonNode); +} checkJsonTypeBasedOnPrimitiveType(name, type, jsonNode); -Class javaClass = getJavaClassForPrimitiveType(mapping, type); try { + if (isGeoType) { +return readPrimitiveGeoValue(name, type, (ObjectNode) jsonNode); + } return type.valueOfString(jsonNode.asText(), isNullable, maxLength, precision,