You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by sk...@apache.org on 2014/04/04 07:26:10 UTC

[06/51] [abbrv] [OLINGO-200] Introducing specialization for V3 and V4 domain objects

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntitySetTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntitySetTestITCase.java
index 0a1d503..446b41d 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntitySetTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntitySetTestITCase.java
@@ -18,9 +18,6 @@
  */
 package org.apache.olingo.client.core.it.v3;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
 import java.io.IOException;
 import java.net.URI;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetIteratorRequest;
@@ -28,13 +25,16 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.request.retrieve.ODataRawRequest;
 import org.apache.olingo.client.api.communication.response.ODataRawResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
 import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
 import org.apache.olingo.client.api.uri.CommonURIBuilder;
 import org.apache.olingo.client.core.uri.URIUtils;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
+import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
+import org.apache.olingo.commons.api.format.ODataPubFormat;
 import org.apache.olingo.commons.core.op.ResourceFactory;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 import org.junit.Test;
 
 /**
@@ -90,7 +90,8 @@ public class EntitySetTestITCase extends AbstractTestITCase {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot());
     uriBuilder.appendEntitySetSegment("Customer");
 
-    final ODataEntitySetRequest req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+    final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+            getEntitySetRequest(uriBuilder.build());
     req.setFormat(format);
 
     final ODataRetrieveResponse<ODataEntitySet> res = req.execute();
@@ -143,7 +144,7 @@ public class EntitySetTestITCase extends AbstractTestITCase {
     final ODataRawResponse res = req.execute();
     assertNotNull(res);
 
-    final ODataEntitySet entitySet = res.getBodyAs(ODataEntitySet.class);
+    final CommonODataEntitySet entitySet = res.getBodyAs(CommonODataEntitySet.class);
     assertNotNull(entitySet);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityUpdateTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityUpdateTestITCase.java
index fed9ba4..6ed898d 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityUpdateTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityUpdateTestITCase.java
@@ -18,23 +18,24 @@
  */
 package org.apache.olingo.client.core.it.v3;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
 import java.net.URI;
 import java.util.LinkedHashMap;
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.header.HeaderName;
 import org.apache.olingo.client.api.communication.header.ODataPreferences;
-import org.apache.olingo.client.api.communication.request.cud.v3.UpdateType;
 import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
+import org.apache.olingo.client.api.communication.request.cud.v3.UpdateType;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.format.ODataPubFormat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
 import org.junit.Test;
 
 /**
@@ -52,7 +53,7 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
     final URI uri = client.getURIBuilder(getServiceRoot()).
             appendEntitySetSegment("Product").appendKeySegment(-10).build();
     final String etag = getETag(uri);
-    final ODataEntity merge = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
+    final CommonODataEntity merge = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
     merge.setEditLink(uri);
     updateEntityDescription(format, merge, UpdateType.MERGE, etag);
   }
@@ -63,7 +64,7 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
     final URI uri = client.getURIBuilder(getServiceRoot()).
             appendEntitySetSegment("Product").appendKeySegment(-10).build();
     final String etag = getETag(uri);
-    final ODataEntity merge = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
+    final CommonODataEntity merge = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
     merge.setEditLink(uri);
     updateEntityDescription(format, merge, UpdateType.MERGE, etag);
   }
@@ -74,7 +75,7 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
     final URI uri = client.getURIBuilder(getServiceRoot()).
             appendEntitySetSegment("Product").appendKeySegment(-10).build();
     final String etag = getETag(uri);
-    final ODataEntity patch = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
+    final CommonODataEntity patch = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
     patch.setEditLink(uri);
     updateEntityDescription(format, patch, UpdateType.PATCH, etag);
   }
@@ -85,7 +86,7 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
     final URI uri = client.getURIBuilder(getServiceRoot()).
             appendEntitySetSegment("Product").appendKeySegment(-10).build();
     final String etag = getETag(uri);
-    final ODataEntity patch = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
+    final CommonODataEntity patch = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
     patch.setEditLink(uri);
     updateEntityDescription(format, patch, UpdateType.PATCH, etag);
   }
@@ -93,7 +94,7 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
   @Test
   public void replaceAsAtom() {
     final ODataPubFormat format = ODataPubFormat.ATOM;
-    final ODataEntity changes = read(format, client.getURIBuilder(getServiceRoot()).
+    final CommonODataEntity changes = read(format, client.getURIBuilder(getServiceRoot()).
             appendEntitySetSegment("Car").appendKeySegment(14).build());
     updateEntityDescription(format, changes, UpdateType.REPLACE);
   }
@@ -101,7 +102,7 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
   @Test
   public void replaceAsJSON() {
     final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final ODataEntity changes = read(format, client.getURIBuilder(getServiceRoot()).
+    final CommonODataEntity changes = read(format, client.getURIBuilder(getServiceRoot()).
             appendEntitySetSegment("Car").appendKeySegment(14).build());
     updateEntityDescription(format, changes, UpdateType.REPLACE);
   }
@@ -120,7 +121,7 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
     final URI uri = client.getURIBuilder(getServiceRoot()).
             appendEntitySetSegment("Customer").appendKeySegment(-10).build();
 
-    final ODataEntity patch =
+    final CommonODataEntity patch =
             client.getObjectFactory().newEntity("Microsoft.Test.OData.Services.AstoriaDefaultService.Customer");
     patch.setEditLink(uri);
 
@@ -137,10 +138,10 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
     customerInfoURI = client.getURIBuilder(getServiceRoot()).
             appendEntitySetSegment("Customer").appendKeySegment(-10).appendNavigationSegment("Info").build();
 
-    ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(customerInfoURI);
+    ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(customerInfoURI);
     req.setFormat(format);
 
-    ODataEntity newInfo = req.execute().getBody();
+    CommonODataEntity newInfo = req.execute().getBody();
 
     assertEquals(Integer.valueOf(12),
             newInfo.getProperty("CustomerInfoId").getPrimitiveValue().toCastValue(Integer.class));
@@ -178,16 +179,17 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
     final LinkedHashMap<String, Object> multiKey = new LinkedHashMap<String, Object>();
     multiKey.put("FromUsername", "1");
     multiKey.put("MessageId", -10);
-    final ODataEntity message = read(format, client.getURIBuilder(getServiceRoot()).
+    final CommonODataEntity message = read(format, client.getURIBuilder(getServiceRoot()).
             appendEntitySetSegment("Message").appendKeySegment(multiKey).build());
     message.getAssociationLinks().clear();
     message.getNavigationLinks().clear();
 
     final boolean before = message.getProperty("IsRead").getPrimitiveValue().toCastValue(Boolean.class);
     message.getProperties().remove(message.getProperty("IsRead"));
-    message.getProperties().add(client.getObjectFactory().newPrimitiveProperty("IsRead",
-            client.getObjectFactory().newPrimitiveValueBuilder().setValue(!before).
-            setType(EdmPrimitiveTypeKind.Boolean).build()));
+    getClient().getBinder().add(message,
+            client.getObjectFactory().newPrimitiveProperty("IsRead",
+                    client.getObjectFactory().newPrimitiveValueBuilder().setValue(!before).
+                    setType(EdmPrimitiveTypeKind.Boolean).build()));
 
     return client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.MERGE, message);
   }
@@ -224,7 +226,7 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
     final URI uri = client.getURIBuilder(getServiceRoot()).
             appendEntitySetSegment("Product").appendKeySegment(-10).build();
     String etag = getETag(uri);
-    final ODataEntity product = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
+    final CommonODataEntity product = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
     product.setEditLink(uri);
     updateEntityStringProperty("BaseConcurrency",
             client.getConfiguration().getDefaultPubFormat(), product, UpdateType.MERGE, etag);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/ErrorTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/ErrorTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/ErrorTestITCase.java
index ed8a776..04c41de 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/ErrorTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/ErrorTestITCase.java
@@ -18,11 +18,11 @@
  */
 package org.apache.olingo.client.core.it.v3;
 
