You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2015/07/08 10:15:00 UTC

[06/12] olingo-odata4 git commit: [OLINGO-714] Java types in the DataProvider (TecSvc) changed

[OLINGO-714] Java types in the DataProvider (TecSvc) changed


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

Branch: refs/heads/OLINGO-708_AsyncSupportTec
Commit: de64c3189b201b1604fcc7749b7f83b6a96095b9
Parents: aeb258b
Author: Christian Holzer <c....@sap.com>
Authored: Tue Jun 30 16:07:12 2015 +0200
Committer: Christian Holzer <c....@sap.com>
Committed: Tue Jun 30 16:07:12 2015 +0200

----------------------------------------------------------------------
 .../fit/tecsvc/client/BatchClientITCase.java    |   4 +-
 .../tecsvc/client/EntityReferencesITCase.java   |   3 -
 .../olingo/server/tecsvc/data/ActionData.java   |  34 +-
 .../olingo/server/tecsvc/data/DataCreator.java  | 879 +++++++++++--------
 .../olingo/server/tecsvc/data/DataProvider.java |  22 +-
 .../olingo/server/tecsvc/data/FunctionData.java |   6 +-
 .../server/tecsvc/data/DataProviderTest.java    |   4 +-
 .../json/ODataJsonSerializerTest.java           |   3 +-
 8 files changed, 542 insertions(+), 413 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de64c318/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
