[OLINGO-575] Continue removing common classes

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

Branch: refs/heads/master
Commit: 4833b45c2f8c9db7fae300e618804eb58e9fbcd1
Parents: 68b14ff
Author: Christian Amend <[email protected]>
Authored: Fri Feb 27 16:11:17 2015 +0100
Committer: Christian Amend <[email protected]>
Committed: Fri Feb 27 16:12:24 2015 +0100

----------------------------------------------------------------------
 .../AbstractCollectionInvocationHandler.java    |   7 +-
 ...stractEntityCollectionInvocationHandler.java |  25 +-
 .../commons/AbstractInvocationHandler.java      |  10 +-
 .../AbstractStructuredInvocationHandler.java    |   5 +-
 .../ComplexCollectionInvocationHandler.java     |   8 +-
 .../proxy/commons/ComplexInvocationHandler.java |  25 +-
 .../EntityCollectionInvocationHandler.java      |   5 +-
 .../proxy/commons/EntityInvocationHandler.java  |  10 +-
 .../commons/EntitySetInvocationHandler.java     |  10 +-
 .../proxy/commons/InvokerInvocationHandler.java |   6 +-
 .../commons/OperationInvocationHandler.java     |  33 +-
 .../PrimitiveCollectionInvocationHandler.java   |   6 +-
 .../olingo/ext/proxy/utils/CoreUtils.java       |  12 +-
 .../olingo/ext/proxy/utils/ProxyUtils.java      |   5 +-
 .../olingo/fit/v4/ConformanceTestITCase.java    |  23 +-
 .../client/api/CommonEdmEnabledODataClient.java |   4 +-
 .../olingo/client/api/CommonODataClient.java    |   4 +-
 .../apache/olingo/client/api/ODataClient.java   |   4 +-
 .../serialization/ClientODataDeserializer.java  |  10 +
 .../api/serialization/ODataDeserializer.java    |  41 ---
 .../olingo/client/api/uri/CommonURIBuilder.java | 242 -------------
 .../olingo/client/api/uri/URIBuilder.java       | 217 ++++++++++-
 .../olingo/client/core/ODataClientImpl.java     |   8 +-
 .../AbstractODataDeserializer.java              | 101 ------
 .../ClientODataDeserializerImpl.java            | 145 ++++++++
 .../serialization/ODataDeserializerImpl.java    |  78 ----
 .../client/core/uri/AbstractURIBuilder.java     | 360 -------------------
 .../olingo/client/core/uri/URIBuilderImpl.java  | 334 ++++++++++++++++-
 28 files changed, 795 insertions(+), 943 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
index d5c0338..0972607 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
@@ -19,9 +19,6 @@
 package org.apache.olingo.ext.proxy.commons;
 
 import java.io.Serializable;
-
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
-
 import java.lang.reflect.Proxy;
 import java.net.URI;
 import java.util.ArrayList;
@@ -60,7 +57,7 @@ public abstract class AbstractCollectionInvocationHandler<T 
extends Serializable
 
   protected final URI baseURI;
 
-  protected CommonURIBuilder<?> uri;
+  protected URIBuilder uri;
 
   protected final Class<T> itemRef;
 
@@ -75,7 +72,7 @@ public abstract class AbstractCollectionInvocationHandler<T 
extends Serializable
           final AbstractService<?> service,
           final Collection<T> items,
           final Class<T> itemRef,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
 
     super(service);
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
index 9c320f5..55398a7 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
@@ -18,27 +18,26 @@
  */
 package org.apache.olingo.ext.proxy.commons;
 
+import java.lang.reflect.Proxy;
+import java.lang.reflect.Type;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.commons.lang3.tuple.ImmutableTriple;
 import org.apache.commons.lang3.tuple.Triple;
 import org.apache.olingo.client.api.ODataClient;
 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.URIBuilder;
+import org.apache.olingo.commons.api.domain.ODataAnnotation;
 import org.apache.olingo.commons.api.domain.ODataEntity;
 import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.ext.proxy.api.EntityCollection;
-import org.apache.olingo.ext.proxy.api.AbstractSingleton;
-
-import java.lang.reflect.Proxy;
-import java.lang.reflect.Type;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.AbstractSingleton;
+import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 import org.apache.olingo.ext.proxy.utils.ClassUtils;
 
