olingo-odata4 git commit: [OLINGO-1004] refactored embedded tomcat

2016-10-19 Thread chrisam
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 Amend 


Project: 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

2016-10-19 Thread chrisam
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

2016-10-19 Thread chrisam
[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 Amend 
Authored: 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,