index 3ab94da..c108d7b 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
@@ -348,9 +348,9 @@ public class BatchClientITCase extends AbstractTestITCase {
     assertNotNull(oDataResponse);
     assertEquals(HttpStatusCode.OK.getStatusCode(), oDataResponse.getStatusCode());
     assertEquals(1, oDataResponse.getHeader(HttpHeader.ODATA_VERSION).size());
-    assertEquals("4.0", oDataResponse.getHeader(HttpHeader.ODATA_VERSION).toArray()[0]);
+    assertEquals("4.0", oDataResponse.getHeader(HttpHeader.ODATA_VERSION).iterator().next());
     assertEquals(1, oDataResponse.getHeader(HttpHeader.CONTENT_LENGTH).size());
-    assertEquals("513", oDataResponse.getHeader(HttpHeader.CONTENT_LENGTH).toArray()[0]);
+    assertEquals("517", oDataResponse.getHeader(HttpHeader.CONTENT_LENGTH).iterator().next());
     assertEquals(ContentType.JSON.toContentTypeString(), oDataResponse.getContentType());
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de64c318/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/EntityReferencesITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/EntityReferencesITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/EntityReferencesITCase.java
index 7b24bb5..7285920 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/EntityReferencesITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/EntityReferencesITCase.java
@@ -24,7 +24,6 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
 import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -38,9 +37,7 @@ import org.apache.olingo.client.api.communication.response.ODataReferenceAddingR
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientObjectFactory;
 import org.apache.olingo.client.api.uri.QueryOption;
-import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.ODataClientFactory;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.http.HttpHeader;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de64c318/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/ActionData.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/ActionData.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/ActionData.java
index 4dd118e..81a723a 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/ActionData.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/ActionData.java
@@ -235,17 +235,19 @@ public class ActionData {
     return new Entity()
         .addProperty(DataCreator.createPrimitive("PropertyInt16", number))
         .addProperty(DataCreator.createPrimitive("PropertyString", "UARTCollETKeyNavParam int16 value: " + number))
-        .addProperty(
-            DataCreator.createComplex("PropertyCompNav", DataCreator.createPrimitive("PropertyInt16", 0)))
-        .addProperty(createKeyNavAllPrimComplexValue("PropertyCompAllPrim")).addProperty(
-            DataCreator.createComplex("PropertyCompTwoPrim", DataCreator.createPrimitive("PropertyInt16", 0),
-                DataCreator.createPrimitive("PropertyString", ""))).addProperty(
-            DataCreator.createPrimitiveCollection("CollPropertyString"))
-        .addProperty(DataCreator.createPrimitiveCollection("CollPropertyInt16")).addProperty(
-            DataCreator.createComplexCollection("CollPropertyComp"))
-        .addProperty(
-            DataCreator.createComplex("PropertyCompCompNav", DataCreator.createPrimitive("PropertyString", ""),
-                DataCreator.createComplex("PropertyCompNav", DataCreator.createPrimitive("PropertyInt16", 0))));
+        .addProperty(DataCreator.createComplex("PropertyCompNav", 
+            DataCreator.createPrimitive("PropertyInt16", (short) 0)))
+        .addProperty(createKeyNavAllPrimComplexValue("PropertyCompAllPrim"))
+        .addProperty(DataCreator.createComplex("PropertyCompTwoPrim", 
+              DataCreator.createPrimitive("PropertyInt16", (short) 0),
+              DataCreator.createPrimitive("PropertyString", ""))).addProperty(
+              DataCreator.createPrimitiveCollection("CollPropertyString"))
+        .addProperty(DataCreator.createPrimitiveCollection("CollPropertyInt16"))
+        .addProperty(DataCreator.createComplexCollection("CollPropertyComp"))
+        .addProperty(DataCreator.createComplex("PropertyCompCompNav", 
+            DataCreator.createPrimitive("PropertyString", ""),
+            DataCreator.createComplex("PropertyCompNav", 
+                DataCreator.createPrimitive("PropertyInt16", (short) 0))));
   }
 
   protected static Property createKeyNavAllPrimComplexValue(final String name) {
@@ -253,13 +255,13 @@ public class ActionData {
         DataCreator.createPrimitive("PropertyString", ""),
         DataCreator.createPrimitive("PropertyBinary", new byte[] {}),
         DataCreator.createPrimitive("PropertyBoolean", false),
-        DataCreator.createPrimitive("PropertyByte", 0),
+        DataCreator.createPrimitive("PropertyByte", (short) 0),
         DataCreator.createPrimitive("PropertyDate", null),
         DataCreator.createPrimitive("PropertyDateTimeOffset", null),
-        DataCreator.createPrimitive("PropertyDecimal", 0),
-        DataCreator.createPrimitive("PropertySingle", 0),
-        DataCreator.createPrimitive("PropertyDouble", 0),
-        DataCreator.createPrimitive("PropertyDuration", 0),
+        DataCreator.createPrimitive("PropertyDecimal", BigDecimal.valueOf(0)),
+        DataCreator.createPrimitive("PropertySingle", (float) 0),
+        DataCreator.createPrimitive("PropertyDouble", 0D),
+        DataCreator.createPrimitive("PropertyDuration", BigDecimal.valueOf(0)),
         DataCreator.createPrimitive("PropertyGuid", null),
         DataCreator.createPrimitive("PropertyInt16", null),
         DataCreator.createPrimitive("PropertyInt32", null),

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de64c318/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
index 6a2f658..341a7b1 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
@@ -18,6 +18,7 @@
  */
 package org.apache.olingo.server.tecsvc.data;
 
+import java.math.BigDecimal;
 import java.nio.charset.Charset;
 import java.sql.Timestamp;
 import java.util.ArrayList;
@@ -72,106 +73,59 @@ public class DataCreator {
     linkESTwoKeyNav(data);
   }
 
-  @SuppressWarnings("unchecked")
   private EntityCollection createESCompMixPrimCollComp() {
     final EntityCollection entityCollection = new EntityCollection();
     
-    entityCollection.getEntities().add(new Entity()
-      .addProperty(createPrimitive("PropertyInt16", 1))
+    entityCollection.getEntities().add(createETCompMixPrimCollComp((short) 1));
+    entityCollection.getEntities().add(createETCompMixPrimCollComp((short) 2));
+    entityCollection.getEntities().add(createETCompMixPrimCollComp((short) 3));
+
+    return entityCollection;
+  }
+  
+  @SuppressWarnings("unchecked")
+  private Entity createETCompMixPrimCollComp(Short propertyInt16) {
+    return new Entity()
+      .addProperty(createPrimitive("PropertyInt16",(short) 1))
       .addProperty(createComplex("PropertyMixedPrimCollComp",
-          createPrimitive("PropertyInt16", 1),
+          createPrimitive("PropertyInt16",(short) 1),
           createPrimitiveCollection("CollPropertyString", 
-              "Employee1@company.example",
-              "Employee2@company.example",
-              "Employee3@company.example"
-          ),
-          createComplex("PropertyComp",
-              createPrimitive("PropertyInt16", 333),
-              createPrimitive("PropertyString", "TEST123")
-          ),
-          createComplexCollection("CollPropertyComp", 
-              Arrays.asList(new Property[] { 
-                  createPrimitive("PropertyInt16", 222),
-                  createPrimitive("PropertyString", "TEST9876")
-              }),
-              Arrays.asList(new Property[] { 
-                  createPrimitive("PropertyInt16", 333),
-                  createPrimitive("PropertyString", "TEST123")
-              })
-          )    
-       ))
-    );
-    
-    entityCollection.getEntities().add(new Entity()
-    .addProperty(createPrimitive("PropertyInt16", 2))
-    .addProperty(createComplex("PropertyMixedPrimCollComp",
-        createPrimitive("PropertyInt16", 1),
-        createPrimitiveCollection("CollPropertyString", 
-            "Employee1@company.example",
-            "Employee2@company.example",
-            "Employee3@company.example"
-        ),
-        createComplex("PropertyComp",
-            createPrimitive("PropertyInt16", 333),
-            createPrimitive("PropertyString", "TEST123")
-        ),
-        createComplexCollection("CollPropertyComp", 
-            Arrays.asList(new Property[] { 
-                createPrimitive("PropertyInt16", 222),
-                createPrimitive("PropertyString", "TEST9876")
-            }),
-            Arrays.asList(new Property[] { 
-                createPrimitive("PropertyInt16", 333),
-                createPrimitive("PropertyString", "TEST123")
-            })
-        )    
-     ))
-    );
-     
-    entityCollection.getEntities().add(new Entity()
-    .addProperty(createPrimitive("PropertyInt16", 3))
-    .addProperty(createComplex("PropertyMixedPrimCollComp",
-        createPrimitive("PropertyInt16", 1),
-        createPrimitiveCollection("CollPropertyString", 
             "Employee1@company.example",
             "Employee2@company.example",
             "Employee3@company.example"
-        ),
-        createComplex("PropertyComp",
-            createPrimitive("PropertyInt16", 333),
+          ),
+          createComplex("PropertyComp",
+            createPrimitive("PropertyInt16",(short) 333),
             createPrimitive("PropertyString", "TEST123")
-        ),
-        createComplexCollection("CollPropertyComp", 
-            Arrays.asList(new Property[] { 
-                createPrimitive("PropertyInt16", 222),
+          ),
+          createComplexCollection("CollPropertyComp", 
+             Arrays.asList(new Property[] { 
+                createPrimitive("PropertyInt16",(short) 222),
                 createPrimitive("PropertyString", "TEST9876")
             }),
             Arrays.asList(new Property[] { 
-                createPrimitive("PropertyInt16", 333),
+                createPrimitive("PropertyInt16",(short) 333),
                 createPrimitive("PropertyString", "TEST123")
             })
-        )    
-     ))
-    );
-    
-    return entityCollection;
+          )    
+       ));
   }
-
+  
   private EntityCollection createESBase() {
     final EntityCollection entityCollection = new EntityCollection();
     
     entityCollection.getEntities().add(new Entity()
-        .addProperty(createPrimitive("PropertyInt16", 111))
+        .addProperty(createPrimitive("PropertyInt16",(short) 111))
         .addProperty(createPrimitive("PropertyString", "TEST A"))
         .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST A 0815")));
     
     entityCollection.getEntities().add(new Entity()
-        .addProperty(createPrimitive("PropertyInt16", 222))
+        .addProperty(createPrimitive("PropertyInt16",(short) 222))
         .addProperty(createPrimitive("PropertyString", "TEST B"))
         .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST C 0815")));
     
     entityCollection.getEntities().add(new Entity()
-        .addProperty(createPrimitive("PropertyInt16", 333))
+        .addProperty(createPrimitive("PropertyInt16",(short) 333))
         .addProperty(createPrimitive("PropertyString", "TEST C"))
         .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST E 0815")));
 
@@ -183,14 +137,14 @@ public class DataCreator {
     final EntityCollection entityCollection = new EntityCollection();
     
     entityCollection.getEntities().add(new Entity()
-      .addProperty(createPrimitive("PropertyInt16", 1))
+      .addProperty(createPrimitive("PropertyInt16",(short) 1))
       .addProperty(createComplex("PropertyComp",
-          createPrimitive("PropertyInt16", 11),
+          createPrimitive("PropertyInt16",(short) 11),
           createPrimitive("PropertyString", "Num11")
       ))
       .addProperty(createComplex("PropertyCompComp",
           createComplex("PropertyComp", 
-              createPrimitive("PropertyInt16", 111),
+              createPrimitive("PropertyInt16",(short) 111),
               createPrimitive("PropertyString", "Num111")
           )
         ))
@@ -202,23 +156,61 @@ public class DataCreator {
 
   private EntityCollection createESCompCollAllPrim() {
     final EntityCollection entityCollection = new EntityCollection();
-    entityCollection.getEntities().add(new Entity() 
-      .addProperty(createPrimitive("PropertyInt16", 5678))
+    
+    entityCollection.getEntities().add(createETCompCollAllPrim((short) 5678));
+    entityCollection.getEntities().add(createETCompCollAllPrim((short) 12326));
+    
+    return entityCollection;
+  }
+  
+  private Entity createETCompCollAllPrim(short propertyInt16) {
+    return new Entity() 
+      .addProperty(createPrimitive("PropertyInt16", propertyInt16))
       .addProperty(createComplex("PropertyComp", 
           createPrimitiveCollection("CollPropertyString", 
               "Employee1@company.example",
               "Employee2@company.example",
               "Employee3@company.example"),
-           createPrimitiveCollection("CollPropertyBoolean", true, false, true),
-           createPrimitiveCollection("CollPropertyByte", 50, 200, 249),
-           createPrimitiveCollection("CollPropertySByte", -120, 120, 126),
-           createPrimitiveCollection("CollPropertyInt16", 1000, 2000, 30112),
-           createPrimitiveCollection("CollPropertyInt32", 23232323, 11223355, 10000001),
-           createPrimitiveCollection("CollPropertyInt64", 929292929292L, 333333333333L, 444444444444L),
-           createPrimitiveCollection("CollPropertySingle", 1790, 26600, 3210),
-           createPrimitiveCollection("CollPropertyDouble", -17900, -27800000, 3210),
-           createPrimitiveCollection("CollPropertyDecimal", 12, -2, 1234),
-           createPrimitiveCollection("CollPropertyByte", 50, 200, 249),
+           createPrimitiveCollection("CollPropertyBoolean", 
+               true, 
+               false, 
+               true),
+           createPrimitiveCollection("CollPropertyByte", 
+               (short) 50, 
+               (short) 200, 
+               (short) 249),
+           createPrimitiveCollection("CollPropertySByte", 
+               (byte) -120, 
+               (byte) 120, 
+               (byte) 126),
+           createPrimitiveCollection("CollPropertyInt16",
+               (short) 1000,
+               (short) 2000,
+               (short) 30112),
+           createPrimitiveCollection("CollPropertyInt32", 
+               23232323, 
+               11223355, 
+               10000001),
+           createPrimitiveCollection("CollPropertyInt64", 
+               929292929292L, 
+               333333333333L, 
+               444444444444L),
+           createPrimitiveCollection("CollPropertySingle", 
+               (float) 1790, 
+               (float) 26600, 
+               (float) 3210),
+           createPrimitiveCollection("CollPropertyDouble", 
+               -17900D, 
+               -27800000D, 
+               3210D),
+           createPrimitiveCollection("CollPropertyDecimal", 
+               BigDecimal.valueOf(12), 
+               BigDecimal.valueOf(-2),
+               BigDecimal.valueOf(1234)),
+           createPrimitiveCollection("CollPropertyByte", 
+               (short) 50, 
+               (short) 200, 
+               (short) 249),
            createPrimitiveCollection("CollPropertyBinary", 
                new byte[] { -85, -51, -17 },
                new byte[] { 1, 35, 69 },
@@ -249,94 +241,45 @@ public class DataCreator {
                getTime(23, 59, 59),
                getTime(1, 12, 33)
            )
-        ))
-    );
-    
-    entityCollection.getEntities().add(new Entity() 
-    .addProperty(createPrimitive("PropertyInt16", 12326))
-    .addProperty(createComplex("PropertyComp", 
-        createPrimitiveCollection("CollPropertyString", 
-            "Employee1@company.example",
-            "Employee2@company.example",
-            "Employee3@company.example"),
-         createPrimitiveCollection("CollPropertyBoolean", true, false, true),
-         createPrimitiveCollection("CollPropertyByte", 50, 200, 249),
-         createPrimitiveCollection("CollPropertySByte", -120, 120, 126),
-         createPrimitiveCollection("CollPropertyInt16", 1000, 2000, 30112),
-         createPrimitiveCollection("CollPropertyInt32", 23232323, 11223355, 10000001),
-         createPrimitiveCollection("CollPropertyInt64", 929292929292L, 333333333333L, 444444444444L),
-         createPrimitiveCollection("CollPropertySingle", 1790, 26600, 3210),
-         createPrimitiveCollection("CollPropertyDouble", -17900, -27800000, 3210),
-         createPrimitiveCollection("CollPropertyDecimal", 12, -2, 1234),
-         createPrimitiveCollection("CollPropertyByte", 50, 200, 249),
-         createPrimitiveCollection("CollPropertyBinary", 
-             new byte[] { -85, -51, -17 },
-             new byte[] { 1, 35, 69 },
-             new byte[] { 84, 103, -119 }
-         ),
-         createPrimitiveCollection("CollPropertyDate",
-             getDateTime(1958, 12, 3, 0, 0, 0),
-             getDateTime(1999, 8, 5, 0, 0, 0),
-             getDateTime(2013, 6, 25, 0, 0, 0)
-         ),
-         createPrimitiveCollection("CollPropertyDateTimeOffset",
-             getDateTime(2015, 8, 12, 3, 8, 34),
-             getDateTime(1970, 3, 28, 12, 11, 10),
-             getDateTime(1948, 2, 17, 9, 9, 9)
-         ),
-         createPrimitiveCollection("CollPropertyDuration", 
-             getDurration(0, 0, 0, 13),
-             getDurration(0, 5, 28, 20),
-             getDurration(0, 1, 0, 0)
-         ),
-         createPrimitiveCollection("CollPropertyGuid",
-             UUID.fromString("ffffff67-89ab-cdef-0123-456789aaaaaa"),
-             UUID.fromString("eeeeee67-89ab-cdef-0123-456789bbbbbb"),
-             UUID.fromString("cccccc67-89ab-cdef-0123-456789cccccc")
-         ),
-         createPrimitiveCollection("CollPropertyTimeOfDay",
-             getTime(4, 14, 13),
-             getTime(23, 59, 59),
-             getTime(1, 12, 33)
-         )
-      ))
-  );
-    
-    return entityCollection;
+        ));
   }
-
+  
   private EntityCollection createESBaseTwoKeyNav() {
     final EntityCollection entityCollection = new EntityCollection();
-    entityCollection.getEntities().add(createESTwoKeyNavEntity(1, "1")
-                                  .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0))));
+    entityCollection.getEntities().add(
+        createESTwoKeyNavEntity((short) 1, "1")
+          .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0))));
     
-    entityCollection.getEntities().add(createESTwoKeyNavEntity(1, "2")
-        .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0))));
+    entityCollection.getEntities().add(
+        createESTwoKeyNavEntity((short) 1, "2")
+          .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0))));
     