-import static org.junit.Assert.fail;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
+import static org.junit.Assert.fail;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.net.URI;
@@ -32,16 +32,17 @@ import org.apache.olingo.client.api.CommonODataClient;
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
 import org.apache.olingo.client.api.http.HttpMethod;
 import org.apache.olingo.client.api.uri.CommonURIBuilder;
-import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.client.core.communication.request.AbstractODataBasicRequest;
 import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
+import org.apache.olingo.client.core.uri.URIUtils;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmFunctionImport;
+import org.apache.olingo.commons.api.format.ODataPubFormat;
 import org.junit.Test;
 
 /**
@@ -79,7 +80,7 @@ public class ErrorTestITCase extends AbstractTestITCase {
       }
 
       @Override
-      public ODataEntity getBody() {
+      public CommonODataEntity getBody() {
         return odataClient.getObjectFactory().newEntity("Invalid");
       }
     }
@@ -117,7 +118,7 @@ public class ErrorTestITCase extends AbstractTestITCase {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL);
     uriBuilder.appendEntitySetSegment("Customer(154)");
 
-    final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
     try {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterFactoryTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterFactoryTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterFactoryTestITCase.java
index 28c354d..de6808c 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterFactoryTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterFactoryTestITCase.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.core.it.v3;
 
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
 import org.apache.olingo.client.api.uri.CommonURIBuilder;
 import org.apache.olingo.client.api.uri.URIFilter;
 import org.apache.olingo.client.api.uri.v3.FilterArgFactory;
@@ -42,7 +42,7 @@ public class FilterFactoryTestITCase extends AbstractTestITCase {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment(entitySet).filter(filter);
 
-    final ODataEntitySet feed = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build()).
+    final CommonODataEntitySet feed = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build()).
             execute().getBody();
     assertNotNull(feed);
     assertEquals(expected, feed.getEntities().size());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterTestITCase.java
index cbcf046..44be0fe 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterTestITCase.java
@@ -21,7 +21,7 @@ package org.apache.olingo.client.core.it.v3;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertEquals;
 
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
 import org.apache.olingo.client.api.uri.CommonURIBuilder;
 import org.junit.Test;
 
@@ -30,7 +30,7 @@ public class FilterTestITCase extends AbstractTestITCase {
   private void filterQueryTest(final String entity, final String filter, final int expected) {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment(entity).filter(filter);
-    final ODataEntitySet entitySet = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build()).
+    final CommonODataEntitySet entitySet = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build()).
             execute().getBody();
     assertNotNull(entitySet);
     assertEquals(expected, entitySet.getEntities().size());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/KeyAsSegmentTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/KeyAsSegmentTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/KeyAsSegmentTestITCase.java
index dac96e6..4a9d05f 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/KeyAsSegmentTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/KeyAsSegmentTestITCase.java
@@ -21,13 +21,14 @@ package org.apache.olingo.client.core.it.v3;
 import org.apache.olingo.client.api.communication.request.cud.v3.UpdateType;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
 import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
+import org.apache.olingo.commons.api.format.ODataPubFormat;
+import org.junit.AfterClass;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 
-import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -42,7 +43,7 @@ public class KeyAsSegmentTestITCase extends AbstractTestITCase {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("Customer").appendKeySegment(-10);
 
-    final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
     final ODataRetrieveResponse<ODataEntity> res = req.execute();
@@ -67,10 +68,10 @@ public class KeyAsSegmentTestITCase extends AbstractTestITCase {
   public void createODataEntityAsAtom() {
     final ODataPubFormat format = ODataPubFormat.ATOM;
     final int id = 1;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
+    final CommonODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
 
     createEntity(testStaticServiceRootURL, format, original, "Customer");
-    final ODataEntity actual = compareEntities(testStaticServiceRootURL, format, original, id, null);
+    final CommonODataEntity actual = compareEntities(testStaticServiceRootURL, format, original, id, null);
 
     cleanAfterCreate(format, actual, false, testStaticServiceRootURL);
   }
@@ -79,10 +80,10 @@ public class KeyAsSegmentTestITCase extends AbstractTestITCase {
   public void createODataEntityAsJSON() {
     final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
     final int id = 2;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
+    final CommonODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
 
     createEntity(testStaticServiceRootURL, format, original, "Customer");
-    final ODataEntity actual = compareEntities(testStaticServiceRootURL, format, original, id, null);
+    final CommonODataEntity actual = compareEntities(testStaticServiceRootURL, format, original, id, null);
 
     cleanAfterCreate(format, actual, false, testStaticServiceRootURL);
   }
@@ -90,7 +91,7 @@ public class KeyAsSegmentTestITCase extends AbstractTestITCase {
   @Test
   public void replaceODataEntityAsAtom() {
     final ODataPubFormat format = ODataPubFormat.ATOM;
-    final ODataEntity changes = read(format, client.getURIBuilder(testStaticServiceRootURL).
+    final CommonODataEntity changes = read(format, client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("Car").appendKeySegment(14).build());
     updateEntityDescription(format, changes, UpdateType.REPLACE);
   }
@@ -98,7 +99,7 @@ public class KeyAsSegmentTestITCase extends AbstractTestITCase {
   @Test
   public void replaceODataEntityAsJSON() {
     final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final ODataEntity changes = read(format, client.getURIBuilder(testStaticServiceRootURL).
+    final CommonODataEntity changes = read(format, client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("Car").appendKeySegment(14).build());
     updateEntityDescription(format, changes, UpdateType.REPLACE);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/MediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/MediaEntityTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/MediaEntityTestITCase.java
index 3350204..03bdf00 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/MediaEntityTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/MediaEntityTestITCase.java
@@ -36,8 +36,8 @@ import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreat
 import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.communication.response.ODataStreamUpdateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataProperty;
 import org.apache.olingo.commons.api.format.ODataMediaFormat;
 import org.apache.olingo.commons.api.format.ODataPubFormat;
 import org.apache.olingo.client.api.uri.CommonURIBuilder;
@@ -164,12 +164,12 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
     final ODataMediaEntityCreateResponse createRes = streamManager.getResponse();
     assertEquals(201, createRes.getStatusCode());
 
-    final ODataEntity created = createRes.getBody();
+    final CommonODataEntity created = createRes.getBody();
     assertNotNull(created);
     assertEquals(2, created.getProperties().size());
 
     Integer id = null;
-    for (ODataProperty prop : created.getProperties()) {
+    for (CommonODataProperty prop : created.getProperties()) {
       if ("VIN".equals(prop.getName())) {
         id = prop.getPrimitiveValue().toCastValue(Integer.class);
       }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/NavigationLinkCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/NavigationLinkCreateTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/NavigationLinkCreateTestITCase.java
index 5cc8770..fcbbe80 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/NavigationLinkCreateTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/NavigationLinkCreateTestITCase.java
@@ -18,11 +18,6 @@
  */
 package org.apache.olingo.client.core.it.v3;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -38,25 +33,30 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.http.HttpClientException;
