You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by fm...@apache.org on 2014/07/23 12:56:08 UTC

[1/3] [OLINGO-366] provide some improvements around streams, singletons and delete requests

Repository: olingo-odata4
Updated Branches:
  refs/heads/master 1c5b33ea5 -> 2822fe60e


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/InMemoryEntities.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/InMemoryEntities.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/InMemoryEntities.java
index d66883f..565a516 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/InMemoryEntities.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/InMemoryEntities.java
@@ -26,7 +26,9 @@ import org.apache.olingo.ext.proxy.api.ComplexType;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import java.io.Serializable;
+import java.io.InputStream;
 //CHECKSTYLE:ON (Maven checkstyle)
 
 @org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
@@ -61,17 +63,35 @@ public interface InMemoryEntities extends PersistenceManager {
 
 
 
-    PublicCompany getPublicCompany();
+    @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+                name = "PublicCompany",
+                container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+    org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company getPublicCompany();
 
-    DefaultStoredPI getDefaultStoredPI();
+    @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+                name = "DefaultStoredPI",
+                container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+    org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI getDefaultStoredPI();
 
-    VipCustomer getVipCustomer();
+    @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+                name = "VipCustomer",
+                container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+    org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer getVipCustomer();
 
-    Company getCompany();
+    @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+                name = "Company",
+                container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+    org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company getCompany();
 
-    Boss getBoss();
+    @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+                name = "Boss",
+                container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+    org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person getBoss();
 
-    LabourUnion getLabourUnion();
+    @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+                name = "LabourUnion",
+                container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+    org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnion getLabourUnion();
 
 
   Operations operations();
@@ -161,4 +181,6 @@ public interface InMemoryEntities extends PersistenceManager {
   <T extends ComplexType, NEC extends ComplexCollection<T>> NEC newComplexCollection(Class<NEC> ref);
 
   <T extends Serializable, NEC extends PrimitiveCollection<T>> NEC newPrimitiveCollection(Class<T> ref);
+
+  EdmStreamValue newEdmStreamValue(String contentType, InputStream stream);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/LabourUnion.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/LabourUnion.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/LabourUnion.java
deleted file mode 100644
index e87ecbd..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/LabourUnion.java
+++ /dev/null
@@ -1,29 +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.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice;
-
-//CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractSingleton;
-//CHECKSTYLE:ON (Maven checkstyle)
-
-
-
-@org.apache.olingo.ext.proxy.api.annotations.Singleton(name = "LabourUnion", container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface LabourUnion extends org.apache.olingo.ext.proxy.api.SingleQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnion>,AbstractSingleton<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnion, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnionCollection> {
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/PublicCompany.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/PublicCompany.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/PublicCompany.java
deleted file mode 100644
index 609ca59..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/PublicCompany.java
+++ /dev/null
@@ -1,29 +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.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice;
-
-//CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractSingleton;
-//CHECKSTYLE:ON (Maven checkstyle)
-
-
-
-@org.apache.olingo.ext.proxy.api.annotations.Singleton(name = "PublicCompany", container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface PublicCompany extends org.apache.olingo.ext.proxy.api.SingleQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company>,AbstractSingleton<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCollection> {
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/VipCustomer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/VipCustomer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/VipCustomer.java
deleted file mode 100644
index 93624ea..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/VipCustomer.java
+++ /dev/null
@@ -1,29 +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.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice;
-
-//CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractSingleton;
-//CHECKSTYLE:ON (Maven checkstyle)
-
-
-
-@org.apache.olingo.ext.proxy.api.annotations.Singleton(name = "VipCustomer", container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface VipCustomer extends org.apache.olingo.ext.proxy.api.SingleQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer>,AbstractSingleton<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection> {
-}


[2/3] [OLINGO-366] provide some improvements around streams, singletons and delete requests

Posted by fm...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java
index 1e90f5a..7455df7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java
@@ -59,9 +59,9 @@ public interface BackOrderLine2
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getOrderLineStream();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getOrderLineStream();
 
-    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamType _orderLineStream);
+    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamValue _orderLineStream);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderId", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Car.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Car.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Car.java
index d65a2ea..24377bb 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Car.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Car.java
@@ -55,9 +55,9 @@ public interface Car
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getPhoto();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getPhoto();
 
-    void setPhoto(org.apache.olingo.ext.proxy.api.EdmStreamType _photo);
+    void setPhoto(org.apache.olingo.ext.proxy.api.EdmStreamValue _photo);
     
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Video", 
@@ -78,9 +78,9 @@ public interface Car
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getVideo();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getVideo();
 
-    void setVideo(org.apache.olingo.ext.proxy.api.EdmStreamType _video);
+    void setVideo(org.apache.olingo.ext.proxy.api.EdmStreamValue _video);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "VIN", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java
index a753d84..f469246 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java
@@ -28,21 +28,33 @@ public interface ComplexToCategory
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Term", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Term", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getTerm();
 
     void setTerm(java.lang.String _term);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Scheme", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Scheme", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getScheme();
 
     void setScheme(java.lang.String _scheme);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Label", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Label", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getLabel();
 
     void setLabel(java.lang.String _label);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
index 574fd61..bf7819f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
@@ -28,14 +28,22 @@ public interface ConcurrencyInfo
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Token", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Token", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getToken();
 
     void setToken(java.lang.String _token);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QueriedDateTime", type = "Edm.DateTime", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "QueriedDateTime", 
+                type = "Edm.DateTime", 
+                nullable = true)
     java.sql.Timestamp getQueriedDateTime();
 
     void setQueriedDateTime(java.sql.Timestamp _queriedDateTime);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
index 76191be..5f8f1d6 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
@@ -28,42 +28,66 @@ public interface ContactDetails
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "EmailBag", type = "Edm.String", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "EmailBag", 
+                type = "Edm.String", 
+                nullable = false)
     org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmailBag();
 
     void setEmailBag(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emailBag);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AlternativeNames", type = "Edm.String", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "AlternativeNames", 
+                type = "Edm.String", 
+                nullable = false)
     org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getAlternativeNames();
 
     void setAlternativeNames(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _alternativeNames);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ContactAlias", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "ContactAlias", 
+                type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases", 
+                nullable = true)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Aliases getContactAlias();
 
     void setContactAlias(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Aliases _contactAlias);
 
         
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomePhone", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "HomePhone", 
+                type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", 
+                nullable = true)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone getHomePhone();
 
     void setHomePhone(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone _homePhone);
 
         
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "WorkPhone", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "WorkPhone", 
+                type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", 
+                nullable = true)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone getWorkPhone();
 
     void setWorkPhone(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone _workPhone);
 
         
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MobilePhoneBag", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "MobilePhoneBag", 
+                type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", 
+                nullable = false)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.PhoneCollection getMobilePhoneBag();
 
     void setMobilePhoneBag(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.PhoneCollection _mobilePhoneBag);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java
index c088d06..eb52f83 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java
@@ -55,9 +55,9 @@ public interface Customer
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getThumbnail();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getThumbnail();
 
-    void setThumbnail(org.apache.olingo.ext.proxy.api.EdmStreamType _thumbnail);
+    void setThumbnail(org.apache.olingo.ext.proxy.api.EdmStreamValue _thumbnail);
     
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Video", 
@@ -78,9 +78,9 @@ public interface Customer
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getVideo();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getVideo();
 
-    void setVideo(org.apache.olingo.ext.proxy.api.EdmStreamType _video);
+    void setVideo(org.apache.olingo.ext.proxy.api.EdmStreamValue _video);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CustomerId", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
index acf138f..3b4fd45 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
@@ -28,21 +28,33 @@ public interface Dimensions
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Width", type = "Edm.Decimal", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Width", 
+                type = "Edm.Decimal", 
+                nullable = false)
     java.math.BigDecimal getWidth();
 
     void setWidth(java.math.BigDecimal _width);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Height", type = "Edm.Decimal", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Height", 
+                type = "Edm.Decimal", 
+                nullable = false)
     java.math.BigDecimal getHeight();
 
     void setHeight(java.math.BigDecimal _height);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Depth", type = "Edm.Decimal", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Depth", 
+                type = "Edm.Decimal", 
+                nullable = false)
     java.math.BigDecimal getDepth();
 
     void setDepth(java.math.BigDecimal _depth);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/DiscontinuedProduct.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/DiscontinuedProduct.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/DiscontinuedProduct.java
index 23a4567..c5126ca 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/DiscontinuedProduct.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/DiscontinuedProduct.java
@@ -58,9 +58,9 @@ public interface DiscontinuedProduct
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getPicture();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getPicture();
 
-    void setPicture(org.apache.olingo.ext.proxy.api.EdmStreamType _picture);
+    void setPicture(org.apache.olingo.ext.proxy.api.EdmStreamValue _picture);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductId", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/OrderLine.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/OrderLine.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/OrderLine.java
index 8555414..59161bb 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/OrderLine.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/OrderLine.java
@@ -57,9 +57,9 @@ public interface OrderLine
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getOrderLineStream();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getOrderLineStream();
 
-    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamType _orderLineStream);
+    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamValue _orderLineStream);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderId", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Phone.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Phone.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Phone.java
index d235dfe..a68e4d5 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Phone.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Phone.java
@@ -28,14 +28,22 @@ public interface Phone
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PhoneNumber", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "PhoneNumber", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getPhoneNumber();
 
     void setPhoneNumber(java.lang.String _phoneNumber);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Extension", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Extension", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getExtension();
 
     void setExtension(java.lang.String _extension);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Product.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Product.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Product.java
index e40f16e..484bd00 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Product.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Product.java
@@ -56,9 +56,9 @@ public interface Product
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getPicture();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getPicture();
 
-    void setPicture(org.apache.olingo.ext.proxy.api.EdmStreamType _picture);
+    void setPicture(org.apache.olingo.ext.proxy.api.EdmStreamValue _picture);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductId", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java
index b4e0551..ce848b1 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java
@@ -25,7 +25,9 @@ import org.apache.olingo.ext.proxy.api.ComplexType;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import java.io.Serializable;
+import java.io.InputStream;
 //CHECKSTYLE:ON (Maven checkstyle)
 
 @org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV3")
@@ -57,4 +59,6 @@ public interface DefaultContainer extends PersistenceManager {
   <T extends ComplexType, NEC extends ComplexCollection<T>> NEC newComplexCollection(Class<NEC> ref);
 
   <T extends Serializable, NEC extends PrimitiveCollection<T>> NEC newPrimitiveCollection(Class<T> ref);
+
+  EdmStreamValue newEdmStreamValue(String contentType, InputStream stream);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java
index e15eba4..1bf84be 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java
@@ -28,84 +28,132 @@ public interface ContactDetails
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstContacted", type = "Edm.Binary", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "FirstContacted", 
+                type = "Edm.Binary", 
+                nullable = true)
     byte[] getFirstContacted();
 
     void setFirstContacted(byte[] _firstContacted);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastContacted", type = "Edm.DateTimeOffset", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "LastContacted", 
+                type = "Edm.DateTimeOffset", 
+                nullable = false)
     java.sql.Timestamp getLastContacted();
 
     void setLastContacted(java.sql.Timestamp _lastContacted);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Contacted", type = "Edm.DateTime", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Contacted", 
+                type = "Edm.DateTime", 
+                nullable = false)
     java.sql.Timestamp getContacted();
 
     void setContacted(java.sql.Timestamp _contacted);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GUID", type = "Edm.Guid", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "GUID", 