@@ -56,7 +55,7 @@ public abstract class 
AbstractEntityCollectionInvocationHandler<
   public AbstractEntityCollectionInvocationHandler(
           final Class<?> ref,
           final AbstractService<?> service,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
 
     super(service,
             new ArrayList<T>(),
@@ -81,7 +80,7 @@ public abstract class 
AbstractEntityCollectionInvocationHandler<
           final Class<? extends EntityCollection<T, ?, ?>> ref,
           final AbstractService<?> service,
           final URI targetEntitySetURI,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
     super(service,
             new ArrayList<T>(),
             (Class<T>) ClassUtils.extractTypeArg(ref, EntityCollection.class),

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
index 2890fea..0ed0080 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
@@ -32,7 +32,7 @@ import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import org.apache.olingo.client.api.CommonEdmEnabledODataClient;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.commons.api.domain.ODataEntity;
 import org.apache.olingo.commons.api.domain.ODataValue;
 import org.apache.olingo.commons.api.edm.Edm;
@@ -103,7 +103,7 @@ abstract class AbstractInvocationHandler implements 
InvocationHandler {
       final URI baseURI,
       final boolean collectionItem) {
 
-    final CommonURIBuilder<?> targetURI;
+    final URIBuilder targetURI;
     if (collectionItem) {
       targetURI = null;
     } else {
@@ -185,7 +185,7 @@ abstract class AbstractInvocationHandler implements 
InvocationHandler {
     }
   }
 
-  protected static CommonURIBuilder<?> buildEntitySetURI(
+  protected static URIBuilder buildEntitySetURI(
       final Class<?> ref,
       final AbstractService<?> service) {
 
@@ -209,10 +209,10 @@ abstract class AbstractInvocationHandler implements 
InvocationHandler {
     return buildEntitySetURI(containerNS, entitySetName, service);
   }
 
-  protected static CommonURIBuilder<?> buildEntitySetURI(
+  protected static URIBuilder buildEntitySetURI(
       final String containerNS, final String entitySetName, final 
AbstractService<?> service) {
 
-    final CommonURIBuilder<?> uriBuilder = service.getClient().newURIBuilder();
+    final URIBuilder uriBuilder = service.getClient().newURIBuilder();
     final Edm edm = service.getClient().getCachedEdm();
 
     final StringBuilder entitySetSegment = new StringBuilder();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
index b0b3d23..68a61ce 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
@@ -38,16 +38,15 @@ import java.util.concurrent.Callable;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
 import org.apache.olingo.client.api.uri.QueryOption;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataProperty;
 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.ODataLinked;
+import org.apache.olingo.commons.api.domain.ODataProperty;
 import org.apache.olingo.commons.api.domain.ODataValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -71,7 +70,7 @@ import org.apache.olingo.ext.proxy.utils.ProxyUtils;
 
 public abstract class AbstractStructuredInvocationHandler extends 
AbstractInvocationHandler {
 
-  protected CommonURIBuilder<?> uri;
+  protected URIBuilder uri;
 
   protected URI baseURI;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
index 7631d22..9b6101a 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
@@ -32,10 +32,10 @@ import org.apache.commons.lang3.tuple.ImmutableTriple;
 import org.apache.commons.lang3.tuple.Triple;
 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.ODataProperty;
+import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.commons.api.domain.ODataAnnotation;
 import org.apache.olingo.commons.api.domain.ODataCollectionValue;
+import org.apache.olingo.commons.api.domain.ODataProperty;
 import org.apache.olingo.commons.api.domain.ODataValue;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.ext.proxy.AbstractService;
@@ -54,7 +54,7 @@ public class ComplexCollectionInvocationHandler<T extends 
ComplexType<?>>
   public ComplexCollectionInvocationHandler(
           final Class<T> itemRef,
           final AbstractService<?> service,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
       
     this(service, new ArrayList<T>(), itemRef, uri);
   }
@@ -63,7 +63,7 @@ public class ComplexCollectionInvocationHandler<T extends 
ComplexType<?>>
           final AbstractService<?> service,
           final Collection<T> items,
           final Class<T> itemRef,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
 
     super(service, items, itemRef, uri);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
index 18789b3..29b0708 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
@@ -18,23 +18,24 @@
  */
 package org.apache.olingo.ext.proxy.commons;
 
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+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.URIBuilder;
 import org.apache.olingo.commons.api.domain.ODataComplexValue;
 import org.apache.olingo.commons.api.domain.ODataLinked;
+import org.apache.olingo.commons.api.domain.ODataProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.annotations.ComplexType;
 import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
 import org.apache.olingo.ext.proxy.utils.ClassUtils;
-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.ext.proxy.AbstractService;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
 
 public class ComplexInvocationHandler extends 
AbstractStructuredInvocationHandler {
 
@@ -90,7 +91,7 @@ public class ComplexInvocationHandler extends 
AbstractStructuredInvocationHandle
   public static ComplexInvocationHandler getInstance(
           final Class<?> typeRef,
           final AbstractService<?> service,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
       
     final Pair<ODataComplexValue<? extends ODataProperty>, Class<?>> init = 
init(typeRef, service);
     return new ComplexInvocationHandler(init.getLeft(), init.getRight(), 
service, uri);
@@ -100,7 +101,7 @@ public class ComplexInvocationHandler extends 
AbstractStructuredInvocationHandle
           final ODataComplexValue<? extends ODataProperty> complex,
           final Class<?> typeRef,
           final AbstractService<?> service,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
       
     return new ComplexInvocationHandler(complex, typeRef, service, uri);
   }
@@ -109,7 +110,7 @@ public class ComplexInvocationHandler extends 
AbstractStructuredInvocationHandle
           final ODataComplexValue<? extends ODataProperty> complex,
           final Class<?> typeRef,
           final AbstractService<?> service,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
 
     super(typeRef, complex, service);
     this.uri = uri;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java
index 24c7725..5c8da2c 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java
@@ -23,8 +23,9 @@ import java.lang.reflect.Proxy;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
+
 import org.apache.commons.lang3.ArrayUtils;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
@@ -42,7 +43,7 @@ public class EntityCollectionInvocationHandler<T extends 
EntityType<?>>
           final Collection<T> items,
           final Class<? extends EntityCollection<T, ?, ?>> collItemRef,
           final URI targetEntitySetURI,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
 
     super(collItemRef, service, targetEntitySetURI, uri);
     this.items = items;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
index 9e4e038..de70217 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
@@ -33,11 +33,11 @@ import org.apache.commons.lang3.StringUtils;
 import 
org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import 
org.apache.olingo.client.api.communication.request.retrieve.ODataMediaRequest;
 import 
org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.commons.api.ODataRuntimeException;
+import org.apache.olingo.commons.api.domain.ODataAnnotation;
 import org.apache.olingo.commons.api.domain.ODataEntity;
 import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -192,7 +192,7 @@ public class EntityInvocationHandler extends 
AbstractStructuredInvocationHandler
       this.baseURI = entity.getEditLink();
       this.uri = getClient().newURIBuilder(baseURI.toASCIIString());
     } else if (key != null) {
-      final CommonURIBuilder<?> uriBuilder =
+      final URIBuilder uriBuilder =
           CoreUtils.buildEditLink(getClient(), entitySetURI.toASCIIString(), 
entity, key);
 
       this.uri = uriBuilder;
@@ -219,7 +219,7 @@ public class EntityInvocationHandler extends 
AbstractStructuredInvocationHandler
 
     // fix for OLINGO-353
     if (this.uri == null) {
-      final CommonURIBuilder<?> uriBuilder =
+      final URIBuilder uriBuilder =
           entity.getEditLink() == null
               ? CoreUtils.buildEditLink(getClient(), 
getUUID().getEntitySetURI().toASCIIString(), entity, key)
               : 
getClient().newURIBuilder(entity.getEditLink().toASCIIString());
@@ -252,7 +252,7 @@ public class EntityInvocationHandler extends 
AbstractStructuredInvocationHandler
     this.uuid = new EntityUUID(entitySetURI, type, key);
 
     if (this.uri == null) {
-      final CommonURIBuilder<?> uriBuilder =
+      final URIBuilder uriBuilder =
           getEntity().getEditLink() == null
               ? CoreUtils.buildEditLink(getClient(), 
entitySetURI.toASCIIString(), getEntity(), key)
               : 
getClient().newURIBuilder(getEntity().getEditLink().toASCIIString());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
index 5363b7d..2cb9226 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
@@ -30,9 +30,9 @@ import java.util.concurrent.Future;
 import org.apache.commons.lang3.tuple.Triple;
 import org.apache.olingo.client.api.EdmEnabledODataClient;
 import 
org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.commons.api.domain.ODataAnnotation;
+import org.apache.olingo.commons.api.domain.ODataEntity;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.ext.proxy.AbstractService;
@@ -69,7 +69,7 @@ public class EntitySetInvocationHandler<
   protected EntitySetInvocationHandler(
           final Class<?> ref,
           final AbstractService<?> service,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
 
     super(ref, service, uri);
   }
@@ -170,7 +170,7 @@ public class EntitySetInvocationHandler<
     final Class<S> oref = (Class<S>) 
ClassUtils.extractTypeArg(this.collItemRef,
             AbstractEntitySet.class, AbstractSingleton.class, 
EntityCollection.class);
 
-    final CommonURIBuilder<?> uriBuilder = 
getClient().newURIBuilder(this.uri.build().toASCIIString());
+    final URIBuilder uriBuilder = 
getClient().newURIBuilder(this.uri.build().toASCIIString());
 
     if (!oref.equals(ref)) {
       uriBuilder.appendDerivedEntityTypeSegment(new FullQualifiedName(
@@ -211,7 +211,7 @@ public class EntitySetInvocationHandler<
 
   @SuppressWarnings("unchecked")
   public <S extends T, SEC extends EntityCollection<S, ?, ?>> SEC 
fetchWholeEntitySet(
-          final CommonURIBuilder<?> uriBuilder, final Class<S> typeRef, final 
Class<SEC> collTypeRef) {
+          final URIBuilder uriBuilder, final Class<S> typeRef, final 
Class<SEC> collTypeRef) {
 
     final List<S> res = new ArrayList<S>();
     final List<ODataAnnotation> anns = new ArrayList<ODataAnnotation>();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
index 7c5e2f6..8ea017f 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
@@ -31,13 +31,13 @@ import java.util.concurrent.Future;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import 
org.apache.olingo.client.api.communication.request.invoke.ODataNoContent;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.api.uri.URIFilter;
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.domain.ODataEntity;
 import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataProperty;
 import org.apache.olingo.commons.api.domain.ODataInvokeResult;
+import org.apache.olingo.commons.api.domain.ODataProperty;
 import org.apache.olingo.commons.api.domain.ODataValue;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmOperation;
@@ -61,7 +61,7 @@ public class InvokerInvocationHandler<T, O extends 
Operations> extends AbstractI
 
   private final URI baseURI;
 
-  private CommonURIBuilder<?> uri;
+  private URIBuilder uri;
 
   private final Map<String, ODataValue> parameters;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
index 7427944..73daaf3 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
@@ -18,32 +18,33 @@
  */
 package org.apache.olingo.ext.proxy.commons;
 
+import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.net.URI;
+import java.util.AbstractMap;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.commons.api.domain.ODataEntity;
 import org.apache.olingo.commons.api.domain.ODataOperation;
+import org.apache.olingo.commons.api.domain.ODataValue;
 import org.apache.olingo.commons.api.edm.EdmAction;
+import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmOperation;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 import org.apache.olingo.ext.proxy.api.OperationType;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
 import org.apache.olingo.ext.proxy.utils.ClassUtils;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataValue;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 import org.apache.olingo.ext.proxy.utils.CoreUtils;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.net.URI;
-import java.util.AbstractMap;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
 
 final class OperationInvocationHandler extends AbstractInvocationHandler {
 
@@ -231,7 +232,7 @@ final class OperationInvocationHandler extends 
AbstractInvocationHandler {
       edmOperation = 
container.getActionImport(operation.name()).getUnboundAction();
     }
 
-    final CommonURIBuilder<?> uriBuilder = getClient().newURIBuilder().
+    final URIBuilder uriBuilder = getClient().newURIBuilder().
             appendOperationCallSegment(edmOperation.getName());
 
     return new AbstractMap.SimpleEntry<URI, EdmOperation>(uriBuilder.build(), 
edmOperation);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
index a17f27e..d929af7 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
@@ -33,7 +33,7 @@ import org.apache.commons.lang3.tuple.ImmutableTriple;
 import org.apache.commons.lang3.tuple.Triple;
 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.client.api.uri.URIBuilder;
 import org.apache.olingo.commons.api.domain.ODataAnnotation;
 import org.apache.olingo.commons.api.domain.ODataValue;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
@@ -52,7 +52,7 @@ public class PrimitiveCollectionInvocationHandler<T extends 
Serializable>
   public PrimitiveCollectionInvocationHandler(
           final AbstractService<?> service,
           final Class<T> itemRef,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
     this(service, new ArrayList<T>(), itemRef, uri);
   }
 
@@ -60,7 +60,7 @@ public class PrimitiveCollectionInvocationHandler<T extends 
Serializable>
           final AbstractService<?> service,
           final Collection<T> items,
           final Class<T> itemRef,
-          final CommonURIBuilder<?> uri) {
+          final URIBuilder uri) {
 
     super(service, items, itemRef, uri);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
index 297a8e6..fb4f92e 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
@@ -38,17 +38,17 @@ import java.util.TreeSet;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.CommonEdmEnabledODataClient;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataProperty;
 import org.apache.olingo.commons.api.domain.ODataAnnotatable;
 import org.apache.olingo.commons.api.domain.ODataAnnotation;
 import org.apache.olingo.commons.api.domain.ODataComplexValue;
+import org.apache.olingo.commons.api.domain.ODataEntity;
 import org.apache.olingo.commons.api.domain.ODataEnumValue;
 import org.apache.olingo.commons.api.domain.ODataLink;
 import org.apache.olingo.commons.api.domain.ODataObjectFactory;
 import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ODataProperty;
 import org.apache.olingo.commons.api.domain.ODataValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmElement;
@@ -385,7 +385,7 @@ public final class CoreUtils {
     return propertyClass;
   }
 
-  public static CommonURIBuilder<?> buildEditLink(
+  public static URIBuilder buildEditLink(
       final CommonEdmEnabledODataClient<?> client,
       final String entitySetURI,
       final ODataEntity entity,
@@ -395,7 +395,7 @@ public final class CoreUtils {
       return null;
     }
 
-    final CommonURIBuilder<?> uriBuilder = StringUtils.isNotBlank(entitySetURI)
+    final URIBuilder uriBuilder = StringUtils.isNotBlank(entitySetURI)
         ? client.newURIBuilder(entitySetURI)
         : client.newURIBuilder();
 
@@ -669,7 +669,7 @@ public final class CoreUtils {
         new FullQualifiedName(property.targetSchema(), 
property.targetContainer());
 
     final EdmEntityContainer container = edm.getEntityContainer(containerName);
-    final CommonURIBuilder<?> uriBuilder = 
client.newURIBuilder(client.getServiceRoot());
+    final URIBuilder uriBuilder = 
client.newURIBuilder(client.getServiceRoot());
 
     if (!container.isDefault()) {
       final StringBuilder entitySetSegment = new StringBuilder();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
----------------------------------------------------------------------
diff --git 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
index d70ca4b..4ff910f 100644
--- 
a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
+++ 
b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
@@ -19,8 +19,9 @@ import java.lang.reflect.Proxy;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
+
 import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.commons.api.domain.ODataEntity;
 import org.apache.olingo.commons.api.domain.ODataEntitySet;
 import org.apache.olingo.commons.api.domain.ODataValue;
@@ -103,7 +104,7 @@ public class ProxyUtils {
           final URI baseURI,
           final boolean collectionItem) {
 
-    final CommonURIBuilder<?> targetURI;
+    final URIBuilder targetURI;
     if (collectionItem) {
       targetURI = null;
     } else {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java 
b/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
index 3259196..872624f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
@@ -18,6 +18,16 @@
  */
 package org.apache.olingo.fit.v4;
 
+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.math.BigDecimal;
+import java.net.URI;
+import java.util.Calendar;
+import java.util.TimeZone;
+
 import org.apache.olingo.client.api.communication.header.HeaderName;
 import org.apache.olingo.client.api.communication.request.AsyncRequestWrapper;
 import 
org.apache.olingo.client.api.communication.request.cud.ODataDeleteRequest;
@@ -32,7 +42,6 @@ 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.ODataEntityUpdateResponse;
 import 
org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
 import org.apache.olingo.client.core.http.DefaultHttpClientFactory;
@@ -50,16 +59,6 @@ import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.core.domain.ODataEntityImpl;
 import org.junit.Test;
 
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
 /**
  * 13.2 Interoperable OData Clients
  * <br />
@@ -286,7 +285,7 @@ public class ConformanceTestITCase extends 
AbstractTestITCase {
   public void item8() {
     client.getConfiguration().setHttpClientFactory(new 
BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
 
-    final CommonURIBuilder<?> uriBuilder = 
client.newURIBuilder(testAuthServiceRootURL).
+    final URIBuilder uriBuilder = client.newURIBuilder(testAuthServiceRootURL).
         
appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
 
     final ODataEntityRequest<ODataEntity> req = 
client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonEdmEnabledODataClient.java
----------------------------------------------------------------------
diff --git 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonEdmEnabledODataClient.java
 
b/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonEdmEnabledODataClient.java
index 196c6e9..7a16e97 100644
--- 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonEdmEnabledODataClient.java
+++ 
b/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonEdmEnabledODataClient.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.api;
 
 import org.apache.olingo.client.api.communication.request.cud.CommonUpdateType;
 import 
org.apache.olingo.client.api.communication.request.invoke.EdmEnabledInvokeRequestFactory;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.commons.api.edm.Edm;
 
 /**
@@ -50,7 +50,7 @@ public interface CommonEdmEnabledODataClient<UT extends 
CommonUpdateType> extend
    */
   Edm getCachedEdm();
 
-  CommonURIBuilder<?> newURIBuilder();
+  URIBuilder newURIBuilder();
 
   @Override
   EdmEnabledInvokeRequestFactory getInvokeRequestFactory();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java
----------------------------------------------------------------------
diff --git 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java
 
b/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java
index e9fb6a8..3e8843a 100644
--- 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java
+++ 
b/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java
@@ -30,7 +30,7 @@ import org.apache.olingo.client.api.serialization.ODataBinder;
 import org.apache.olingo.client.api.serialization.ODataReader;
 import org.apache.olingo.client.api.serialization.ODataWriter;
 import org.apache.olingo.client.api.uri.CommonFilterFactory;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.commons.api.domain.ODataObjectFactory;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -51,7 +51,7 @@ public interface CommonODataClient<UT extends 
CommonUpdateType> {
 
   ODataPreferences newPreferences();
 
-  CommonURIBuilder<?> newURIBuilder(String serviceRoot);
+  URIBuilder newURIBuilder(String serviceRoot);
   
   CommonFilterFactory getFilterFactory();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
----------------------------------------------------------------------
diff --git 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java 
b/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
index e3d9c74..b67d64f 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
@@ -23,8 +23,8 @@ import 
org.apache.olingo.client.api.communication.request.batch.BatchRequestFact
 import 
org.apache.olingo.client.api.communication.request.cud.CUDRequestFactory;
 import org.apache.olingo.client.api.communication.request.cud.UpdateType;
 import 
org.apache.olingo.client.api.communication.request.retrieve.RetrieveRequestFactory;
+import org.apache.olingo.client.api.serialization.ClientODataDeserializer;
 import org.apache.olingo.client.api.serialization.ODataBinder;
-import org.apache.olingo.client.api.serialization.ODataDeserializer;
 import org.apache.olingo.client.api.serialization.ODataReader;
 import org.apache.olingo.client.api.uri.FilterFactory;
 import org.apache.olingo.client.api.uri.SearchFactory;
@@ -35,7 +35,7 @@ import org.apache.olingo.commons.api.format.ODataFormat;
 public interface ODataClient extends CommonODataClient<UpdateType> {
 
   @Override
-  ODataDeserializer getDeserializer(ODataFormat format);
+  ClientODataDeserializer getDeserializer(ODataFormat format);
 
   @Override
   ODataReader getReader();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java
----------------------------------------------------------------------
diff --git 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java
 
b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java
index 8d4149f..56c2e13 100644
--- 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java
+++ 
b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java
@@ -22,6 +22,7 @@ import java.io.InputStream;
 
 import org.apache.olingo.client.api.data.ServiceDocument;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
+import org.apache.olingo.commons.api.data.Delta;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.serialization.ODataDeserializer;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
@@ -38,4 +39,13 @@ public interface ClientODataDeserializer extends 
ODataDeserializer {
    * @throws ODataDeserializerException
    */
   ResWrap<ServiceDocument> toServiceDocument(InputStream input) throws 
ODataDeserializerException;
+  
+  /**
+   * Gets a delta object from the given InputStream.
+   *
+   * @param input stream to be de-serialized.
+   * @return {@link Delta} instance.
+   * @throws ODataDeserializerException
+   */
+  ResWrap<Delta> toDelta(InputStream input) throws ODataDeserializerException;
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataDeserializer.java
----------------------------------------------------------------------
diff --git 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataDeserializer.java
 
b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataDeserializer.java
deleted file mode 100644
index 0301704..0000000
--- 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataDeserializer.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.serialization;
-
-import java.io.InputStream;
-
-import org.apache.olingo.client.api.edm.xml.XMLMetadata;
-import org.apache.olingo.commons.api.data.Delta;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
-
-public interface ODataDeserializer extends ClientODataDeserializer {
-
-  @Override
-  XMLMetadata toMetadata(InputStream input);
-
-  /**
-   * Gets a delta object from the given InputStream.
-   *
-   * @param input stream to be de-serialized.
-   * @return {@link Delta} instance.
-   * @throws ODataDeserializerException
-   */
-  ResWrap<Delta> toDelta(InputStream input) throws ODataDeserializerException;
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/CommonURIBuilder.java
----------------------------------------------------------------------
diff --git 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/CommonURIBuilder.java
 
b/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/CommonURIBuilder.java
deleted file mode 100644
index c831233..0000000
--- 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/CommonURIBuilder.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.uri;
-
-import java.net.URI;
-import java.util.Map;
-
-/**
- * OData URI builder.
- */
-public interface CommonURIBuilder<UB extends CommonURIBuilder<?>> {
-
-  /**
-   * Adds the specified query option to the URI.
-   * <br />
-   * Concatenates value if the specified query option already exists.
-   *
-   * @param option query option.
-   * @param value query option value.
-   * @return current URIBuilder instance
-   */
-  UB addQueryOption(QueryOption option, String value);
-  
-  /**
-   * Adds/replaces the specified query option to the URI.
-   *
-   * @param option query option.
-   * @param value query option value.
-   * @return current URIBuilder instance
-   */
-  UB replaceQueryOption(QueryOption option, String value);
-
-  /**
-   * Adds/Replaces the specified (custom) query option to the URI.
-   *
-   * @param option query option.
-   * @param value query option value.
-   * @param replace if <tt>true</tt> then replace existing one.
-   * @return current URIBuilder instance.
-   */
-  UB addQueryOption(String option, String value, boolean replace);
-
-  /**
-   * Adds the specified (custom) parameter alias to the URI.
-   *
-   * @param alias parameter alias.
-   * @param exp expression value.
-   * @return current URIBuilder instance.
-   */
-  UB addParameterAlias(final String alias, final String exp);
-
-  /**
-   * Appends EntitySet segment to the URI.
-   *
-   * @param segmentValue segment value.
-   * @return current URIBuilder instance
-   */
-  UB appendEntitySetSegment(String segmentValue);
-
-  /**
-   * Appends key segment to the URI.
-   *
-   * @param val segment value.
-   * @return current URIBuilder instance
-   */
-  UB appendKeySegment(Object val);
-
-  /**
-   * Appends key segment to the URI, for multiple keys.
-   *
-   * @param segmentValues segment values.
-   * @return current URIBuilder instance
-   */
-  UB appendKeySegment(Map<String, Object> segmentValues);
-
-  /**
-   * Appends property segment to the URI.
-   *
-   * @param segmentValue segment value.
-   * @return current URIBuilder instance
-   */
-  UB appendPropertySegment(String segmentValue);
-
-  /**
-   * Appends navigation segment to the URI.
-   *
-   * @param segmentValue segment value.
-   * @return current URIBuilder instance
-   */
-  UB appendNavigationSegment(String segmentValue);
-
-  /**
-   * Appends derived entity type segment to the URI.
-   *
-   * @param segmentValue segment value.
-   * @return current URIBuilder instance
-   */
-  UB appendDerivedEntityTypeSegment(String segmentValue);
-
-  /**
-   * Appends value segment to the URI.
-   *
-   * @return current URIBuilder instance
-   */
-  UB appendValueSegment();
-
-  /**
-   * Appends operation (action or function) segment to the URI.
-   *
-   * @param operation Operation (action or function) name
-   * @return current URIBuilder instance
-   */
-  UB appendOperationCallSegment(String operation);
-
-  /**
-   * Appends metadata segment to the URI.
-   *
-   * @return current URIBuilder instance
-   */
-  UB appendMetadataSegment();
-
-  /**
-   * Appends batch segment to the URI.
-   *
-   * @return current URIBuilder instance
-   */
-  UB appendBatchSegment();
-
-  /**
-   * Adds count query option.
-   *
-   * @return current URIBuilder instance
-   */
-  UB count();
-
-  /**
-   * Adds expand query option.
-   *
-   * @param expandItems items to be expanded in-line
-   * @return current URIBuilder instance
-   * @see QueryOption#EXPAND
-   */
-  UB expand(String... expandItems);
-
-  /**
-   * Adds format query option.
-   *
-   * @param format media type acceptable in a response.
-   * @return current URIBuilder instance
-   * @see QueryOption#FORMAT
-   */
-  UB format(String format);
-
-  /**
-   * Adds filter for filter query option.
-   *
-   * @param filter filter instance (to be obtained via <tt>FilterFactory</tt>);
-   *               note that <tt>build()</tt> method will be immediately 
invoked.
-   * @return current URIBuilder instance
-   * @see QueryOption#FILTER
-   * @see URIFilter
-   * @see org.apache.olingo.client.api.uri.CommonFilterFactory
-   */
-  UB filter(URIFilter filter);
-
-  /**
-   * Adds filter query option.
-   *
-   * @param filter filter string.
-   * @return current URIBuilder instance
-   * @see QueryOption#FILTER
-   */
-  UB filter(String filter);
-
-  /**
-   * Adds select query option.
-   *
-   * @param selectItems select items
-   * @return current URIBuilder instance
-   * @see QueryOption#SELECT
-   */
-  UB select(String... selectItems);
-
-  /**
-   * Adds orderby query option.
-   *
-   * @param order order string.
-   * @return current URIBuilder instance
-   * @see QueryOption#ORDERBY
-   */
-  UB orderBy(String order);
-
-  /**
-   * Adds top query option.
-   *
-   * @param top maximum number of entities to be returned.
-   * @return current URIBuilder instance
-   * @see QueryOption#TOP
-   */
-  UB top(int top);
-
-  /**
-   * Adds skip query option.
-   *
-   * @param skip number of entities to be skipped into the response.
-   * @return current URIBuilder instance
-   * @see QueryOption#SKIP
-   */
-  UB skip(int skip);
-
-  /**
-   * Adds skiptoken query option.
-   *
-   * @param skipToken opaque token.
-   * @return current URIBuilder instance
-   * @see QueryOption#SKIPTOKEN
-   */
-  UB skipToken(String skipToken);
-
-  /**
-   * Build OData URI.
-   *
-   * @return OData URI.
-   */
-  URI build();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/URIBuilder.java
----------------------------------------------------------------------
diff --git 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/URIBuilder.java 
b/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/URIBuilder.java
index efedbfe..d0eaac9 100644
--- 
a/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/URIBuilder.java
+++ 
b/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/URIBuilder.java
@@ -18,14 +18,229 @@
  */
 package org.apache.olingo.client.api.uri;
 
+import java.net.URI;
 import java.util.Map;
 
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.olingo.commons.api.edm.EdmEnumType;
 
-public interface URIBuilder extends CommonURIBuilder<URIBuilder> {
+public interface URIBuilder {
 
   /**
+   * Adds the specified query option to the URI.
+   * <br />
+   * Concatenates value if the specified query option already exists.
+   *
+   * @param option query option.
+   * @param value query option value.
+   * @return current URIBuilder instance
+   */
+  URIBuilder addQueryOption(QueryOption option, String value);
+  
+  /**
+   * Adds/replaces the specified query option to the URI.
+   *
+   * @param option query option.
+   * @param value query option value.
+   * @return current URIBuilder instance
+   */
+  URIBuilder replaceQueryOption(QueryOption option, String value);
+
+  /**
+   * Adds/Replaces the specified (custom) query option to the URI.
+   *
+   * @param option query option.
+   * @param value query option value.
+   * @param replace if <tt>true</tt> then replace existing one.
+   * @return current URIBuilder instance.
+   */
+  URIBuilder addQueryOption(String option, String value, boolean replace);
+
+  /**
+   * Adds the specified (custom) parameter alias to the URI.
+   *
+   * @param alias parameter alias.
+   * @param exp expression value.
+   * @return current URIBuilder instance.
+   */
+  URIBuilder addParameterAlias(final String alias, final String exp);
+
+  /**
+   * Appends EntitySet segment to the URI.
+   *
+   * @param segmentValue segment value.
+   * @return current URIBuilder instance
+   */
+  URIBuilder appendEntitySetSegment(String segmentValue);
+
+  /**
+   * Appends key segment to the URI.
+   *
+   * @param val segment value.
+   * @return current URIBuilder instance
+   */
+  URIBuilder appendKeySegment(Object val);
+
+  /**
+   * Appends key segment to the URI, for multiple keys.
+   *
+   * @param segmentValues segment values.
+   * @return current URIBuilder instance
+   */
+  URIBuilder appendKeySegment(Map<String, Object> segmentValues);
+
+  /**
+   * Appends property segment to the URI.
+   *
+   * @param segmentValue segment value.
+   * @return current URIBuilder instance
+   */
+  URIBuilder appendPropertySegment(String segmentValue);
+
+  /**
+   * Appends navigation segment to the URI.
+   *
+   * @param segmentValue segment value.
+   * @return current URIBuilder instance
+   */
+  URIBuilder appendNavigationSegment(String segmentValue);
+
+  /**
+   * Appends derived entity type segment to the URI.
+   *
+   * @param segmentValue segment value.
+   * @return current URIBuilder instance
+   */
+  URIBuilder appendDerivedEntityTypeSegment(String segmentValue);
+
+  /**
+   * Appends value segment to the URI.
+   *
+   * @return current URIBuilder instance
+   */
+  URIBuilder appendValueSegment();
+
+  /**
+   * Appends operation (action or function) segment to the URI.
+   *
+   * @param operation Operation (action or function) name
+   * @return current URIBuilder instance
+   */
+  URIBuilder appendOperationCallSegment(String operation);
+
+  /**
+   * Appends metadata segment to the URI.
+   *
+   * @return current URIBuilder instance
+   */
+  URIBuilder appendMetadataSegment();
+
+  /**
+   * Appends batch segment to the URI.
+   *
+   * @return current URIBuilder instance
+   */
+  URIBuilder appendBatchSegment();
+
+  /**
+   * Adds count query option.
+   *
+   * @return current URIBuilder instance
+   */
+  URIBuilder count();
+
+  /**
+   * Adds expand query option.
+   *
+   * @param expandItems items to be expanded in-line
+   * @return current URIBuilder instance
+   * @see QueryOption#EXPAND
+   */
+  URIBuilder expand(String... expandItems);
+
+  /**
+   * Adds format query option.
+   *
+   * @param format media type acceptable in a response.
+   * @return current URIBuilder instance
+   * @see QueryOption#FORMAT
+   */
+  URIBuilder format(String format);
+
+  /**
+   * Adds filter for filter query option.
+   *
+   * @param filter filter instance (to be obtained via <tt>FilterFactory</tt>);
+   *               note that <tt>build()</tt> method will be immediately 
invoked.
+   * @return current URIBuilder instance
+   * @see QueryOption#FILTER
+   * @see URIFilter
+   * @see org.apache.olingo.client.api.uri.CommonFilterFactory
+   */
+  URIBuilder filter(URIFilter filter);
+
+  /**
+   * Adds filter query option.
+   *
+   * @param filter filter string.
+   * @return current URIBuilder instance
+   * @see QueryOption#FILTER
+   */
+  URIBuilder filter(String filter);
+
+  /**
+   * Adds select query option.
+   *
+   * @param selectItems select items
+   * @return current URIBuilder instance
+   * @see QueryOption#SELECT
+   */
+  URIBuilder select(String... selectItems);
+
+  /**
+   * Adds orderby query option.
+   *
+   * @param order order string.
+   * @return current URIBuilder instance
+   * @see QueryOption#ORDERBY
+   */
+  URIBuilder orderBy(String order);
+
+  /**
+   * Adds top query option.
+   *
+   * @param top maximum number of entities to be returned.
+   * @return current URIBuilder instance
+   * @see QueryOption#TOP
+   */
+  URIBuilder top(int top);
+
+  /**
+   * Adds skip query option.
+   *
+   * @param skip number of entities to be skipped into the response.
+   * @return current URIBuilder instance
+   * @see QueryOption#SKIP
+   */
+  URIBuilder skip(int skip);
+
+  /**
+   * Adds skiptoken query option.
+   *
+   * @param skipToken opaque token.
+   * @return current URIBuilder instance
+   * @see QueryOption#SKIPTOKEN
+   */
+  URIBuilder skipToken(String skipToken);
+
+  /**
+   * Build OData URI.
+   *
+   * @return OData URI.
+   */
+  URI build();
+  
+  /**
    * Appends enum key segment to the URI.
    *
    * @param enumType enum type

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
 
b/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
index 9bb86d9..6d05785 100644
--- 
a/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
+++ 
b/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
@@ -27,8 +27,8 @@ import 
org.apache.olingo.client.api.communication.request.cud.CUDRequestFactory;
 import org.apache.olingo.client.api.communication.request.cud.UpdateType;
 import 
org.apache.olingo.client.api.communication.request.invoke.InvokeRequestFactory;
 import 
org.apache.olingo.client.api.communication.request.retrieve.RetrieveRequestFactory;
+import org.apache.olingo.client.api.serialization.ClientODataDeserializer;
 import org.apache.olingo.client.api.serialization.ODataBinder;
-import org.apache.olingo.client.api.serialization.ODataDeserializer;
 import org.apache.olingo.client.api.serialization.ODataReader;
 import org.apache.olingo.client.api.uri.FilterFactory;
 import org.apache.olingo.client.api.uri.SearchFactory;
@@ -39,8 +39,8 @@ import 
org.apache.olingo.client.core.communication.request.batch.BatchRequestFac
 import 
org.apache.olingo.client.core.communication.request.cud.CUDRequestFactoryImpl;
 import 
org.apache.olingo.client.core.communication.request.invoke.InvokeRequestFactoryImpl;
 import 
org.apache.olingo.client.core.communication.request.retrieve.RetrieveRequestFactoryImpl;
+import org.apache.olingo.client.core.serialization.ClientODataDeserializerImpl;
 import org.apache.olingo.client.core.serialization.ODataBinderImpl;
-import org.apache.olingo.client.core.serialization.ODataDeserializerImpl;
 import org.apache.olingo.client.core.serialization.ODataReaderImpl;
 import org.apache.olingo.client.core.uri.FilterFactoryImpl;
 import org.apache.olingo.client.core.uri.URIBuilderImpl;
@@ -103,8 +103,8 @@ public class ODataClientImpl extends 
AbstractODataClient<UpdateType> implements
   }
 
   @Override
-  public ODataDeserializer getDeserializer(final ODataFormat format) {
-    return new ODataDeserializerImpl(getServiceVersion(), false, format);
+  public ClientODataDeserializer getDeserializer(final ODataFormat format) {
+    return new ClientODataDeserializerImpl(getServiceVersion(), false, format);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataDeserializer.java
----------------------------------------------------------------------
diff --git 
a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataDeserializer.java
 
b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataDeserializer.java
deleted file mode 100644
index 33d0cbe..0000000
--- 
a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataDeserializer.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.core.serialization;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.olingo.commons.api.data.Entity;
-import org.apache.olingo.commons.api.data.EntitySet;
-import org.apache.olingo.commons.api.data.Property;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.commons.api.format.ODataFormat;
-import org.apache.olingo.commons.api.serialization.ODataDeserializer;
-import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
-import org.apache.olingo.commons.core.serialization.AtomDeserializer;
-import org.apache.olingo.commons.core.serialization.JsonDeserializer;
-
-import com.fasterxml.aalto.stax.InputFactoryImpl;
-import com.fasterxml.aalto.stax.OutputFactoryImpl;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.InjectableValues;
-import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler;
-import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
-import com.fasterxml.jackson.dataformat.xml.XmlFactory;
-import com.fasterxml.jackson.dataformat.xml.XmlMapper;
-
-public abstract class AbstractODataDeserializer {
-
-  protected final ODataServiceVersion version;
-
-  protected final ODataDeserializer deserializer;
-
-  public AbstractODataDeserializer(final ODataServiceVersion version, final 
boolean serverMode,
-          final ODataFormat format) {
-    this.version = version;
-    if (format == ODataFormat.XML || format == ODataFormat.ATOM) {
-      deserializer = new AtomDeserializer(version);
-    } else {
-      deserializer = new JsonDeserializer(version, serverMode);
-    }
-  }
-
-  public ResWrap<EntitySet> toEntitySet(final InputStream input) throws 
ODataDeserializerException {
-    return deserializer.toEntitySet(input);
-  }
-
-  public ResWrap<Entity> toEntity(final InputStream input) throws 
ODataDeserializerException {
-    return deserializer.toEntity(input);
-  }
-
-  public ResWrap<Property> toProperty(final InputStream input) throws 
ODataDeserializerException {
-    return deserializer.toProperty(input);
-  }
-
-  public ODataError toError(final InputStream input) throws 
ODataDeserializerException {
-    return deserializer.toError(input);
-  }
-
-  protected XmlMapper getXmlMapper() {
-    final XmlMapper xmlMapper = new XmlMapper(
-            new XmlFactory(new InputFactoryImpl(), new OutputFactoryImpl()), 
new JacksonXmlModule());
-
-    xmlMapper.setInjectableValues(new InjectableValues.Std().
-            addValue(ODataServiceVersion.class, version).
-            addValue(Boolean.class, Boolean.FALSE));
-
-    xmlMapper.addHandler(new DeserializationProblemHandler() {
-      @Override
-      public boolean handleUnknownProperty(final DeserializationContext ctxt, 
final JsonParser jp,
-              final com.fasterxml.jackson.databind.JsonDeserializer<?> 
deserializer,
-              final Object beanOrClass, final String propertyName)
-              throws IOException, JsonProcessingException {
-
-        // skip any unknown property
-        ctxt.getParser().skipChildren();
-        return true;
-      }
-    });
-    return xmlMapper;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
 
b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
new file mode 100644
index 0000000..a6636af
--- /dev/null
+++ 
b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.serialization;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.olingo.client.api.data.ServiceDocument;
+import org.apache.olingo.client.api.edm.xml.XMLMetadata;
+import org.apache.olingo.client.api.serialization.ClientODataDeserializer;
+import org.apache.olingo.client.core.data.JSONServiceDocumentDeserializer;
+import org.apache.olingo.client.core.data.XMLServiceDocumentDeserializer;
+import org.apache.olingo.client.core.edm.xml.EdmxImpl;
+import org.apache.olingo.client.core.edm.xml.XMLMetadataImpl;
+import org.apache.olingo.commons.api.data.Delta;
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.data.EntitySet;
+import org.apache.olingo.commons.api.data.Property;
+import org.apache.olingo.commons.api.data.ResWrap;
+import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.commons.api.format.ODataFormat;
+import org.apache.olingo.commons.api.serialization.ODataDeserializer;
+import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
+import org.apache.olingo.commons.core.serialization.AtomDeserializer;
+import org.apache.olingo.commons.core.serialization.JsonDeltaDeserializer;
+import org.apache.olingo.commons.core.serialization.JsonDeserializer;
+
+import com.fasterxml.aalto.stax.InputFactoryImpl;
+import com.fasterxml.aalto.stax.OutputFactoryImpl;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.InjectableValues;
+import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler;
+import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
+import com.fasterxml.jackson.dataformat.xml.XmlFactory;
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
+
+public class ClientODataDeserializerImpl implements ClientODataDeserializer {
+
+  private final ODataServiceVersion version;
+
+  private final ODataDeserializer deserializer;
+
+  private final ODataFormat format;
+
+  public ClientODataDeserializerImpl(final ODataServiceVersion version, final 
boolean serverMode,
+      final ODataFormat format) {
+    this.version = version;
+    this.format = format;
+    if (format == ODataFormat.XML || format == ODataFormat.ATOM) {
+      deserializer = new AtomDeserializer(version);
+    } else {
+      deserializer = new JsonDeserializer(version, serverMode);
+    }
+  }
+
+  public ResWrap<EntitySet> toEntitySet(final InputStream input) throws 
ODataDeserializerException {
+    return deserializer.toEntitySet(input);
+  }
+
+  public ResWrap<Entity> toEntity(final InputStream input) throws 
ODataDeserializerException {
+    return deserializer.toEntity(input);
+  }
+
+  public ResWrap<Property> toProperty(final InputStream input) throws 
ODataDeserializerException {
+    return deserializer.toProperty(input);
+  }
+
+  public ODataError toError(final InputStream input) throws 
ODataDeserializerException {
+    return deserializer.toError(input);
+  }
+
+  protected XmlMapper getXmlMapper() {
+    final XmlMapper xmlMapper = new XmlMapper(
+        new XmlFactory(new InputFactoryImpl(), new OutputFactoryImpl()), new 
JacksonXmlModule());
+
+    xmlMapper.setInjectableValues(new InjectableValues.Std().
+        addValue(ODataServiceVersion.class, version).
+        addValue(Boolean.class, Boolean.FALSE));
+
+    xmlMapper.addHandler(new DeserializationProblemHandler() {
+      @Override
+      public boolean handleUnknownProperty(final DeserializationContext ctxt, 
final JsonParser jp,
+          final com.fasterxml.jackson.databind.JsonDeserializer<?> 
deserializer,
+          final Object beanOrClass, final String propertyName)
+          throws IOException, JsonProcessingException {
+
+        // skip any unknown property
+        ctxt.getParser().skipChildren();
+        return true;
+      }
+    });
+    return xmlMapper;
+  }
+
+  @Override
+  public XMLMetadata toMetadata(final InputStream input) {
+    try {
+      return new XMLMetadataImpl(getXmlMapper().readValue(input, 
EdmxImpl.class));
+    } catch (Exception e) {
+      throw new IllegalArgumentException("Could not parse as Edmx document", 
e);
+    }
+  }
+
+  @Override
+  public ResWrap<ServiceDocument> toServiceDocument(final InputStream input) 
throws ODataDeserializerException {
+    return format == ODataFormat.XML ?
+        new XMLServiceDocumentDeserializer(version, 
false).toServiceDocument(input) :
+        new JSONServiceDocumentDeserializer(version, 
false).toServiceDocument(input);
+  }
+
+  @Override
+  public ResWrap<Delta> toDelta(final InputStream input) throws 
ODataDeserializerException {
+    try {
+      return format == ODataFormat.ATOM ?
+          new AtomDeserializer(version).delta(input) :
+          new JsonDeltaDeserializer(version, false).toDelta(input);
+    } catch (XMLStreamException e) {
+      throw new ODataDeserializerException(e);
+    } catch (final EdmPrimitiveTypeException e) {
+      throw new ODataDeserializerException(e);
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataDeserializerImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataDeserializerImpl.java
 
b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataDeserializerImpl.java
deleted file mode 100644
index abf3ceb..0000000
--- 
a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataDeserializerImpl.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.core.serialization;
-
-import java.io.InputStream;
-
-import javax.xml.stream.XMLStreamException;
-
-import org.apache.olingo.client.api.data.ServiceDocument;
-import org.apache.olingo.client.api.edm.xml.XMLMetadata;
-import org.apache.olingo.client.api.serialization.ODataDeserializer;
-import org.apache.olingo.client.core.data.JSONServiceDocumentDeserializer;
-import org.apache.olingo.client.core.data.XMLServiceDocumentDeserializer;
-import org.apache.olingo.client.core.edm.xml.EdmxImpl;
-import org.apache.olingo.client.core.edm.xml.XMLMetadataImpl;
-import org.apache.olingo.commons.api.data.Delta;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.commons.api.format.ODataFormat;
-import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
-import org.apache.olingo.commons.core.serialization.AtomDeserializer;
-import org.apache.olingo.commons.core.serialization.JsonDeltaDeserializer;
-
-public class ODataDeserializerImpl extends AbstractODataDeserializer 
implements ODataDeserializer {
-
-  private final ODataFormat format;
-
-  public ODataDeserializerImpl(final ODataServiceVersion version, final 
boolean serverMode, final ODataFormat format) {
-    super(version, serverMode, format);
-    this.format = format;
-  }
-
-  @Override
-  public XMLMetadata toMetadata(final InputStream input) {
-    try {
-      return new XMLMetadataImpl(getXmlMapper().readValue(input, 
EdmxImpl.class));
-    } catch (Exception e) {
-      throw new IllegalArgumentException("Could not parse as Edmx document", 
e);
-    }
-  }
-
-  @Override
-  public ResWrap<ServiceDocument> toServiceDocument(final InputStream input) 
throws ODataDeserializerException {
-    return format == ODataFormat.XML ?
-        new XMLServiceDocumentDeserializer(version, 
false).toServiceDocument(input) :
-        new JSONServiceDocumentDeserializer(version, 
false).toServiceDocument(input);
-  }
-
-  @Override
-  public ResWrap<Delta> toDelta(final InputStream input) throws 
ODataDeserializerException {
-    try {
-      return format == ODataFormat.ATOM ?
-          new AtomDeserializer(version).delta(input) :
-          new JsonDeltaDeserializer(version, false).toDelta(input);
-    } catch (XMLStreamException e) {
-      throw new ODataDeserializerException(e);
-    } catch (final EdmPrimitiveTypeException e) {
-      throw new ODataDeserializerException(e);
-    }
-  }
-}

Reply via email to