+import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.client.core.uri.URIUtils;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
+import org.apache.olingo.commons.api.domain.CommonODataProperty;
+import org.apache.olingo.commons.api.domain.ODataValue;
 import org.apache.olingo.commons.api.domain.ODataCollectionValue;
 import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
 import org.apache.olingo.commons.api.domain.ODataInlineEntity;
 import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
 import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
-import org.apache.olingo.client.api.http.HttpClientException;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
-import org.apache.olingo.client.core.uri.URIUtils;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.v3.ODataProperty;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-
-import org.junit.Test;
-
+import org.apache.olingo.commons.api.format.ODataPubFormat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 import org.junit.Ignore;
+import org.junit.Test;
 
 public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
 
@@ -66,7 +66,7 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
     final ODataPubFormat format = ODataPubFormat.ATOM;
     final String contentType = "application/atom+xml";
     final String prefer = "return-content";
-    final ODataEntity actual = createNavigation(format, 20, contentType, prefer);
+    final CommonODataEntity actual = createNavigation(format, 20, contentType, prefer);
     delete(format, actual, false, testStaticServiceRootURL);
   }
   // create navigation link with JSON full metadata
@@ -76,7 +76,7 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
     final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
     final String contentType = "application/json;odata=fullmetadata";
     final String prefer = "return-content";
-    final ODataEntity actual = createNavigation(format, 21, contentType, prefer);
+    final CommonODataEntity actual = createNavigation(format, 21, contentType, prefer);
     delete(format, actual, false, testStaticServiceRootURL);
   }
   // throws Null pointer exception when the format is JSON No metadata
@@ -86,7 +86,7 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
     final ODataPubFormat format = ODataPubFormat.JSON_NO_METADATA;
     final String contentType = "application/json;odata=nometadata";
     final String prefer = "return-content";
-    final ODataEntity actual = createNavigation(format, 22, contentType, prefer);
+    final CommonODataEntity actual = createNavigation(format, 22, contentType, prefer);
     delete(format, actual, false, testStaticServiceRootURL);
   }
   // test with JSON accept and atom content type
@@ -97,7 +97,7 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
     final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
     final String contentType = "application/atom+xml";
     final String prefer = "return-content";
-    final ODataEntity actual = createNavigation(format, 23, contentType, prefer);
+    final CommonODataEntity actual = createNavigation(format, 23, contentType, prefer);
     delete(format, actual, false, testStaticServiceRootURL);
   }
   // test with JSON full metadata in format and json no metadata in content type
@@ -107,7 +107,7 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
     final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
     final String contentType = "application/json;odata=nometadata";
     final String prefer = "return-content";
-    final ODataEntity actual = createNavigation(format, 24, contentType, prefer);
+    final CommonODataEntity actual = createNavigation(format, 24, contentType, prefer);
     delete(format, actual, false, testStaticServiceRootURL);
   }
   // test with JSON no metadata format and json no metadata in content type
@@ -117,7 +117,7 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
     final ODataPubFormat format = ODataPubFormat.JSON_NO_METADATA;
     final String contentType = "application/json;odata=fullmetadata";
     final String prefer = "return-content";
-    final ODataEntity actual = createNavigation(format, 25, contentType, prefer);
+    final CommonODataEntity actual = createNavigation(format, 25, contentType, prefer);
     delete(format, actual, false, testStaticServiceRootURL);
   }
   // create collection navigation link with ATOM
@@ -127,7 +127,7 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
     final ODataPubFormat format = ODataPubFormat.ATOM;
     final String contentType = "application/atom+xml";
     final String prefer = "return-content";
-    final ODataEntity actual = createCollectionNavigation(format, 55, contentType, prefer);
+    final CommonODataEntity actual = createCollectionNavigation(format, 55, contentType, prefer);
     delete(format, actual, false, testStaticServiceRootURL);
   }
   // create collection navigation link with JSON
@@ -137,27 +137,27 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
     final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
     final String contentType = "application/json;odata=fullmetadata";
     final String prefer = "return-content";
-    final ODataEntity actual = createCollectionNavigation(format, 77, contentType, prefer);
+    final CommonODataEntity actual = createCollectionNavigation(format, 77, contentType, prefer);
     delete(format, actual, false, testStaticServiceRootURL);
   }
 
   // create a navigation link