-    entityCollection.getEntities().add(createESTwoKeyNavEntity(2, "1")
-        .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0))));
+    entityCollection.getEntities().add(
+        createESTwoKeyNavEntity((short) 2, "1")
+          .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0))));
     
-    entityCollection.getEntities().add(createESTwoKeyNavEntity(3, "1")
-        .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0))));
+    entityCollection.getEntities().add(
+        createESTwoKeyNavEntity((short) 3, "1")
+          .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0))));
     return entityCollection;
   }
 
   private EntityCollection createESTwoBase() {
     final EntityCollection entityCollection = new EntityCollection();
     entityCollection.getEntities().add(new Entity()
-        .addProperty(createPrimitive("PropertyInt16", 111))
+        .addProperty(createPrimitive("PropertyInt16",(short) 111))
         .addProperty(createPrimitive("PropertyString", "TEST A"))
         .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST A 0815"))
         .addProperty(createPrimitive("AdditionalPropertyString_6", "TEST B 0815")));
 
     entityCollection.getEntities().add(new Entity()
-        .addProperty(createPrimitive("PropertyInt16", 222))
+        .addProperty(createPrimitive("PropertyInt16",(short) 222))
         .addProperty(createPrimitive("PropertyString", "TEST B"))
         .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST C 0815"))
         .addProperty(createPrimitive("AdditionalPropertyString_6", "TEST D 0815")));
 
     entityCollection.getEntities().add(new Entity()
-        .addProperty(createPrimitive("PropertyInt16", 333))
+        .addProperty(createPrimitive("PropertyInt16",(short) 333))
         .addProperty(createPrimitive("PropertyString", "TEST C"))
         .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST E 0815"))
         .addProperty(createPrimitive("AdditionalPropertyString_6", "TEST F 0815")));
@@ -348,7 +291,7 @@ public class DataCreator {
     final EntityCollection entityCollection = new EntityCollection();
     entityCollection.getEntities().add(
         new Entity()
-        .addProperty(createPrimitive("PropertyKey", 1))
+        .addProperty(createPrimitive("PropertyKey",(short) 1))
         .addProperty(createPrimitive("PropertyInt16", null))
         .addProperty(createPrimitive("PropertyString", null))
         .addProperty(createPrimitive("PropertyBoolean", null))
@@ -369,15 +312,42 @@ public class DataCreator {
             "spiderman@comic.com", 
             null, 
             "spidergirl@comic.com"))
-        .addProperty(createPrimitiveCollection("CollPropertyBoolean", true, null, false))
-        .addProperty(createPrimitiveCollection("CollPropertyByte", 50, null, 249))
-        .addProperty(createPrimitiveCollection("CollPropertySByte", -120, null, 126))
-        .addProperty(createPrimitiveCollection("CollPropertyInt16", 1000, null, 30112))
-        .addProperty(createPrimitiveCollection("CollPropertyInt32", 23232323, null, 10000001))
-        .addProperty(createPrimitiveCollection("CollPropertyInt64", 929292929292L, null, 444444444444L))
-        .addProperty(createPrimitiveCollection("CollPropertySingle", 1790, null, 3210))
-        .addProperty(createPrimitiveCollection("CollPropertyDouble", -17900, null, 3210))
-        .addProperty(createPrimitiveCollection("CollPropertyDecimal", 12, null, 1234))
+        .addProperty(createPrimitiveCollection("CollPropertyBoolean", 
+            true, 
+            null, 
+            false))
+        .addProperty(createPrimitiveCollection("CollPropertyByte", 
+            (short) 50, 
+            null, 
+            (short) 249))
+        .addProperty(createPrimitiveCollection("CollPropertySByte", 
+            (byte) -120, 
+            null, 
+            (byte) 126))
+        .addProperty(createPrimitiveCollection("CollPropertyInt16",
+            (short) 1000, 
+            null,
+            (short) 30112))
+        .addProperty(createPrimitiveCollection("CollPropertyInt32", 
+            23232323, 
+            null, 
+            10000001))
+        .addProperty(createPrimitiveCollection("CollPropertyInt64", 
+            929292929292L, 
+            null, 
+            444444444444L))
+        .addProperty(createPrimitiveCollection("CollPropertySingle", 
+            (float) 1790, 
+            null, 
+            (float) 3210))
+        .addProperty(createPrimitiveCollection("CollPropertyDouble", 
+            -17900D, 
+            null, 
+            3210D))
+        .addProperty(createPrimitiveCollection("CollPropertyDecimal", 
+            BigDecimal.valueOf(12), 
+            null, 
+            BigDecimal.valueOf(1234)))
         .addProperty(createPrimitiveCollection("CollPropertyBinary", 
             new byte[] { -85, -51, -17 },
             null,
@@ -421,16 +391,18 @@ public class DataCreator {
   }
 
   private Entity createETTwoKeyTwoPrimEntity(final short propertyInt16, final String propertyString) {
-    return new Entity().addProperty(createPrimitive("PropertyInt16", propertyInt16))
+    return new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", propertyInt16))
         .addProperty(createPrimitive("PropertyString", propertyString));
   }
 
   private EntityCollection createESServerSidePaging() {
     EntityCollection entityCollection = new EntityCollection();
 
-    for (int i = 1; i <= 503; i++) {
-      entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", i))
-          .addProperty(createPrimitive("PropertyString", "Number:" + i)));
+    for (short i = 1; i <= 503; i++) {
+      entityCollection.getEntities().add(new Entity()
+      	.addProperty(createPrimitive("PropertyInt16", i))
+      	.addProperty(createPrimitive("PropertyString", "Number:" + i)));
     }
 
     return entityCollection;
@@ -439,79 +411,109 @@ public class DataCreator {
   private EntityCollection createESKeyNav() {
     final EntityCollection entityCollection = new EntityCollection();
 
-    entityCollection.getEntities().add(createETKeyNavEntity(1, "I am String Property 1"));
-    entityCollection.getEntities().add(createETKeyNavEntity(2, "I am String Property 2"));
-    entityCollection.getEntities().add(createETKeyNavEntity(3, "I am String Property 3"));
+    entityCollection.getEntities().add(createETKeyNavEntity((short) 1, "I am String Property 1"));
+    entityCollection.getEntities().add(createETKeyNavEntity((short) 2, "I am String Property 2"));
+    entityCollection.getEntities().add(createETKeyNavEntity((short) 3, "I am String Property 3"));
 
     return entityCollection;
   }
 
   @SuppressWarnings("unchecked")
-  private Entity createETKeyNavEntity(final int propertyInt16, final String propertyString) {
-    return new Entity().addProperty(createPrimitive("PropertyInt16", propertyInt16))
+  private Entity createETKeyNavEntity(final short propertyInt16, final String propertyString) {
+    return new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", propertyInt16))
         .addProperty(createPrimitive("PropertyString", propertyString))
-        .addProperty(createComplex("PropertyCompNav", createPrimitive("PropertyInt16", 1)))
-        .addProperty(createKeyNavAllPrimComplexValue("PropertyCompAllPrim")).addProperty(
-            createComplex("PropertyCompTwoPrim", createPrimitive("PropertyInt16", 16),
-                createPrimitive("PropertyString", "Test123"))).addProperty(
-            createPrimitiveCollection("CollPropertyString", "Employee1@company.example", "Employee2@company.example",
-                "Employee3@company.example"))
-        .addProperty(createPrimitiveCollection("CollPropertyInt16", 1000, 2000, 30112)).addProperty(
-            createComplexCollection("CollPropertyComp",
-                Arrays.asList(createPrimitive("PropertyInt16", 1), createKeyNavAllPrimComplexValue("PropertyComp")),
-                Arrays.asList(createPrimitive("PropertyInt16", 2), createKeyNavAllPrimComplexValue("PropertyComp")),
-                Arrays.asList(createPrimitive("PropertyInt16", 3), createKeyNavAllPrimComplexValue("PropertyComp"))))
-        .addProperty(createComplex("PropertyCompCompNav", createPrimitive("PropertyString", "1"),
-            createComplex("PropertyCompNav", createPrimitive("PropertyInt16", 1))));
+        .addProperty(createComplex("PropertyCompNav", 
+            createPrimitive("PropertyInt16", 1)))
+        .addProperty(createKeyNavAllPrimComplexValue("PropertyCompAllPrim"))
+        .addProperty(createComplex("PropertyCompTwoPrim", 
+            createPrimitive("PropertyInt16",(short) 16),
+            createPrimitive("PropertyString", "Test123")))
+        .addProperty(createPrimitiveCollection("CollPropertyString", 
+            "Employee1@company.example", 
+            "Employee2@company.example",
+            "Employee3@company.example"))
+        .addProperty(createPrimitiveCollection("CollPropertyInt16", 
+            (short) 1000, 
+            (short) 2000, 
+            (short) 30112))
+        .addProperty(createComplexCollection("CollPropertyComp",
+            Arrays.asList(
+                createPrimitive("PropertyInt16",(short) 1), 
+                createKeyNavAllPrimComplexValue("PropertyComp")),
+            Arrays.asList(
+                createPrimitive("PropertyInt16",(short) 2), 
+                createKeyNavAllPrimComplexValue("PropertyComp")),
+            Arrays.asList(
+                createPrimitive("PropertyInt16",(short) 3), 
+                createKeyNavAllPrimComplexValue("PropertyComp"))))
+        .addProperty(createComplex("PropertyCompCompNav", 
+        		createPrimitive("PropertyString", "1"),
+        		createComplex("PropertyCompNav", 
+        		    createPrimitive("PropertyInt16",(short) 1))));
   }
 
   private EntityCollection createESTwoKeyNav() {
     final EntityCollection entityCollection = new EntityCollection();
 
-    entityCollection.getEntities().add(createESTwoKeyNavEntity(1, "1"));
-    entityCollection.getEntities().add(createESTwoKeyNavEntity(1, "2"));
-    entityCollection.getEntities().add(createESTwoKeyNavEntity(2, "1"));
-    entityCollection.getEntities().add(createESTwoKeyNavEntity(3, "1"));
+    entityCollection.getEntities().add(createESTwoKeyNavEntity((short) 1, "1"));
+    entityCollection.getEntities().add(createESTwoKeyNavEntity((short) 1, "2"));
+    entityCollection.getEntities().add(createESTwoKeyNavEntity((short) 2, "1"));
+    entityCollection.getEntities().add(createESTwoKeyNavEntity((short) 3, "1"));
 
     return entityCollection;
   }
 
   @SuppressWarnings("unchecked")
-  private Entity createESTwoKeyNavEntity(final int propertyInt16, final String propertyString) {
+  private Entity createESTwoKeyNavEntity(final short propertyInt16, final String propertyString) {
     return new Entity()
         .addProperty(createPrimitive("PropertyInt16", propertyInt16))
         .addProperty(createPrimitive("PropertyString", propertyString))
-        .addProperty(
-            createComplex("PropertyComp", createPrimitive("PropertyInt16", 11),
-                createComplex("PropertyComp", createPrimitive("PropertyString", "StringValue"),
-                    createPrimitive("PropertyBinary", new byte[] { 1, 35, 69, 103, -119, -85, -51, -17 }),
-                    createPrimitive("PropertyBoolean", true), createPrimitive("PropertyByte", 255),
-                    createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 7, 16, 23)),
-                    createPrimitive("PropertyDecimal", 34), createPrimitive("PropertySingle", 179000000000000000000D),
-                    createPrimitive("PropertyDouble", -179000000000000000000D), createPrimitive("PropertyDuration", 6),
-                    createPrimitive("PropertyGuid", UUID.fromString("01234567-89ab-cdef-0123-456789abcdef")),
-                    createPrimitive("PropertyInt16", Short.MAX_VALUE),
-                    createPrimitive("PropertyInt32", Integer.MAX_VALUE),
-                    createPrimitive("PropertyInt64", Long.MAX_VALUE), createPrimitive("PropertySByte", Byte.MAX_VALUE),
-                    createPrimitive("PropertyTimeOfDay", getTime(21, 5, 59)))))
-        .addProperty(
-            createComplex("PropertyCompNav", createPrimitive("PropertyInt16", 1),
-                createKeyNavAllPrimComplexValue("PropertyComp")))
+        .addProperty(createComplex("PropertyComp", 
+            createPrimitive("PropertyInt16", 11),
+            createComplex("PropertyComp", 
+                createPrimitive("PropertyString", "StringValue"),
+                createPrimitive("PropertyBinary", new byte[] { 1, 35, 69, 103, -119, -85, -51, -17 }),
+                createPrimitive("PropertyBoolean", true), 
+                createPrimitive("PropertyByte", (short) 255),
+                createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 7, 16, 23)),
+                createPrimitive("PropertyDecimal", BigDecimal.valueOf(34)), 
+                createPrimitive("PropertySingle", (float) 179000000000000000000D),
+                createPrimitive("PropertyDouble", -179000000000000000000D), 
+                createPrimitive("PropertyDuration", BigDecimal.valueOf(6)),
+                createPrimitive("PropertyGuid", UUID.fromString("01234567-89ab-cdef-0123-456789abcdef")),
+                createPrimitive("PropertyInt16", Short.MAX_VALUE),
+                createPrimitive("PropertyInt32", Integer.MAX_VALUE),
+                createPrimitive("PropertyInt64", Long.MAX_VALUE), 
+                createPrimitive("PropertySByte", Byte.MAX_VALUE),
+                createPrimitive("PropertyTimeOfDay", getTime(21, 5, 59)))))
+        .addProperty(createComplex("PropertyCompNav", 
+            createPrimitive("PropertyInt16", (short) 1),
+            createKeyNavAllPrimComplexValue("PropertyComp")))
         .addProperty(createComplexCollection("CollPropertyComp"))
-        .addProperty(createComplexCollection("CollPropertyCompNav", Arrays.asList(createPrimitive("PropertyInt16", 1))))
-        .addProperty(createPrimitiveCollection("CollPropertyString", 1, 2)).addProperty(
-            createComplex("PropertyCompTwoPrim", createPrimitive("PropertyInt16", 11),
-                createPrimitive("PropertyString", "11")));
+        .addProperty(createComplexCollection("CollPropertyCompNav", 
+            Arrays.asList(
+                createPrimitive("PropertyInt16", (short) 1))))
+        .addProperty(createPrimitiveCollection("CollPropertyString", 
+            "1", 
+            "2"))
+        .addProperty(createComplex("PropertyCompTwoPrim", 
+        		createPrimitive("PropertyInt16", (short) 11),
+            createPrimitive("PropertyString", "11")));
   }
 
   protected Property createKeyNavAllPrimComplexValue(final String name) {
-    return createComplex(name, createPrimitive("PropertyString", "First Resource - positive values"),
+    return createComplex(name, 
+        createPrimitive("PropertyString", "First Resource - positive values"),
         createPrimitive("PropertyBinary", new byte[] { 1, 35, 69, 103, -119, -85, -51, -17 }),
-        createPrimitive("PropertyBoolean", true), createPrimitive("PropertyByte", 255),
+        createPrimitive("PropertyBoolean", true), 
+        createPrimitive("PropertyByte", (short) 255),
         createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 7, 16, 23)),
         createPrimitive("PropertyDateTimeOffset", getTimestamp(2012, 12, 3, 7, 16, 23, 0)),
-        createPrimitive("PropertyDecimal", 34), createPrimitive("PropertySingle", 179000000000000000000D),
-        createPrimitive("PropertyDouble", -179000000000000000000D), createPrimitive("PropertyDuration", 6),
+        createPrimitive("PropertyDecimal", 34), 
+        createPrimitive("PropertySingle", (float) 179000000000000000000D),
+        createPrimitive("PropertyDouble", -179000000000000000000D), 
+        createPrimitive("PropertyDuration", BigDecimal.valueOf(6)),
         createPrimitive("PropertyGuid", UUID.fromString("01234567-89ab-cdef-0123-456789abcdef")),
         createPrimitive("PropertyInt16", Short.MAX_VALUE), createPrimitive("PropertyInt32", Integer.MAX_VALUE),
         createPrimitive("PropertyInt64", Long.MAX_VALUE), createPrimitive("PropertySByte", Byte.MAX_VALUE),
@@ -522,23 +524,33 @@ public class DataCreator {
   private EntityCollection createESCompCollComp() {
     final EntityCollection entityCollection = new EntityCollection();
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE))
-        .addProperty(createComplex("PropertyComp", createComplexCollection("CollPropertyComp", Arrays
-            .asList(createPrimitive("PropertyInt16", 555),
-                createPrimitive("PropertyString", "1 Test Complex in Complex Property")), Arrays
-            .asList(createPrimitive("PropertyInt16", 666),
-                createPrimitive("PropertyString", "2 Test Complex in Complex Property")), Arrays
-            .asList(createPrimitive("PropertyInt16", 777),
-                createPrimitive("PropertyString", "3 Test Complex in Complex Property"))))));
-
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", 12345)).addProperty(
-        createComplex("PropertyComp", createComplexCollection("CollPropertyComp", Arrays
-            .asList(createPrimitive("PropertyInt16", 888),
-                createPrimitive("PropertyString", "11 Test Complex in Complex Property")), Arrays
-            .asList(createPrimitive("PropertyInt16", 999),
-                createPrimitive("PropertyString", "12 Test Complex in Complex Property")), Arrays
-            .asList(createPrimitive("PropertyInt16", 0),
-                createPrimitive("PropertyString", "13 Test Complex in Complex Property"))))));
+    entityCollection.getEntities().add(new Entity()
+  	  .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE))
+      .addProperty(createComplex("PropertyComp", 
+          createComplexCollection("CollPropertyComp", 
+            Arrays.asList(
+              createPrimitive("PropertyInt16",(short) 555),
+              createPrimitive("PropertyString", "1 Test Complex in Complex Property")), 
+            Arrays.asList(
+              createPrimitive("PropertyInt16",(short) 666),
+              createPrimitive("PropertyString", "2 Test Complex in Complex Property")), 
+            Arrays.asList(
+              createPrimitive("PropertyInt16",(short) 777),
+              createPrimitive("PropertyString", "3 Test Complex in Complex Property"))))));
+
+    entityCollection.getEntities().add(new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", 12345))
+    	.addProperty(createComplex("PropertyComp", 
+    	    createComplexCollection("CollPropertyComp", 
+  	        Arrays.asList(
+  	            createPrimitive("PropertyInt16",(short) 888),
+	              createPrimitive("PropertyString", "11 Test Complex in Complex Property")), 
+            Arrays.asList(
+	        		createPrimitive("PropertyInt16",(short) 999),
+              createPrimitive("PropertyString", "12 Test Complex in Complex Property")), 
+            Arrays.asList(
+              createPrimitive("PropertyInt16",(short) 0),
+              createPrimitive("PropertyString", "13 Test Complex in Complex Property"))))));
 
     return entityCollection;
   }