+                type = "Edm.Guid", 
+                nullable = false)
     java.util.UUID getGUID();
 
     void setGUID(java.util.UUID _gUID);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PreferedContactTime", type = "Edm.Time", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "PreferedContactTime", 
+                type = "Edm.Time", 
+                nullable = false)
     java.math.BigDecimal getPreferedContactTime();
 
     void setPreferedContactTime(java.math.BigDecimal _preferedContactTime);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Byte", type = "Edm.Byte", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Byte", 
+                type = "Edm.Byte", 
+                nullable = false)
     java.lang.Short getByte();
 
     void setByte(java.lang.Short _byte);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SignedByte", type = "Edm.SByte", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "SignedByte", 
+                type = "Edm.SByte", 
+                nullable = false)
     java.lang.Byte getSignedByte();
 
     void setSignedByte(java.lang.Byte _signedByte);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Double", type = "Edm.Double", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Double", 
+                type = "Edm.Double", 
+                nullable = false)
     java.lang.Double getDouble();
 
     void setDouble(java.lang.Double _double);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Single", type = "Edm.Single", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Single", 
+                type = "Edm.Single", 
+                nullable = false)
     java.lang.Float getSingle();
 
     void setSingle(java.lang.Float _single);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Short", type = "Edm.Int16", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Short", 
+                type = "Edm.Int16", 
+                nullable = false)
     java.lang.Short getShort();
 
     void setShort(java.lang.Short _short);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Int", type = "Edm.Int32", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Int", 
+                type = "Edm.Int32", 
+                nullable = false)
     java.lang.Integer getInt();
 
     void setInt(java.lang.Integer _int);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Long", type = "Edm.Int64", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Long", 
+                type = "Edm.Int64", 
+                nullable = false)
     java.lang.Long getLong();
 
     void setLong(java.lang.Long _long);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/TestContext.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/TestContext.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/TestContext.java
index 0c87752..f3a3f85 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/TestContext.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/TestContext.java
@@ -25,7 +25,9 @@ import org.apache.olingo.ext.proxy.api.ComplexType;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import java.io.Serializable;
+import java.io.InputStream;
 //CHECKSTYLE:ON (Maven checkstyle)
 
 @org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.PrimitiveKeysService")
@@ -83,4 +85,6 @@ public interface TestContext extends PersistenceManager {
   <T extends ComplexType, NEC extends ComplexCollection<T>> NEC newComplexCollection(Class<NEC> ref);
 
   <T extends Serializable, NEC extends PrimitiveCollection<T>> NEC newPrimitiveCollection(Class<T> ref);
+
+  EdmStreamValue newEdmStreamValue(String contentType, InputStream stream);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
index a4bd080..d95cbe8 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
@@ -26,7 +26,9 @@ import org.apache.olingo.ext.proxy.api.ComplexType;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import java.io.Serializable;
+import java.io.InputStream;
 //CHECKSTYLE:ON (Maven checkstyle)
 
 @org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
@@ -151,4 +153,6 @@ public interface DefaultContainer extends PersistenceManager {
   <T extends ComplexType, NEC extends ComplexCollection<T>> NEC newComplexCollection(Class<NEC> ref);
 
   <T extends Serializable, NEC extends PrimitiveCollection<T>> NEC newPrimitiveCollection(Class<T> ref);
+
+  EdmStreamValue newEdmStreamValue(String contentType, InputStream stream);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Aliases.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Aliases.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Aliases.java
index 2b049bd..1dca6a7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Aliases.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Aliases.java
@@ -28,7 +28,11 @@ public interface Aliases
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AlternativeNames", type = "Edm.String", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "AlternativeNames", 
+                type = "Edm.String", 
+                nullable = false)
     org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getAlternativeNames();
 
     void setAlternativeNames(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _alternativeNames);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java
index 52b9c08..22e2625 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java
@@ -28,21 +28,33 @@ public interface AuditInfo
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ModifiedDate", type = "Edm.DateTime", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "ModifiedDate", 
+                type = "Edm.DateTime", 
+                nullable = false)
     java.sql.Timestamp getModifiedDate();
 
     void setModifiedDate(java.sql.Timestamp _modifiedDate);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ModifiedBy", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "ModifiedBy", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getModifiedBy();
 
     void setModifiedBy(java.lang.String _modifiedBy);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Concurrency", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Concurrency", 
+                type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo", 
+                nullable = true)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ConcurrencyInfo getConcurrency();
 
     void setConcurrency(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ConcurrencyInfo _concurrency);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java
index 9e80aa2..99f7bf6 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java
@@ -59,9 +59,9 @@ public interface BackOrderLine
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getOrderLineStream();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getOrderLineStream();
 
-    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamType _orderLineStream);
+    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamValue _orderLineStream);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderId", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java
index 84b26c1..de71571 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java
@@ -59,9 +59,9 @@ public interface BackOrderLine2
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getOrderLineStream();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getOrderLineStream();
 
-    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamType _orderLineStream);
+    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamValue _orderLineStream);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderId", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Car.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Car.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Car.java
index d94b633..74a5ef7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Car.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Car.java
@@ -55,9 +55,9 @@ public interface Car
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getPhoto();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getPhoto();
 
-    void setPhoto(org.apache.olingo.ext.proxy.api.EdmStreamType _photo);
+    void setPhoto(org.apache.olingo.ext.proxy.api.EdmStreamValue _photo);
     
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Video", 
@@ -78,9 +78,9 @@ public interface Car
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getVideo();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getVideo();
 
-    void setVideo(org.apache.olingo.ext.proxy.api.EdmStreamType _video);
+    void setVideo(org.apache.olingo.ext.proxy.api.EdmStreamValue _video);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "VIN", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java
index 0eb7354..56fbd2a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java
@@ -28,21 +28,33 @@ public interface ComplexToCategory
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Term", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Term", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getTerm();
 
     void setTerm(java.lang.String _term);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Scheme", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Scheme", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getScheme();
 
     void setScheme(java.lang.String _scheme);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Label", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Label", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getLabel();
 
     void setLabel(java.lang.String _label);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexWithAllPrimitiveTypes.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexWithAllPrimitiveTypes.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexWithAllPrimitiveTypes.java
index 5f072bb..8354369 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexWithAllPrimitiveTypes.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexWithAllPrimitiveTypes.java
@@ -28,98 +28,154 @@ public interface ComplexWithAllPrimitiveTypes
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Binary", type = "Edm.Binary", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Binary", 
+                type = "Edm.Binary", 
+                nullable = true)
     byte[] getBinary();
 
     void setBinary(byte[] _binary);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Boolean", type = "Edm.Boolean", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Boolean", 
+                type = "Edm.Boolean", 
+                nullable = false)
     java.lang.Boolean getBoolean();
 
     void setBoolean(java.lang.Boolean _boolean);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Byte", type = "Edm.Byte", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Byte", 
+                type = "Edm.Byte", 
+                nullable = false)
     java.lang.Short getByte();
 
     void setByte(java.lang.Short _byte);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DateTime", type = "Edm.DateTime", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "DateTime", 
+                type = "Edm.DateTime", 
+                nullable = false)
     java.sql.Timestamp getDateTime();
 
     void setDateTime(java.sql.Timestamp _dateTime);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Decimal", type = "Edm.Decimal", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Decimal", 
+                type = "Edm.Decimal", 
+                nullable = false)
     java.math.BigDecimal getDecimal();
 
     void setDecimal(java.math.BigDecimal _decimal);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Double", type = "Edm.Double", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Double", 
+                type = "Edm.Double", 
+                nullable = false)
     java.lang.Double getDouble();
 
     void setDouble(java.lang.Double _double);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Int16", type = "Edm.Int16", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Int16", 
+                type = "Edm.Int16", 
+                nullable = false)
     java.lang.Short getInt16();
 
     void setInt16(java.lang.Short _int16);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Int32", type = "Edm.Int32", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Int32", 
+                type = "Edm.Int32", 
+                nullable = false)
     java.lang.Integer getInt32();
 
     void setInt32(java.lang.Integer _int32);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Int64", type = "Edm.Int64", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Int64", 
+                type = "Edm.Int64", 
+                nullable = false)
     java.lang.Long getInt64();
 
     void setInt64(java.lang.Long _int64);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SByte", type = "Edm.SByte", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "SByte", 
+                type = "Edm.SByte", 
+                nullable = false)
     java.lang.Byte getSByte();
 
     void setSByte(java.lang.Byte _sByte);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "String", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "String", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getString();
 
     void setString(java.lang.String _string);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Single", type = "Edm.Single", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Single", 
+                type = "Edm.Single", 
+                nullable = false)
     java.lang.Float getSingle();
 
     void setSingle(java.lang.Float _single);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeographyPoint", type = "Edm.GeographyPoint", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "GeographyPoint", 
+                type = "Edm.GeographyPoint", 
+                nullable = true)
     org.apache.olingo.commons.api.edm.geo.Point getGeographyPoint();
 
     void setGeographyPoint(org.apache.olingo.commons.api.edm.geo.Point _geographyPoint);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeometryPoint", type = "Edm.GeometryPoint", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "GeometryPoint", 
+                type = "Edm.GeometryPoint", 
+                nullable = true)
     org.apache.olingo.commons.api.edm.geo.Point getGeometryPoint();
 
     void setGeometryPoint(org.apache.olingo.commons.api.edm.geo.Point _geometryPoint);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
index ca3a773..6e20706 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
@@ -28,14 +28,22 @@ public interface ConcurrencyInfo
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Token", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Token", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getToken();
 
     void setToken(java.lang.String _token);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QueriedDateTime", type = "Edm.DateTime", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "QueriedDateTime", 
+                type = "Edm.DateTime", 
+                nullable = true)
     java.sql.Timestamp getQueriedDateTime();
 
     void setQueriedDateTime(java.sql.Timestamp _queriedDateTime);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
index c325131..40cb586 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
@@ -28,42 +28,66 @@ public interface ContactDetails
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "EmailBag", type = "Edm.String", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "EmailBag", 
+                type = "Edm.String", 
+                nullable = false)
     org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmailBag();
 
     void setEmailBag(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emailBag);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AlternativeNames", type = "Edm.String", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "AlternativeNames", 
+                type = "Edm.String", 
+                nullable = false)
     org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getAlternativeNames();
 
     void setAlternativeNames(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _alternativeNames);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ContactAlias", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "ContactAlias", 
+                type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases", 
+                nullable = true)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Aliases getContactAlias();
 
     void setContactAlias(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Aliases _contactAlias);
 
         
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomePhone", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "HomePhone", 
+                type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", 
+                nullable = true)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Phone getHomePhone();
 
     void setHomePhone(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Phone _homePhone);
 
         
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "WorkPhone", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "WorkPhone", 
+                type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", 
+                nullable = true)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Phone getWorkPhone();
 
     void setWorkPhone(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Phone _workPhone);
 
         
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MobilePhoneBag", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "MobilePhoneBag", 
+                type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", 
+                nullable = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.PhoneCollection getMobilePhoneBag();
 
     void setMobilePhoneBag(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.PhoneCollection _mobilePhoneBag);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java
index 886ded4..5212c22 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java
@@ -55,9 +55,9 @@ public interface Customer
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getThumbnail();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getThumbnail();
 
-    void setThumbnail(org.apache.olingo.ext.proxy.api.EdmStreamType _thumbnail);
+    void setThumbnail(org.apache.olingo.ext.proxy.api.EdmStreamValue _thumbnail);
     
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Video", 
@@ -78,9 +78,9 @@ public interface Customer
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getVideo();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getVideo();
 