-  public ODataEntity createNavigation(final ODataPubFormat format, final int id, final String contenttype,
+  public CommonODataEntity createNavigation(final ODataPubFormat format, final int id, final String contenttype,
           final String prefer) {
     final String name = "Customer Navigation test";
 
-    final ODataEntity original = getNewCustomer(id, name, false);
+    final CommonODataEntity original = getNewCustomer(id, name, false);
     original.addLink(client.getObjectFactory().newEntityNavigationLink(
             "Info", URI.create(testStaticServiceRootURL + "/CustomerInfo(11)")));
-    final ODataEntity created = createNav(testStaticServiceRootURL, format, original, "Customer", contenttype,
+    final CommonODataEntity created = createNav(testStaticServiceRootURL, format, original, "Customer", contenttype,
             prefer);
 
-    final ODataEntity actual = validateEntities(testStaticServiceRootURL, format, created, id, null, "Customer");
+    final CommonODataEntity actual = validateEntities(testStaticServiceRootURL, format, created, id, null, "Customer");
 
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL);
     uriBuilder.appendEntitySetSegment("Customer").appendKeySegment(id).appendEntitySetSegment("Info");
 
-    final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
     req.setContentType(contenttype);
     req.setPrefer(prefer);
@@ -175,7 +175,7 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
   }
 
   // create a navigation link
-  public ODataEntity createNav(final String url, final ODataPubFormat format, final ODataEntity original,
+  public CommonODataEntity createNav(final String url, final ODataPubFormat format, final CommonODataEntity original,
           final String entitySetName, final String contentType, final String prefer) {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(url);
     uriBuilder.appendEntitySetSegment(entitySetName);
@@ -189,32 +189,34 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
 
     assertEquals("Created", createRes.getStatusMessage());
 
-    final ODataEntity created = createRes.getBody();
+    final CommonODataEntity created = createRes.getBody();
     assertNotNull(created);
     return created;
   }
   // create collection navigation link
 
-  public ODataEntity createCollectionNavigation(final ODataPubFormat format, final int id,
+  public CommonODataEntity createCollectionNavigation(final ODataPubFormat format, final int id,
           final String contentType, final String prefer) throws EdmPrimitiveTypeException {
     {
       final String name = "Collection Navigation Key Customer";
-      final ODataEntity original = getNewCustomer(id, name, false);
+      final CommonODataEntity original = getNewCustomer(id, name, false);
 
       final Set<Integer> navigationKeys = new HashSet<Integer>();
       navigationKeys.add(-118);
       navigationKeys.add(-119);
 
       for (Integer key : navigationKeys) {
-        final ODataEntity orderEntity =
+        final CommonODataEntity orderEntity =
                 client.getObjectFactory().newEntity("Microsoft.Test.OData.Services.AstoriaDefaultService.Order");
 
-        orderEntity.getProperties().add(client.getObjectFactory().newPrimitiveProperty("OrderId",
-                client.getObjectFactory().newPrimitiveValueBuilder().setValue(key).
-                setType(EdmPrimitiveTypeKind.Int32).build()));
-        orderEntity.getProperties().add(client.getObjectFactory().newPrimitiveProperty("CustomerId",
-                client.getObjectFactory().newPrimitiveValueBuilder().setValue(id).
-                setType(EdmPrimitiveTypeKind.Int32).build()));
+        getClient().getBinder().add(orderEntity,
+                client.getObjectFactory().newPrimitiveProperty("OrderId",
+                        client.getObjectFactory().newPrimitiveValueBuilder().setValue(key).
+                        setType(EdmPrimitiveTypeKind.Int32).build()));
+        getClient().getBinder().add(orderEntity,
+                client.getObjectFactory().newPrimitiveProperty("CustomerId",
+                        client.getObjectFactory().newPrimitiveValueBuilder().setValue(id).
+                        setType(EdmPrimitiveTypeKind.Int32).build()));
 
         final ODataEntityCreateRequest createReq = client.getCUDRequestFactory().getEntityCreateRequest(
                 client.getURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Order").build(),
@@ -225,26 +227,27 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
                 "Orders",
                 createReq.execute().getBody().getEditLink()));
       }
-      final ODataEntity createdEntity = createNav(testStaticServiceRootURL, format, original, "Customer",
+      final CommonODataEntity createdEntity = createNav(testStaticServiceRootURL, format, original, "Customer",
               contentType, prefer);
-      final ODataEntity actualEntity =
+      final CommonODataEntity actualEntity =
               validateEntities(testStaticServiceRootURL, format, createdEntity, id, null, "Customer");
 
       final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL);
       uriBuilder.appendEntitySetSegment("Customer").appendKeySegment(id).appendEntitySetSegment("Orders");
 
-      final ODataEntitySetRequest req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+      final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+              getEntitySetRequest(uriBuilder.build());
       req.setFormat(format);
 
       final ODataRetrieveResponse<ODataEntitySet> res = req.execute();
       assertEquals(200, res.getStatusCode());
 
-      final ODataEntitySet entitySet = res.getBody();
+      final CommonODataEntitySet entitySet = res.getBody();
       assertNotNull(entitySet);
 
       assertEquals(2, entitySet.getCount());
 
-      for (ODataEntity entity : entitySet.getEntities()) {
+      for (CommonODataEntity entity : entitySet.getEntities()) {
         final Integer key = entity.getProperty("OrderId").getPrimitiveValue().toCastValue(Integer.class);
         final Integer customerId = entity.getProperty("CustomerId").getPrimitiveValue().toCastValue(Integer.class);
         assertTrue(navigationKeys.contains(key));
@@ -262,22 +265,24 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
   }
   // get a Customer entity to be created
 
-  public ODataEntity getNewCustomer(
+  public CommonODataEntity getNewCustomer(
           final int id, final String name, final boolean withInlineInfo) {
 
-    final ODataEntity entity =
+    final CommonODataEntity entity =
             client.getObjectFactory().newEntity("Microsoft.Test.OData.Services.AstoriaDefaultService.Customer");
 
     // add name attribute
-    entity.getProperties().add(client.getObjectFactory().newPrimitiveProperty("Name",
-            client.getObjectFactory().newPrimitiveValueBuilder().setText(name).
-            setType(EdmPrimitiveTypeKind.String).build()));
+    getClient().getBinder().add(entity,
+            client.getObjectFactory().newPrimitiveProperty("Name",
+                    client.getObjectFactory().newPrimitiveValueBuilder().setText(name).
+                    setType(EdmPrimitiveTypeKind.String).build()));
 
     // add key attribute
     if (id != 0) {
-      entity.getProperties().add(client.getObjectFactory().newPrimitiveProperty("CustomerId",
-              client.getObjectFactory().newPrimitiveValueBuilder().setText(String.valueOf(id)).
-              setType(EdmPrimitiveTypeKind.Int32).build()));
+      getClient().getBinder().add(entity,
+              client.getObjectFactory().newPrimitiveProperty("CustomerId",
+                      client.getObjectFactory().newPrimitiveValueBuilder().setText(String.valueOf(id)).
+                      setType(EdmPrimitiveTypeKind.Int32).build()));
     }
     final ODataCollectionValue backupContactInfoValue = getClient().getObjectFactory().newCollectionValue(
             "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)");
@@ -319,8 +324,8 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
     contactDetails.add(client.getObjectFactory().newComplexProperty("HomePhone", homePhone));
 
     backupContactInfoValue.add(contactDetails);
-    entity.getProperties().add(client.getObjectFactory().newCollectionProperty("BackupContactInfo",
-            backupContactInfoValue));
+    getClient().getBinder().add(entity,
+            client.getObjectFactory().newCollectionProperty("BackupContactInfo", backupContactInfoValue));
     if (withInlineInfo) {
       final ODataInlineEntity inlineInfo = client.getObjectFactory().newInlineEntity("Info", URI.create(
               "Customer(" + id
@@ -333,7 +338,7 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
   }
   //delete an entity and associated links after creation
 
-  public void delete(final ODataPubFormat format, final ODataEntity created, final boolean includeInline,
+  public void delete(final ODataPubFormat format, final CommonODataEntity created, final boolean includeInline,
           final String baseUri) {
     final Set<URI> toBeDeleted = new HashSet<URI>();
     toBeDeleted.add(created.getEditLink());
@@ -341,15 +346,15 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
     if (includeInline) {
       for (ODataLink link : created.getNavigationLinks()) {
         if (link instanceof ODataInlineEntity) {
-          final ODataEntity inline = ((ODataInlineEntity) link).getEntity();
+          final CommonODataEntity inline = ((ODataInlineEntity) link).getEntity();
           if (inline.getEditLink() != null) {
             toBeDeleted.add(URIUtils.getURI(baseUri, inline.getEditLink().toASCIIString()));
           }
         }
 
         if (link instanceof ODataInlineEntitySet) {
-          final ODataEntitySet inline = ((ODataInlineEntitySet) link).getEntitySet();
-          for (ODataEntity entity : inline.getEntities()) {
+          final CommonODataEntitySet inline = ((ODataInlineEntitySet) link).getEntitySet();
+          for (CommonODataEntity entity : inline.getEntities()) {
             if (entity.getEditLink() != null) {
               toBeDeleted.add(URIUtils.getURI(baseUri, entity.getEditLink().toASCIIString()));
             }
@@ -371,21 +376,21 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
   }
   // add Information property
 
-  public ODataEntity getInfo(final int id, final String info) {
-    final ODataEntity entity =
+  public CommonODataEntity getInfo(final int id, final String info) {
+    final CommonODataEntity entity =
             client.getObjectFactory().newEntity("Microsoft.Test.OData.Services.AstoriaDefaultService.CustomerInfo");
     entity.setMediaEntity(true);
 
-    entity.getProperties().add(client.getObjectFactory().newPrimitiveProperty("Information",
+    getClient().getBinder().add(entity, client.getObjectFactory().newPrimitiveProperty("Information",
             client.getObjectFactory().newPrimitiveValueBuilder().setText(info).
             setType(EdmPrimitiveTypeKind.String).build()));
     return entity;
   }
   // validate newly created entities
 
-  public ODataEntity validateEntities(final String serviceRootURL,
+  public CommonODataEntity validateEntities(final String serviceRootURL,
           final ODataPubFormat format,
-          final ODataEntity original,
+          final CommonODataEntity original,
           final int actualObjectId,
           final Collection<String> expands, final String entitySetName) {
 
@@ -397,7 +402,7 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
         uriBuilder.expand(expand);
       }
     }
-    final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
     final ODataRetrieveResponse<ODataEntity> res = req.execute();
@@ -438,10 +443,10 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
       assertNotNull(foundActual);
 
       if (foundOriginal instanceof ODataInlineEntity && foundActual instanceof ODataInlineEntity) {
-        final ODataEntity originalInline = ((ODataInlineEntity) foundOriginal).getEntity();
+        final CommonODataEntity originalInline = ((ODataInlineEntity) foundOriginal).getEntity();
         assertNotNull(originalInline);
 
-        final ODataEntity actualInline = ((ODataInlineEntity) foundActual).getEntity();
+        final CommonODataEntity actualInline = ((ODataInlineEntity) foundActual).getEntity();
         assertNotNull(actualInline);
 
         checkProperties(originalInline.getProperties(), actualInline.getProperties());
@@ -451,22 +456,24 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
   // compares properties of the newly created entity with the properties that were originally provided
 
   @Override
-  public void checkProperties(final Collection<ODataProperty> original, final Collection<ODataProperty> actual) {
+  public void checkProperties(final Collection<? extends CommonODataProperty> original,
+          final Collection<? extends CommonODataProperty> actual) {
+
     assertTrue(original.size() <= actual.size());
 
-    final Map<String, ODataProperty> actualProperties = new HashMap<String, ODataProperty>(actual.size());
+    final Map<String, CommonODataProperty> actualProperties = new HashMap<String, CommonODataProperty>(actual.size());
 
-    for (ODataProperty prop : actual) {
+    for (CommonODataProperty prop : actual) {
       assertFalse(actualProperties.containsKey(prop.getName()));
       actualProperties.put(prop.getName(), prop);
     }
 
     assertTrue(actual.size() <= actualProperties.size());
 
-    for (ODataProperty prop : original) {
+    for (CommonODataProperty prop : original) {
       assertNotNull(prop);
       if (actualProperties.containsKey(prop.getName())) {
-        final ODataProperty actualProp = actualProperties.get(prop.getName());
+        final CommonODataProperty actualProp = actualProperties.get(prop.getName());
         assertNotNull(actualProp);
 
         if (prop.getValue() != null && actualProp.getValue() != null) {
@@ -488,13 +495,13 @@ public class NavigationLinkCreateTestITCase extends AbstractTestITCase {
             original.getClass().getSimpleName(), actual.getClass().getSimpleName());
 
     if (original.isComplex()) {
-      final List<ODataProperty> originalPropertyValue = new ArrayList<ODataProperty>();
-      for (ODataProperty prop : original.asComplex()) {
+      final List<CommonODataProperty> originalPropertyValue = new ArrayList<CommonODataProperty>();
+      for (CommonODataProperty prop : original.asComplex()) {
         originalPropertyValue.add(prop);
       }
 
-      final List<ODataProperty> actualPropertyValue = new ArrayList<ODataProperty>();
-      for (ODataProperty prop : (ODataComplexValue) actual) {
+      final List<CommonODataProperty> actualPropertyValue = new ArrayList<CommonODataProperty>();
+      for (CommonODataProperty prop : (ODataComplexValue) actual) {
         actualPropertyValue.add(prop);
       }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/OpenTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/OpenTypeTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/OpenTypeTestITCase.java
index d00bf8b..f576a03 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/OpenTypeTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/OpenTypeTestITCase.java
@@ -29,7 +29,7 @@ import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateR
 import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
 import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
 import org.apache.olingo.commons.api.format.ODataPubFormat;
 import org.apache.olingo.client.api.uri.CommonURIBuilder;
 import org.apache.olingo.commons.api.edm.Edm;
@@ -61,14 +61,14 @@ public class OpenTypeTestITCase extends AbstractTestITCase {
 //        assertTrue(metadata.getEntityType(new FullQualifiedName(schema.getNamespace(), "RowIndex")).isOpenType());
   }
 
-  private ODataEntity readRow(final ODataPubFormat format, final String uuid) {
+  private CommonODataEntity readRow(final ODataPubFormat format, final String uuid) {
     final CommonURIBuilder<?> builder = client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("Row").appendKeySegment(UUID.fromString(uuid));
     return read(format, builder.build());
   }
 
   private void read(final ODataPubFormat format) {
-    ODataEntity row = readRow(format, "71f7d0dc-ede4-45eb-b421-555a2aa1e58f");
+    CommonODataEntity row = readRow(format, "71f7d0dc-ede4-45eb-b421-555a2aa1e58f");
     assertEquals(EdmPrimitiveTypeKind.Double, row.getProperty("Double").getPrimitiveValue().getTypeKind());
     assertEquals(EdmPrimitiveTypeKind.Guid, row.getProperty("Id").getPrimitiveValue().getTypeKind());
 
@@ -91,60 +91,74 @@ public class OpenTypeTestITCase extends AbstractTestITCase {
   private void cud(final ODataPubFormat format) {
     final UUID guid = UUID.randomUUID();
 
-    ODataEntity row = client.getObjectFactory().newEntity("Microsoft.Test.OData.Services.OpenTypesService.Row");
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("Id",
-            client.getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.Guid).setValue(guid).
-            build()));
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aString",
-            client.getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.String).setValue("string").
-            build()));
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aBoolean",
-            client.getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.Boolean).setValue(true).
-            build()));
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aLong",
-            client.getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.Int64).setValue(15L).
-            build()));
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aDouble",
-            client.getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.Double).setValue(1.5D).
-            build()));
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aByte",
-            client.getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.SByte).setValue(Byte.MAX_VALUE).
-            build()));
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aDate",
-            client.getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.DateTime).setValue(new Date()).
-            build()));
+    CommonODataEntity row = client.getObjectFactory().newEntity("Microsoft.Test.OData.Services.OpenTypesService.Row");
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("Id",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.Guid).setValue(guid).
+                    build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aString",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.String).setValue("string").
+                    build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aBoolean",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.Boolean).setValue(true).
+                    build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aLong",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.Int64).setValue(15L).
+                    build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aDouble",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.Double).setValue(1.5D).
+                    build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aByte",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.SByte).setValue(Byte.MAX_VALUE).
+                    build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aDate",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.DateTime).setValue(new Date()).
+                    build()));
 
     final Point point = new Point(Geospatial.Dimension.GEOGRAPHY, null);
     point.setX(1.2);
     point.setY(2.1);
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aPoint",
-            client.getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.GeographyPoint).
-            setValue(point).build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aPoint",
+                    client.getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.GeographyPoint).
+                    setValue(point).build()));
     final List<Point> points = new ArrayList<Point>();
     points.add(point);
     points.add(point);
     final MultiPoint multipoint = new MultiPoint(Geospatial.Dimension.GEOMETRY, null, points);
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aMultiPoint",
-            client.getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.GeometryMultiPoint).
-            setValue(multipoint).build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aMultiPoint",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.GeometryMultiPoint).
+                    setValue(multipoint).build()));
     final LineString lineString = new LineString(Geospatial.Dimension.GEOMETRY, null, points);
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aLineString",
-            client.getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.GeometryLineString).
-            setValue(lineString).build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aLineString",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.GeometryLineString).
+                    setValue(lineString).build()));
     final List<LineString> lineStrings = new ArrayList<LineString>();
     lineStrings.add(lineString);
     lineStrings.add(lineString);
     final MultiLineString multiLineString = new MultiLineString(Geospatial.Dimension.GEOGRAPHY, null, lineStrings);
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aMultiLineString",
-            client.getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.GeometryMultiLineString).
-            setValue(multiLineString).build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aMultiLineString",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.GeometryMultiLineString).
+                    setValue(multiLineString).build()));
     final Point otherPoint = new Point(Geospatial.Dimension.GEOGRAPHY, null);
     otherPoint.setX(3.4);
     otherPoint.setY(4.3);