@@ -546,17 +558,21 @@ public class DataCreator {
   private EntityCollection createESTwoPrim() {
     EntityCollection entityCollection = new EntityCollection();
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", 32766))
-        .addProperty(createPrimitive("PropertyString", "Test String1")));
+    entityCollection.getEntities().add(new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", (short) 32766))
+      .addProperty(createPrimitive("PropertyString", "Test String1")));
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", -365))
-        .addProperty(createPrimitive("PropertyString", "Test String2")));
+    entityCollection.getEntities().add(new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", (short) -365))
+      .addProperty(createPrimitive("PropertyString", "Test String2")));
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", -32766))
-        .addProperty(createPrimitive("PropertyString", null)));
+    entityCollection.getEntities().add(new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", (short) -32766))
+      .addProperty(createPrimitive("PropertyString", null)));
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE))
-        .addProperty(createPrimitive("PropertyString", "Test String4")));
+    entityCollection.getEntities().add(new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE))
+      .addProperty(createPrimitive("PropertyString", "Test String4")));
 
     return entityCollection;
   }
@@ -564,47 +580,59 @@ public class DataCreator {
   private EntityCollection createESAllPrim() {
     EntityCollection entityCollection = new EntityCollection();
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE))
-        .addProperty(createPrimitive("PropertyString", "First Resource - positive values"))
-        .addProperty(createPrimitive("PropertyBoolean", true)).addProperty(createPrimitive("PropertyByte", 255))
-        .addProperty(createPrimitive("PropertySByte", Byte.MAX_VALUE))
-        .addProperty(createPrimitive("PropertyInt32", Integer.MAX_VALUE))
-        .addProperty(createPrimitive("PropertyInt64", Long.MAX_VALUE))
-        .addProperty(createPrimitive("PropertySingle", 1.79000000E+20))
-        .addProperty(createPrimitive("PropertyDouble", -1.7900000000000000E+19))
-        .addProperty(createPrimitive("PropertyDecimal", 34)).addProperty(createPrimitive("PropertyBinary",
-            new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }))
-        .addProperty(createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 0, 0, 0)))
-        .addProperty(createPrimitive("PropertyDateTimeOffset", getDateTime(2012, 12, 3, 7, 16, 23)))
-        .addProperty(createPrimitive("PropertyDuration", 6)).addProperty(createPrimitive("PropertyGuid", GUID))
-        .addProperty(createPrimitive("PropertyTimeOfDay", getTime(3, 26, 5))));
+    entityCollection.getEntities().add(new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE))
+      .addProperty(createPrimitive("PropertyString", "First Resource - positive values"))
+      .addProperty(createPrimitive("PropertyBoolean", true))
+      .addProperty(createPrimitive("PropertyByte", (short) 255))
+      .addProperty(createPrimitive("PropertySByte", Byte.MAX_VALUE))
+      .addProperty(createPrimitive("PropertyInt32", Integer.MAX_VALUE))
+      .addProperty(createPrimitive("PropertyInt64", Long.MAX_VALUE))
+      .addProperty(createPrimitive("PropertySingle", (float) 1.79000000E+20))
+      .addProperty(createPrimitive("PropertyDouble", -1.7900000000000000E+19))
+      .addProperty(createPrimitive("PropertyDecimal", BigDecimal.valueOf(34)))
+      .addProperty(createPrimitive("PropertyBinary", 
+      		new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }))
+      .addProperty(createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 0, 0, 0)))
+      .addProperty(createPrimitive("PropertyDateTimeOffset", getDateTime(2012, 12, 3, 7, 16, 23)))
+      .addProperty(createPrimitive("PropertyDuration", BigDecimal.valueOf(6)))
+      .addProperty(createPrimitive("PropertyGuid", GUID))
+      .addProperty(createPrimitive("PropertyTimeOfDay", getTime(3, 26, 5))));
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", Short.MIN_VALUE))
+    entityCollection.getEntities().add(new Entity()
+    	  .addProperty(createPrimitive("PropertyInt16", Short.MIN_VALUE))
         .addProperty(createPrimitive("PropertyString", "Second Resource - negative values"))
-        .addProperty(createPrimitive("PropertyBoolean", false)).addProperty(createPrimitive("PropertyByte", 0))
+        .addProperty(createPrimitive("PropertyBoolean", false))
+        .addProperty(createPrimitive("PropertyByte", (short) 0))
         .addProperty(createPrimitive("PropertySByte", Byte.MIN_VALUE))
         .addProperty(createPrimitive("PropertyInt32", Integer.MIN_VALUE))
         .addProperty(createPrimitive("PropertyInt64", Long.MIN_VALUE))
-        .addProperty(createPrimitive("PropertySingle", -1.79000000E+08))
+        .addProperty(createPrimitive("PropertySingle", (float) -1.79000000E+08))
         .addProperty(createPrimitive("PropertyDouble", -1.7900000000000000E+05))
-        .addProperty(createPrimitive("PropertyDecimal", -34)).addProperty(createPrimitive("PropertyBinary",
+        .addProperty(createPrimitive("PropertyDecimal", BigDecimal.valueOf(-34)))
+        .addProperty(createPrimitive("PropertyBinary",
             new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }))
         .addProperty(createPrimitive("PropertyDate", getDateTime(2015, 11, 5, 0, 0, 0)))
         .addProperty(createPrimitive("PropertyDateTimeOffset", getDateTime(2005, 12, 3, 7, 17, 8)))
-        .addProperty(createPrimitive("PropertyDuration", 9))
+        .addProperty(createPrimitive("PropertyDuration", BigDecimal.valueOf(9)))
         .addProperty(createPrimitive("PropertyGuid", UUID.fromString("76543201-23ab-cdef-0123-456789dddfff")))
         .addProperty(createPrimitive("PropertyTimeOfDay", getTime(23, 49, 14))));
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", (short) 0))
-        .addProperty(createPrimitive("PropertyString", "")).addProperty(createPrimitive("PropertyBoolean", false))
-        .addProperty(createPrimitive("PropertyByte", 0)).addProperty(createPrimitive("PropertySByte", 0))
-        .addProperty(createPrimitive("PropertyInt32", 0)).addProperty(createPrimitive("PropertyInt64", 0))
-        .addProperty(createPrimitive("PropertySingle", 0)).addProperty(createPrimitive("PropertyDouble", 0))
-        .addProperty(createPrimitive("PropertyDecimal", 0))
+    entityCollection.getEntities().add(new Entity()
+    	  .addProperty(createPrimitive("PropertyInt16", (short) 0))
+        .addProperty(createPrimitive("PropertyString", ""))
+        .addProperty(createPrimitive("PropertyBoolean", false))
+        .addProperty(createPrimitive("PropertyByte", (short) 0))
+        .addProperty(createPrimitive("PropertySByte", 0))
+        .addProperty(createPrimitive("PropertyInt32", 0))
+        .addProperty(createPrimitive("PropertyInt64", 0L))
+        .addProperty(createPrimitive("PropertySingle", (float) 0))
+        .addProperty(createPrimitive("PropertyDouble", 0D))
+        .addProperty(createPrimitive("PropertyDecimal", BigDecimal.valueOf(0)))
         .addProperty(createPrimitive("PropertyBinary", new byte[] {}))
         .addProperty(createPrimitive("PropertyDate", getDateTime(1970, 1, 1, 0, 0, 0)))
         .addProperty(createPrimitive("PropertyDateTimeOffset", getDateTime(2005, 12, 3, 0, 0, 0)))
-        .addProperty(createPrimitive("PropertyDuration", 0))
+        .addProperty(createPrimitive("PropertyDuration", BigDecimal.valueOf(0)))
         .addProperty(createPrimitive("PropertyGuid", UUID.fromString("76543201-23ab-cdef-0123-456789cccddd")))
         .addProperty(createPrimitive("PropertyTimeOfDay", getTime(0, 1, 1))));
 
@@ -614,52 +642,72 @@ public class DataCreator {
   private EntityCollection createESCompAllPrim() {
     EntityCollection entityCollection = new EntityCollection();
 
-    Entity entity = new Entity();
-    entity.addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE));
-    entity.addProperty(createComplex("PropertyComp", createPrimitive("PropertyString", "First Resource - first"),
-        createPrimitive("PropertyBinary",
-            new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }),
-        createPrimitive("PropertyBoolean", true), createPrimitive("PropertyByte", 255),
-        createPrimitive("PropertyDate", getDateTime(2012, 10, 3, 0, 0, 0)),
-        createPrimitive("PropertyDateTimeOffset", getTimestamp(2012, 10, 3, 7, 16, 23, 123456700)),
-        createPrimitive("PropertyDecimal", 34.27), createPrimitive("PropertySingle", 1.79000000E+20),
-        createPrimitive("PropertyDouble", -1.7900000000000000E+19), createPrimitive("PropertyDuration", 6),
-        createPrimitive("PropertyGuid", GUID), createPrimitive("PropertyInt16", Short.MAX_VALUE),
-        createPrimitive("PropertyInt32", Integer.MAX_VALUE), createPrimitive("PropertyInt64", Long.MAX_VALUE),
-        createPrimitive("PropertySByte", Byte.MAX_VALUE), createPrimitive("PropertyTimeOfDay", getTime(1, 0, 1))));
+    Entity entity = new Entity()
+      .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE))
+      .addProperty(createComplex("PropertyComp", 
+          createPrimitive("PropertyString", "First Resource - first"),
+          createPrimitive("PropertyBinary",
+              new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }),
+          createPrimitive("PropertyBoolean", true), 
+          createPrimitive("PropertyByte", (short) 255),
+          createPrimitive("PropertyDate", getDateTime(2012, 10, 3, 0, 0, 0)),
+          createPrimitive("PropertyDateTimeOffset", getTimestamp(2012, 10, 3, 7, 16, 23, 123456700)),
+          createPrimitive("PropertyDecimal", BigDecimal.valueOf(34.27)), 
+          createPrimitive("PropertySingle", (float) 1.79000000E+20),
+          createPrimitive("PropertyDouble", -1.7900000000000000E+19), 
+          createPrimitive("PropertyDuration", BigDecimal.valueOf(6)),
+          createPrimitive("PropertyGuid", GUID), 
+          createPrimitive("PropertyInt16", Short.MAX_VALUE),
+          createPrimitive("PropertyInt32", Integer.MAX_VALUE), 
+          createPrimitive("PropertyInt64", Long.MAX_VALUE),
+          createPrimitive("PropertySByte", Byte.MAX_VALUE), 
+          createPrimitive("PropertyTimeOfDay", getTime(1, 0, 1))));
     entity.setETag("W/\"" + Short.MAX_VALUE + '\"');
     entityCollection.getEntities().add(entity);
 