-    void setVideo(org.apache.olingo.ext.proxy.api.EdmStreamType _video);
+    void setVideo(org.apache.olingo.ext.proxy.api.EdmStreamValue _video);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CustomerId", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
index 98c7a10..d743fb2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
@@ -28,21 +28,33 @@ public interface Dimensions
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Width", type = "Edm.Decimal", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Width", 
+                type = "Edm.Decimal", 
+                nullable = false)
     java.math.BigDecimal getWidth();
 
     void setWidth(java.math.BigDecimal _width);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Height", type = "Edm.Decimal", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Height", 
+                type = "Edm.Decimal", 
+                nullable = false)
     java.math.BigDecimal getHeight();
 
     void setHeight(java.math.BigDecimal _height);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Depth", type = "Edm.Decimal", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Depth", 
+                type = "Edm.Decimal", 
+                nullable = false)
     java.math.BigDecimal getDepth();
 
     void setDepth(java.math.BigDecimal _depth);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/DiscontinuedProduct.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/DiscontinuedProduct.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/DiscontinuedProduct.java
index f1de800..50fae22 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/DiscontinuedProduct.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/DiscontinuedProduct.java
@@ -58,9 +58,9 @@ public interface DiscontinuedProduct
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getPicture();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getPicture();
 
-    void setPicture(org.apache.olingo.ext.proxy.api.EdmStreamType _picture);
+    void setPicture(org.apache.olingo.ext.proxy.api.EdmStreamValue _picture);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductId", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/OrderLine.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/OrderLine.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/OrderLine.java
index 51e402c..4a1e581 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/OrderLine.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/OrderLine.java
@@ -56,9 +56,9 @@ public interface OrderLine
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getOrderLineStream();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getOrderLineStream();
 
-    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamType _orderLineStream);
+    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamValue _orderLineStream);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderId", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Phone.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Phone.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Phone.java
index 6db36fe..032b6fb 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Phone.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Phone.java
@@ -28,14 +28,22 @@ public interface Phone
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PhoneNumber", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "PhoneNumber", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getPhoneNumber();
 
     void setPhoneNumber(java.lang.String _phoneNumber);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Extension", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Extension", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getExtension();
 
     void setExtension(java.lang.String _extension);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Product.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Product.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Product.java
index d2c41ec..233b801 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Product.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Product.java
@@ -57,9 +57,9 @@ public interface Product
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getPicture();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getPicture();
 