@@ -152,25 +166,31 @@ public class OpenTypeTestITCase extends AbstractTestITCase {
     points.add(otherPoint);
     points.add(point);
     final Polygon polygon = new Polygon(Geospatial.Dimension.GEOGRAPHY, null, points, points);
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aPolygon",
-            client.getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.GeographyPolygon).
-            setValue(polygon).build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aPolygon",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.GeographyPolygon).
+                    setValue(polygon).build()));
     final List<Polygon> polygons = new ArrayList<Polygon>();
     polygons.add(polygon);
     polygons.add(polygon);
     final MultiPolygon multiPolygon = new MultiPolygon(Geospatial.Dimension.GEOGRAPHY, null, polygons);
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aMultiPolygon",
-            client.getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.GeographyMultiPolygon).
-            setValue(multiPolygon).build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aMultiPolygon",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.GeographyMultiPolygon).
+                    setValue(multiPolygon).build()));
     final List<Geospatial> geospatials = new ArrayList<Geospatial>();
     geospatials.add(otherPoint);
     geospatials.add(polygon);
     geospatials.add(multiLineString);
     geospatials.add(multiPolygon);
     final GeospatialCollection geoColl = new GeospatialCollection(Geospatial.Dimension.GEOGRAPHY, null, geospatials);
-    row.getProperties().add(client.getObjectFactory().newPrimitiveProperty("aCollection",
-            client.getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.GeographyCollection).
-            setValue(geoColl).build()));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newPrimitiveProperty("aCollection",
+                    client.getObjectFactory().newPrimitiveValueBuilder().
+                    setType(EdmPrimitiveTypeKind.GeographyCollection).
+                    setValue(geoColl).build()));
 
     final ODataComplexValue contactDetails = client.getObjectFactory().newComplexValue(
             "Microsoft.Test.OData.Services.OpenTypesService.ContactDetails");