-    entity = new Entity();
-    entity.addProperty(createPrimitive("PropertyInt16", 7));
-    entity.addProperty(createComplex("PropertyComp", createPrimitive("PropertyString", "Second Resource - second"),
+    entity = new Entity()
+      .addProperty(createPrimitive("PropertyInt16",(short) 7))
+      .addProperty(createComplex("PropertyComp", 
+        createPrimitive("PropertyString", "Second Resource - second"),
         createPrimitive("PropertyBinary",
             new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }),
-        createPrimitive("PropertyBoolean", true), createPrimitive("PropertyByte", 255),
+        createPrimitive("PropertyBoolean", true), 
+        createPrimitive("PropertyByte", (short) 255),
         createPrimitive("PropertyDate", getDateTime(2013, 11, 4, 0, 0, 0)),
         createPrimitive("PropertyDateTimeOffset", getDateTime(2013, 11, 4, 7, 16, 23)),
-        createPrimitive("PropertyDecimal", 34.27), createPrimitive("PropertySingle", 1.79000000E+20),
-        createPrimitive("PropertyDouble", -1.7900000000000000E+02), createPrimitive("PropertyDuration", 6),
-        createPrimitive("PropertyGuid", GUID), createPrimitive("PropertyInt16", 25),
-        createPrimitive("PropertyInt32", Integer.MAX_VALUE), createPrimitive("PropertyInt64", Long.MAX_VALUE),
+        createPrimitive("PropertyDecimal", BigDecimal.valueOf(34.27)), 
+        createPrimitive("PropertySingle", (float) 1.79000000E+20),
+        createPrimitive("PropertyDouble", -1.7900000000000000E+02), 
+        createPrimitive("PropertyDuration", BigDecimal.valueOf(6)),
+        createPrimitive("PropertyGuid", GUID), 
+        createPrimitive("PropertyInt16", (short) 25),
+        createPrimitive("PropertyInt32", Integer.MAX_VALUE), 
+        createPrimitive("PropertyInt64", Long.MAX_VALUE),
         createPrimitive("PropertySByte", Byte.MAX_VALUE),
         createPrimitive("PropertyTimeOfDay", getTimestamp(1, 1, 1, 7, 45, 12, 765432100))));
     entity.setETag("W/\"7\"");
     entityCollection.getEntities().add(entity);
 
-    entity = new Entity();
-    entity.addProperty(createPrimitive("PropertyInt16", 0));
-    entity.addProperty(createComplex("PropertyComp", createPrimitive("PropertyString", "Third Resource - third"),
+    entity = new Entity()
+      .addProperty(createPrimitive("PropertyInt16", (short) 0))
+      .addProperty(createComplex("PropertyComp", 
+        createPrimitive("PropertyString", "Third Resource - third"),
         createPrimitive("PropertyBinary",
             new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }),
-        createPrimitive("PropertyBoolean", true), createPrimitive("PropertyByte", 255),
+        createPrimitive("PropertyBoolean", true), 
+        createPrimitive("PropertyByte", (short) 255),
         createPrimitive("PropertyDate", getDateTime(2014, 12, 5, 0, 0, 0)),
         createPrimitive("PropertyDateTimeOffset", getTimestamp(2014, 12, 5, 8, 17, 45, 123456700)),
-        createPrimitive("PropertyDecimal", 17.98), createPrimitive("PropertySingle", 1.79000000E+20),
-        createPrimitive("PropertyDouble", -1.7900000000000000E+02), createPrimitive("PropertyDuration", 6),
-        createPrimitive("PropertyGuid", GUID), createPrimitive("PropertyInt16", -25),
-        createPrimitive("PropertyInt32", Integer.MAX_VALUE), createPrimitive("PropertyInt64", Long.MAX_VALUE),
-        createPrimitive("PropertySByte", Byte.MAX_VALUE), createPrimitive("PropertyTimeOfDay", getTime(13, 27, 45))));
+        createPrimitive("PropertyDecimal", 17.98), 
+        createPrimitive("PropertySingle", 1.79000000E+20),
+        createPrimitive("PropertyDouble", -1.7900000000000000E+02), 
+        createPrimitive("PropertyDuration", BigDecimal.valueOf(6)),
+        createPrimitive("PropertyGuid", GUID), 
+        createPrimitive("PropertyInt16", (short) -25),
+        createPrimitive("PropertyInt32", Integer.MAX_VALUE), 
+        createPrimitive("PropertyInt64", Long.MAX_VALUE),
+        createPrimitive("PropertySByte", Byte.MAX_VALUE), 
+        createPrimitive("PropertyTimeOfDay", getTime(13, 27, 45))));
     entity.setETag("W/\"0\"");
     entityCollection.getEntities().add(entity);
 