-    void setPicture(org.apache.olingo.ext.proxy.api.EdmStreamType _picture);
+    void setPicture(org.apache.olingo.ext.proxy.api.EdmStreamValue _picture);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductId", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/APIBasicDesignTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/APIBasicDesignTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/APIBasicDesignTestITCase.java
index b0dbde4..1997287 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/APIBasicDesignTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/APIBasicDesignTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;
@@ -38,7 +39,6 @@ import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
-import org.apache.olingo.ext.proxy.commons.EdmStreamTypeImpl;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.DefaultContainer;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ContactDetailsCollection;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.PhoneCollection;
@@ -210,10 +210,20 @@ public class APIBasicDesignTestITCase extends AbstractTestITCase {
 
     service.getContext().detachAll();
 
-    // Delete order ...
+    // (1) Delete by key (see EntityCreateTestITCase)
+    getContainer().getOrders().delete(1105);
+    assertNull(getContainer().getOrders().getByKey(1105));
+
+    service.getContext().detachAll(); // detach to show the second delete case
+
+    // (2) Delete by object (see EntityCreateTestITCase)
     getContainer().getOrders().delete(getContainer().getOrders().getByKey(1105));
-    actual = getContainer().getOrders().getByKey(1105);
-    assertNull(actual);
+    assertNull(getContainer().getOrders().getByKey(1105));
+
+    // (3) Delete by invoking delete method on the object itself
+    service.getContext().detachAll(); // detach to show the third delete case
+    getContainer().getOrders().getByKey(1105).delete();
+    assertNull(getContainer().getOrders().getByKey(1105));
 
     getContainer().flush();
 
@@ -255,8 +265,7 @@ public class APIBasicDesignTestITCase extends AbstractTestITCase {
     final PersonDetail personDetail = dcontainer.getPersonDetails().getByKey(1); // NO HTTP Request
 
     // 1 HTTP Request to add an Edm.Stream property value about MediaEditLink Photo
-    personDetail.setPhoto(
-            new EdmStreamTypeImpl(new EdmStreamValue("application/octet-stream", IOUtils.toInputStream(random))));
+    personDetail.setPhoto(dcontainer.newEdmStreamValue("application/octet-stream", IOUtils.toInputStream(random)));
 
     dcontainer.flush();
 
@@ -362,4 +371,9 @@ public class APIBasicDesignTestITCase extends AbstractTestITCase {
     // Not supported by the test service BTW generates a single request as expected: 
     // <service root>/Orders(1)/CustomerForOrder/Emails
   }
+
+  @Test
+  public void workingWithSingletons() {
+    assertNotNull(container.getCompany().getVipCustomer().load().getPersonID());
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AbstractTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AbstractTestITCase.java
index ca1166f..6a74d50 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AbstractTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AbstractTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/BoundOperationInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/BoundOperationInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/BoundOperationInvokeTestITCase.java
index 8e4f87c..bc4b604 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/BoundOperationInvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/BoundOperationInvokeTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/ContextTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/ContextTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/ContextTestITCase.java
index 041d6ec..19bd356 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/ContextTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/ContextTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/DerivedTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/DerivedTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/DerivedTypeTestITCase.java
index 8779e11..77fb3d1 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/DerivedTypeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/DerivedTypeTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertNotNull;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityCreateTestITCase.java
index aaff867..6f05792 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityCreateTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v4;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityUpdateTestITCase.java
index d2fd6b4..35f7754 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityUpdateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityUpdateTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v4;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/MediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/MediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/MediaEntityTestITCase.java
index 6d117e6..a6188cb 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/MediaEntityTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/MediaEntityTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;
@@ -81,7 +82,7 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
     final UUID uuid = UUID.fromString("f89dee73-af9f-4cd4-b330-db93c25ff3c7");
     final Advertisement adv = getContainer().getAdvertisements().getByKey(uuid);
     final String random = RandomStringUtils.random(124, "abcdefghijklmnopqrstuvwxyz");
-    adv.uploadStream(new EdmStreamValue("application/octet-stream", IOUtils.toInputStream(random)));
+    adv.uploadStream(getContainer().newEdmStreamValue("application/octet-stream", IOUtils.toInputStream(random)));
     getContainer().flush();
     assertEquals(random,
             IOUtils.toString(getContainer().getAdvertisements().getByKey(uuid).loadStream().getStream()));
@@ -93,7 +94,7 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
     final String random = RandomStringUtils.random(124, "abcdefghijklmnopqrstuvwxyz");
 
     final Advertisement adv = getContainer().newEntityInstance(Advertisement.class);
-    adv.uploadStream(new EdmStreamValue("application/octet-stream", IOUtils.toInputStream(random)));
+    adv.uploadStream(getContainer().newEdmStreamValue("application/octet-stream", IOUtils.toInputStream(random)));
     adv.setAirDate(new Timestamp(Calendar.getInstance().getTimeInMillis()));
 
     getContainer().getAdvertisements().add(adv);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OperationImportInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OperationImportInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OperationImportInvokeTestITCase.java
index 1f70cc9..044b4f7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OperationImportInvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OperationImportInvokeTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v4;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/DemoService.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/DemoService.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/DemoService.java
index 64b4af8..73ed1cf 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/DemoService.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/DemoService.java
@@ -26,7 +26,9 @@ import org.apache.olingo.ext.proxy.api.ComplexType;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import java.io.Serializable;
+import java.io.InputStream;
 //CHECKSTYLE:ON (Maven checkstyle)
 
 @org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
@@ -73,4 +75,6 @@ public interface DemoService extends PersistenceManager {
   <T extends ComplexType, NEC extends ComplexCollection<T>> NEC newComplexCollection(Class<NEC> ref);
 
   <T extends Serializable, NEC extends PrimitiveCollection<T>> NEC newPrimitiveCollection(Class<T> ref);
+
+  EdmStreamValue newEdmStreamValue(String contentType, InputStream stream);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetail.java
index 80305b6..4abf8c8 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetail.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetail.java
@@ -170,9 +170,9 @@ public interface PersonDetail
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getPhoto();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getPhoto();
 
-    void setPhoto(org.apache.olingo.ext.proxy.api.EdmStreamType _photo);
+    void setPhoto(org.apache.olingo.ext.proxy.api.EdmStreamValue _photo);
     
 
     @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Person", 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/DefaultContainer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/DefaultContainer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/DefaultContainer.java
index 39dea9d..54f2b36 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/DefaultContainer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/DefaultContainer.java
@@ -25,7 +25,9 @@ import org.apache.olingo.ext.proxy.api.ComplexType;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import java.io.Serializable;
+import java.io.InputStream;
 //CHECKSTYLE:ON (Maven checkstyle)
 
 @org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
@@ -56,4 +58,6 @@ public interface DefaultContainer extends PersistenceManager {
   <T extends ComplexType, NEC extends ComplexCollection<T>> NEC newComplexCollection(Class<NEC> ref);
 
   <T extends Serializable, NEC extends PrimitiveCollection<T>> NEC newPrimitiveCollection(Class<T> ref);
+
+  EdmStreamValue newEdmStreamValue(String contentType, InputStream stream);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Boss.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Boss.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Boss.java
deleted file mode 100644
index 25f1d7c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Boss.java
+++ /dev/null
@@ -1,29 +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.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice;
-
-//CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractSingleton;
-//CHECKSTYLE:ON (Maven checkstyle)
-
-
-
-@org.apache.olingo.ext.proxy.api.annotations.Singleton(name = "Boss", container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface Boss extends org.apache.olingo.ext.proxy.api.SingleQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person>,AbstractSingleton<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection> {
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Company.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Company.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Company.java
deleted file mode 100644
index 788ab93..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Company.java
+++ /dev/null
@@ -1,29 +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.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice;
-
-//CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractSingleton;
-//CHECKSTYLE:ON (Maven checkstyle)
-
-
-
-@org.apache.olingo.ext.proxy.api.annotations.Singleton(name = "Company", container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface Company extends org.apache.olingo.ext.proxy.api.SingleQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company>,AbstractSingleton<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCollection> {
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/DefaultStoredPI.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/DefaultStoredPI.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/DefaultStoredPI.java
deleted file mode 100644
index ae0bb91..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/DefaultStoredPI.java
+++ /dev/null
@@ -1,29 +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.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice;
-
-//CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractSingleton;
-//CHECKSTYLE:ON (Maven checkstyle)
-
-
-
-@org.apache.olingo.ext.proxy.api.annotations.Singleton(name = "DefaultStoredPI", container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface DefaultStoredPI extends org.apache.olingo.ext.proxy.api.SingleQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI>,AbstractSingleton<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPICollection> {
-}


[3/3] git commit: [OLINGO-366] provide some improvements around streams, singletons and delete requests

Posted by fm...@apache.org.
[OLINGO-366] provide some improvements around streams, singletons and delete requests


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

Branch: refs/heads/master
Commit: 2822fe60e83c5507fd03c3caa3214c91eba95fae
Parents: 1c5b33e
Author: fmartelli <fa...@gmail.com>
Authored: Wed Jul 23 12:55:53 2014 +0200
Committer: fmartelli <fa...@gmail.com>
Committed: Wed Jul 23 12:55:53 2014 +0200

----------------------------------------------------------------------
 .../olingo/ext/proxy/api/EdmStreamType.java     | 24 -----
 .../olingo/ext/proxy/api/EdmStreamValue.java    | 24 ++---
 .../olingo/ext/proxy/api/StructuredType.java    | 10 +++
 .../ext/proxy/api/annotations/Singleton.java    |  2 +-
 .../commons/AbstractInvocationHandler.java      | 79 ++++++++++++++--
 .../commons/AbstractPersistenceManager.java     | 30 +++++--
 .../AbstractStructuredInvocationHandler.java    | 51 +++++++----
 .../ext/proxy/commons/EdmStreamTypeHandler.java | 70 ---------------
 .../ext/proxy/commons/EdmStreamTypeImpl.java    | 36 --------
 .../proxy/commons/EdmStreamValueHandler.java    | 94 ++++++++++++++++++++
 .../EntityContainerInvocationHandler.java       | 56 +++++++++---
 .../proxy/commons/EntityInvocationHandler.java  |  5 +-
 .../commons/EntitySetInvocationHandler.java     | 55 +-----------
 .../NonTransactionalPersistenceManagerImpl.java |  6 +-
 .../commons/SingletonInvocationHandler.java     | 62 -------------
 .../olingo/ext/proxy/context/EntityContext.java | 17 ++++
 .../olingo/ext/pojogen/AbstractPOJOGenMojo.java | 11 ---
 .../src/main/resources/container.vm             |  6 +-
 .../src/main/resources/entityType.vm            |  2 +-
 .../src/main/resources/singleton.vm             | 48 ----------
 .../src/main/resources/v30/complexType.vm       | 18 +++-
 .../src/main/resources/v40/complexType.vm       | 12 ++-
 .../src/main/resources/v40/container.vm         |  5 +-
 .../src/main/resources/v40/singleton.vm         | 30 -------
 .../java/org/apache/olingo/fit/V4Services.java  | 23 +++--
 .../V40/VipCustomer/1/entity.full.json          |  7 ++
 .../main/resources/V40/VipCustomer/1/entity.xml | 44 +++++++++
 .../olingo/fit/proxy/v3/AbstractTestITCase.java |  1 +
 .../olingo/fit/proxy/v3/ContextTestITCase.java  |  1 +
 .../fit/proxy/v3/EntityCreateTestITCase.java    |  1 +
 .../fit/proxy/v3/EntityUpdateTestITCase.java    |  1 +
 .../olingo/fit/proxy/v3/InvokeTestITCase.java   |  1 +
 .../fit/proxy/v3/MediaEntityTestITCase.java     |  9 +-
 .../olingo/fit/proxy/v3/OpenTypeTestITCase.java |  1 +
 .../astoriadefaultservice/DefaultContainer.java |  4 +
 .../astoriadefaultservice/types/Aliases.java    |  6 +-
 .../astoriadefaultservice/types/AuditInfo.java  | 18 +++-
 .../types/BackOrderLine.java                    |  4 +-
 .../types/BackOrderLine2.java                   |  4 +-
 .../astoriadefaultservice/types/Car.java        |  8 +-
 .../types/ComplexToCategory.java                | 18 +++-
 .../types/ConcurrencyInfo.java                  | 12 ++-
 .../types/ContactDetails.java                   | 36 ++++++--
 .../astoriadefaultservice/types/Customer.java   |  8 +-
 .../astoriadefaultservice/types/Dimensions.java | 18 +++-
 .../types/DiscontinuedProduct.java              |  4 +-
 .../astoriadefaultservice/types/OrderLine.java  |  4 +-
 .../astoriadefaultservice/types/Phone.java      | 12 ++-
 .../astoriadefaultservice/types/Product.java    |  4 +-
 .../opentypesservicev3/DefaultContainer.java    |  4 +
 .../types/ContactDetails.java                   | 72 ++++++++++++---
 .../primitivekeysservice/TestContext.java       |  4 +
 .../astoriadefaultservice/DefaultContainer.java |  4 +
 .../astoriadefaultservice/types/Aliases.java    |  6 +-
 .../astoriadefaultservice/types/AuditInfo.java  | 18 +++-
 .../types/BackOrderLine.java                    |  4 +-
 .../types/BackOrderLine2.java                   |  4 +-
 .../astoriadefaultservice/types/Car.java        |  8 +-
 .../types/ComplexToCategory.java                | 18 +++-
 .../types/ComplexWithAllPrimitiveTypes.java     | 84 ++++++++++++++---
 .../types/ConcurrencyInfo.java                  | 12 ++-
 .../types/ContactDetails.java                   | 36 ++++++--
 .../astoriadefaultservice/types/Customer.java   |  8 +-
 .../astoriadefaultservice/types/Dimensions.java | 18 +++-
 .../types/DiscontinuedProduct.java              |  4 +-
 .../astoriadefaultservice/types/OrderLine.java  |  4 +-
 .../astoriadefaultservice/types/Phone.java      | 12 ++-
 .../astoriadefaultservice/types/Product.java    |  4 +-
 .../fit/proxy/v4/APIBasicDesignTestITCase.java  | 26 ++++--
 .../olingo/fit/proxy/v4/AbstractTestITCase.java |  1 +
 .../v4/BoundOperationInvokeTestITCase.java      |  1 +
 .../olingo/fit/proxy/v4/ContextTestITCase.java  |  1 +
 .../fit/proxy/v4/DerivedTypeTestITCase.java     |  1 +
 .../fit/proxy/v4/EntityCreateTestITCase.java    |  1 +
 .../fit/proxy/v4/EntityUpdateTestITCase.java    |  1 +
 .../fit/proxy/v4/MediaEntityTestITCase.java     |  5 +-
 .../v4/OperationImportInvokeTestITCase.java     |  1 +
 .../proxy/v4/demo/odatademo/DemoService.java    |  4 +
 .../v4/demo/odatademo/types/PersonDetail.java   |  4 +-
 .../opentypesservicev4/DefaultContainer.java    |  4 +
 .../odata/services/odatawcfservice/Boss.java    | 29 ------
 .../odata/services/odatawcfservice/Company.java | 29 ------
 .../odatawcfservice/DefaultStoredPI.java        | 29 ------
 .../odatawcfservice/InMemoryEntities.java       | 34 +++++--
 .../services/odatawcfservice/LabourUnion.java   | 29 ------
 .../services/odatawcfservice/PublicCompany.java | 29 ------
 .../services/odatawcfservice/VipCustomer.java   | 29 ------
 87 files changed, 874 insertions(+), 710 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/EdmStreamType.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/EdmStreamType.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/EdmStreamType.java
deleted file mode 100644
index b65021a..0000000
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/EdmStreamType.java
+++ /dev/null
@@ -1,24 +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.ext.proxy.api;
-
-public interface EdmStreamType {
-
-  EdmStreamValue load();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/EdmStreamValue.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/EdmStreamValue.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/EdmStreamValue.java
index fe5c345..cc5bc32 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/EdmStreamValue.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/EdmStreamValue.java
@@ -19,28 +19,14 @@
 package org.apache.olingo.ext.proxy.api;
 
 import java.io.InputStream;
-import org.apache.commons.io.IOUtils;
 
-public class EdmStreamValue {
+public interface EdmStreamValue {
 
-  private final String contentType;
+  EdmStreamValue load();
 
-  private final InputStream stream;
+  String getContentType();
 
-  public EdmStreamValue(final String contentType, final InputStream stream) {
-    this.contentType = contentType;
-    this.stream = stream;
-  }
+  InputStream getStream();
 
-  public String getContentType() {
-    return contentType;
-  }
-
-  public InputStream getStream() {
-    return stream;
-  }
-
-  public void close() {
-    IOUtils.closeQuietly(this.stream);
-  }
+  void close();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredType.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredType.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredType.java
index da149dd..d1c7083 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredType.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredType.java
@@ -22,4 +22,14 @@ package org.apache.olingo.ext.proxy.api;
  * Marker interface for Entity and complex type.
  */
 public interface StructuredType extends java.io.Serializable {
+
+  /**
+   * Delete object.
+   */
+  void delete();
+
+  /**
+   * Delete a specific property.
+   */
+  void delete(String name);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/Singleton.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/Singleton.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/Singleton.java
index 0c96698..be120da 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/Singleton.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/Singleton.java
@@ -28,7 +28,7 @@ import java.lang.annotation.Target;
  * <tt>getSimpleName()</tt>.
  */
 @Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
+@Target(ElementType.METHOD)
 public @interface Singleton {
 
   String name();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/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 ab2fe5c..2f5276d 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
@@ -18,6 +18,7 @@
  */
 package org.apache.olingo.ext.proxy.commons;
 
+import java.lang.annotation.Annotation;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -43,9 +44,12 @@ import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
 import org.apache.olingo.commons.api.domain.CommonODataProperty;
 import org.apache.olingo.commons.api.domain.ODataInvokeResult;
 import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.edm.Edm;
+import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmOperation;
 import org.apache.olingo.commons.api.edm.EdmReturnType;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 import org.apache.olingo.ext.proxy.AbstractService;
@@ -53,16 +57,26 @@ import org.apache.olingo.ext.proxy.api.ComplexCollection;
 import org.apache.olingo.ext.proxy.api.ComplexType;
 import org.apache.olingo.ext.proxy.api.OperationType;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.annotations.Singleton;
+import org.apache.olingo.ext.proxy.context.AttachedEntityStatus;
 import org.apache.olingo.ext.proxy.context.Context;
 import org.apache.olingo.ext.proxy.utils.ClassUtils;
 import org.apache.olingo.ext.proxy.utils.CoreUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 abstract class AbstractInvocationHandler implements InvocationHandler {
 
   private static final long serialVersionUID = 358520026931462958L;
 
+  /**
+   * Logger.
+   */
+  protected static final Logger LOG = LoggerFactory.getLogger(AbstractInvocationHandler.class);
+
   protected AbstractService<?> service;
 
   protected AbstractInvocationHandler(final AbstractService<?> service) {
@@ -116,7 +130,7 @@ abstract class AbstractInvocationHandler implements InvocationHandler {
             Thread.currentThread().getContextClassLoader(),
             new Class<?>[] {typeCollectionRef},
             new EntityCollectionInvocationHandler(service, items, typeCollectionRef, targetEntitySetURI,
-                    uri == null ? null : getClient().newURIBuilder(uri.toASCIIString())));
+            uri == null ? null : getClient().newURIBuilder(uri.toASCIIString())));
   }
 
   protected Object getEntitySetProxy(
@@ -270,10 +284,10 @@ abstract class AbstractInvocationHandler implements InvocationHandler {
           res = Proxy.newProxyInstance(
                   Thread.currentThread().getContextClassLoader(),
                   new Class<?>[] {ref}, new ComplexCollectionInvocationHandler(
-                          service,
-                          items,
-                          itemRef,
-                          null));
+                  service,
+                  items,
+                  itemRef,
+                  null));
         } else {
           final List items = new ArrayList();
 
@@ -284,10 +298,10 @@ abstract class AbstractInvocationHandler implements InvocationHandler {
           res = Proxy.newProxyInstance(
                   Thread.currentThread().getContextClassLoader(),
                   new Class<?>[] {PrimitiveCollection.class}, new PrimitiveCollectionInvocationHandler(
-                          service,
-                          items,
-                          null,
-                          null));
+                  service,
+                  items,
+                  null,
+                  null));
         }
       } else {
         if (edmType.isComplexType()) {
@@ -342,6 +356,53 @@ abstract class AbstractInvocationHandler implements InvocationHandler {
     return res;
   }
 
+  protected boolean isDeleted(final EntityInvocationHandler handler) {
+    return getContext().entityContext().getStatus(handler) == AttachedEntityStatus.DELETED;
+  }
+
+  protected static CommonURIBuilder<?> buildEntitySetURI(
+          final Class<?> ref,
+          final AbstractService<?> service) {
+
+    final String containerNS;
+    final String entitySetName;
+    Annotation ann = ref.getAnnotation(EntitySet.class);
+    if (ann instanceof EntitySet) {
+      containerNS = EntitySet.class.cast(ann).container();
+      entitySetName = EntitySet.class.cast(ann).name();
+    } else {
+      ann = ref.getAnnotation(Singleton.class);
+      if (ann instanceof Singleton) {
+        containerNS = Singleton.class.cast(ann).container();
+        entitySetName = Singleton.class.cast(ann).name();
+      } else {
+        containerNS = null;
+        entitySetName = null;
+      }
+    }
+
+    return buildEntitySetURI(containerNS, entitySetName, service);
+  }
+
+  protected static CommonURIBuilder<?> buildEntitySetURI(
+          final String containerNS, final String entitySetName, final AbstractService<?> service) {
+
+    final CommonURIBuilder<?> uriBuilder = service.getClient().newURIBuilder();
+    final Edm edm = service.getClient().getCachedEdm();
+
+    final StringBuilder entitySetSegment = new StringBuilder();
+    if (StringUtils.isNotBlank(containerNS)) {
+      final EdmEntityContainer container = edm.getEntityContainer(new FullQualifiedName(containerNS));
+      if (!container.isDefault()) {
+        entitySetSegment.append(container.getFullQualifiedName().toString()).append('.');
+      }
+    }
+
+    entitySetSegment.append(entitySetName);
+    uriBuilder.appendEntitySetSegment(entitySetSegment.toString());
+    return uriBuilder;
+  }
+
   @Override
   public boolean equals(final Object obj) {
     return EqualsBuilder.reflectionEquals(this, obj);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
index 101b809..38d08da 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
@@ -34,6 +34,7 @@ import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.PersistenceManager;
 import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import org.apache.olingo.ext.proxy.context.AttachedEntity;
 import org.apache.olingo.ext.proxy.context.AttachedEntityStatus;
 import org.apache.olingo.ext.proxy.context.EntityLinkDesc;
@@ -50,7 +51,6 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 
 abstract class AbstractPersistenceManager implements PersistenceManager {
 
@@ -92,6 +92,12 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
     // remove null values
     items.normalize();
 
+    for (URI uri : service.getContext().entityContext().getFurtherDeletes()) {
+      pos++;
+      queueDelete(uri, null, changes);
+      items.put(null, pos);
+    }
+
     final List<ODataRuntimeException> result = new ArrayList<ODataRuntimeException>();
     if (!items.isEmpty()) {
       result.addAll(doFlush(changes, items));
@@ -461,17 +467,31 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
           final EntityInvocationHandler handler,
           final CommonODataEntity entity,
           final PersistenceChanges changeset) {
-
     final URI deleteURI = entity.getEditLink() == null ? handler.getEntityURI() : entity.getEditLink();
+    changeset.addChange(buildDeleteRequest(deleteURI, handler.getETag(), changeset), handler);
+  }
+
+  private void queueDelete(
+          final URI deleteURI,
+          final String etag,
+          final PersistenceChanges changeset) {
+    changeset.addChange(buildDeleteRequest(deleteURI, etag, changeset), null);
+  }
+
+  private ODataDeleteRequest buildDeleteRequest(
+          final URI deleteURI,
+          final String etag,
+          final PersistenceChanges changeset) {
+
     LOG.debug("Delete '{}'", deleteURI);
 
     final ODataDeleteRequest req = service.getClient().getCUDRequestFactory().getDeleteRequest(deleteURI);
 
-    if (StringUtils.isNotBlank(handler.getETag())) {
-      req.setIfMatch(handler.getETag());
+    if (StringUtils.isNotBlank(etag)) {
+      req.setIfMatch(etag);
     }
 
-    changeset.addChange(req, handler);
+    return req;
   }
 
   private AttachedEntityStatus resolveNavigationLink(

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/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 00a7064..1e0c2b5 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
@@ -40,15 +40,12 @@ import org.apache.olingo.commons.api.domain.CommonODataProperty;
 import org.apache.olingo.commons.api.domain.ODataValue;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.ext.proxy.api.ComplexCollection;
-import org.apache.olingo.ext.proxy.api.EdmStreamType;
 import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
 import org.apache.olingo.ext.proxy.api.annotations.Namespace;
 import org.apache.olingo.ext.proxy.context.EntityUUID;
 import org.apache.olingo.ext.proxy.utils.CoreUtils;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import java.lang.reflect.Method;
 import java.lang.reflect.ParameterizedType;
@@ -66,16 +63,12 @@ import java.util.Set;
 import org.apache.commons.io.IOUtils;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.ext.proxy.api.annotations.ComplexType;
+import org.apache.olingo.ext.proxy.context.EntityContext;
 
 public abstract class AbstractStructuredInvocationHandler extends AbstractInvocationHandler {
 
   private static final long serialVersionUID = 2629912294765040037L;
 
-  /**
-   * Logger.
-   */
-  protected static final Logger LOG = LoggerFactory.getLogger(AbstractStructuredInvocationHandler.class);
-
   protected CommonURIBuilder<?> uri;
 
   protected URI baseURI;
@@ -106,7 +99,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
 
   protected final Map<String, EdmStreamValue> streamedPropertyChanges = new HashMap<String, EdmStreamValue>();
 
-  protected final Map<String, EdmStreamType> streamedPropertyCache = new HashMap<String, EdmStreamType>();
+  protected final Map<String, EdmStreamValue> streamedPropertyCache = new HashMap<String, EdmStreamValue>();
 
   protected AbstractStructuredInvocationHandler(
           final Class<?> typeRef,
@@ -235,6 +228,29 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
     }
   }
 
+  public void delete(final String name) {
+    if (baseURI != null) {
+      getContext().entityContext().addFurtherDeletes(
+              getClient().newURIBuilder(baseURI.toASCIIString()).appendPropertySegment(name).build());
+    }
+  }
+
+  public void delete() {
+    final EntityContext entityContext = getContext().entityContext();
+
+    if (this instanceof EntityInvocationHandler) {
+      final EntityInvocationHandler handler = EntityInvocationHandler.class.cast(this);
+
+      if (entityContext.isAttached(handler)) {
+        entityContext.setStatus(handler, AttachedEntityStatus.DELETED);
+      } else {
+        entityContext.attach(handler, AttachedEntityStatus.DELETED);
+      }
+    } else if (baseURI != null) {
+      entityContext.addFurtherDeletes(baseURI);
+    }
+  }
+
   protected void attach() {
     attach(AttachedEntityStatus.ATTACHED, false);
   }
@@ -259,19 +275,20 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
       Object res;
       Class<?> ref = ClassUtils.getTypeClass(type);
 
-      if (ref == EdmStreamType.class) {
+      if (ref == EdmStreamValue.class) {
         if (streamedPropertyCache.containsKey(name)) {
           res = streamedPropertyCache.get(name);
         } else if (streamedPropertyChanges.containsKey(name)) {
-          res = new EdmStreamTypeImpl(streamedPropertyChanges.get(name));
+          res = streamedPropertyChanges.get(name);
         } else {
           res = Proxy.newProxyInstance(
                   Thread.currentThread().getContextClassLoader(),
-                  new Class<?>[] {EdmStreamType.class}, new EdmStreamTypeHandler(
-                  getClient().newURIBuilder(baseURI.toASCIIString()).appendPropertySegment(name),
+                  new Class<?>[] {EdmStreamValue.class}, new EdmStreamValueHandler(
+                  baseURI == null
+                  ? null : getClient().newURIBuilder(baseURI.toASCIIString()).appendPropertySegment(name).build(),
                   service));
 
-          streamedPropertyCache.put(name, EdmStreamType.class.cast(res));
+          streamedPropertyCache.put(name, EdmStreamValue.class.cast(res));
         }
 
         return res;
@@ -375,7 +392,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
 
   protected void setPropertyValue(final Property property, final Object value) {
     if (EdmPrimitiveTypeKind.Stream.getFullQualifiedName().toString().equalsIgnoreCase(property.type())) {
-      setStreamedProperty(property, (EdmStreamType) value);
+      setStreamedProperty(property, (EdmStreamValue) value);
     } else {
       addPropertyChanges(property.name(), value);
 
@@ -402,7 +419,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
     attach(AttachedEntityStatus.CHANGED);
   }
 
-  private void setStreamedProperty(final Property property, final EdmStreamType input) {
+  private void setStreamedProperty(final Property property, final EdmStreamValue input) {
     final Object obj = streamedPropertyChanges.get(property.name());
     if (obj instanceof InputStream) {
       IOUtils.closeQuietly((InputStream) obj);
@@ -605,7 +622,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
   }
 
   public void clearQueryOptions() {
-    this.uri = getClient().newURIBuilder(baseURI.toASCIIString());
+    this.uri = baseURI == null ? null : getClient().newURIBuilder(baseURI.toASCIIString());
   }
 
   protected abstract void load();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamTypeHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamTypeHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamTypeHandler.java
deleted file mode 100644
index 109a7d8..0000000
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamTypeHandler.java
+++ /dev/null
@@ -1,70 +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.ext.proxy.commons;
-
-import java.io.InputStream;
-import java.lang.reflect.Method;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.ext.proxy.AbstractService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
-import org.apache.olingo.ext.proxy.api.EdmStreamValue;
-
-public class EdmStreamTypeHandler extends AbstractInvocationHandler {
-
-  private static final long serialVersionUID = 2629912294765040047L;
-
-  /**
-   * Logger.
-   */
-  private static final Logger LOG = LoggerFactory.getLogger(EdmStreamTypeHandler.class);
-
-  private CommonURIBuilder<?> uri;
-
-  private EdmStreamValue value = null;
-
-  protected EdmStreamTypeHandler(
-          final CommonURIBuilder<?> uri,
-          final AbstractService<?> service) {
-
-    super(service);
-    this.uri = uri;
-  }
-
-  @Override
-  public Object invoke(Object o, Method method, Object[] args) throws Throwable {
-    if (isSelfMethod(method, args)) {
-      return invokeSelfMethod(method, args);
-    } else {
-      throw new NoSuchMethodException(method.getName());
-    }
-  }
-
-  public EdmStreamValue load() {
-    if (value == null && this.uri != null) {
-      final ODataRetrieveResponse<InputStream> res =
-              getClient().getRetrieveRequestFactory().getMediaRequest(this.uri.build()).execute();
-      value = new EdmStreamValue(res.getContentType(), res.getBody());
-    }
-
-    return value;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamTypeImpl.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamTypeImpl.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamTypeImpl.java
deleted file mode 100644
index f139a11..0000000
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamTypeImpl.java
+++ /dev/null
@@ -1,36 +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.ext.proxy.commons;
-
-import org.apache.olingo.ext.proxy.api.EdmStreamType;
-import org.apache.olingo.ext.proxy.api.EdmStreamValue;
-
-public class EdmStreamTypeImpl implements EdmStreamType {
-
-  private final EdmStreamValue value;
-
-  public EdmStreamTypeImpl(final EdmStreamValue value) {
-    this.value = value;
-  }
-
-  @Override
-  public EdmStreamValue load() {
-    return value;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamValueHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamValueHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamValueHandler.java
new file mode 100644
index 0000000..a910d7a
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EdmStreamValueHandler.java
@@ -0,0 +1,94 @@
+/*
+ * 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.ext.proxy.commons;
+
+import java.io.InputStream;
+import java.lang.reflect.Method;
+import java.net.URI;
+import org.apache.commons.io.IOUtils;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.ext.proxy.AbstractService;
+
+public class EdmStreamValueHandler extends AbstractInvocationHandler {
+
+  private static final long serialVersionUID = 2629912294765040047L;
+
+  private URI uri;
+
+  private InputStream stream;
+
+  private String contentType;
+
+  protected EdmStreamValueHandler(
+          final URI uri,
+          final AbstractService<?> service) {
+
+    super(service);
+    this.uri = uri;
+  }
+
+  protected EdmStreamValueHandler(
+          final String contentType,
+          final InputStream stream,
+          final URI uri,
+          final AbstractService<?> service) {
+
+    super(service);
+    this.contentType = contentType;
+    this.stream = stream;
+    this.uri = uri;
+  }
+
+  @Override
+  public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
+    if ("load".equals(method.getName())) {
+      load();
+      return proxy;
+    } else {
+      if (isSelfMethod(method, args)) {
+        return invokeSelfMethod(method, args);
+      } else {
+        throw new NoSuchMethodException(method.getName());
+      }
+    }
+  }
+
+  public void load() {
+    if (this.uri != null) {
+      final ODataRetrieveResponse<InputStream> res =
+              getClient().getRetrieveRequestFactory().getMediaRequest(this.uri).execute();
+      contentType = res.getContentType();
+      stream = res.getBody();
+    }
+  }
+
+  public String getContentType() {
+    return contentType;
+  }
+
+  public InputStream getStream() {
+    return stream;
+  }
+
+  public void close() {
+    IOUtils.closeQuietly(stream);
+    contentType = null;
+    stream = null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
index a8db2b4..32cff3d 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
@@ -18,6 +18,7 @@
  */
 package org.apache.olingo.ext.proxy.commons;
 
+import java.io.InputStream;
 import java.io.Serializable;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.olingo.ext.proxy.AbstractService;
@@ -27,11 +28,17 @@ import org.apache.olingo.ext.proxy.api.annotations.Singleton;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
+import java.net.URI;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.ext.proxy.api.ComplexCollection;
 import org.apache.olingo.ext.proxy.api.ComplexType;
+import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.context.EntityUUID;
 import org.apache.olingo.ext.proxy.utils.ClassUtils;
 
 public final class EntityContainerInvocationHandler extends AbstractInvocationHandler {
@@ -96,26 +103,45 @@ public final class EntityContainerInvocationHandler extends AbstractInvocationHa
     } else {
       final Class<?> returnType = method.getReturnType();
 
-      final EntitySet entitySet = returnType.getAnnotation(EntitySet.class);
-      if (entitySet == null) {
-        final Singleton singleton = returnType.getAnnotation(Singleton.class);
-        if (singleton != null) {
-          return Proxy.newProxyInstance(
-                  Thread.currentThread().getContextClassLoader(),
-                  new Class<?>[] {returnType},
-                  SingletonInvocationHandler.getInstance(returnType, service));
-        }
-      } else {
+      if (returnType.isAnnotationPresent(EntitySet.class)) {
         return Proxy.newProxyInstance(
                 Thread.currentThread().getContextClassLoader(),
                 new Class<?>[] {returnType},
                 EntitySetInvocationHandler.getInstance(returnType, service));
+      } else if (returnType.isAnnotationPresent(org.apache.olingo.ext.proxy.api.annotations.EntityType.class)) {
+        return getSingleton(method);
       }
 
       throw new NoSuchMethodException(method.getName());
     }
   }
 
+  private Object getSingleton(final Method method) throws IllegalArgumentException {
+    final Class<?> typeRef = method.getReturnType();
+    final Singleton singleton = method.getAnnotation(Singleton.class);
+
+    final URI uri = buildEntitySetURI(singleton.container(), singleton.name(), service).build();
+    final EntityUUID uuid = new EntityUUID(uri, typeRef);
+    LOG.debug("Ask for singleton '{}'", typeRef.getSimpleName());
+
+    EntityInvocationHandler handler = getContext().entityContext().getEntity(uuid);
+
+    if (handler == null) {
+      final CommonODataEntity entity = getClient().getObjectFactory().newEntity(new FullQualifiedName(
+              typeRef.getAnnotation(Namespace.class).value(), ClassUtils.getEntityTypeName(typeRef)));
+
+      handler = EntityInvocationHandler.getInstance(entity, uri, uri, typeRef, service);
+    } else if (isDeleted(handler)) {
+      // object deleted
+      LOG.debug("Singleton '{}' has been deleted", typeRef.getSimpleName());
+      handler = null;
+    }
+
+    return handler == null
+            ? null
+            : Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class<?>[] {typeRef}, handler);
+  }
+
   @SuppressWarnings("unchecked")
   public <NE extends EntityType> NE newEntityInstance(final Class<NE> ref) {
     final EntityInvocationHandler handler = EntityInvocationHandler.getInstance(ref, getService());
@@ -160,4 +186,14 @@ public final class EntityContainerInvocationHandler extends AbstractInvocationHa
             new Class<?>[] {PrimitiveCollection.class},
             new PrimitiveCollectionInvocationHandler<T>(getService(), ref));
   }
+
+  @SuppressWarnings("unchecked")
+  public EdmStreamValue newEdmStreamValue(
+          final String contentType, final InputStream stream) {
+
+    return EdmStreamValue.class.cast(Proxy.newProxyInstance(
+            Thread.currentThread().getContextClassLoader(),
+            new Class<?>[] {EdmStreamValue.class},
+            new EdmStreamValueHandler(contentType, stream, null, getService())));
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/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 bf70d84..5a08418 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
@@ -308,7 +308,10 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
       }
 
       final ODataRetrieveResponse<InputStream> res = retrieveReq.execute();
-      this.stream = new EdmStreamValue(res.getContentType(), res.getBody());
+      this.stream = EdmStreamValue.class.cast(Proxy.newProxyInstance(
+              Thread.currentThread().getContextClassLoader(),
+              new Class<?>[] {EdmStreamValue.class},
+              new EdmStreamValueHandler(res.getContentType(), res.getBody(), contentSource, service)));
     }
 
     return this.stream;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/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 5b8cc62..b96b830 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
@@ -33,28 +33,20 @@ import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
 import org.apache.olingo.ext.proxy.api.AbstractSingleton;
 import org.apache.olingo.ext.proxy.api.Search;
 import org.apache.olingo.ext.proxy.api.SingleQuery;
-import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
 import org.apache.olingo.ext.proxy.context.AttachedEntityStatus;
 import org.apache.olingo.ext.proxy.context.EntityContext;
 import org.apache.olingo.ext.proxy.context.EntityUUID;
 import org.apache.olingo.ext.proxy.utils.ClassUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import java.io.Serializable;
-import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 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.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.EntityType;
 import org.apache.olingo.ext.proxy.api.annotations.Namespace;
-import org.apache.olingo.ext.proxy.api.annotations.Singleton;
 
 class EntitySetInvocationHandler<
         T extends EntityType, KEY extends Serializable, EC extends EntityCollection<T>>
@@ -63,14 +55,9 @@ class EntitySetInvocationHandler<
 
   private static final long serialVersionUID = 2629912294765040027L;
 
-  /**
-   * Logger.
-   */
-  private static final Logger LOG = LoggerFactory.getLogger(EntitySetInvocationHandler.class);
-
   @SuppressWarnings({"rawtypes", "unchecked"})
   static EntitySetInvocationHandler getInstance(final Class<?> ref, final AbstractService<?> service) {
-    return new EntitySetInvocationHandler(ref, service, buildURI(ref, service));
+    return new EntitySetInvocationHandler(ref, service, buildEntitySetURI(ref, service));
   }
 
   @SuppressWarnings({"rawtypes", "unchecked"})
@@ -78,42 +65,6 @@ class EntitySetInvocationHandler<
     return new EntitySetInvocationHandler(ref, service, service.getClient().newURIBuilder(uri.toASCIIString()));
   }
 
-  private static CommonURIBuilder<?> buildURI(
-          final Class<?> ref,
-          final AbstractService<?> service) {
-    final CommonURIBuilder<?> uriBuilder = service.getClient().newURIBuilder();
-
-    final Edm edm = service.getClient().getCachedEdm();
-    final String containerNS;
-    final String entitySetName;
-    Annotation ann = ref.getAnnotation(EntitySet.class);
-    if (ann instanceof EntitySet) {
-      containerNS = EntitySet.class.cast(ann).container();
-      entitySetName = EntitySet.class.cast(ann).name();
-    } else {
-      ann = ref.getAnnotation(Singleton.class);
-      if (ann instanceof Singleton) {
-        containerNS = Singleton.class.cast(ann).container();
-        entitySetName = Singleton.class.cast(ann).name();
-      } else {
-        containerNS = null;
-        entitySetName = null;
-      }
-    }
-
-    final StringBuilder entitySetSegment = new StringBuilder();
-    if (StringUtils.isNotBlank(containerNS)) {
-      final EdmEntityContainer container = edm.getEntityContainer(new FullQualifiedName(containerNS));
-      if (!container.isDefault()) {
-        entitySetSegment.append(container.getFullQualifiedName().toString()).append('.');
-      }
-    }
-
-    entitySetSegment.append(entitySetName);
-    uriBuilder.appendEntitySetSegment(entitySetSegment.toString());
-    return uriBuilder;
-  }
-
   @SuppressWarnings("unchecked")
   protected EntitySetInvocationHandler(
           final Class<?> ref,
@@ -311,10 +262,6 @@ class EntitySetInvocationHandler<
     }
   }
 
-  private boolean isDeleted(final EntityInvocationHandler handler) {
-    return getContext().entityContext().getStatus(handler) == AttachedEntityStatus.DELETED;
-  }
-
   @Override
   public EntitySetIterator<T, KEY, EC> iterator() {
     return new EntitySetIterator<T, KEY, EC>(getClient().newURIBuilder(this.uri.build().toASCIIString()).build(), this);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/NonTransactionalPersistenceManagerImpl.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/NonTransactionalPersistenceManagerImpl.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/NonTransactionalPersistenceManagerImpl.java
index 78b25a8..9196693 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/NonTransactionalPersistenceManagerImpl.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/NonTransactionalPersistenceManagerImpl.java
@@ -74,11 +74,13 @@ public class NonTransactionalPersistenceManagerImpl extends AbstractPersistenceM
           response = ((ODataBasicRequest<?>) req).execute();
         }
 
-        if (response instanceof ODataEntityCreateResponse && response.getStatusCode() == 201) {
+        if (entry.getValue() != null
+                && response instanceof ODataEntityCreateResponse && response.getStatusCode() == 201) {
           entry.getValue().setEntity(((ODataEntityCreateResponse<?>) response).getBody());
           responses.put(virtualContentID, entry.getValue().getEntityURI());
           LOG.debug("Upgrade created object '{}'", entry.getValue());
-        } else if (response instanceof ODataEntityUpdateResponse && response.getStatusCode() == 200) {
+        } else if (entry.getValue() != null
+                && response instanceof ODataEntityUpdateResponse && response.getStatusCode() == 200) {
           entry.getValue().setEntity(((ODataEntityUpdateResponse<?>) response).getBody());
           responses.put(virtualContentID, entry.getValue().getEntityURI());
           LOG.debug("Upgrade updated object '{}'", entry.getValue());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/SingletonInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/SingletonInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/SingletonInvocationHandler.java
deleted file mode 100644
index c5fb533..0000000
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/SingletonInvocationHandler.java
+++ /dev/null
@@ -1,62 +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.ext.proxy.commons;
-
-import java.io.Serializable;
-import java.lang.reflect.Method;
-import org.apache.olingo.ext.proxy.AbstractService;
-import org.apache.olingo.ext.proxy.api.EntityCollection;
-import org.apache.olingo.ext.proxy.api.AbstractSingleton;
-import org.apache.olingo.ext.proxy.api.EntityType;
-
-public class SingletonInvocationHandler<
-        T extends EntityType, KEY extends Serializable, EC extends EntityCollection<T>>
-        extends AbstractInvocationHandler
-        implements AbstractSingleton<T, KEY, EC> {
-
-  private static final long serialVersionUID = 2450269053734776228L;
-
-  private final EntitySetInvocationHandler<?, ?, ?> entitySetHandler;
-
-  @SuppressWarnings({"rawtypes", "unchecked"})
-  static SingletonInvocationHandler getInstance(final Class<?> ref, final AbstractService<?> service) {
-    return new SingletonInvocationHandler(ref, service);
-  }
-
-  @SuppressWarnings({"rawtypes", "unchecked"})
-  private SingletonInvocationHandler(final Class<?> ref, final AbstractService<?> service) {
-
-    super(service);
-    this.entitySetHandler = EntitySetInvocationHandler.getInstance(ref, service);
-  }
-
-  @Override
-  public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
-    if (isSelfMethod(method, args)) {
-      return invokeSelfMethod(method, args);
-    } else {
-      throw new NoSuchMethodException(method.getName());
-    }
-  }
-
-  @SuppressWarnings("unchecked")
-  public T load() {
-    return (T) this.entitySetHandler.execute().iterator().next();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityContext.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityContext.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityContext.java
index ea30345..945273e 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityContext.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityContext.java
@@ -18,6 +18,7 @@
  */
 package org.apache.olingo.ext.proxy.context;
 
+import java.net.URI;
 import org.apache.olingo.ext.proxy.commons.EntityInvocationHandler;
 
 import java.util.ArrayList;
@@ -49,6 +50,13 @@ public class EntityContext implements Iterable<AttachedEntity> {
           new LinkedHashMap<EntityInvocationHandler, AttachedEntityStatus>();
 
   /**
+   * Deletes to be performed excluding entities.
+   * <br/>
+   * Attachment order will be maintained.
+   */
+  private final List<URI> furtherDeletes = new ArrayList<URI>();
+
+  /**
    * Attaches an entity with status <tt>NEW</tt>.
    * <br/>
    * Use this method to attach a new created entity.
@@ -116,6 +124,7 @@ public class EntityContext implements Iterable<AttachedEntity> {
   public void detachAll() {
     allAttachedEntities.clear();
     searchableEntities.clear();
+    furtherDeletes.clear();
   }
 
   /**
@@ -197,4 +206,12 @@ public class EntityContext implements Iterable<AttachedEntity> {
     }
     return res.iterator();
   }
+
+  public List<URI> getFurtherDeletes() {
+    return furtherDeletes;
+  }
+
+  public void addFurtherDeletes(final URI uri) {
+    furtherDeletes.add(uri);
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java b/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
index 438aa1c..d23d92b 100644
--- a/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
+++ b/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
@@ -52,9 +52,7 @@ import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmEnumType;
 import org.apache.olingo.commons.api.edm.EdmSchema;
-import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
@@ -347,15 +345,6 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
             objs.put("container", container);
             parseObj(base, pkg, "entitySet", utility.capitalize(entitySet.getName()) + ".java", objs);
           }
-
-          if (ODataServiceVersion.valueOf(getVersion().toUpperCase()).compareTo(ODataServiceVersion.V40) >= 0) {
-            for (EdmSingleton singleton : container.getSingletons()) {
-              objs.clear();
-              objs.put("singleton", singleton);
-              objs.put("container", container);
-              parseObj(base, pkg, "singleton", utility.capitalize(singleton.getName()) + ".java", objs);
-            }
-          }
         }
       }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/pojogen-maven-plugin/src/main/resources/container.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/container.vm b/ext/pojogen-maven-plugin/src/main/resources/container.vm
index 4208df2..843ff88 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/container.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/container.vm
@@ -31,6 +31,7 @@ import org.apache.olingo.ext.proxy.api.ComplexType;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 #foreach($ns in $namespaces)
 import #if($basePackage)${basePackage}.#end${ns}.types.*;
 #end
@@ -45,8 +46,9 @@ import org.apache.olingo.commons.api.edm.geo.Point;
 import org.apache.olingo.commons.api.edm.geo.Polygon;
 import java.math.BigDecimal;
 import java.net.URI;
-import java.util.UUID;
 import java.io.Serializable;
+import java.io.InputStream;
+import java.util.UUID;
 import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
@@ -119,4 +121,6 @@ public interface $utility.capitalize($container.Name) extends PersistenceManager
   <T extends ComplexType, NEC extends ComplexCollection<T>> NEC newComplexCollection(Class<NEC> ref);
 
   <T extends Serializable, NEC extends PrimitiveCollection<T>> NEC newPrimitiveCollection(Class<T> ref);
+
+  EdmStreamValue newEdmStreamValue(String contentType, InputStream stream);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/entityType.vm b/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
index eef0666..42c7549 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
@@ -79,7 +79,7 @@ public interface $utility.capitalize($entityType.Name)
     #if($keys.contains($property.Name))@Key#end
 
     #if($property.Type.FullQualifiedName.toString().equals("Edm.Stream"))#*
-      *##set( $returnType = "org.apache.olingo.ext.proxy.api.EdmStreamType" )#*
+      *##set( $returnType = "org.apache.olingo.ext.proxy.api.EdmStreamValue" )#*
     *##else#*
       *##set( $returnType = $utility.getJavaType($property.Type, $property.Collection) )#*
     *##end

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/pojogen-maven-plugin/src/main/resources/singleton.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/singleton.vm b/ext/pojogen-maven-plugin/src/main/resources/singleton.vm
deleted file mode 100644
index bcee703..0000000
--- a/ext/pojogen-maven-plugin/src/main/resources/singleton.vm
+++ /dev/null
@@ -1,48 +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 ${package};
-
-//CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractSingleton;
-import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
-import org.apache.olingo.ext.proxy.api.annotations.Singleton;
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
-#foreach($ns in $namespaces)
-import #if($basePackage)${basePackage}.#end${ns}.types.*;
-#end
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-//CHECKSTYLE:ON (Maven checkstyle)
-
-#parse( "${odataVersion}/singleton.vm" )
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/pojogen-maven-plugin/src/main/resources/v30/complexType.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/v30/complexType.vm b/ext/pojogen-maven-plugin/src/main/resources/v30/complexType.vm
index 4c2689e..6fa23f4 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/v30/complexType.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/v30/complexType.vm
@@ -28,12 +28,22 @@ public interface $utility.capitalize($complexType.Name)
 
 #set( $complexProps = [] )
 #foreach($propertyName in $complexType.PropertyNames)
-    #set($property = $complexType.getProperty($propertyName))
+    #set($property = $complexType.getProperty($propertyName))#*
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "$property.Name", type = "$property.Type.FullQualifiedName.toString()", nullable = $property.Nullable)
-    $utility.getJavaType($property.Type, $property.Collection) get$utility.capitalize($property.Name)();
+    *##if($property.Type.FullQualifiedName.toString().equals("Edm.Stream"))#*
+      *##set( $returnType = "org.apache.olingo.ext.proxy.api.EdmStreamValue" )#*
+    *##else#*
+      *##set( $returnType = $utility.getJavaType($property.Type, $property.Collection) )#*
+    *##end
 
-    void set$utility.capitalize($property.Name)($utility.getJavaType($property.Type, $property.Collection) _$utility.uncapitalize($property.Name));
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "$property.Name", 
+                type = "$property.Type.FullQualifiedName.toString()", 
+                nullable = $property.Nullable)
+    $returnType get$utility.capitalize($property.Name)();
+
+    void set$utility.capitalize($property.Name)($returnType _$utility.uncapitalize($property.Name));
 
     #if($utility.isComplex($property.Type.FullQualifiedName))#*
       *##set( $adding = $complexProps.add($property) )

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/pojogen-maven-plugin/src/main/resources/v40/complexType.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/v40/complexType.vm b/ext/pojogen-maven-plugin/src/main/resources/v40/complexType.vm
index 6b2d0d9..ce4b0fc 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/v40/complexType.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/v40/complexType.vm
@@ -32,7 +32,13 @@ public interface $utility.capitalize($complexType.Name)
 #set( $complexProps = [] )
 #set( $contained = [] )
 #foreach($propertyName in $complexType.PropertyNames)
-    #set($property = $complexType.getProperty($propertyName))
+    #set($property = $complexType.getProperty($propertyName))#*
+
+    *##if($property.Type.FullQualifiedName.toString().equals("Edm.Stream"))#*
+      *##set( $returnType = "org.apache.olingo.ext.proxy.api.EdmStreamValue" )#*
+    *##else#*
+      *##set( $returnType = $utility.getJavaType($property.Type, $property.Collection) )#*
+    *##end
 
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "$property.Name", 
                 type = "$property.Type.getFullQualifiedName().toString()",
@@ -45,9 +51,9 @@ public interface $utility.capitalize($complexType.Name)
                 unicode = #if($property.isUnicode())$property.isUnicode()#{else}false#end,
                 collation = "#if($property.getCollation())$property.getCollation()#end",
                 srid = "#if($property.getSRID())$property.getSRID()#end")
-    $utility.getJavaType($property.Type, $property.Collection) get$utility.capitalize($property.Name)();
+    $returnType get$utility.capitalize($property.Name)();
 
-    void set$utility.capitalize($property.Name)($utility.getJavaType($property.Type, $property.Collection) _$utility.uncapitalize($property.Name));
+    void set$utility.capitalize($property.Name)($returnType _$utility.uncapitalize($property.Name));
 
     #if($utility.isComplex($property.Type.FullQualifiedName))#*
       *##set( $adding = $complexProps.add($property) )

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/pojogen-maven-plugin/src/main/resources/v40/container.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/v40/container.vm b/ext/pojogen-maven-plugin/src/main/resources/v40/container.vm
index fb8c4b3..7527717 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/v40/container.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/v40/container.vm
@@ -17,6 +17,9 @@
  * under the License.
  *#
 #foreach($singleton in $container.Singletons)
-    $utility.capitalize($singleton.Name) get$utility.capitalize($singleton.Name)();
+    @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+                name = "$singleton.Name",
+                container = "${container.Namespace}.${container.Name}")
+    $utility.getJavaType($singleton.EntityType) get$utility.capitalize($singleton.Name)();
 
 #end

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/ext/pojogen-maven-plugin/src/main/resources/v40/singleton.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/v40/singleton.vm b/ext/pojogen-maven-plugin/src/main/resources/v40/singleton.vm
deleted file mode 100644
index 734ddfb..0000000
--- a/ext/pojogen-maven-plugin/src/main/resources/v40/singleton.vm
+++ /dev/null
@@ -1,30 +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.
- *#
-#set( $keys = $utility.getEntityKeyType($singleton) )
-#if( $keys.size() > 1 )
-  #set( $type = $utility.getEdmType($singleton).EntityType.Name + "Key" )
-#elseif( $keys.size() == 1 )
-  #set( $type = $keys.values().iterator().next() )
-#else
-  #set( $type = "" )
-#end
-
-@org.apache.olingo.ext.proxy.api.annotations.Singleton(name = "$singleton.Name", container = "$container.FullQualifiedName.toString()")
-public interface $utility.capitalize($singleton.Name) extends org.apache.olingo.ext.proxy.api.SingleQuery<$utility.getJavaType($singleton.EntityType)>,AbstractSingleton<$utility.getJavaType($singleton.EntityType), $type, $utility.getJavaType($singleton.EntityType)Collection> {
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/main/java/org/apache/olingo/fit/V4Services.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4Services.java b/fit/src/main/java/org/apache/olingo/fit/V4Services.java
index 0c01f49..8278e53 100644
--- a/fit/src/main/java/org/apache/olingo/fit/V4Services.java
+++ b/fit/src/main/java/org/apache/olingo/fit/V4Services.java
@@ -373,7 +373,7 @@ public class V4Services extends AbstractServices {
     return StringUtils.isBlank(filter) && StringUtils.isBlank(search)
             ? NumberUtils.isNumber(type)
             ? super.getEntityInternal(
-                    uriInfo.getRequestUri().toASCIIString(), accept, "People", type, format, null, null)
+            uriInfo.getRequestUri().toASCIIString(), accept, "People", type, format, null, null)
             : super.getEntitySet(accept, "People", type)
             : super.getEntitySet(uriInfo, accept, "People", top, skip, format, count, filter, orderby, skiptoken);
   }
@@ -754,7 +754,7 @@ public class V4Services extends AbstractServices {
 
       return utils.getValue().createResponse(
               FSManager.instance(version).readFile(Constants.get(version, ConstantKey.REF)
-                      + File.separatorChar + filename, utils.getKey()),
+              + File.separatorChar + filename, utils.getKey()),
               null,
               utils.getKey());
     } catch (Exception e) {
@@ -794,7 +794,7 @@ public class V4Services extends AbstractServices {
 
     final Response response =
             getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
-                    accept, entitySetName, entityId, accept, StringUtils.EMPTY, StringUtils.EMPTY);
+            accept, entitySetName, entityId, accept, StringUtils.EMPTY, StringUtils.EMPTY);
     return response.getStatus() >= 400
             ? super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, changes)
             : super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, entitySetName, entityId, changes);
@@ -1020,7 +1020,7 @@ public class V4Services extends AbstractServices {
       // 1. Fetch the contained entity to be removed
       final InputStream entry = FSManager.instance(version).
               readFile(containedPath(entityId, containedEntitySetName).
-                      append('(').append(containedEntityId).append(')').toString(), Accept.ATOM);
+              append('(').append(containedEntityId).append(')').toString(), Accept.ATOM);
       final ResWrap<Entity> container = atomDeserializer.toEntity(entry);
 
       // 2. Remove the contained entity
@@ -1294,7 +1294,7 @@ public class V4Services extends AbstractServices {
 
       final ResWrap<Property> result = new ResWrap<Property>(
               URI.create(Constants.get(version, ConstantKey.ODATA_METADATA_PREFIX)
-                      + "Microsoft.Test.OData.Services.ODataWCFService.Address"),
+              + "Microsoft.Test.OData.Services.ODataWCFService.Address"),
               null,
               entity.getProperty("address"));
 
@@ -1362,4 +1362,17 @@ public class V4Services extends AbstractServices {
 
     return xml.createResponse(null, null, null, Status.NO_CONTENT);
   }
+
+  @GET
+  @Path("/Company/VipCustomer")
+  public Response getVipCustomer(
+          @Context final UriInfo uriInfo,
+          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+          @QueryParam("$expand") @DefaultValue(StringUtils.EMPTY) final String expand,
+          @QueryParam("$select") @DefaultValue(StringUtils.EMPTY) final String select) {
+
+    return super.getEntityInternal(
+            uriInfo.getRequestUri().toASCIIString(), accept, "VipCustomer", "1", format, expand, select);
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/main/resources/V40/VipCustomer/1/entity.full.json
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V40/VipCustomer/1/entity.full.json b/fit/src/main/resources/V40/VipCustomer/1/entity.full.json
new file mode 100644
index 0000000..ee9e31a
--- /dev/null
+++ b/fit/src/main/resources/V40/VipCustomer/1/entity.full.json
@@ -0,0 +1,7 @@
+{
+  "@odata.context": "http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/$metadata#VipCustomers/$entity",
+  "@odata.type": "#Microsoft.Test.OData.Services.ODataWCFService.Customer",
+  "@odata.id": "http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/VipCustomers(PersonID=1)",
+  "@odata.editLink": "http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/VipCustomers(PersonID=1)",
+  "PersonID": 1
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/main/resources/V40/VipCustomer/1/entity.xml
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V40/VipCustomer/1/entity.xml b/fit/src/main/resources/V40/VipCustomer/1/entity.xml
new file mode 100644
index 0000000..21bbe93
--- /dev/null
+++ b/fit/src/main/resources/V40/VipCustomer/1/entity.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    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.
+
+-->
+<entry xml:base="http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/" 
+       xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://docs.oasis-open.org/odata/ns/data" 
+       xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
+       xmlns:georss="http://www.georss.org/georss" 
+       xmlns:gml="http://www.opengis.net/gml" 
+       m:context="http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/$metadata#VipCustomers/$entity">
+  <id>http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/VipCustomers(PersonID=1)</id>
+  <category term="#Microsoft.Test.OData.Services.ODataWCFService.Customer" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
+  <link rel="edit" href="http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/VipCustomers(PersonID=1)" />
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" type="application/atom+xml;type=entry" title="Parent" href="http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/Customers(PersonID=1)/Parent" />
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Orders" type="application/atom+xml;type=feed" title="Orders" href="http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/Customers(PersonID=1)/Orders" />
+  <link rel="http://docs.oasis-open.org/odata/ns/related/Company" type="application/atom+xml;type=entry" title="Company" href="http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/Customers(PersonID=1)/Company" />
+  <title />
+  <updated>2014-03-24T17:03:20Z</updated>
+  <author>
+    <name />
+  </author>
+  <content type="application/xml">
+    <m:properties>
+      <d:PersonID m:type="Int32">1</d:PersonID>
+    </m:properties>
+  </content>
+</entry>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AbstractTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AbstractTestITCase.java
index 7c53798..df2a003 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AbstractTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/AbstractTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v3;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ContextTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ContextTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ContextTestITCase.java
index 7ef2365..3d8c225 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ContextTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/ContextTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v3;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
index bda7f9e..56e4cba 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityCreateTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v3;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityUpdateTestITCase.java
index fd2be17..a7a8bec 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityUpdateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/EntityUpdateTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v3;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/InvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/InvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/InvokeTestITCase.java
index 2c40088..c278abf 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/InvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/InvokeTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v3;
 
 //CHECKSTYLE:OFF (Maven checkstyle)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/MediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/MediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/MediaEntityTestITCase.java
index cf8410c..3a61082 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/MediaEntityTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/MediaEntityTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v3;
 
 import org.apache.commons.io.IOUtils;
@@ -25,8 +26,8 @@ import org.junit.Test;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import org.apache.olingo.ext.proxy.commons.EdmStreamTypeImpl;
 import org.apache.olingo.ext.proxy.api.EdmStreamValue;
+import static org.apache.olingo.fit.proxy.v3.AbstractTestITCase.container;
 import static org.apache.olingo.fit.proxy.v3.AbstractTestITCase.service;
 
 import static org.junit.Assert.assertEquals;
@@ -52,7 +53,7 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
     final InputStream input = new ByteArrayInputStream(TO_BE_UPDATED.getBytes());
 
     Car car = container.getCar().getByKey(12);
-    car.setPhoto(new EdmStreamTypeImpl(new EdmStreamValue("application/octet-stream", input)));
+    car.setPhoto(container.newEdmStreamValue("application/octet-stream", input));
 
     container.flush();
 
@@ -70,7 +71,7 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
     final String TO_BE_UPDATED = "buffered stream sample (" + System.currentTimeMillis() + ")";
     InputStream input = IOUtils.toInputStream(TO_BE_UPDATED);
 
-    car.uploadStream(new EdmStreamValue("*/*", input));
+    car.uploadStream(container.newEdmStreamValue("*/*", input));
 
     container.flush();
 
@@ -89,7 +90,7 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
     InputStream input = IOUtils.toInputStream(TO_BE_UPDATED);
 
     final String DESC = "DESC - " + System.currentTimeMillis();
-    car.uploadStream(new EdmStreamValue("*/*", input));
+    car.uploadStream(container.newEdmStreamValue("*/*", input));
     car.setDescription(DESC);
 
     container.getCar().add(car);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
index a0e8b99..1ffa7d4 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.olingo.fit.proxy.v3;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
index 4fd9ac3..606579c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
@@ -26,7 +26,9 @@ import org.apache.olingo.ext.proxy.api.ComplexType;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import java.io.Serializable;
+import java.io.InputStream;
 //CHECKSTYLE:ON (Maven checkstyle)
 
 @org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
@@ -113,4 +115,6 @@ public interface DefaultContainer extends PersistenceManager {
   <T extends ComplexType, NEC extends ComplexCollection<T>> NEC newComplexCollection(Class<NEC> ref);
 
   <T extends Serializable, NEC extends PrimitiveCollection<T>> NEC newPrimitiveCollection(Class<T> ref);
+
+  EdmStreamValue newEdmStreamValue(String contentType, InputStream stream);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Aliases.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Aliases.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Aliases.java
index cb007f9..7f42e91 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Aliases.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Aliases.java
@@ -28,7 +28,11 @@ public interface Aliases
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AlternativeNames", type = "Edm.String", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "AlternativeNames", 
+                type = "Edm.String", 
+                nullable = false)
     org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getAlternativeNames();
 
     void setAlternativeNames(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _alternativeNames);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java
index 5cea69b..996ef05 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java
@@ -28,21 +28,33 @@ public interface AuditInfo
 
 
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ModifiedDate", type = "Edm.DateTime", nullable = false)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "ModifiedDate", 
+                type = "Edm.DateTime", 
+                nullable = false)
     java.sql.Timestamp getModifiedDate();
 
     void setModifiedDate(java.sql.Timestamp _modifiedDate);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ModifiedBy", type = "Edm.String", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "ModifiedBy", 
+                type = "Edm.String", 
+                nullable = true)
     java.lang.String getModifiedBy();
 
     void setModifiedBy(java.lang.String _modifiedBy);
 
     
 
-    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Concurrency", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo", nullable = true)
+
+    @org.apache.olingo.ext.proxy.api.annotations.Property(
+                name = "Concurrency", 
+                type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo", 
+                nullable = true)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ConcurrencyInfo getConcurrency();
 
     void setConcurrency(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ConcurrencyInfo _concurrency);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2822fe60/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java
index 8fd9ba1..76d90ff 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java
@@ -59,9 +59,9 @@ public interface BackOrderLine
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    org.apache.olingo.ext.proxy.api.EdmStreamType getOrderLineStream();
+    org.apache.olingo.ext.proxy.api.EdmStreamValue getOrderLineStream();
 
-    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamType _orderLineStream);
+    void setOrderLineStream(org.apache.olingo.ext.proxy.api.EdmStreamValue _orderLineStream);
     @Key
     
     @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderId",