You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2015/11/20 09:23:13 UTC

olingo-odata2 git commit: [OLINGO-827] Change GSOn version to 2.4 and adapt tests

Repository: olingo-odata2
Updated Branches:
  refs/heads/master 2a22911dc -> 352a82c3c


[OLINGO-827] Change GSOn version to 2.4 and adapt tests


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/352a82c3
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/352a82c3
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/352a82c3

Branch: refs/heads/master
Commit: 352a82c3ccfd91ab45e21f83309c675886332bd3
Parents: 2a22911
Author: Christian Amend <ch...@sap.com>
Authored: Thu Nov 19 17:26:05 2015 +0100
Committer: Christian Amend <ch...@sap.com>
Committed: Thu Nov 19 17:27:40 2015 +0100

----------------------------------------------------------------------
 .../processor/ref/AbstractRefJsonTest.java      | 10 +--
 .../processor/ref/EntryJsonCreateTest.java      | 20 +++---
 .../producer/JsonEntryEntityProducerTest.java   | 52 ++++++++-------
 .../core/uri/expression/FilterToJsonTest.java   | 70 +++++++++++---------
 .../odata2/fit/ref/AbstractRefJsonTest.java     | 10 +--
 .../fit/ref/EntryJsonCreateInlineTest.java      | 46 ++++++-------
 .../odata2/fit/ref/EntryJsonCreateTest.java     | 14 ++--
 pom.xml                                         |  2 +-
 8 files changed, 117 insertions(+), 107 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/352a82c3/odata2-annotation-processor/annotation-processor-ref/src/test/java/org/apache/olingo/odata2/annotation/processor/ref/AbstractRefJsonTest.java
----------------------------------------------------------------------
diff --git a/odata2-annotation-processor/annotation-processor-ref/src/test/java/org/apache/olingo/odata2/annotation/processor/ref/AbstractRefJsonTest.java b/odata2-annotation-processor/annotation-processor-ref/src/test/java/org/apache/olingo/odata2/annotation/processor/ref/AbstractRefJsonTest.java
index 5075486..51ea84e 100644
--- a/odata2-annotation-processor/annotation-processor-ref/src/test/java/org/apache/olingo/odata2/annotation/processor/ref/AbstractRefJsonTest.java
+++ b/odata2-annotation-processor/annotation-processor-ref/src/test/java/org/apache/olingo/odata2/annotation/processor/ref/AbstractRefJsonTest.java
@@ -22,7 +22,7 @@ import org.apache.olingo.odata2.testutil.server.ServletType;
 import org.junit.Ignore;
 
 import com.google.gson.Gson;
-import com.google.gson.internal.StringMap;
+import com.google.gson.internal.LinkedTreeMap;
 import com.google.gson.reflect.TypeToken;
 
 /**
@@ -34,11 +34,11 @@ public class AbstractRefJsonTest extends AbstractRefTest {
     super(servletType);
   }
 
-  public StringMap<?> getStringMap(final String body) {
+  public LinkedTreeMap<?,?> getStringMap(final String body) {
     Gson gson = new Gson();
-    final StringMap<?> map = gson.fromJson(body, new TypeToken<StringMap<?>>() {}.getType());
-    if (map.get("d") instanceof StringMap<?>) {
-      return (StringMap<?>) map.get("d");
+    final LinkedTreeMap<?,?> map = gson.fromJson(body, new TypeToken<LinkedTreeMap<?,?>>() {}.getType());
+    if (map.get("d") instanceof LinkedTreeMap<?,?>) {
+      return (LinkedTreeMap<?,?>) map.get("d");
     } else {
       return map;
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/352a82c3/odata2-annotation-processor/annotation-processor-ref/src/test/java/org/apache/olingo/odata2/annotation/processor/ref/EntryJsonCreateTest.java
----------------------------------------------------------------------
diff --git a/odata2-annotation-processor/annotation-processor-ref/src/test/java/org/apache/olingo/odata2/annotation/processor/ref/EntryJsonCreateTest.java b/odata2-annotation-processor/annotation-processor-ref/src/test/java/org/apache/olingo/odata2/annotation/processor/ref/EntryJsonCreateTest.java
index b661d77..79d79d6 100644
--- a/odata2-annotation-processor/annotation-processor-ref/src/test/java/org/apache/olingo/odata2/annotation/processor/ref/EntryJsonCreateTest.java
+++ b/odata2-annotation-processor/annotation-processor-ref/src/test/java/org/apache/olingo/odata2/annotation/processor/ref/EntryJsonCreateTest.java
@@ -31,7 +31,7 @@ import org.apache.olingo.odata2.api.commons.HttpStatusCodes;
 import org.apache.olingo.odata2.testutil.server.ServletType;
 import org.junit.Test;
 
-import com.google.gson.internal.StringMap;
+import com.google.gson.internal.LinkedTreeMap;
 
 /**
  *  
@@ -58,11 +58,11 @@ public class EntryJsonCreateTest extends AbstractRefJsonTest {
     checkMediaType(response, HttpContentType.APPLICATION_JSON);
 
     String body = getBody(response);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?,?> map = getStringMap(body);
     assertEquals(id, map.get("Id"));
     assertEquals("Room 104", map.get("Name"));
     @SuppressWarnings("unchecked")
-    StringMap<String> metadataMap = (StringMap<String>) map.get("__metadata");
+    LinkedTreeMap<String, String> metadataMap = (LinkedTreeMap<String, String>) map.get("__metadata");
     assertNotNull(metadataMap);
     String expectedRoomId = getEndpoint() + "Rooms('" + id + "')";
     assertEquals(expectedRoomId, metadataMap.get("id"));
@@ -90,14 +90,14 @@ public class EntryJsonCreateTest extends AbstractRefJsonTest {
     checkMediaType(response, HttpContentType.APPLICATION_JSON);
 
     String body = getBody(response);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?,?> map = getStringMap(body);
     assertEquals(id, map.get("Id"));
     assertEquals("Room 104", map.get("Name"));
     @SuppressWarnings("unchecked")
-    StringMap<Object> employeesMap = (StringMap<Object>) map.get("nr_Employees");
+    LinkedTreeMap<String, Object> employeesMap = (LinkedTreeMap<String, Object>) map.get("nr_Employees");
     assertNotNull(employeesMap);
     @SuppressWarnings("unchecked")
-    StringMap<String> deferredMap = (StringMap<String>) employeesMap.get("__deferred");
+    LinkedTreeMap<String, String> deferredMap = (LinkedTreeMap<String, String>) employeesMap.get("__deferred");
     assertNotNull(deferredMap);
     assertEquals(getEndpoint() + "Rooms('" + id + "')/nr_Employees", deferredMap.get("uri"));
   }
@@ -113,7 +113,7 @@ public class EntryJsonCreateTest extends AbstractRefJsonTest {
     checkMediaType(createResponse, HttpContentType.APPLICATION_JSON);
 
     String body = getBody(createResponse);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?,?> map = getStringMap(body);
     String id = (String) map.get("EmployeeId");
     assertNull(map.get("EmployeeName"));
 
@@ -122,15 +122,15 @@ public class EntryJsonCreateTest extends AbstractRefJsonTest {
     HttpResponse updateResponse = callUri("Employees('" + id + "')", "Accept", HttpContentType.APPLICATION_JSON);
     checkMediaType(updateResponse, HttpContentType.APPLICATION_JSON);
     String updatedBody = getBody(updateResponse);
-    StringMap<?> updatedMap = getStringMap(updatedBody);
+    LinkedTreeMap<?,?> updatedMap = getStringMap(updatedBody);
     assertNotNull(updatedMap.get("EmployeeId"));
     assertEquals("Douglas", updatedMap.get("EmployeeName"));
     assertNull(updatedMap.get("EntryData"));
 
-    StringMap<?> location = (StringMap<?>) updatedMap.get("Location");
+    LinkedTreeMap<?,?> location = (LinkedTreeMap<?,?>) updatedMap.get("Location");
     assertEquals("Britian", location.get("Country"));
 
-    StringMap<?> city = (StringMap<?>) location.get("City");
+    LinkedTreeMap<?,?> city = (LinkedTreeMap<?,?>) location.get("City");
     assertEquals("12345", city.get("PostalCode"));
     assertEquals("Sample", city.get("CityName"));
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/352a82c3/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
index 67b65d2..c06f9b5 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonEntryEntityProducerTest.java
@@ -39,7 +39,14 @@ import java.util.Map;
 import java.util.TimeZone;
 
 import org.apache.olingo.odata2.api.ODataCallback;
-import org.apache.olingo.odata2.api.edm.*;
+import org.apache.olingo.odata2.api.edm.Edm;
+import org.apache.olingo.odata2.api.edm.EdmEntitySet;
+import org.apache.olingo.odata2.api.edm.EdmEntityType;
+import org.apache.olingo.odata2.api.edm.EdmFacets;
+import org.apache.olingo.odata2.api.edm.EdmMapping;
+import org.apache.olingo.odata2.api.edm.EdmProperty;
+import org.apache.olingo.odata2.api.edm.EdmSimpleTypeException;
+import org.apache.olingo.odata2.api.edm.EdmTyped;
 import org.apache.olingo.odata2.api.ep.EntityProviderException;
 import org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties;
 import org.apache.olingo.odata2.api.ep.callback.OnWriteEntryContent;
@@ -59,7 +66,7 @@ import org.junit.Test;
 import org.mockito.Mockito;
 
 import com.google.gson.Gson;
-import com.google.gson.internal.StringMap;
+import com.google.gson.internal.LinkedTreeMap;
 
 /**
  *  
@@ -331,11 +338,11 @@ public class JsonEntryEntityProducerTest extends BaseTest {
       final String json = verifyResponse(response);
       assertNotNull(response);
       assertEquals("{\"__metadata\":{\"id\":\"" + BASE_URI + "Teams('1')\","
-              + "\"uri\":\"" + BASE_URI + "Teams('1')\",\"type\":\"RefScenario.Team\"},"
-              + "\"Id\":\"1\",\"Name\":null,\"isScrumTeam\":true,"
-              + "\"nt_Employees\":{\"__deferred\":{\"uri\":\"" + BASE_URI + "Teams('1')/nt_Employees\"}}}",
+          + "\"uri\":\"" + BASE_URI + "Teams('1')\",\"type\":\"RefScenario.Team\"},"
+          + "\"Id\":\"1\",\"Name\":null,\"isScrumTeam\":true,"
+          + "\"nt_Employees\":{\"__deferred\":{\"uri\":\"" + BASE_URI + "Teams('1')/nt_Employees\"}}}",
           json);
-    } catch(EntityProviderException e) {
+    } catch (EntityProviderException e) {
       throw e.getCause();
     }
   }
@@ -359,14 +366,13 @@ public class JsonEntryEntityProducerTest extends BaseTest {
     final String json = verifyResponse(response);
     assertNotNull(response);
     assertEquals("{\"d\":{\"__metadata\":{\"id\":\"http://host:80/service/Rooms('4711')\"," +
-            "\"uri\":\"http://host:80/service/Rooms('4711')\",\"type\":\"RefScenario.Room\"}," +
-            "\"Id\":\"4711\",\"Name\":\"1234567890\",\"Seats\":null,\"Version\":null," +
-            "\"nr_Employees\":{\"__deferred\":{\"uri\":\"http://host:80/service/Rooms('4711')/nr_Employees\"}}," +
-            "\"nr_Building\":{\"__deferred\":{\"uri\":\"http://host:80/service/Rooms('4711')/nr_Building\"}}}}",
+        "\"uri\":\"http://host:80/service/Rooms('4711')\",\"type\":\"RefScenario.Room\"}," +
+        "\"Id\":\"4711\",\"Name\":\"1234567890\",\"Seats\":null,\"Version\":null," +
+        "\"nr_Employees\":{\"__deferred\":{\"uri\":\"http://host:80/service/Rooms('4711')/nr_Employees\"}}," +
+        "\"nr_Building\":{\"__deferred\":{\"uri\":\"http://host:80/service/Rooms('4711')/nr_Building\"}}}}",
         json);
   }
 
-
   @Test(expected = EntityProviderException.class)
   public void entryWithNullData() throws Exception {
     final EdmEntitySet entitySet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Teams");
@@ -847,9 +853,9 @@ public class JsonEntryEntityProducerTest extends BaseTest {
     ODataResponse response = new JsonEntityProvider().writeEntry(employeesSet, employeeData, DEFAULT_PROPERTIES);
     String jsonString = verifyResponse(response);
     Gson gson = new Gson();
-    StringMap<Object> jsonMap = gson.fromJson(jsonString, StringMap.class);
-    jsonMap = (StringMap<Object>) jsonMap.get("d");
-    jsonMap = (StringMap<Object>) jsonMap.get("__metadata");
+    LinkedTreeMap<String, Object> jsonMap = gson.fromJson(jsonString, LinkedTreeMap.class);
+    jsonMap = (LinkedTreeMap<String, Object>) jsonMap.get("d");
+    jsonMap = (LinkedTreeMap<String, Object>) jsonMap.get("__metadata");
 
     assertEquals("http://localhost:8080/images/image1", jsonMap.get("media_src"));
     assertEquals("application/octet-stream", jsonMap.get("content_type"));
@@ -896,9 +902,9 @@ public class JsonEntryEntityProducerTest extends BaseTest {
     String jsonString = verifyResponse(response);
 
     Gson gson = new Gson();
-    StringMap<Object> jsonMap = gson.fromJson(jsonString, StringMap.class);
-    jsonMap = (StringMap<Object>) jsonMap.get("d");
-    jsonMap = (StringMap<Object>) jsonMap.get("__metadata");
+    LinkedTreeMap<String, Object> jsonMap = gson.fromJson(jsonString, LinkedTreeMap.class);
+    jsonMap = (LinkedTreeMap<String, Object>) jsonMap.get("d");
+    jsonMap = (LinkedTreeMap<String, Object>) jsonMap.get("__metadata");
 
     assertEquals("http://localhost:8080/images/image1", jsonMap.get("media_src"));
     assertEquals("image/jpeg", jsonMap.get("content_type"));
@@ -926,9 +932,9 @@ public class JsonEntryEntityProducerTest extends BaseTest {
     ODataResponse response = new JsonEntityProvider().writeEntry(roomsSet, roomData, DEFAULT_PROPERTIES);
     String jsonString = verifyResponse(response);
     Gson gson = new Gson();
-    StringMap<Object> jsonMap = gson.fromJson(jsonString, StringMap.class);
-    jsonMap = (StringMap<Object>) jsonMap.get("d");
-    jsonMap = (StringMap<Object>) jsonMap.get("__metadata");
+    LinkedTreeMap<String, Object> jsonMap = gson.fromJson(jsonString, LinkedTreeMap.class);
+    jsonMap = (LinkedTreeMap<String, Object>) jsonMap.get("d");
+    jsonMap = (LinkedTreeMap<String, Object>) jsonMap.get("__metadata");
 
     assertNull(jsonMap.get("media_src"));
     assertNull(jsonMap.get("content_type"));
@@ -959,9 +965,9 @@ public class JsonEntryEntityProducerTest extends BaseTest {
     ODataResponse response = new JsonEntityProvider().writeEntry(roomsSet, roomData, DEFAULT_PROPERTIES);
     String jsonString = verifyResponse(response);
     Gson gson = new Gson();
-    StringMap<Object> jsonMap = gson.fromJson(jsonString, StringMap.class);
-    jsonMap = (StringMap<Object>) jsonMap.get("d");
-    jsonMap = (StringMap<Object>) jsonMap.get("__metadata");
+    LinkedTreeMap<String, Object> jsonMap = gson.fromJson(jsonString, LinkedTreeMap.class);
+    jsonMap = (LinkedTreeMap<String, Object>) jsonMap.get("d");
+    jsonMap = (LinkedTreeMap<String, Object>) jsonMap.get("__metadata");
 
     assertNull(jsonMap.get("media_src"));
     assertNull(jsonMap.get("content_type"));

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/352a82c3/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/uri/expression/FilterToJsonTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/uri/expression/FilterToJsonTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/uri/expression/FilterToJsonTest.java
index 17e62e9..4ba1b6c 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/uri/expression/FilterToJsonTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/uri/expression/FilterToJsonTest.java
@@ -33,7 +33,7 @@ import org.apache.olingo.odata2.api.uri.expression.UnaryOperator;
 import org.junit.Test;
 
 import com.google.gson.Gson;
-import com.google.gson.internal.StringMap;
+import com.google.gson.internal.LinkedTreeMap;
 
 /**
  *  
@@ -59,13 +59,13 @@ public class FilterToJsonTest {
     String jsonString = toJson(expression);
     Gson gsonConverter = new Gson();
 
-    StringMap<Object> jsonMap = gsonConverter.fromJson(jsonString, StringMap.class);
+    LinkedTreeMap<String, Object> jsonMap = gsonConverter.fromJson(jsonString, LinkedTreeMap.class);
     checkBinary(jsonMap, "eq", null);
 
-    StringMap<Object> left = (StringMap<Object>) jsonMap.get(LEFT);
+    LinkedTreeMap<String, Object> left = (LinkedTreeMap<String, Object>) jsonMap.get(LEFT);
     checkProperty(left, null, "a");
 
-    StringMap<Object> right = (StringMap<Object>) jsonMap.get(RIGHT);
+    LinkedTreeMap<String, Object> right = (LinkedTreeMap<String, Object>) jsonMap.get(RIGHT);
     checkProperty(right, null, "b");
   }
 
@@ -76,13 +76,13 @@ public class FilterToJsonTest {
     String jsonString = toJson(expression);
     Gson gsonConverter = new Gson();
 
-    StringMap<Object> jsonMap = gsonConverter.fromJson(jsonString, StringMap.class);
+    LinkedTreeMap<String, Object> jsonMap = gsonConverter.fromJson(jsonString, LinkedTreeMap.class);
     checkBinary(jsonMap, "eq", "Edm.Boolean");
 
-    StringMap<Object> left = (StringMap<Object>) jsonMap.get(LEFT);
+    LinkedTreeMap<String, Object> left = (LinkedTreeMap<String, Object>) jsonMap.get(LEFT);
     checkLiteral(left, "Edm.String", "a");
 
-    StringMap<Object> right = (StringMap<Object>) jsonMap.get(RIGHT);
+    LinkedTreeMap<String, Object> right = (LinkedTreeMap<String, Object>) jsonMap.get(RIGHT);
     checkLiteral(right, "Edm.String", "b");
   }
 
@@ -93,25 +93,25 @@ public class FilterToJsonTest {
     String jsonString = toJson(expression);
     Gson gsonConverter = new Gson();
 
-    StringMap<Object> jsonMap = gsonConverter.fromJson(jsonString, StringMap.class);
+    LinkedTreeMap<String, Object> jsonMap = gsonConverter.fromJson(jsonString, LinkedTreeMap.class);
     checkBinary(jsonMap, "add", "Edm.Double");
 
-    StringMap<Object> left1 = (StringMap<Object>) jsonMap.get(LEFT);
+    LinkedTreeMap<String, Object> left1 = (LinkedTreeMap<String, Object>) jsonMap.get(LEFT);
     checkBinary(left1, "add", "Edm.Double");
 
-    StringMap<Object> left2 = (StringMap<Object>) left1.get(LEFT);
+    LinkedTreeMap<String, Object> left2 = (LinkedTreeMap<String, Object>) left1.get(LEFT);
     checkBinary(left2, "add", "Edm.Double");
 
-    StringMap<Object> literal1 = (StringMap<Object>) left2.get(LEFT);
+    LinkedTreeMap<String, Object> literal1 = (LinkedTreeMap<String, Object>) left2.get(LEFT);
     checkLiteral(literal1, "Edm.Double", "1");
 
-    StringMap<Object> literal2 = (StringMap<Object>) left2.get(RIGHT);
+    LinkedTreeMap<String, Object> literal2 = (LinkedTreeMap<String, Object>) left2.get(RIGHT);
     checkLiteral(literal2, "Edm.Double", "2");
 
-    StringMap<Object> literal3 = (StringMap<Object>) left1.get(RIGHT);
+    LinkedTreeMap<String, Object> literal3 = (LinkedTreeMap<String, Object>) left1.get(RIGHT);
     checkLiteral(literal3, "Edm.Double", "3");
 
-    StringMap<Object> right1 = (StringMap<Object>) jsonMap.get(RIGHT);
+    LinkedTreeMap<String, Object> right1 = (LinkedTreeMap<String, Object>) jsonMap.get(RIGHT);
     checkLiteral(right1, "Edm.Double", "4");
   }
 
@@ -122,12 +122,12 @@ public class FilterToJsonTest {
     String jsonString = toJson(expression);
     Gson gsonConverter = new Gson();
 
-    StringMap<Object> jsonMap = gsonConverter.fromJson(jsonString, StringMap.class);
+    LinkedTreeMap<String, Object> jsonMap = gsonConverter.fromJson(jsonString, LinkedTreeMap.class);
     checkMethod(jsonMap, MethodOperator.CONCAT, "Edm.String");
 
     List<Object> parameter = (List<Object>) jsonMap.get(PARAMETERS);
-    checkLiteral((StringMap<Object>) parameter.get(0), "Edm.String", "aa");
-    checkLiteral((StringMap<Object>) parameter.get(1), "Edm.String", "b");
+    checkLiteral((LinkedTreeMap<String, Object>) parameter.get(0), "Edm.String", "aa");
+    checkLiteral((LinkedTreeMap<String, Object>) parameter.get(1), "Edm.String", "b");
   }
 
   @SuppressWarnings("unchecked")
@@ -136,10 +136,10 @@ public class FilterToJsonTest {
     FilterExpression expression = UriParser.parseFilter(null, null, "not 'a'");
     String jsonString = toJson(expression);
 
-    StringMap<Object> jsonMap = new Gson().fromJson(jsonString, StringMap.class);
+    LinkedTreeMap<String, Object> jsonMap = new Gson().fromJson(jsonString, LinkedTreeMap.class);
     checkUnary(jsonMap, UnaryOperator.NOT, null);
 
-    StringMap<Object> operand = (StringMap<Object>) jsonMap.get(OPERAND);
+    LinkedTreeMap<String, Object> operand = (LinkedTreeMap<String, Object>) jsonMap.get(OPERAND);
     checkLiteral(operand, "Edm.String", "a");
   }
 
@@ -150,13 +150,13 @@ public class FilterToJsonTest {
     String jsonString = toJson(expression);
     Gson gsonConverter = new Gson();
 
-    StringMap<Object> jsonMap = gsonConverter.fromJson(jsonString, StringMap.class);
+    LinkedTreeMap<String, Object> jsonMap = gsonConverter.fromJson(jsonString, LinkedTreeMap.class);
     checkMember(jsonMap, null);
 
-    StringMap<Object> source = (StringMap<Object>) jsonMap.get(SOURCE);
+    LinkedTreeMap<String, Object> source = (LinkedTreeMap<String, Object>) jsonMap.get(SOURCE);
     checkProperty(source, null, "Location");
 
-    StringMap<Object> path = (StringMap<Object>) jsonMap.get(PATH);
+    LinkedTreeMap<String, Object> path = (LinkedTreeMap<String, Object>) jsonMap.get(PATH);
     checkProperty(path, null, "Country");
   }
 
@@ -167,38 +167,39 @@ public class FilterToJsonTest {
     String jsonString = toJson(expression);
     Gson gsonConverter = new Gson();
 
-    StringMap<Object> jsonMap = gsonConverter.fromJson(jsonString, StringMap.class);
+    LinkedTreeMap<String, Object> jsonMap = gsonConverter.fromJson(jsonString, LinkedTreeMap.class);
     checkMember(jsonMap, null);
 
-    StringMap<Object> source1 = (StringMap<Object>) jsonMap.get(SOURCE);
+    LinkedTreeMap<String, Object> source1 = (LinkedTreeMap<String, Object>) jsonMap.get(SOURCE);
     checkMember(source1, null);
 
-    StringMap<Object> source2 = (StringMap<Object>) source1.get(SOURCE);
+    LinkedTreeMap<String, Object> source2 = (LinkedTreeMap<String, Object>) source1.get(SOURCE);
     checkProperty(source2, null, "Location");
 
-    StringMap<Object> path1 = (StringMap<Object>) source1.get(PATH);
+    LinkedTreeMap<String, Object> path1 = (LinkedTreeMap<String, Object>) source1.get(PATH);
     checkProperty(path1, null, "Country");
 
-    StringMap<Object> path = (StringMap<Object>) jsonMap.get(PATH);
+    LinkedTreeMap<String, Object> path = (LinkedTreeMap<String, Object>) jsonMap.get(PATH);
     checkProperty(path, null, "PostalCode");
   }
 
   private void
-      checkUnary(final StringMap<Object> unary, final UnaryOperator expectedOperator, final String expectedType) {
+      checkUnary(final LinkedTreeMap<String, Object> unary, final UnaryOperator expectedOperator,
+          final String expectedType) {
     assertEquals(ExpressionKind.UNARY.toString(), unary.get(NODETYPE));
     assertEquals(expectedOperator.toString(), unary.get(OPERATOR));
     assertEquals(expectedType, unary.get(TYPE));
     assertNotNull(unary.get(OPERAND));
   }
 
-  private void checkMember(final StringMap<Object> member, final String expectedType) {
+  private void checkMember(final LinkedTreeMap<String, Object> member, final String expectedType) {
     assertEquals(ExpressionKind.MEMBER.toString(), member.get(NODETYPE));
     assertEquals(expectedType, member.get(TYPE));
     assertNotNull(member.get(SOURCE));
     assertNotNull(member.get(PATH));
   }
 
-  private void checkMethod(final StringMap<Object> method, final MethodOperator expectedOperator,
+  private void checkMethod(final LinkedTreeMap<String, Object> method, final MethodOperator expectedOperator,
       final String expectedType) {
     assertEquals(ExpressionKind.METHOD.toString(), method.get(NODETYPE));
     assertEquals(expectedOperator.toString(), method.get(OPERATOR));
@@ -206,19 +207,22 @@ public class FilterToJsonTest {
     assertNotNull(method.get(PARAMETERS));
   }
 
-  private void checkProperty(final StringMap<Object> property, final String expectedType, final Object expectedValue) {
+  private void checkProperty(final LinkedTreeMap<String, Object> property, final String expectedType,
+      final Object expectedValue) {
     assertEquals(ExpressionKind.PROPERTY.toString(), property.get(NODETYPE));
     assertEquals(expectedValue, property.get(NAME));
     assertEquals(expectedType, property.get(TYPE));
   }
 
-  private void checkLiteral(final StringMap<Object> literal, final String expectedType, final Object expectedValue) {
+  private void
+      checkLiteral(final LinkedTreeMap<String, Object> literal, final String expectedType, final Object expectedValue) {
     assertEquals(ExpressionKind.LITERAL.toString(), literal.get(NODETYPE));
     assertEquals(expectedType, literal.get(TYPE));
     assertEquals(expectedValue, literal.get(VALUE));
   }
 
-  private void checkBinary(final StringMap<Object> binary, final String expectedOperator, final String expectedType)
+  private void checkBinary(final LinkedTreeMap<String, Object> binary, final String expectedOperator,
+      final String expectedType)
       throws Exception {
     assertEquals(ExpressionKind.BINARY.toString(), binary.get(NODETYPE));
     assertEquals(expectedOperator, binary.get(OPERATOR));

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/352a82c3/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/AbstractRefJsonTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/AbstractRefJsonTest.java b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/AbstractRefJsonTest.java
index 73b88aa..bcb1a11 100644
--- a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/AbstractRefJsonTest.java
+++ b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/AbstractRefJsonTest.java
@@ -22,7 +22,7 @@ import org.apache.olingo.odata2.testutil.server.ServletType;
 import org.junit.Ignore;
 
 import com.google.gson.Gson;
-import com.google.gson.internal.StringMap;
+import com.google.gson.internal.LinkedTreeMap;
 import com.google.gson.reflect.TypeToken;
 
 /**
@@ -35,11 +35,11 @@ public class AbstractRefJsonTest extends AbstractRefTest {
     super(servletType);
   }
 
-  public StringMap<?> getStringMap(final String body) {
+  public LinkedTreeMap<?,?> getLinkedTreeMap(final String body) {
     Gson gson = new Gson();
-    final StringMap<?> map = gson.fromJson(body, new TypeToken<StringMap<?>>() {}.getType());
-    if (map.get("d") instanceof StringMap<?>) {
-      return (StringMap<?>) map.get("d");
+    final LinkedTreeMap<?,?> map = gson.fromJson(body, new TypeToken<LinkedTreeMap<?,?>>() {}.getType());
+    if (map.get("d") instanceof LinkedTreeMap<?,?>) {
+      return (LinkedTreeMap<?,?>) map.get("d");
     } else {
       return map;
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/352a82c3/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/EntryJsonCreateInlineTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/EntryJsonCreateInlineTest.java b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/EntryJsonCreateInlineTest.java
index f9e6336..45e8d9e 100644
--- a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/EntryJsonCreateInlineTest.java
+++ b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/EntryJsonCreateInlineTest.java
@@ -31,7 +31,7 @@ import org.apache.olingo.odata2.api.commons.HttpStatusCodes;
 import org.apache.olingo.odata2.testutil.server.ServletType;
 import org.junit.Test;
 
-import com.google.gson.internal.StringMap;
+import com.google.gson.internal.LinkedTreeMap;
 
 /**
  *  
@@ -58,13 +58,13 @@ public class EntryJsonCreateInlineTest extends AbstractRefJsonTest {
     String body = getBody(response);
 
     // Check inline building
-    StringMap<?> map = getStringMap(body);
-    map = (StringMap<?>) map.get("nr_Building");
+    LinkedTreeMap<?, ?> map = getLinkedTreeMap(body);
+    map = (LinkedTreeMap<?, ?>) map.get("nr_Building");
     assertNotNull(map);
     assertEquals("Building 2", map.get("Name"));
 
     // Check inline rooms of the inline building
-    map = (StringMap<?>) map.get("nb_Rooms");
+    map = (LinkedTreeMap<?, ?>) map.get("nb_Rooms");
     assertNotNull(map);
 
     ArrayList<?> results = (ArrayList<?>) map.get("results");
@@ -91,12 +91,12 @@ public class EntryJsonCreateInlineTest extends AbstractRefJsonTest {
     checkEtag(response, "W/\"2\"");
 
     String body = getBody(response);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?, ?> map = getLinkedTreeMap(body);
     assertEquals("104", map.get("Id"));
     assertEquals("Room 104", map.get("Name"));
 
     @SuppressWarnings("unchecked")
-    StringMap<String> metadataMap = (StringMap<String>) map.get("__metadata");
+    LinkedTreeMap<String, String> metadataMap = (LinkedTreeMap<String, String>) map.get("__metadata");
     assertNotNull(metadataMap);
     assertEquals(getEndpoint() + "Rooms('104')", metadataMap.get("id"));
     assertEquals("RefScenario.Room", metadataMap.get("type"));
@@ -104,12 +104,12 @@ public class EntryJsonCreateInlineTest extends AbstractRefJsonTest {
 
     response = callUri("Rooms('104')/nr_Building/", HttpHeaders.ACCEPT, HttpContentType.APPLICATION_JSON);
     body = getBody(response);
-    map = getStringMap(body);
+    map = getLinkedTreeMap(body);
     assertEquals("4", map.get("Id"));
     assertEquals("Building 4", map.get("Name"));
 
     @SuppressWarnings("unchecked")
-    StringMap<String> metadataMap2 = (StringMap<String>) map.get("__metadata");
+    LinkedTreeMap<String, String> metadataMap2 = (LinkedTreeMap<String, String>) map.get("__metadata");
     assertNotNull(metadataMap2);
     assertEquals(getEndpoint() + "Buildings('4')", metadataMap2.get("id"));
     assertEquals("RefScenario.Building", metadataMap2.get("type"));
@@ -131,12 +131,12 @@ public class EntryJsonCreateInlineTest extends AbstractRefJsonTest {
     checkEtag(response, "W/\"2\"");
 
     String body = getBody(response);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?, ?> map = getLinkedTreeMap(body);
     assertEquals("104", map.get("Id"));
     assertEquals("Room 104", map.get("Name"));
 
     @SuppressWarnings("unchecked")
-    StringMap<String> metadataMap = (StringMap<String>) map.get("__metadata");
+    LinkedTreeMap<String, String> metadataMap = (LinkedTreeMap<String, String>) map.get("__metadata");
     assertNotNull(metadataMap);
     assertEquals(getEndpoint() + "Rooms('104')", metadataMap.get("id"));
     assertEquals("RefScenario.Room", metadataMap.get("type"));
@@ -158,12 +158,12 @@ public class EntryJsonCreateInlineTest extends AbstractRefJsonTest {
     checkEtag(response, "W/\"2\"");
 
     String body = getBody(response);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?, ?> map = getLinkedTreeMap(body);
     assertEquals("104", map.get("Id"));
     assertEquals("Room 104", map.get("Name"));
 
     @SuppressWarnings("unchecked")
-    StringMap<String> metadataMap = (StringMap<String>) map.get("__metadata");
+    LinkedTreeMap<String, String> metadataMap = (LinkedTreeMap<String, String>) map.get("__metadata");
     assertNotNull(metadataMap);
     assertEquals(getEndpoint() + "Rooms('104')", metadataMap.get("id"));
     assertEquals("RefScenario.Room", metadataMap.get("type"));
@@ -195,12 +195,12 @@ public class EntryJsonCreateInlineTest extends AbstractRefJsonTest {
     // checkEtag(response, "W/\"2\"");
 
     String body = getBody(response);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?, ?> map = getLinkedTreeMap(body);
     assertEquals("4", map.get("Id"));
     assertEquals("Building 2", map.get("Name"));
 
     @SuppressWarnings("unchecked")
-    StringMap<String> metadataMap = (StringMap<String>) map.get("__metadata");
+    LinkedTreeMap<String, String> metadataMap = (LinkedTreeMap<String, String>) map.get("__metadata");
     assertNotNull(metadataMap);
     assertEquals(getEndpoint() + "Buildings('4')", metadataMap.get("id"));
     assertEquals("RefScenario.Building", metadataMap.get("type"));
@@ -208,7 +208,7 @@ public class EntryJsonCreateInlineTest extends AbstractRefJsonTest {
 
     response = callUri("Buildings('4')/nb_Rooms('104')/", HttpHeaders.ACCEPT, HttpContentType.APPLICATION_JSON);
     body = getBody(response);
-    map = getStringMap(body);
+    map = getLinkedTreeMap(body);
     assertEquals("104", map.get("Id"));
     assertEquals("Room 2", map.get("Name"));
     response =
@@ -218,7 +218,7 @@ public class EntryJsonCreateInlineTest extends AbstractRefJsonTest {
 
     response = callUri("Buildings('4')/nb_Rooms('105')/", HttpHeaders.ACCEPT, HttpContentType.APPLICATION_JSON);
     body = getBody(response);
-    map = getStringMap(body);
+    map = getLinkedTreeMap(body);
     assertEquals("105", map.get("Id"));
     assertEquals("Room 3", map.get("Name"));
     response =
@@ -261,22 +261,22 @@ public class EntryJsonCreateInlineTest extends AbstractRefJsonTest {
     checkMediaType(response, HttpContentType.APPLICATION_JSON);
 
     String body = getBody(response);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?, ?> map = getLinkedTreeMap(body);
     assertEquals("4", map.get("Id"));
     assertEquals("Building 2", map.get("Name"));
 
-    StringMap<String> metadataMap = (StringMap<String>) map.get("__metadata");
+    LinkedTreeMap<String, String> metadataMap = (LinkedTreeMap<String, String>) map.get("__metadata");
     assertNotNull(metadataMap);
     assertEquals(getEndpoint() + "Buildings('4')", metadataMap.get("id"));
     assertEquals("RefScenario.Building", metadataMap.get("type"));
     assertEquals(getEndpoint() + "Buildings('4')", metadataMap.get("uri"));
 
-    StringMap<Object> navProperty = (StringMap<Object>) map.get("nb_Rooms");
+    LinkedTreeMap<String, Object> navProperty = (LinkedTreeMap<String, Object>) map.get("nb_Rooms");
     assertNotNull(navProperty);
-    List<StringMap<String>> results = (ArrayList<StringMap<String>>) navProperty.get("results");
+    List<LinkedTreeMap<String, String>> results = (ArrayList<LinkedTreeMap<String, String>>) navProperty.get("results");
     assertNotNull(results);
     for (int i = 0; i < results.size(); i++) {
-      StringMap<String> resultMap = results.get(i);
+      LinkedTreeMap<String, String> resultMap = results.get(i);
       switch (i) {
       case 0:
         assertEquals("Room 2", resultMap.get("Name"));
@@ -325,12 +325,12 @@ public class EntryJsonCreateInlineTest extends AbstractRefJsonTest {
     checkMediaType(response, HttpContentType.APPLICATION_JSON);
 
     String body = getBody(response);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?, ?> map = getLinkedTreeMap(body);
     assertEquals("104", map.get("Id"));
     assertEquals("Room 104", map.get("Name"));
 
     @SuppressWarnings("unchecked")
-    StringMap<String> metadataMap = (StringMap<String>) map.get("__metadata");
+    LinkedTreeMap<String, String> metadataMap = (LinkedTreeMap<String, String>) map.get("__metadata");
     assertNotNull(metadataMap);
     assertEquals(getEndpoint() + "Rooms('104')", metadataMap.get("id"));
     assertEquals("RefScenario.Room", metadataMap.get("type"));

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/352a82c3/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/EntryJsonCreateTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/EntryJsonCreateTest.java b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/EntryJsonCreateTest.java
index 4d2a805..527e565 100644
--- a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/EntryJsonCreateTest.java
+++ b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/EntryJsonCreateTest.java
@@ -29,7 +29,7 @@ import org.apache.olingo.odata2.api.commons.HttpStatusCodes;
 import org.apache.olingo.odata2.testutil.server.ServletType;
 import org.junit.Test;
 
-import com.google.gson.internal.StringMap;
+import com.google.gson.internal.LinkedTreeMap;
 
 /**
  *  
@@ -55,11 +55,11 @@ public class EntryJsonCreateTest extends AbstractRefJsonTest {
     checkMediaType(response, HttpContentType.APPLICATION_JSON);
 
     String body = getBody(response);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?, ?> map = getLinkedTreeMap(body);
     assertEquals("104", map.get("Id"));
     assertEquals("Room 104", map.get("Name"));
     @SuppressWarnings("unchecked")
-    StringMap<String> metadataMap = (StringMap<String>) map.get("__metadata");
+    LinkedTreeMap<String, String> metadataMap = (LinkedTreeMap<String, String>) map.get("__metadata");
     assertNotNull(metadataMap);
     assertEquals(getEndpoint() + "Rooms('104')", metadataMap.get("id"));
     assertEquals("RefScenario.Room", metadataMap.get("type"));
@@ -85,14 +85,14 @@ public class EntryJsonCreateTest extends AbstractRefJsonTest {
     checkMediaType(response, HttpContentType.APPLICATION_JSON);
 
     String body = getBody(response);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?, ?> map = getLinkedTreeMap(body);
     assertEquals("104", map.get("Id"));
     assertEquals("Room 104", map.get("Name"));
     @SuppressWarnings("unchecked")
-    StringMap<Object> employeesMap = (StringMap<Object>) map.get("nr_Employees");
+    LinkedTreeMap<String, Object> employeesMap = (LinkedTreeMap<String, Object>) map.get("nr_Employees");
     assertNotNull(employeesMap);
     @SuppressWarnings("unchecked")
-    StringMap<String> deferredMap = (StringMap<String>) employeesMap.get("__deferred");
+    LinkedTreeMap<String, String> deferredMap = (LinkedTreeMap<String, String>) employeesMap.get("__deferred");
     assertNotNull(deferredMap);
     assertEquals(getEndpoint() + "Rooms('104')/nr_Employees", deferredMap.get("uri"));
   }
@@ -108,7 +108,7 @@ public class EntryJsonCreateTest extends AbstractRefJsonTest {
     checkMediaType(response, HttpContentType.APPLICATION_JSON);
 
     String body = getBody(response);
-    StringMap<?> map = getStringMap(body);
+    LinkedTreeMap<?, ?> map = getLinkedTreeMap(body);
     assertEquals("7", map.get("EmployeeId"));
     assertEquals("Employee 7", map.get("EmployeeName"));
     assertNull(map.get("EntryData"));

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/352a82c3/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 41b9de4..495a4fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -62,7 +62,7 @@
         <log4j.version>1.2.17</log4j.version>
         <commonscodec.version>1.6</commonscodec.version>
         <commonslang.version>3.1</commonslang.version>
-        <gson.version>2.2.2</gson.version>
+        <gson.version>2.4</gson.version>
 
 		<antlr.version>3.4</antlr.version>