@@ -669,101 +717,166 @@ public class DataCreator {
   private EntityCollection createESCollAllPrim() {
     EntityCollection entityCollection = new EntityCollection();
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", 1)).addProperty(
-        createPrimitiveCollection("CollPropertyString", "Employee1@company.example", "Employee2@company.example",
-            "Employee3@company.example"))
-        .addProperty(createPrimitiveCollection("CollPropertyBoolean", true, false, true))
-        .addProperty(createPrimitiveCollection("CollPropertyByte", 50, 200, 249))
-        .addProperty(createPrimitiveCollection("CollPropertySByte", -120, 120, 126))
-        .addProperty(createPrimitiveCollection("CollPropertyInt16", 1000, 2000, 30112))
-        .addProperty(createPrimitiveCollection("CollPropertyInt32", 23232323, 11223355, 10000001))
-        .addProperty(createPrimitiveCollection("CollPropertyInt64", 929292929292L, 333333333333L, 444444444444L))
-        .addProperty(createPrimitiveCollection("CollPropertySingle", 1.79000000E+03, 2.66000000E+04, 3.21000000E+03))
-        .addProperty(createPrimitiveCollection("CollPropertyDouble", -1.7900000000000000E+04, -2.7800000000000000E+07,
-            3.2100000000000000E+03)).addProperty(createPrimitiveCollection("CollPropertyDecimal", 12, -2, 1234))
-        .addProperty(
-            createPrimitiveCollection("CollPropertyBinary", new byte[] { (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }, new
-                byte[] { 0x01, 0x23, 0x45 },
-                new byte[] { 0x54, 0x67, (byte) 0x89 })).addProperty(
-            createPrimitiveCollection("CollPropertyDate", getDateTime(1958, 12, 3, 0, 0, 0),
-                getDateTime(1999, 8, 5, 0, 0, 0), getDateTime(2013, 6, 25, 0, 0, 0))).addProperty(
-            createPrimitiveCollection("CollPropertyDateTimeOffset", getDateTime(2015, 8, 12, 3, 8, 34),
-                getDateTime(1970, 3, 28, 12, 11, 10), getDateTime(1948, 2, 17, 9, 9, 9)))
-        .addProperty(createPrimitiveCollection("CollPropertyDuration", 13, 19680, 3600)).addProperty(
-            createPrimitiveCollection("CollPropertyGuid", UUID.fromString("ffffff67-89ab-cdef-0123-456789aaaaaa"),
-                UUID.fromString("eeeeee67-89ab-cdef-0123-456789bbbbbb"),
-                UUID.fromString("cccccc67-89ab-cdef-0123-456789cccccc"))).addProperty(
-            createPrimitiveCollection("CollPropertyTimeOfDay", getTime(4, 14, 13), getTime(23, 59, 59),
-                getTime(1, 12, 33))));
-
-    Entity entity = new Entity();
-    entity.getProperties().addAll(entityCollection.getEntities().get(0).getProperties());
-    entity.getProperties().set(0, createPrimitive("PropertyInt16", 2));
-    entityCollection.getEntities().add(entity);
-
-    entity = new Entity();
-    entity.getProperties().addAll(entityCollection.getEntities().get(0).getProperties());
-    entity.getProperties().set(0, createPrimitive("PropertyInt16", 3));
-    entityCollection.getEntities().add(entity);
+    entityCollection.getEntities().add(createETCollAllPrim((short) 1));
+    entityCollection.getEntities().add(createETCollAllPrim((short) 2));
+    entityCollection.getEntities().add(createETCollAllPrim((short) 3));
 
     return entityCollection;
   }