@@ -210,7 +230,8 @@ public class OpenTypeTestITCase extends AbstractTestITCase {
     contactDetails.add(client.getObjectFactory().newPrimitiveProperty("Long",
             client.getObjectFactory().newPrimitiveValueBuilder().
             setType(EdmPrimitiveTypeKind.Int64).setValue(Long.MAX_VALUE).build()));
-    row.getProperties().add(client.getObjectFactory().newComplexProperty("aContact", contactDetails));
+    getClient().getBinder().add(row,
+            client.getObjectFactory().newComplexProperty("aContact", contactDetails));
 
     final ODataEntityCreateRequest createReq = client.getCUDRequestFactory().
             getEntityCreateRequest(client.getURIBuilder(testStaticServiceRootURL).

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PrimitiveKeysTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PrimitiveKeysTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PrimitiveKeysTestITCase.java
index c6763e9..56db6fb 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PrimitiveKeysTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PrimitiveKeysTestITCase.java
@@ -25,21 +25,23 @@ import java.math.BigDecimal;
 import java.util.UUID;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
 import org.apache.olingo.commons.api.format.ODataPubFormat;
+
 import org.junit.Test;
 
 public class PrimitiveKeysTestITCase extends AbstractTestITCase {
 
   private void readEntity(final String entityType, final Object key, final ODataPubFormat format) {
-    final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(
+    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(
             client.getURIBuilder(testStaticServiceRootURL).appendEntitySetSegment(entityType).
             appendKeySegment(key).
             build());
     req.setFormat(format);
     final ODataRetrieveResponse<ODataEntity> res = req.execute();
     assertEquals(200, res.getStatusCode());
-    final ODataEntity entity = res.getBody();
+    final CommonODataEntity entity = res.getBody();
     assertNotNull(entity);
     assertNotNull(entity.getProperty("Id"));
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyRetrieveTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyRetrieveTestITCase.java
index 314e934..2e495dc 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyRetrieveTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyRetrieveTestITCase.java
@@ -18,25 +18,26 @@
  */
 package org.apache.olingo.client.core.it.v3;
 
-import static org.junit.Assert.fail;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
 import java.util.List;
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
 import org.apache.olingo.commons.api.domain.ODataCollectionValue;
 import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
 import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.v3.ODataProperty;
 import org.apache.olingo.commons.api.format.ODataFormat;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import org.junit.Test;
 
 public class PropertyRetrieveTestITCase extends AbstractTestITCase {
@@ -44,7 +45,8 @@ public class PropertyRetrieveTestITCase extends AbstractTestITCase {
   private void retreivePropertyTest(final ODataFormat format, String entitySegment, String structuralSegment) {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment(entitySegment).appendPropertySegment(structuralSegment);
-    final ODataPropertyRequest req = client.getRetrieveRequestFactory().getPropertyRequest(uriBuilder.build());
+    final ODataPropertyRequest<ODataProperty> req = client.getRetrieveRequestFactory().
+            getPropertyRequest(uriBuilder.build());
     req.setFormat(format);
     try {
       final ODataProperty property = req.execute().getBody();
@@ -210,13 +212,14 @@ public class PropertyRetrieveTestITCase extends AbstractTestITCase {
   public void navigationMediaLink() {
     CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendNavigationSegment("Product").appendKeySegment(-7).appendLinksSegment("Photos");
-    ODataEntitySetRequest req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+    ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+            getEntitySetRequest(uriBuilder.build());
     req.setAccept("application/json");
     ODataRetrieveResponse<ODataEntitySet> res = req.execute();
     assertEquals(200, res.getStatusCode());
-    ODataEntitySet entitySet = res.getBody();
+    CommonODataEntitySet entitySet = res.getBody();
     assertNotNull(entitySet);
-    List<ODataEntity> entity = entitySet.getEntities();
+    List<? extends CommonODataEntity> entity = entitySet.getEntities();
     assertNotNull(entity);
     assertEquals(entity.size(), 2);
     assertEquals(testStaticServiceRootURL + "/ProductPhoto(PhotoId=-3,ProductId=-3)",
@@ -233,14 +236,15 @@ public class PropertyRetrieveTestITCase extends AbstractTestITCase {
   public void navigationMediaLinkInvalidQuery() {
     CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendNavigationSegment("Product").appendKeySegment(-7).appendLinksSegment("Photo");
-    ODataEntitySetRequest req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+    ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+            getEntitySetRequest(uriBuilder.build());
     req.setAccept("application/json");
     try {
       ODataRetrieveResponse<ODataEntitySet> res = req.execute();
       assertEquals(200, res.getStatusCode());
-      ODataEntitySet entitySet = res.getBody();
+      CommonODataEntitySet entitySet = res.getBody();
       assertNotNull(entitySet);
-      List<ODataEntity> entity = entitySet.getEntities();
+      List<? extends CommonODataEntity> entity = entitySet.getEntities();
       assertNotNull(entity);
       assertEquals(entity.size(), 2);
       assertEquals(testStaticServiceRootURL + "/ProductPhoto(PhotoId=-3,ProductId=-3)", entity.get(0).
@@ -256,7 +260,8 @@ public class PropertyRetrieveTestITCase extends AbstractTestITCase {
   public void navigationMediaLinkInvalidFormat() {
     CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendNavigationSegment("Product").appendKeySegment(-7).appendLinksSegment("Photos");
-    ODataEntitySetRequest req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+    ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+            getEntitySetRequest(uriBuilder.build());
     req.setAccept("application/atom+xml");
     try {
       ODataRetrieveResponse<ODataEntitySet> res = req.execute();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyTestITCase.java
index ddcd75f..9d10d24 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyTestITCase.java
@@ -18,10 +18,6 @@
  */
 package org.apache.olingo.client.core.it.v3;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertTrue;
-
 import java.io.IOException;
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.request.cud.ODataPropertyUpdateRequest;
@@ -35,15 +31,19 @@ import org.apache.olingo.client.api.communication.response.ODataPropertyUpdateRe
 import org.apache.olingo.client.api.communication.response.ODataRawResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.communication.response.ODataValueUpdateResponse;
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.commons.api.domain.CommonODataProperty;
 import org.apache.olingo.commons.api.domain.ODataCollectionValue;
 import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.v3.ODataProperty;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.format.ODataValueFormat;
-import org.apache.olingo.client.api.http.HttpMethod;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 import org.junit.Test;
 
 /**
@@ -206,7 +206,8 @@ public class PropertyTestITCase extends AbstractTestITCase {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).
             appendEntitySetSegment("Customer").appendKeySegment(-9).appendPropertySegment("PrimaryContactInfo");
 
-    ODataPropertyRequest retrieveReq = client.getRetrieveRequestFactory().getPropertyRequest(uriBuilder.build());
+    ODataPropertyRequest<ODataProperty> retrieveReq = client.getRetrieveRequestFactory().
+            getPropertyRequest(uriBuilder.build());
     retrieveReq.setFormat(format);
 
     ODataRetrieveResponse<ODataProperty> retrieveRes = retrieveReq.execute();
@@ -253,7 +254,8 @@ public class PropertyTestITCase extends AbstractTestITCase {
     uriBuilder.appendEntitySetSegment("Customer").appendKeySegment(-9).
             appendPropertySegment("PrimaryContactInfo").appendPropertySegment("AlternativeNames");
 
-    ODataPropertyRequest retrieveReq = client.getRetrieveRequestFactory().getPropertyRequest(uriBuilder.build());
+    ODataPropertyRequest<ODataProperty> retrieveReq = client.getRetrieveRequestFactory().
+            getPropertyRequest(uriBuilder.build());
     retrieveReq.setFormat(format);
 
     ODataRetrieveResponse<ODataProperty> retrieveRes = retrieveReq.execute();
@@ -301,13 +303,14 @@ public class PropertyTestITCase extends AbstractTestITCase {
             appendPropertySegment("PrimaryContactInfo").
             appendPropertySegment("HomePhone").appendPropertySegment("PhoneNumber");
 
-    ODataPropertyRequest retrieveReq = client.getRetrieveRequestFactory().getPropertyRequest(uriBuilder.build());
+    ODataPropertyRequest<ODataProperty> retrieveReq = client.getRetrieveRequestFactory().
+            getPropertyRequest(uriBuilder.build());
     retrieveReq.setFormat(format);
 
     ODataRetrieveResponse<ODataProperty> retrieveRes = retrieveReq.execute();
     assertEquals(200, retrieveRes.getStatusCode());
 
-    ODataProperty phoneNumber = retrieveRes.getBody();
+    CommonODataProperty phoneNumber = retrieveRes.getBody();
 
     final String oldMsg = phoneNumber.getPrimitiveValue().toCastValue(String.class);
     final String newMsg = "new item " + System.currentTimeMillis();
@@ -349,7 +352,7 @@ public class PropertyTestITCase extends AbstractTestITCase {
     final ODataRawResponse res = req.execute();
     assertNotNull(res);
 
-    final ODataProperty property = res.getBodyAs(ODataProperty.class);
+    final CommonODataProperty property = res.getBodyAs(CommonODataProperty.class);
     assertNotNull(property);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyValueTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyValueTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyValueTestITCase.java
index 3660cad..02a964d 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyValueTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/PropertyValueTestITCase.java
@@ -18,16 +18,16 @@
  */
 package org.apache.olingo.client.core.it.v3;
 
-import static org.junit.Assert.*;
 import java.io.IOException;
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.client.api.uri.CommonURIBuilder;
 import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
 import org.apache.olingo.commons.api.format.ODataValueFormat;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import static org.junit.Assert.*;
 import org.junit.Test;
 
 public class PropertyValueTestITCase extends AbstractTestITCase {
@@ -72,7 +72,7 @@ public class PropertyValueTestITCase extends AbstractTestITCase {
   public void retrieveDatePropertyValueTest() {
     CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("Product").appendKeySegment(-7).appendPropertySegment(
-            "NestedComplexConcurrency/ModifiedDate").appendValueSegment();
+                    "NestedComplexConcurrency/ModifiedDate").appendValueSegment();
     final ODataValueRequest req = client.getRetrieveRequestFactory().getValueRequest(uriBuilder.build());
     req.setFormat(ODataValueFormat.TEXT);
     final ODataValue value = req.execute().getBody();
@@ -96,7 +96,7 @@ public class PropertyValueTestITCase extends AbstractTestITCase {
   public void retrieveBinaryPropertyValueTest() throws IOException {
     CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendNavigationSegment("ProductPhoto(PhotoId=-3,ProductId=-3)").appendPropertySegment("Photo");
-    ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setAccept("application/json");
     ODataRetrieveResponse<ODataEntity> res = req.execute();
     assertEquals(200, res.getStatusCode());
@@ -111,7 +111,7 @@ public class PropertyValueTestITCase extends AbstractTestITCase {
   public void retrieveBinaryPropertyValueTestWithAtom() throws IOException {
     CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendNavigationSegment("ProductPhoto(PhotoId=-3,ProductId=-3)").appendPropertySegment("Photo");
-    ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setAccept("application/atom+xml");
     ODataRetrieveResponse<ODataEntity> res = req.execute();
     assertEquals(200, res.getStatusCode());
@@ -126,7 +126,7 @@ public class PropertyValueTestITCase extends AbstractTestITCase {
   public void retrieveBinaryPropertyValueTestWithXML() throws IOException {
     CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendNavigationSegment("ProductPhoto(PhotoId=-3,ProductId=-3)").appendPropertySegment("Photo");
-    ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setAccept("application/xml");
     ODataRetrieveResponse<ODataEntity> res = req.execute();
     assertEquals(200, res.getStatusCode());
@@ -141,7 +141,7 @@ public class PropertyValueTestITCase extends AbstractTestITCase {
   public void retrieveCollectionPropertyValueTest() {
     CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("Product").appendKeySegment(-7).appendPropertySegment(
-            "ComplexConcurrency/QueriedDateTime").appendValueSegment();
+                    "ComplexConcurrency/QueriedDateTime").appendValueSegment();
     final ODataValueRequest req = client.getRetrieveRequestFactory().getValueRequest(uriBuilder.build());
     req.setFormat(ODataValueFormat.TEXT);
     final ODataValue value = req.execute().getBody();
@@ -155,7 +155,7 @@ public class PropertyValueTestITCase extends AbstractTestITCase {
   public void retrieveNullPropertyValueTest() {
     CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("Product").appendKeySegment(-10).appendPropertySegment(
-            "ComplexConcurrency/Token").appendValueSegment();
+                    "ComplexConcurrency/Token").appendValueSegment();
     final ODataValueRequest req = client.getRetrieveRequestFactory().getValueRequest(uriBuilder.build());
     try {
       req.execute().getBody();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80e5ed56/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/QueryOptionsTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/QueryOptionsTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/QueryOptionsTestITCase.java
index 9f9c2c3..a45da3a 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/QueryOptionsTestITCase.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/QueryOptionsTestITCase.java
@@ -18,25 +18,26 @@
  */
 package org.apache.olingo.client.core.it.v3;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.client.api.uri.v3.URIBuilder.InlineCount;
 import org.apache.olingo.commons.api.data.Entry;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
 import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
+import org.apache.olingo.commons.api.domain.v3.ODataEntity;
+import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataPubFormat;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
-import org.apache.olingo.client.api.uri.v3.URIBuilder.InlineCount;
 import org.apache.olingo.commons.core.data.AtomEntryImpl;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import org.junit.Test;
 
 /**
@@ -64,14 +65,15 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
             appendEntitySetSegment("Car").filter("(VIN lt 16)");
 
     // 1. check that filtered entity set looks as expected
-    ODataEntitySetRequest req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+    ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+            getEntitySetRequest(uriBuilder.build());
     ODataEntitySet feed = req.execute().getBody();
     assertNotNull(feed);
     assertEquals(5, feed.getEntities().size());
 
     // 2. extract VIN values - sorted ASC by default
     final List<Integer> vinsASC = new ArrayList<Integer>(5);
-    for (ODataEntity entity : feed.getEntities()) {
+    for (CommonODataEntity entity : feed.getEntities()) {
       final Integer vin = entity.getProperty("VIN").getPrimitiveValue().toCastValue(Integer.class);
       assertTrue(vin < 16);
       vinsASC.add(vin);
@@ -85,7 +87,7 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
 
     // 4. extract again VIN value - now they were required to be sorted DESC
     final List<Integer> vinsDESC = new ArrayList<Integer>(5);
-    for (ODataEntity entity : feed.getEntities()) {
+    for (CommonODataEntity entity : feed.getEntities()) {
       vinsDESC.add(entity.getProperty("VIN").getPrimitiveValue().toCastValue(Integer.class));
     }
 
@@ -102,7 +104,7 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("Customer").appendKeySegment(-10).format("json");
 
-    final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(ODataPubFormat.ATOM);
 
     final ODataRetrieveResponse<ODataEntity> res = req.execute();
@@ -137,7 +139,8 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL);
     uriBuilder.appendEntitySetSegment("Customer").skipToken("-10");
 
-    final ODataEntitySetRequest req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+    final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+            getEntitySetRequest(uriBuilder.build());
     final ODataEntitySet feed = req.execute().getBody();
     assertNotNull(feed);
     assertEquals(2, feed.getEntities().size());
@@ -155,7 +158,8 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Car").
             inlineCount(InlineCount.allpages);
 
-    final ODataEntitySetRequest req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+    final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+            getEntitySetRequest(uriBuilder.build());
     req.setFormat(ODataPubFormat.ATOM);
     final ODataEntitySet feed = req.execute().getBody();
     assertNotNull(feed);
@@ -170,7 +174,7 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("Customer").appendKeySegment(-10).select("CustomerId,Orders").expand("Orders");
 
-    final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     final ODataEntity customer = req.execute().getBody();
     assertEquals(1, customer.getProperties().size());
     assertEquals(1, customer.getNavigationLinks().size());
@@ -182,7 +186,7 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("Customer").appendKeySegment(-7).select("Name");
 
-    ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(ODataPubFormat.ATOM);
 
     final ODataEntity customer = req.execute().getBody();