-
+  
+  private Entity createETCollAllPrim(Short propertyInt16) {
+	  return new Entity()
+	  	.addProperty(createPrimitive("PropertyInt16", propertyInt16))
+	  	.addProperty(createPrimitiveCollection("CollPropertyString", 
+	  	    "Employee1@company.example", 
+	  	    "Employee2@company.example",
+	        "Employee3@company.example"))
+	    .addProperty(createPrimitiveCollection("CollPropertyBoolean", 
+	        true, 
+	        false, 
+	        true))
+      .addProperty(createPrimitiveCollection("CollPropertyByte", 
+          (short) 50,
+          (short) 200,
+          (short) 249))
+      .addProperty(createPrimitiveCollection("CollPropertySByte",
+          -120,
+          120, 
+          126))
+      .addProperty(createPrimitiveCollection("CollPropertyInt16", 
+          (short) 1000, 
+          (short) 2000, 
+          (short) 30112))
+      .addProperty(createPrimitiveCollection("CollPropertyInt32", 
+          23232323, 
+          11223355, 
+          10000001))
+      .addProperty(createPrimitiveCollection("CollPropertyInt64",
+          929292929292L,
+          333333333333L,
+          444444444444L))
+      .addProperty(createPrimitiveCollection("CollPropertySingle",
+          1.79000000E+03,
+          2.66000000E+04, 
+          3.21000000E+03))
+      .addProperty(createPrimitiveCollection("CollPropertyDouble", 
+          -1.7900000000000000E+04, 
+          -2.7800000000000000E+07,
+           3.2100000000000000E+03))
+	      .addProperty(createPrimitiveCollection("CollPropertyDecimal", 
+            BigDecimal.valueOf(12), 
+            BigDecimal.valueOf(-2), 
+            BigDecimal.valueOf(1234)))
+	      .addProperty(createPrimitiveCollection("CollPropertyBinary", 
+	      		new byte[] { (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }, 
+	      		new byte[] { 0x01, 0x23, 0x45 },
+            new byte[] { 0x54, 0x67, (byte) 0x89 }))
+	      .addProperty(createPrimitiveCollection("CollPropertyDate", 
+	      		getDateTime(1958, 12, 3, 0, 0, 0),
+            getDateTime(1999, 8, 5, 0, 0, 0), 
+            getDateTime(2013, 6, 25, 0, 0, 0)))
+	      .addProperty(createPrimitiveCollection("CollPropertyDateTimeOffset", 
+	      		getDateTime(2015, 8, 12, 3, 8, 34),
+            getDateTime(1970, 3, 28, 12, 11, 10), 
+            getDateTime(1948, 2, 17, 9, 9, 9)))
+	      .addProperty(createPrimitiveCollection("CollPropertyDuration", 
+	          BigDecimal.valueOf(13), 
+	          BigDecimal.valueOf(19680),
+	          BigDecimal.valueOf(3600)))
+	      .addProperty(createPrimitiveCollection("CollPropertyGuid", 
+	      		UUID.fromString("ffffff67-89ab-cdef-0123-456789aaaaaa"),
+            UUID.fromString("eeeeee67-89ab-cdef-0123-456789bbbbbb"),
+            UUID.fromString("cccccc67-89ab-cdef-0123-456789cccccc")))
+	      .addProperty(createPrimitiveCollection("CollPropertyTimeOfDay", 
+	      		getTime(4, 14, 13), 
+	      		getTime(23, 59, 59),
+            getTime(1, 12, 33)));
+  }
+  
   private EntityCollection createESMixPrimCollComp() {
-    @SuppressWarnings("unchecked")
-    final Property complexCollection = createComplexCollection("CollPropertyComp",
-        Arrays.asList(createPrimitive("PropertyInt16", 123), createPrimitive("PropertyString", "TEST 1")),
-        Arrays.asList(createPrimitive("PropertyInt16", 456), createPrimitive("PropertyString", "TEST 2")),
-        Arrays.asList(createPrimitive("PropertyInt16", 789), createPrimitive("PropertyString", "TEST 3")));
-
     EntityCollection entityCollection = new EntityCollection();
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE))
-        .addProperty(
-            createPrimitiveCollection("CollPropertyString", "Employee1@company.example", "Employee2@company.example",
-                "Employee3@company.example")).addProperty(
-            createComplex("PropertyComp", createPrimitive("PropertyInt16", 111),
-                createPrimitive("PropertyString", "TEST A"))).addProperty(complexCollection));
-
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", 7)).addProperty(
-        createPrimitiveCollection("CollPropertyString", "Employee1@company.example", "Employee2@company.example",
-            "Employee3@company.example")).addProperty(
-        createComplex("PropertyComp", createPrimitive("PropertyInt16", 222),
-            createPrimitive("PropertyString", "TEST B"))).addProperty(complexCollection));
-
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyInt16", 0)).addProperty(
-        createPrimitiveCollection("CollPropertyString", "Employee1@company.example", "Employee2@company.example",
-            "Employee3@company.example")).addProperty(
-        createComplex("PropertyComp", createPrimitive("PropertyInt16", 333),
-            createPrimitive("PropertyString", "TEST C"))).addProperty(complexCollection));
+    entityCollection.getEntities().add(new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE))
+        .addProperty(createPrimitiveCollection("CollPropertyString", 
+        		"Employee1@company.example", 
+        		"Employee2@company.example",
+            "Employee3@company.example"))
+        .addProperty(createComplex("PropertyComp", 
+        		createPrimitive("PropertyInt16", (short) 111),
+            createPrimitive("PropertyString", "TEST A")))
+        .addProperty(createColPropertyComp()));
+
+    entityCollection.getEntities().add(new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", (short) 7))
+    	.addProperty(createPrimitiveCollection("CollPropertyString", 
+    	    "Employee1@company.example", 
+    	    "Employee2@company.example",
+          "Employee3@company.example"))
+      .addProperty(createComplex("PropertyComp", 
+          createPrimitive("PropertyInt16", (short) 222),
+          createPrimitive("PropertyString", "TEST B")))
+      .addProperty(createColPropertyComp()));
+
+    entityCollection.getEntities().add(new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", 0))
+    	.addProperty(createPrimitiveCollection("CollPropertyString", 
+    	    "Employee1@company.example", 
+    	    "Employee2@company.example",
+          "Employee3@company.example"))
+      .addProperty(createComplex("PropertyComp", 
+    		createPrimitive("PropertyInt16", (short) 333),
+        createPrimitive("PropertyString", "TEST C")))
+      .addProperty(createColPropertyComp()));
 
     return entityCollection;
   }
-
-  private EntityCollection createESAllKey() {
+  
+	@SuppressWarnings("unchecked")
+	private Property createColPropertyComp() {
+		return createComplexCollection("CollPropertyComp", 
+			Arrays.asList(
+				createPrimitive("PropertyInt16", (short) 123),
+				createPrimitive("PropertyString", "TEST 1")), 
+			Arrays.asList(
+				createPrimitive("PropertyInt16", (short) 456),
+				createPrimitive("PropertyString", "TEST 2")), 
+			Arrays.asList(
+				createPrimitive("PropertyInt16", (short) 789),
+				createPrimitive("PropertyString", "TEST 3")));
+	}
+  
+	private EntityCollection createESAllKey() {
     EntityCollection entityCollection = new EntityCollection();
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyString", "First"))
-        .addProperty(createPrimitive("PropertyBoolean", true)).addProperty(createPrimitive("PropertyByte", 255))
+    entityCollection.getEntities().add(new Entity()
+    	.addProperty(createPrimitive("PropertyString", "First"))
+        .addProperty(createPrimitive("PropertyBoolean", true))
+        .addProperty(createPrimitive("PropertyByte", (short) 255))
         .addProperty(createPrimitive("PropertySByte", Byte.MAX_VALUE))
         .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE))
         .addProperty(createPrimitive("PropertyInt32", Integer.MAX_VALUE))
         .addProperty(createPrimitive("PropertyInt64", Long.MAX_VALUE))
-        .addProperty(createPrimitive("PropertyDecimal", 34))
+        .addProperty(createPrimitive("PropertyDecimal", BigDecimal.valueOf(34)))
         .addProperty(createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 0, 0, 0)))
         .addProperty(createPrimitive("PropertyDateTimeOffset", getDateTime(2012, 12, 3, 7, 16, 23)))
-        .addProperty(createPrimitive("PropertyDuration", 6)).addProperty(createPrimitive("PropertyGuid", GUID))
+        .addProperty(createPrimitive("PropertyDuration", BigDecimal.valueOf(6)))
+        .addProperty(createPrimitive("PropertyGuid", GUID))
         .addProperty(createPrimitive("PropertyTimeOfDay", getTime(2, 48, 21))));
 
-    entityCollection.getEntities().add(new Entity().addProperty(createPrimitive("PropertyString", "Second"))
-        .addProperty(createPrimitive("PropertyBoolean", true)).addProperty(createPrimitive("PropertyByte", 254))
-        .addProperty(createPrimitive("PropertySByte", 124)).addProperty(createPrimitive("PropertyInt16", 32764))
+    entityCollection.getEntities().add(new Entity()
+    	.addProperty(createPrimitive("PropertyString", "Second"))
+        .addProperty(createPrimitive("PropertyBoolean", true))
+        .addProperty(createPrimitive("PropertyByte", (short) 254))
+        .addProperty(createPrimitive("PropertySByte", (byte) 124))
+        .addProperty(createPrimitive("PropertyInt16", (short) 32764))
         .addProperty(createPrimitive("PropertyInt32", 2147483644))
         .addProperty(createPrimitive("PropertyInt64", 9223372036854775804L))
-        .addProperty(createPrimitive("PropertyDecimal", 34))
+        .addProperty(createPrimitive("PropertyDecimal", BigDecimal.valueOf(34)))
         .addProperty(createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 0, 0, 0)))
         .addProperty(createPrimitive("PropertyDateTimeOffset", getDateTime(2012, 12, 3, 7, 16, 23)))
-        .addProperty(createPrimitive("PropertyDuration", 6)).addProperty(createPrimitive("PropertyGuid", GUID))
+        .addProperty(createPrimitive("PropertyDuration", BigDecimal.valueOf(6)))
+        .addProperty(createPrimitive("PropertyGuid", GUID))
         .addProperty(createPrimitive("PropertyTimeOfDay", getTime(2, 48, 21))));
 
     return entityCollection;
@@ -773,16 +886,18 @@ public class DataCreator {
     EntityCollection entityCollection = new EntityCollection();
 
     Entity entity = new Entity();
-    entity.addProperty(createPrimitive("PropertyInt16", 1));
+    entity.addProperty(createPrimitive("PropertyInt16", (short) 1));
     entity.addProperty(createComplex("PropertyComp",
-        createComplex("PropertyComp", createPrimitive("PropertyInt16", 123),
+        createComplex("PropertyComp", 
+            createPrimitive("PropertyInt16", (short) 123),
             createPrimitive("PropertyString", "String 1"))));
     entityCollection.getEntities().add(entity);
 
     entity = new Entity();
-    entity.addProperty(createPrimitive("PropertyInt16", 2));
+    entity.addProperty(createPrimitive("PropertyInt16", (short) 2));
     entity.addProperty(createComplex("PropertyComp",
-        createComplex("PropertyComp", createPrimitive("PropertyInt16", 987),
+        createComplex("PropertyComp", 
+            createPrimitive("PropertyInt16", (short) 987),
             createPrimitive("PropertyString", "String 2"))));
     entityCollection.getEntities().add(entity);
 
@@ -792,26 +907,30 @@ public class DataCreator {
   private EntityCollection createESMedia() {
     EntityCollection entityCollection = new EntityCollection();
 
-    Entity entity = new Entity().addProperty(createPrimitive("PropertyInt16", 1))
-        .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("darkturquoise")));
+    Entity entity = new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", (short) 1))
+      .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("darkturquoise")));
     entity.setMediaContentType("image/svg+xml");
     entity.setMediaETag("W/\"1\"");
     entityCollection.getEntities().add(entity);
 
-    entity = new Entity().addProperty(createPrimitive("PropertyInt16", 2))
-        .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("royalblue")));
+    entity = new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", (short) 2))
+      .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("royalblue")));
     entity.setMediaContentType("image/svg+xml");
     entity.setMediaETag("W/\"2\"");
     entityCollection.getEntities().add(entity);
 
-    entity = new Entity().addProperty(createPrimitive("PropertyInt16", 3))
-        .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("crimson")));
+    entity = new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", (short) 3))
+      .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("crimson")));
     entity.setMediaContentType("image/svg+xml");
     entity.setMediaETag("W/\"3\"");
     entityCollection.getEntities().add(entity);
 
-    entity = new Entity().addProperty(createPrimitive("PropertyInt16", 4))
-        .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("black")));
+    entity = new Entity()
+    	.addProperty(createPrimitive("PropertyInt16", (short) 4))
+      .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("black")));
     entity.setMediaContentType("image/svg+xml");
     entity.setMediaETag("W/\"4\"");
     entityCollection.getEntities().add(entity);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de64c318/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
index fe06a1c..79313e6 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
@@ -173,15 +173,25 @@ public class DataProvider {
     for (final String keyName : entityType.getKeyPredicateNames()) {
       final FullQualifiedName typeName = entityType.getProperty(keyName).getType().getFullQualifiedName();
       Object newValue = null;
-
-      if (EdmPrimitiveTypeKind.Int16.getFullQualifiedName().equals(typeName)
-          || EdmPrimitiveTypeKind.Int32.getFullQualifiedName().equals(typeName)
-          || EdmPrimitiveTypeKind.Int64.getFullQualifiedName().equals(typeName)) {
+      
+      if (EdmPrimitiveTypeKind.Int16.getFullQualifiedName().equals(typeName)) {
+         newValue = Short.valueOf((short) 1);
+         
+         while(!isFree(newValue, keyName, entities)) {
+           newValue = (short) (((Short) newValue) + 1);
+         }
+      } else if (EdmPrimitiveTypeKind.Int32.getFullQualifiedName().equals(typeName)) {
+        newValue = Integer.valueOf((short) 1);
+        
+        while(!isFree(newValue, keyName, entities)) {
+          newValue = ((Integer) newValue) + 1;
+        }
+      } else if(EdmPrimitiveTypeKind.Int64.getFullQualifiedName().equals(typeName)) {
         // Integer keys
-        newValue = Integer.valueOf(1);
+        newValue = Long.valueOf(1);
 
         while (!isFree(newValue, keyName, entities)) {
-          newValue = ((Integer) newValue) + 1;
+          newValue = (long) (((Long) newValue) + 1L);
         }
       } else if (EdmPrimitiveTypeKind.String.getFullQualifiedName().equals(typeName)) {
         // String keys

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de64c318/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/FunctionData.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/FunctionData.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/FunctionData.java
index 517c7df..238dd8b 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/FunctionData.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/FunctionData.java
@@ -75,14 +75,14 @@ public class FunctionData {
   protected static Property primitiveComplexFunction(final String name, final List<UriParameter> parameters,
       final Map<String, EntityCollection> data) throws DataProviderException {
     if (name.equals("UFNRTInt16")) {
-      return DataCreator.createPrimitive(name, 12345);
+      return DataCreator.createPrimitive(name, (short) 12345);
     } else if (name.equals("UFCRTString")) {
       return DataCreator.createPrimitive(name, "UFCRTString string value");
     } else if (name.equals("UFCRTCollString")) {
       return data.get("ESCollAllPrim").getEntities().get(0).getProperty("CollPropertyString");
     } else if (name.equals("UFCRTCTTwoPrim")) {
       return DataCreator.createComplex(name,
-          DataCreator.createPrimitive("PropertyInt16", 16),
+          DataCreator.createPrimitive("PropertyInt16", (short) 16),
           DataCreator.createPrimitive("PropertyString", "UFCRTCTTwoPrim string value"));
     } else if (name.equals("UFCRTCTTwoPrimParam")) {
       try {
@@ -102,7 +102,7 @@ public class FunctionData {
       }
     } else if (name.equals("UFCRTCollCTTwoPrim")) {
       return DataCreator.createComplexCollection(name,
-          Arrays.asList(DataCreator.createPrimitive("PropertyInt16", 16),
+          Arrays.asList(DataCreator.createPrimitive("PropertyInt16", (short) 16),
               DataCreator.createPrimitive("PropertyString", "Test123")),
           Arrays.asList(DataCreator.createPrimitive("PropertyInt16", 17),
               DataCreator.createPrimitive("PropertyString", "Test456")),

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de64c318/lib/server-tecsvc/src/test/java/org/apache/olingo/server/tecsvc/data/DataProviderTest.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/test/java/org/apache/olingo/server/tecsvc/data/DataProviderTest.java b/lib/server-tecsvc/src/test/java/org/apache/olingo/server/tecsvc/data/DataProviderTest.java
index f3bfc4f..4300ade 100644
--- a/lib/server-tecsvc/src/test/java/org/apache/olingo/server/tecsvc/data/DataProviderTest.java
+++ b/lib/server-tecsvc/src/test/java/org/apache/olingo/server/tecsvc/data/DataProviderTest.java
@@ -148,7 +148,7 @@ public class DataProviderTest {
     Assert.assertEquals(2, linkedComplexValue.getValue().size());
     Property lcProp = linkedComplexValue.getValue().get(0);
     Assert.assertFalse(lcProp.isCollection());
-    Assert.assertEquals(123, lcProp.getValue());
+    Assert.assertEquals((short) 123, lcProp.getValue());
     //
     Assert.assertEquals(4, outSet.getEntities().get(1).getProperties().size());
     Assert.assertEquals(4, outSet.getEntities().get(2).getProperties().size());
@@ -162,7 +162,7 @@ public class DataProviderTest {
     dataProvider.delete(esMedia, entity);
     Assert.assertEquals(3, dataProvider.readAll(esMedia).getEntities().size());
     entity = dataProvider.create(esMedia);
-    Assert.assertEquals(3, entity.getProperty("PropertyInt16").getValue());
+    Assert.assertEquals((short) 3, entity.getProperty("PropertyInt16").getValue());
     dataProvider.setMedia(entity, new byte[] { 1, 2, 3, 4 }, "x/y");
     Assert.assertArrayEquals(new byte[] { 1, 2, 3, 4 }, dataProvider.readMedia(entity));
     Assert.assertEquals("x/y", entity.getMediaContentType());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/de64c318/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 3856339..0877df6 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
@@ -384,7 +384,8 @@ public class ODataJsonSerializerTest {
         + "\"CollPropertyBoolean\":[true,null,false],\"CollPropertyByte\":[50,null,249],"
         + "\"CollPropertySByte\":[-120,null,126],\"CollPropertyInt16\":[1000,null,30112],"
         + "\"CollPropertyInt32\":[23232323,null,10000001],\"CollPropertyInt64\":[929292929292,null,444444444444],"
-        + "\"CollPropertySingle\":[1790,null,3210],\"CollPropertyDouble\":[-17900,null,3210],\"CollPropertyDecimal\":"
+        + "\"CollPropertySingle\":[1790.0,null,3210.0],\"CollPropertyDouble\":[-17900.0,null,3210.0]," 
+        + "\"CollPropertyDecimal\":"
         + "[12,null,1234],\"CollPropertyBinary\":[\"q83v\",null,\"VGeJ\"],\"CollPropertyDate\":"
         + "[\"1958-12-03\",null,\"2013-06-25\"],\"CollPropertyDateTimeOffset\":[\"2015-08-12T03:08:34Z\",null,"
         + "\"1948-02-17T09:09:09Z\"],\"CollPropertyDuration\":[\"PT13S\",null,\"PT1H0S\"],\"CollPropertyGuid\":"