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

[01/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Delete old v3 test data in client core

Repository: olingo-odata4
Updated Branches:
  refs/heads/OLINGO-562_SpringExtension bb1dbba35 -> 164da42d8


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/northwind-metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/northwind-metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/northwind-metadata.xml
deleted file mode 100644
index 0a14f0a..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/northwind-metadata.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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.
-
--->
-<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx"><edmx:DataServices m:DataServiceVersion="1.0" m:MaxDataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><Schema Namespace="NorthwindModel" xmlns="http://schemas.microsoft.com/ado/2008/09/edm"><EntityType Name="Category"><Key><PropertyRef Name="CategoryID" /></Key><Property Name="CategoryID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity" xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" /><Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="Description" Type="Edm.String" MaxLength="Max" FixedLength="false" Unicode="true" /><Property Name="Picture" Type="Edm.Binary" MaxLength="Max" FixedLength="false" /><NavigationProperty Name="Products" Relationship="NorthwindModel.FK_Products_Categories" ToRole="Products" FromRole="Categories" /></Entity
 Type><EntityType Name="CustomerDemographic"><Key><PropertyRef Name="CustomerTypeID" /></Key><Property Name="CustomerTypeID" Type="Edm.String" Nullable="false" MaxLength="10" FixedLength="true" Unicode="true" /><Property Name="CustomerDesc" Type="Edm.String" MaxLength="Max" FixedLength="false" Unicode="true" /><NavigationProperty Name="Customers" Relationship="NorthwindModel.CustomerCustomerDemo" ToRole="Customers" FromRole="CustomerDemographics" /></EntityType><EntityType Name="Customer"><Key><PropertyRef Name="CustomerID" /></Key><Property Name="CustomerID" Type="Edm.String" Nullable="false" MaxLength="5" FixedLength="true" Unicode="true" /><Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="ContactName" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true" /><Property Name="ContactTitle" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true" /><Property Name="Address" Type="E
 dm.String" MaxLength="60" FixedLength="false" Unicode="true" /><Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="Region" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="PostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true" /><Property Name="Country" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="Phone" Type="Edm.String" MaxLength="24" FixedLength="false" Unicode="true" /><Property Name="Fax" Type="Edm.String" MaxLength="24" FixedLength="false" Unicode="true" /><NavigationProperty Name="Orders" Relationship="NorthwindModel.FK_Orders_Customers" ToRole="Orders" FromRole="Customers" /><NavigationProperty Name="CustomerDemographics" Relationship="NorthwindModel.CustomerCustomerDemo" ToRole="CustomerDemographics" FromRole="Customers" /></EntityType><EntityType Name="Employee"><Key><PropertyRef Name="EmployeeID" /></Key><Property N
 ame="EmployeeID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity" xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" /><Property Name="LastName" Type="Edm.String" Nullable="false" MaxLength="20" FixedLength="false" Unicode="true" /><Property Name="FirstName" Type="Edm.String" Nullable="false" MaxLength="10" FixedLength="false" Unicode="true" /><Property Name="Title" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true" /><Property Name="TitleOfCourtesy" Type="Edm.String" MaxLength="25" FixedLength="false" Unicode="true" /><Property Name="BirthDate" Type="Edm.DateTime" /><Property Name="HireDate" Type="Edm.DateTime" /><Property Name="Address" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true" /><Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="Region" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="PostalCode" Type="Edm.St
 ring" MaxLength="10" FixedLength="false" Unicode="true" /><Property Name="Country" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="HomePhone" Type="Edm.String" MaxLength="24" FixedLength="false" Unicode="true" /><Property Name="Extension" Type="Edm.String" MaxLength="4" FixedLength="false" Unicode="true" /><Property Name="Photo" Type="Edm.Binary" MaxLength="Max" FixedLength="false" /><Property Name="Notes" Type="Edm.String" MaxLength="Max" FixedLength="false" Unicode="true" /><Property Name="ReportsTo" Type="Edm.Int32" /><Property Name="PhotoPath" Type="Edm.String" MaxLength="255" FixedLength="false" Unicode="true" /><NavigationProperty Name="Employees1" Relationship="NorthwindModel.FK_Employees_Employees" ToRole="Employees1" FromRole="Employees" /><NavigationProperty Name="Employee1" Relationship="NorthwindModel.FK_Employees_Employees" ToRole="Employees" FromRole="Employees1" /><NavigationProperty Name="Orders" Relationship="NorthwindModel.FK_O
 rders_Employees" ToRole="Orders" FromRole="Employees" /><NavigationProperty Name="Territories" Relationship="NorthwindModel.EmployeeTerritories" ToRole="Territories" FromRole="Employees" /></EntityType><EntityType Name="Order_Detail"><Key><PropertyRef Name="OrderID" /><PropertyRef Name="ProductID" /></Key><Property Name="OrderID" Type="Edm.Int32" Nullable="false" /><Property Name="ProductID" Type="Edm.Int32" Nullable="false" /><Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4" /><Property Name="Quantity" Type="Edm.Int16" Nullable="false" /><Property Name="Discount" Type="Edm.Single" Nullable="false" /><NavigationProperty Name="Order" Relationship="NorthwindModel.FK_Order_Details_Orders" ToRole="Orders" FromRole="Order_Details" /><NavigationProperty Name="Product" Relationship="NorthwindModel.FK_Order_Details_Products" ToRole="Products" FromRole="Order_Details" /></EntityType><EntityType Name="Order"><Key><PropertyRef Name="OrderID" /></Key><Prope
 rty Name="OrderID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity" xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" /><Property Name="CustomerID" Type="Edm.String" MaxLength="5" FixedLength="true" Unicode="true" /><Property Name="EmployeeID" Type="Edm.Int32" /><Property Name="OrderDate" Type="Edm.DateTime" /><Property Name="RequiredDate" Type="Edm.DateTime" /><Property Name="ShippedDate" Type="Edm.DateTime" /><Property Name="ShipVia" Type="Edm.Int32" /><Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4" /><Property Name="ShipName" Type="Edm.String" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="ShipAddress" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true" /><Property Name="ShipCity" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="ShipRegion" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="ShipPostalCode" Type="Ed
 m.String" MaxLength="10" FixedLength="false" Unicode="true" /><Property Name="ShipCountry" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><NavigationProperty Name="Customer" Relationship="NorthwindModel.FK_Orders_Customers" ToRole="Customers" FromRole="Orders" /><NavigationProperty Name="Employee" Relationship="NorthwindModel.FK_Orders_Employees" ToRole="Employees" FromRole="Orders" /><NavigationProperty Name="Order_Details" Relationship="NorthwindModel.FK_Order_Details_Orders" ToRole="Order_Details" FromRole="Orders" /><NavigationProperty Name="Shipper" Relationship="NorthwindModel.FK_Orders_Shippers" ToRole="Shippers" FromRole="Orders" /></EntityType><EntityType Name="Product"><Key><PropertyRef Name="ProductID" /></Key><Property Name="ProductID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity" xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" /><Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40
 " FixedLength="false" Unicode="true" /><Property Name="SupplierID" Type="Edm.Int32" /><Property Name="CategoryID" Type="Edm.Int32" /><Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" FixedLength="false" Unicode="true" /><Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4" /><Property Name="UnitsInStock" Type="Edm.Int16" /><Property Name="UnitsOnOrder" Type="Edm.Int16" /><Property Name="ReorderLevel" Type="Edm.Int16" /><Property Name="Discontinued" Type="Edm.Boolean" Nullable="false" /><NavigationProperty Name="Category" Relationship="NorthwindModel.FK_Products_Categories" ToRole="Categories" FromRole="Products" /><NavigationProperty Name="Order_Details" Relationship="NorthwindModel.FK_Order_Details_Products" ToRole="Order_Details" FromRole="Products" /><NavigationProperty Name="Supplier" Relationship="NorthwindModel.FK_Products_Suppliers" ToRole="Suppliers" FromRole="Products" /></EntityType><EntityType Name="Region"><Key><PropertyRef Name="RegionID
 " /></Key><Property Name="RegionID" Type="Edm.Int32" Nullable="false" /><Property Name="RegionDescription" Type="Edm.String" Nullable="false" MaxLength="50" FixedLength="true" Unicode="true" /><NavigationProperty Name="Territories" Relationship="NorthwindModel.FK_Territories_Region" ToRole="Territories" FromRole="Region" /></EntityType><EntityType Name="Shipper"><Key><PropertyRef Name="ShipperID" /></Key><Property Name="ShipperID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity" xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" /><Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="Phone" Type="Edm.String" MaxLength="24" FixedLength="false" Unicode="true" /><NavigationProperty Name="Orders" Relationship="NorthwindModel.FK_Orders_Shippers" ToRole="Orders" FromRole="Shippers" /></EntityType><EntityType Name="Supplier"><Key><PropertyRef Name="SupplierID" /></Key><Propert
 y Name="SupplierID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity" xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" /><Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="ContactName" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true" /><Property Name="ContactTitle" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true" /><Property Name="Address" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true" /><Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="Region" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="PostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true" /><Property Name="Country" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="Phone" Type="Edm.String" MaxLengt
 h="24" FixedLength="false" Unicode="true" /><Property Name="Fax" Type="Edm.String" MaxLength="24" FixedLength="false" Unicode="true" /><Property Name="HomePage" Type="Edm.String" MaxLength="Max" FixedLength="false" Unicode="true" /><NavigationProperty Name="Products" Relationship="NorthwindModel.FK_Products_Suppliers" ToRole="Products" FromRole="Suppliers" /></EntityType><EntityType Name="Territory"><Key><PropertyRef Name="TerritoryID" /></Key><Property Name="TerritoryID" Type="Edm.String" Nullable="false" MaxLength="20" FixedLength="false" Unicode="true" /><Property Name="TerritoryDescription" Type="Edm.String" Nullable="false" MaxLength="50" FixedLength="true" Unicode="true" /><Property Name="RegionID" Type="Edm.Int32" Nullable="false" /><NavigationProperty Name="Region" Relationship="NorthwindModel.FK_Territories_Region" ToRole="Region" FromRole="Territories" /><NavigationProperty Name="Employees" Relationship="NorthwindModel.EmployeeTerritories" ToRole="Employees" FromRole="Terr
 itories" /></EntityType><EntityType Name="Alphabetical_list_of_product"><Key><PropertyRef Name="CategoryName" /><PropertyRef Name="Discontinued" /><PropertyRef Name="ProductID" /><PropertyRef Name="ProductName" /></Key><Property Name="ProductID" Type="Edm.Int32" Nullable="false" /><Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="SupplierID" Type="Edm.Int32" /><Property Name="CategoryID" Type="Edm.Int32" /><Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" FixedLength="false" Unicode="true" /><Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4" /><Property Name="UnitsInStock" Type="Edm.Int16" /><Property Name="UnitsOnOrder" Type="Edm.Int16" /><Property Name="ReorderLevel" Type="Edm.Int16" /><Property Name="Discontinued" Type="Edm.Boolean" Nullable="false" /><Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true"
  /></EntityType><EntityType Name="Category_Sales_for_1997"><Key><PropertyRef Name="CategoryName" /></Key><Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="CategorySales" Type="Edm.Decimal" Precision="19" Scale="4" /></EntityType><EntityType Name="Current_Product_List"><Key><PropertyRef Name="ProductID" /><PropertyRef Name="ProductName" /></Key><Property Name="ProductID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity" xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" /><Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /></EntityType><EntityType Name="Customer_and_Suppliers_by_City"><Key><PropertyRef Name="CompanyName" /><PropertyRef Name="Relationship" /></Key><Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="CompanyName" Type="Edm.String" Null
 able="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="ContactName" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true" /><Property Name="Relationship" Type="Edm.String" Nullable="false" MaxLength="9" FixedLength="false" Unicode="false" /></EntityType><EntityType Name="Invoice"><Key><PropertyRef Name="CustomerName" /><PropertyRef Name="Discount" /><PropertyRef Name="OrderID" /><PropertyRef Name="ProductID" /><PropertyRef Name="ProductName" /><PropertyRef Name="Quantity" /><PropertyRef Name="Salesperson" /><PropertyRef Name="ShipperName" /><PropertyRef Name="UnitPrice" /></Key><Property Name="ShipName" Type="Edm.String" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="ShipAddress" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true" /><Property Name="ShipCity" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="ShipRegion" Type="Edm.String" MaxLength="15" FixedLength="false" 
 Unicode="true" /><Property Name="ShipPostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true" /><Property Name="ShipCountry" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="CustomerID" Type="Edm.String" MaxLength="5" FixedLength="true" Unicode="true" /><Property Name="CustomerName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="Address" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true" /><Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="Region" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="PostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true" /><Property Name="Country" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="Salesperson" Type="Edm.String" Nullable="false" MaxLength="31" FixedLength="
 false" Unicode="true" /><Property Name="OrderID" Type="Edm.Int32" Nullable="false" /><Property Name="OrderDate" Type="Edm.DateTime" /><Property Name="RequiredDate" Type="Edm.DateTime" /><Property Name="ShippedDate" Type="Edm.DateTime" /><Property Name="ShipperName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="ProductID" Type="Edm.Int32" Nullable="false" /><Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4" /><Property Name="Quantity" Type="Edm.Int16" Nullable="false" /><Property Name="Discount" Type="Edm.Single" Nullable="false" /><Property Name="ExtendedPrice" Type="Edm.Decimal" Precision="19" Scale="4" /><Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4" /></EntityType><EntityType Name="Order_Details_Extended"><Key><PropertyRef Name="Discount" /><PropertyRe
 f Name="OrderID" /><PropertyRef Name="ProductID" /><PropertyRef Name="ProductName" /><PropertyRef Name="Quantity" /><PropertyRef Name="UnitPrice" /></Key><Property Name="OrderID" Type="Edm.Int32" Nullable="false" /><Property Name="ProductID" Type="Edm.Int32" Nullable="false" /><Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4" /><Property Name="Quantity" Type="Edm.Int16" Nullable="false" /><Property Name="Discount" Type="Edm.Single" Nullable="false" /><Property Name="ExtendedPrice" Type="Edm.Decimal" Precision="19" Scale="4" /></EntityType><EntityType Name="Order_Subtotal"><Key><PropertyRef Name="OrderID" /></Key><Property Name="OrderID" Type="Edm.Int32" Nullable="false" /><Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4" /></EntityType><EntityType Name="Orders_Qry"><Key><PropertyRef Name="CompanyName" /><Propert
 yRef Name="OrderID" /></Key><Property Name="OrderID" Type="Edm.Int32" Nullable="false" /><Property Name="CustomerID" Type="Edm.String" MaxLength="5" FixedLength="true" Unicode="true" /><Property Name="EmployeeID" Type="Edm.Int32" /><Property Name="OrderDate" Type="Edm.DateTime" /><Property Name="RequiredDate" Type="Edm.DateTime" /><Property Name="ShippedDate" Type="Edm.DateTime" /><Property Name="ShipVia" Type="Edm.Int32" /><Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4" /><Property Name="ShipName" Type="Edm.String" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="ShipAddress" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true" /><Property Name="ShipCity" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="ShipRegion" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="ShipPostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true" /><Proper
 ty Name="ShipCountry" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="Address" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true" /><Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="Region" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="PostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true" /><Property Name="Country" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true" /></EntityType><EntityType Name="Product_Sales_for_1997"><Key><PropertyRef Name="CategoryName" /><PropertyRef Name="ProductName" /></Key><Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="ProductName" Type="Edm.String" Nullable="false"
  MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="ProductSales" Type="Edm.Decimal" Precision="19" Scale="4" /></EntityType><EntityType Name="Products_Above_Average_Price"><Key><PropertyRef Name="ProductName" /></Key><Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4" /></EntityType><EntityType Name="Products_by_Category"><Key><PropertyRef Name="CategoryName" /><PropertyRef Name="Discontinued" /><PropertyRef Name="ProductName" /></Key><Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" FixedLength="false" Unicode="true" /><Property Name="UnitsInStock" Type="Edm.Int16" /><Property Name="Disc
 ontinued" Type="Edm.Boolean" Nullable="false" /></EntityType><EntityType Name="Sales_by_Category"><Key><PropertyRef Name="CategoryID" /><PropertyRef Name="CategoryName" /><PropertyRef Name="ProductName" /></Key><Property Name="CategoryID" Type="Edm.Int32" Nullable="false" /><Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true" /><Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="ProductSales" Type="Edm.Decimal" Precision="19" Scale="4" /></EntityType><EntityType Name="Sales_Totals_by_Amount"><Key><PropertyRef Name="CompanyName" /><PropertyRef Name="OrderID" /></Key><Property Name="SaleAmount" Type="Edm.Decimal" Precision="19" Scale="4" /><Property Name="OrderID" Type="Edm.Int32" Nullable="false" /><Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true" /><Property Name="ShippedDate" Typ
 e="Edm.DateTime" /></EntityType><EntityType Name="Summary_of_Sales_by_Quarter"><Key><PropertyRef Name="OrderID" /></Key><Property Name="ShippedDate" Type="Edm.DateTime" /><Property Name="OrderID" Type="Edm.Int32" Nullable="false" /><Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4" /></EntityType><EntityType Name="Summary_of_Sales_by_Year"><Key><PropertyRef Name="OrderID" /></Key><Property Name="ShippedDate" Type="Edm.DateTime" /><Property Name="OrderID" Type="Edm.Int32" Nullable="false" /><Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4" /></EntityType><Association Name="FK_Products_Categories"><End Type="NorthwindModel.Category" Role="Categories" Multiplicity="0..1" /><End Type="NorthwindModel.Product" Role="Products" Multiplicity="*" /><ReferentialConstraint><Principal Role="Categories"><PropertyRef Name="CategoryID" /></Principal><Dependent Role="Products"><PropertyRef Name="CategoryID" /></Dependent></ReferentialConstraint></Association><A
 ssociation Name="CustomerCustomerDemo"><End Type="NorthwindModel.Customer" Role="Customers" Multiplicity="*" /><End Type="NorthwindModel.CustomerDemographic" Role="CustomerDemographics" Multiplicity="*" /></Association><Association Name="FK_Orders_Customers"><End Type="NorthwindModel.Customer" Role="Customers" Multiplicity="0..1" /><End Type="NorthwindModel.Order" Role="Orders" Multiplicity="*" /><ReferentialConstraint><Principal Role="Customers"><PropertyRef Name="CustomerID" /></Principal><Dependent Role="Orders"><PropertyRef Name="CustomerID" /></Dependent></ReferentialConstraint></Association><Association Name="FK_Employees_Employees"><End Type="NorthwindModel.Employee" Role="Employees" Multiplicity="0..1" /><End Type="NorthwindModel.Employee" Role="Employees1" Multiplicity="*" /><ReferentialConstraint><Principal Role="Employees"><PropertyRef Name="EmployeeID" /></Principal><Dependent Role="Employees1"><PropertyRef Name="ReportsTo" /></Dependent></ReferentialConstraint></Associa
 tion><Association Name="FK_Orders_Employees"><End Type="NorthwindModel.Employee" Role="Employees" Multiplicity="0..1" /><End Type="NorthwindModel.Order" Role="Orders" Multiplicity="*" /><ReferentialConstraint><Principal Role="Employees"><PropertyRef Name="EmployeeID" /></Principal><Dependent Role="Orders"><PropertyRef Name="EmployeeID" /></Dependent></ReferentialConstraint></Association><Association Name="EmployeeTerritories"><End Type="NorthwindModel.Territory" Role="Territories" Multiplicity="*" /><End Type="NorthwindModel.Employee" Role="Employees" Multiplicity="*" /></Association><Association Name="FK_Order_Details_Orders"><End Type="NorthwindModel.Order" Role="Orders" Multiplicity="1" /><End Type="NorthwindModel.Order_Detail" Role="Order_Details" Multiplicity="*" /><ReferentialConstraint><Principal Role="Orders"><PropertyRef Name="OrderID" /></Principal><Dependent Role="Order_Details"><PropertyRef Name="OrderID" /></Dependent></ReferentialConstraint></Association><Association N
 ame="FK_Order_Details_Products"><End Type="NorthwindModel.Product" Role="Products" Multiplicity="1" /><End Type="NorthwindModel.Order_Detail" Role="Order_Details" Multiplicity="*" /><ReferentialConstraint><Principal Role="Products"><PropertyRef Name="ProductID" /></Principal><Dependent Role="Order_Details"><PropertyRef Name="ProductID" /></Dependent></ReferentialConstraint></Association><Association Name="FK_Orders_Shippers"><End Type="NorthwindModel.Shipper" Role="Shippers" Multiplicity="0..1" /><End Type="NorthwindModel.Order" Role="Orders" Multiplicity="*" /><ReferentialConstraint><Principal Role="Shippers"><PropertyRef Name="ShipperID" /></Principal><Dependent Role="Orders"><PropertyRef Name="ShipVia" /></Dependent></ReferentialConstraint></Association><Association Name="FK_Products_Suppliers"><End Type="NorthwindModel.Supplier" Role="Suppliers" Multiplicity="0..1" /><End Type="NorthwindModel.Product" Role="Products" Multiplicity="*" /><ReferentialConstraint><Principal Role="Sup
 pliers"><PropertyRef Name="SupplierID" /></Principal><Dependent Role="Products"><PropertyRef Name="SupplierID" /></Dependent></ReferentialConstraint></Association><Association Name="FK_Territories_Region"><End Type="NorthwindModel.Region" Role="Region" Multiplicity="1" /><End Type="NorthwindModel.Territory" Role="Territories" Multiplicity="*" /><ReferentialConstraint><Principal Role="Region"><PropertyRef Name="RegionID" /></Principal><Dependent Role="Territories"><PropertyRef Name="RegionID" /></Dependent></ReferentialConstraint></Association></Schema><Schema Namespace="ODataWebV3.Northwind.Model" xmlns="http://schemas.microsoft.com/ado/2008/09/edm"><EntityContainer Name="NorthwindEntities" m:IsDefaultEntityContainer="true" p6:LazyLoadingEnabled="true" xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation"><EntitySet Name="Categories" EntityType="NorthwindModel.Category" /><EntitySet Name="CustomerDemographics" EntityType="NorthwindModel.CustomerDemographic" /><EntitySet
  Name="Customers" EntityType="NorthwindModel.Customer" /><EntitySet Name="Employees" EntityType="NorthwindModel.Employee" /><EntitySet Name="Order_Details" EntityType="NorthwindModel.Order_Detail" /><EntitySet Name="Orders" EntityType="NorthwindModel.Order" /><EntitySet Name="Products" EntityType="NorthwindModel.Product" /><EntitySet Name="Regions" EntityType="NorthwindModel.Region" /><EntitySet Name="Shippers" EntityType="NorthwindModel.Shipper" /><EntitySet Name="Suppliers" EntityType="NorthwindModel.Supplier" /><EntitySet Name="Territories" EntityType="NorthwindModel.Territory" /><EntitySet Name="Alphabetical_list_of_products" EntityType="NorthwindModel.Alphabetical_list_of_product" /><EntitySet Name="Category_Sales_for_1997" EntityType="NorthwindModel.Category_Sales_for_1997" /><EntitySet Name="Current_Product_Lists" EntityType="NorthwindModel.Current_Product_List" /><EntitySet Name="Customer_and_Suppliers_by_Cities" EntityType="NorthwindModel.Customer_and_Suppliers_by_City" /><
 EntitySet Name="Invoices" EntityType="NorthwindModel.Invoice" /><EntitySet Name="Order_Details_Extendeds" EntityType="NorthwindModel.Order_Details_Extended" /><EntitySet Name="Order_Subtotals" EntityType="NorthwindModel.Order_Subtotal" /><EntitySet Name="Orders_Qries" EntityType="NorthwindModel.Orders_Qry" /><EntitySet Name="Product_Sales_for_1997" EntityType="NorthwindModel.Product_Sales_for_1997" /><EntitySet Name="Products_Above_Average_Prices" EntityType="NorthwindModel.Products_Above_Average_Price" /><EntitySet Name="Products_by_Categories" EntityType="NorthwindModel.Products_by_Category" /><EntitySet Name="Sales_by_Categories" EntityType="NorthwindModel.Sales_by_Category" /><EntitySet Name="Sales_Totals_by_Amounts" EntityType="NorthwindModel.Sales_Totals_by_Amount" /><EntitySet Name="Summary_of_Sales_by_Quarters" EntityType="NorthwindModel.Summary_of_Sales_by_Quarter" /><EntitySet Name="Summary_of_Sales_by_Years" EntityType="NorthwindModel.Summary_of_Sales_by_Year" /><Associat
 ionSet Name="FK_Products_Categories" Association="NorthwindModel.FK_Products_Categories"><End Role="Categories" EntitySet="Categories" /><End Role="Products" EntitySet="Products" /></AssociationSet><AssociationSet Name="CustomerCustomerDemo" Association="NorthwindModel.CustomerCustomerDemo"><End Role="CustomerDemographics" EntitySet="CustomerDemographics" /><End Role="Customers" EntitySet="Customers" /></AssociationSet><AssociationSet Name="FK_Orders_Customers" Association="NorthwindModel.FK_Orders_Customers"><End Role="Customers" EntitySet="Customers" /><End Role="Orders" EntitySet="Orders" /></AssociationSet><AssociationSet Name="FK_Employees_Employees" Association="NorthwindModel.FK_Employees_Employees"><End Role="Employees" EntitySet="Employees" /><End Role="Employees1" EntitySet="Employees" /></AssociationSet><AssociationSet Name="FK_Orders_Employees" Association="NorthwindModel.FK_Orders_Employees"><End Role="Employees" EntitySet="Employees" /><End Role="Orders" EntitySet="Ord
 ers" /></AssociationSet><AssociationSet Name="EmployeeTerritories" Association="NorthwindModel.EmployeeTerritories"><End Role="Employees" EntitySet="Employees" /><End Role="Territories" EntitySet="Territories" /></AssociationSet><AssociationSet Name="FK_Order_Details_Orders" Association="NorthwindModel.FK_Order_Details_Orders"><End Role="Order_Details" EntitySet="Order_Details" /><End Role="Orders" EntitySet="Orders" /></AssociationSet><AssociationSet Name="FK_Order_Details_Products" Association="NorthwindModel.FK_Order_Details_Products"><End Role="Order_Details" EntitySet="Order_Details" /><End Role="Products" EntitySet="Products" /></AssociationSet><AssociationSet Name="FK_Orders_Shippers" Association="NorthwindModel.FK_Orders_Shippers"><End Role="Orders" EntitySet="Orders" /><End Role="Shippers" EntitySet="Shippers" /></AssociationSet><AssociationSet Name="FK_Products_Suppliers" Association="NorthwindModel.FK_Products_Suppliers"><End Role="Products" EntitySet="Products" /><End Ro
 le="Suppliers" EntitySet="Suppliers" /></AssociationSet><AssociationSet Name="FK_Territories_Region" Association="NorthwindModel.FK_Territories_Region"><End Role="Region" EntitySet="Regions" /><End Role="Territories" EntitySet="Territories" /></AssociationSet></EntityContainer></Schema></edmx:DataServices></edmx:Edmx>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/serviceDocument.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/serviceDocument.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/serviceDocument.json
deleted file mode 100644
index 791f961..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/serviceDocument.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "odata.metadata": "http://services.odata.org/V3/OData/OData.svc/$metadata",
-  "value": [
-    {
-      "name": "Products",
-      "url": "Products"
-    },
-    {
-      "name": "ProductDetails",
-      "url": "ProductDetails"
-    },
-    {
-      "name": "Categories",
-      "url": "Categories"
-    },
-    {
-      "name": "Suppliers",
-      "url": "Suppliers"
-    },
-    {
-      "name": "Persons",
-      "url": "Persons"
-    },
-    {
-      "name": "PersonDetails",
-      "url": "PersonDetails"
-    },
-    {
-      "name": "Advertisements",
-      "url": "Advertisements"
-    }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/serviceDocument.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/serviceDocument.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/serviceDocument.xml
deleted file mode 100644
index 0981814..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/serviceDocument.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?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.
-
--->
-<service xml:base="http://services.odata.org/V3/OData/OData.svc/" 
-         xmlns="http://www.w3.org/2007/app" 
-         xmlns:atom="http://www.w3.org/2005/Atom">
-  <workspace>
-    <atom:title>Default</atom:title>
-    <collection href="Products">
-      <atom:title>Products</atom:title>
-    </collection>
-    <collection href="ProductDetails">
-      <atom:title>ProductDetails</atom:title>
-    </collection>
-    <collection href="Categories">
-      <atom:title>Categories</atom:title>
-    </collection>
-    <collection href="Suppliers">
-      <atom:title>Suppliers</atom:title>
-    </collection>
-    <collection href="Persons">
-      <atom:title>Persons</atom:title>
-    </collection>
-    <collection href="PersonDetails">
-      <atom:title>PersonDetails</atom:title>
-    </collection>
-    <collection href="Advertisements">
-      <atom:title>Advertisements</atom:title>
-    </collection>
-  </workspace>
-</service>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/stacktrace.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/stacktrace.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/stacktrace.json
deleted file mode 100644
index 32e8821..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/stacktrace.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "odata.error": {
-    "code": "",
-    "message": {
-      "lang": "en-US",
-      "value": "Unsupported media type requested."
-    },
-    "innererror": {
-      "message": "A supported MIME type could not be found that matches the content type of the response. None of the supported type(s) 'application/atom+xml;type=entry, application/atom+xml, application/json;odata=minimalmetadata;streaming=true, application/json;odata=minimalmetadata;streaming=false, application/json;odata=minimalmetadata, application/json;odata=fullmetadata;streaming=true, application/json;odata=fullmetadata;streaming=false, application/json;odata=fullmetadata, application/json;odata=nometadata;streaming=true, application/json;odata=nometadata;streaming=false, application/json;odata=nometadata, application/json;streaming=true, application/json;streaming=false, application/json;odata=verbose, application/json' matches the content type 'application/xml; charset=UTF-8'.",
-      "type": "Microsoft.Data.OData.ODataContentTypeException",
-      "stacktrace": "   at Microsoft.Data.OData.MediaTypeUtils.GetFormatFromContentType(String contentTypeName, ODataPayloadKind[] supportedPayloadKinds, MediaTypeResolver mediaTypeResolver, MediaType& mediaType, Encoding& encoding, ODataPayloadKind& selectedPayloadKind)\r\n   at Microsoft.Data.OData.MediaTypeUtils.GetFormatFromContentType(String contentTypeHeader, ODataPayloadKind[] supportedPayloadKinds, MediaTypeResolver mediaTypeResolver, MediaType& mediaType, Encoding& encoding, ODataPayloadKind& selectedPayloadKind, String& batchBoundary)\r\n   at Microsoft.Data.OData.ODataMessageReader.ProcessContentType(ODataPayloadKind[] payloadKinds)\r\n   at Microsoft.Data.OData.ODataMessageReader.ReadFromInput[T](Func`2 readFunc, ODataPayloadKind[] payloadKinds)\r\n   at Microsoft.Data.OData.ODataMessageReader.CreateODataEntryReader(IEdmEntitySet entitySet, IEdmEntityType entityType)\r\n   at System.Data.Services.Serializers.EntityDeserializer.Read(SegmentInfo segmentInfo)\r\n   at Syste
 m.Data.Services.Serializers.ODataMessageReaderDeserializer.Deserialize(SegmentInfo segmentInfo)"
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/stacktrace.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/stacktrace.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/stacktrace.xml
deleted file mode 100644
index 51c2b77..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/stacktrace.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?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.
-
--->
-<m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
-  <m:code />
-  <m:message xml:lang="en-US">Unsupported media type requested.</m:message>
-  <m:innererror>
-    <m:message>A supported MIME type could not be found that matches the content type of the response. None of the supported type(s) 'application/atom+xml;type=entry, application/atom+xml, application/json;odata=minimalmetadata;streaming=true, application/json;odata=minimalmetadata;streaming=false, application/json;odata=minimalmetadata, application/json;odata=fullmetadata;streaming=true, application/json;odata=fullmetadata;streaming=false, application/json;odata=fullmetadata, application/json;odata=nometadata;streaming=true, application/json;odata=nometadata;streaming=false, application/json;odata=nometadata, application/json;streaming=true, application/json;streaming=false, application/json;odata=verbose, application/json' matches the content type 'text/plain; charset=UTF-8'.</m:message>
-    <m:type>Microsoft.Data.OData.ODataContentTypeException</m:type>
-    <m:stacktrace>   at Microsoft.Data.OData.MediaTypeUtils.GetFormatFromContentType(String contentTypeName, ODataPayloadKind[] supportedPayloadKinds, MediaTypeResolver mediaTypeResolver, MediaType&amp; mediaType, Encoding&amp; encoding, ODataPayloadKind&amp; selectedPayloadKind)&#xD;
-      at Microsoft.Data.OData.MediaTypeUtils.GetFormatFromContentType(String contentTypeHeader, ODataPayloadKind[] supportedPayloadKinds, MediaTypeResolver mediaTypeResolver, MediaType&amp; mediaType, Encoding&amp; encoding, ODataPayloadKind&amp; selectedPayloadKind, String&amp; batchBoundary)&#xD;
-      at Microsoft.Data.OData.ODataMessageReader.ProcessContentType(ODataPayloadKind[] payloadKinds)&#xD;
-      at Microsoft.Data.OData.ODataMessageReader.ReadFromInput[T](Func`2 readFunc, ODataPayloadKind[] payloadKinds)&#xD;
-      at System.Data.Services.Serializers.EntityDeserializer.Read(SegmentInfo segmentInfo)&#xD;
-      at System.Data.Services.Serializers.ODataMessageReaderDeserializer.Deserialize(SegmentInfo segmentInfo)</m:stacktrace>
-  </m:innererror>
-</m:error>


[47/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/OpenType.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/OpenType.java b/fit/src/main/java/org/apache/olingo/fit/OpenType.java
new file mode 100644
index 0000000..e65c5bf
--- /dev/null
+++ b/fit/src/main/java/org/apache/olingo/fit/OpenType.java
@@ -0,0 +1,140 @@
+/*
+ * 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;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.fit.metadata.Metadata;
+import org.apache.olingo.fit.utils.Accept;
+import org.apache.olingo.fit.utils.ConstantKey;
+import org.apache.olingo.fit.utils.Constants;
+import org.apache.olingo.fit.utils.FSManager;
+import org.springframework.stereotype.Service;
+
+@Service
+@Path("/V40/OpenType.svc")
+public class OpenType extends Services {
+
+  public OpenType() throws IOException {
+    super(new Metadata(FSManager.instance(ODataServiceVersion.V40).
+        readRes("openType" + StringUtils.capitalize(Constants.get(ConstantKey.METADATA)), Accept.XML)));
+  }
+
+  private Response replaceServiceName(final Response response) {
+    try {
+      final String content = IOUtils.toString((InputStream) response.getEntity(), Constants.ENCODING).
+          replaceAll("Static\\.svc", "OpenType.svc");
+
+      final Response.ResponseBuilder builder = Response.status(response.getStatus());
+      for (String headerName : response.getHeaders().keySet()) {
+        for (Object headerValue : response.getHeaders().get(headerName)) {
+          builder.header(headerName, headerValue);
+        }
+      }
+
+      final InputStream toBeStreamedBack = IOUtils.toInputStream(content, Constants.ENCODING);
+      final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+      IOUtils.copy(toBeStreamedBack, baos);
+      IOUtils.closeQuietly(toBeStreamedBack);
+
+      builder.header("Content-Length", baos.size());
+      builder.entity(new ByteArrayInputStream(baos.toByteArray()));
+
+      return builder.build();
+    } catch (Exception e) {
+      return response;
+    }
+  }
+
+  /**
+   * Provide sample large metadata.
+   *
+   * @return metadata.
+   */
+  @GET
+  @Path("/$metadata")
+  @Produces(MediaType.APPLICATION_XML)
+  @Override
+  public Response getMetadata() {
+    return super.getMetadata("openType" + StringUtils.capitalize(Constants.get(ConstantKey.METADATA)));
+  }
+
+  @GET
+  @Path("/{entitySetName}({entityId})")
+  @Override
+  public Response getEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId,
+      @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 replaceServiceName(super.getEntityInternal(
+        uriInfo.getRequestUri().toASCIIString(), accept, entitySetName, entityId, format, expand, select));
+  }
+
+  @POST
+  @Path("/{entitySetName}")
+  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM })
+  @Override
+  public Response postNewEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      @PathParam("entitySetName") final String entitySetName,
+      final String entity) {
+
+    return replaceServiceName(super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
+  }
+
+  @DELETE
+  @Path("/{entitySetName}({entityId})")
+  @Override
+  public Response removeEntity(
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId) {
+
+    return replaceServiceName(super.removeEntity(entitySetName, entityId));
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/Services.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/Services.java b/fit/src/main/java/org/apache/olingo/fit/Services.java
new file mode 100644
index 0000000..68e2c64
--- /dev/null
+++ b/fit/src/main/java/org/apache/olingo/fit/Services.java
@@ -0,0 +1,1448 @@
+/*
+ * 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;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStreamWriter;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.regex.Pattern;
+
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMultipart;
+import javax.ws.rs.BadRequestException;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.NotFoundException;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+import javax.ws.rs.core.UriInfo;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.math.NumberUtils;
+import org.apache.cxf.interceptor.InInterceptors;
+import org.apache.cxf.jaxrs.ext.multipart.Attachment;
+import org.apache.cxf.jaxrs.ext.multipart.Multipart;
+import org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.data.EntityCollection;
+import org.apache.olingo.commons.api.data.Link;
+import org.apache.olingo.commons.api.data.Property;
+import org.apache.olingo.commons.api.data.ResWrap;
+import org.apache.olingo.commons.api.data.ValueType;
+import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.commons.core.edm.EdmTypeInfo;
+import org.apache.olingo.fit.metadata.Metadata;
+import org.apache.olingo.fit.methods.PATCH;
+import org.apache.olingo.fit.rest.ResolvingReferencesInterceptor;
+import org.apache.olingo.fit.rest.XHTTPMethodInterceptor;
+import org.apache.olingo.fit.utils.AbstractUtilities;
+import org.apache.olingo.fit.utils.Accept;
+import org.apache.olingo.fit.utils.Commons;
+import org.apache.olingo.fit.utils.ConstantKey;
+import org.apache.olingo.fit.utils.Constants;
+import org.apache.olingo.fit.utils.FSManager;
+import org.apache.olingo.fit.utils.LinkInfo;
+import org.springframework.stereotype.Service;
+
+@Service
+@Path("/V40/Static.svc")
+@InInterceptors(classes = { XHTTPMethodInterceptor.class, ResolvingReferencesInterceptor.class })
+public class Services extends AbstractServices {
+
+  /**
+   * CR/LF.
+   */
+  protected static final byte[] CRLF = { 13, 10 };
+
+  protected static final Pattern RELENTITY_SELECT_PATTERN = Pattern.compile("^.*\\(\\$select=.*\\)$");
+
+  protected static final Pattern CROSSJOIN_PATTERN = Pattern.compile(
+      "^\\$crossjoin\\(.*\\)\\?\\$filter=\\([a-zA-Z/]+ eq [a-zA-Z/]+\\)$");
+
+  private final Map<String, String> providedAsync = new HashMap<String, String>();
+
+  public Services() throws IOException {
+    super(ODataServiceVersion.V40, Commons.getMetadata(ODataServiceVersion.V40));
+  }
+
+  protected Services(final Metadata metadata) throws IOException {
+    super(ODataServiceVersion.V40, metadata);
+  }
+
+  @GET
+  @Path("/redirect/{name}({id})")
+  public Response conformanceRedirect(
+      @Context final UriInfo uriInfo,
+      @PathParam("name") final String name,
+      @PathParam("id") final String id) {
+    return Response.temporaryRedirect(
+        URI.create(uriInfo.getRequestUri().toASCIIString().replace("/redirect", ""))).build();
+  }
+
+  @GET
+  @Path("/$crossjoin({elements:.*})")
+  public Response crossjoin(
+      @PathParam("elements") final String elements,
+      @QueryParam("$filter") final String filter) {
+
+    try {
+      if (CROSSJOIN_PATTERN.matcher("$crossjoin(" + elements + ")?$filter=" + filter).matches()) {
+        final InputStream feed = FSManager.instance(version).readFile("crossjoin", Accept.JSON);
+
+        return xml.createResponse(feed, null, Accept.JSON_FULLMETA);
+      } else {
+        throw new IOException("Unexpected crossjoin pattern");
+      }
+    } catch (Exception e) {
+      return xml.createFaultResponse(Accept.JSON.toString(), e);
+    }
+  }
+
+  @GET
+  @Path("/relatedEntitySelect/{path:.*}")
+  public Response relatedEntitySelect(
+      @PathParam("path") final String path,
+      @QueryParam("$expand") final String expand) {
+
+    if (RELENTITY_SELECT_PATTERN.matcher(expand).matches()) {
+      return xml.createResponse(null, null, Accept.JSON_FULLMETA);
+    } else {
+      return xml.createFaultResponse(Accept.JSON.toString(), new Exception("Unexpected expand pattern"));
+    }
+  }
+
+  @DELETE
+  @Path("/monitor/{name}")
+  public Response removeMonitor(@PathParam("name") final String name) {
+    providedAsync.remove(name);
+    return xml.createResponse(null, null, null, Status.NO_CONTENT);
+  }
+
+  @GET
+  @Path("/monitor/{name}")
+  public Response async(@PathParam("name") final String name) {
+    try {
+      if (!providedAsync.containsKey(name)) {
+        throw new NotFoundException();
+      }
+      final InputStream res = IOUtils.toInputStream(providedAsync.get(name), Constants.ENCODING);
+      providedAsync.remove(name);
+      return xml.createMonitorResponse(res);
+    } catch (Exception e) {
+      return xml.createFaultResponse(Accept.JSON_FULLMETA.toString(), e);
+    }
+  }
+
+  @PUT
+  @Path("/People(1)/Parent")
+  public Response changeSingleValuedNavigationPropertyReference(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      final String content) {
+
+    try {
+      final Accept contentTypeValue = Accept.parse(contentType);
+      assert contentTypeValue == Accept.JSON;
+
+      jsonDeserializer.toEntity(IOUtils.toInputStream(content, Constants.ENCODING));
+
+      return Response.noContent().type(MediaType.APPLICATION_JSON).build();
+    } catch (Exception e) {
+      LOG.error("While update single property reference", e);
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @POST
+  @Path("/async/$batch")
+  public Response async(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      final @Multipart MultipartBody attachment) {
+
+    try {
+      final ByteArrayOutputStream bos = new ByteArrayOutputStream();
+      bos.write("HTTP/1.1 200 Ok".getBytes());
+      bos.write(CRLF);
+      bos.write("OData-Version: 4.0".getBytes());
+      bos.write(CRLF);
+      bos.write(("Content-Type: " + ContentType.APPLICATION_OCTET_STREAM + ";boundary=" + BOUNDARY).getBytes());
+      bos.write(CRLF);
+      bos.write(CRLF);
+
+      bos.write(("--" + BOUNDARY).getBytes());
+      bos.write(CRLF);
+      bos.write("Content-Type: application/http".getBytes());
+      bos.write(CRLF);
+      bos.write("Content-Transfer-Encoding: binary".getBytes());
+      bos.write(CRLF);
+      bos.write(CRLF);
+
+      bos.write("HTTP/1.1 202 Accepted".getBytes());
+      bos.write(CRLF);
+      bos.write("Location: http://service-root/async-monitor".getBytes());
+      bos.write(CRLF);
+      bos.write("Retry-After: 10".getBytes());
+      bos.write(CRLF);
+      bos.write(CRLF);
+      bos.write(("--" + BOUNDARY + "--").getBytes());
+      bos.write(CRLF);
+
+      final UUID uuid = UUID.randomUUID();
+      providedAsync.put(uuid.toString(), bos.toString(Constants.ENCODING.toString()));
+
+      bos.flush();
+      bos.close();
+
+      return xml.createAsyncResponse(
+          uriInfo.getRequestUri().toASCIIString().replace("async/$batch", "") + "monitor/" + uuid.toString());
+    } catch (Exception e) {
+      return xml.createFaultResponse(Accept.JSON.toString(), e);
+    }
+  }
+
+  @GET
+  @Path("/async/{name}")
+  public Response async(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("name") final String name) {
+
+    try {
+      final Accept acceptType = Accept.parse(accept);
+      if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
+        throw new UnsupportedMediaTypeException("Unsupported media type");
+      }
+
+      final String basePath = name + File.separatorChar;
+      final StringBuilder path = new StringBuilder(basePath);
+
+      path.append(metadata.getEntitySet(name).isSingleton()
+          ? Constants.get(ConstantKey.ENTITY)
+          : Constants.get(ConstantKey.FEED));
+
+      final InputStream feed = FSManager.instance(version).readFile(path.toString(), acceptType);
+
+      final StringBuilder builder = new StringBuilder();
+      builder.append("HTTP/1.1 200 Ok").append(new String(CRLF));
+      builder.append("Content-Type: ").append(accept).append(new String(CRLF)).append(new String(CRLF));
+      builder.append(IOUtils.toString(feed));
+      IOUtils.closeQuietly(feed);
+
+      final UUID uuid = UUID.randomUUID();
+      providedAsync.put(uuid.toString(), builder.toString());
+
+      return xml.createAsyncResponse(
+          uriInfo.getRequestUri().toASCIIString().replaceAll("async/" + name, "") + "monitor/" + uuid.toString());
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @Override
+  protected void setInlineCount(final EntityCollection entitySet, final String count) {
+    if ("true".equals(count)) {
+      entitySet.setCount(entitySet.getEntities().size());
+    }
+  }
+
+  @Override
+  public InputStream exploreMultipart(
+      final List<Attachment> attachments, final String boundary, final boolean continueOnError)
+      throws IOException {
+
+    final ByteArrayOutputStream bos = new ByteArrayOutputStream();
+
+    Response res = null;
+    boolean goon = true;
+    for (int i = 0; i < attachments.size() && goon; i++) {
+      try {
+        final Attachment obj = attachments.get(i);
+        bos.write(("--" + boundary).getBytes());
+        bos.write(Constants.CRLF);
+
+        final Object content = obj.getDataHandler().getContent();
+        if (content instanceof MimeMultipart) {
+          final ByteArrayOutputStream chbos = new ByteArrayOutputStream();
+          String lastContebtID = null;
+          try {
+            final Map<String, String> references = new HashMap<String, String>();
+
+            final String cboundary = "changeset_" + UUID.randomUUID().toString();
+            chbos.write(("Content-Type: multipart/mixed;boundary=" + cboundary).getBytes());
+            chbos.write(Constants.CRLF);
+            chbos.write(Constants.CRLF);
+
+            for (int j = 0; j < ((MimeMultipart) content).getCount(); j++) {
+              final MimeBodyPart part = (MimeBodyPart) ((MimeMultipart) content).getBodyPart(j);
+              lastContebtID = part.getContentID();
+              addChangesetItemIntro(chbos, lastContebtID, cboundary);
+
+              res = bodyPartRequest(new MimeBodyPart(part.getInputStream()), references);
+              if (!continueOnError && (res == null || res.getStatus() >= 400)) {
+                throw new Exception("Failure processing changeset");
+              }
+
+              addSingleBatchResponse(res, lastContebtID, chbos);
+              references.put("$" + lastContebtID, res.getHeaderString("Location"));
+            }
+
+            chbos.write(("--" + cboundary + "--").getBytes());
+            chbos.write(Constants.CRLF);
+
+            bos.write(chbos.toByteArray());
+            IOUtils.closeQuietly(chbos);
+          } catch (Exception e) {
+            LOG.warn("While processing changeset", e);
+            IOUtils.closeQuietly(chbos);
+
+            addItemIntro(bos, lastContebtID);
+
+            if (res == null || res.getStatus() < 400) {
+              addErrorBatchResponse(e, "1", bos);
+            } else {
+              addSingleBatchResponse(res, lastContebtID, bos);
+            }
+
+            goon = continueOnError;
+          }
+        } else {
+          addItemIntro(bos);
+
+          res = bodyPartRequest(new MimeBodyPart(obj.getDataHandler().getInputStream()));
+
+          if (res.getStatus() >= 400) {
+            goon = continueOnError;
+            throw new Exception("Failure processing batch item");
+          }
+
+          addSingleBatchResponse(res, bos);
+        }
+      } catch (Exception e) {
+        if (res == null || res.getStatus() < 400) {
+          addErrorBatchResponse(e, bos);
+        } else {
+          addSingleBatchResponse(res, bos);
+        }
+      }
+    }
+
+    bos.write(("--" + boundary + "--").getBytes());
+
+    return new ByteArrayInputStream(bos.toByteArray());
+  }
+
+  @GET
+  @Path("/People/{type:.*}")
+  public Response getPeople(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("type") final String type,
+      @QueryParam("$top") @DefaultValue(StringUtils.EMPTY) final String top,
+      @QueryParam("$skip") @DefaultValue(StringUtils.EMPTY) final String skip,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      @QueryParam("$inlinecount") @DefaultValue(StringUtils.EMPTY) final String count,
+      @QueryParam("$filter") @DefaultValue(StringUtils.EMPTY) final String filter,
+      @QueryParam("$search") @DefaultValue(StringUtils.EMPTY) final String search,
+      @QueryParam("$orderby") @DefaultValue(StringUtils.EMPTY) final String orderby,
+      @QueryParam("$skiptoken") @DefaultValue(StringUtils.EMPTY) final String skiptoken) {
+
+    return StringUtils.isBlank(filter) && StringUtils.isBlank(search)
+        ? NumberUtils.isNumber(type)
+            ? super.getEntityInternal(
+                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, type);
+  }
+
+  @GET
+  @Path("/Boss")
+  public Response getSingletonBoss(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    return getEntityInternal(
+        uriInfo.getRequestUri().toASCIIString(), accept, "Boss", StringUtils.EMPTY, format, null, null);
+  }
+
+  @GET
+  @Path("/Company")
+  public Response getSingletonCompany(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    return getEntityInternal(
+        uriInfo.getRequestUri().toASCIIString(), accept, "Company", StringUtils.EMPTY, format, null, null);
+  }
+
+  @PATCH
+  @Path("/Company")
+  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  public Response patchSingletonCompany(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      @HeaderParam("If-Match") @DefaultValue(StringUtils.EMPTY) final String ifMatch,
+      final String changes) {
+
+    return super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, "Company", StringUtils.EMPTY, changes);
+  }
+
+  @GET
+  @Path("/Customers")
+  public Response getCustomers(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      @QueryParam("$deltatoken") @DefaultValue(StringUtils.EMPTY) final String deltatoken) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final InputStream output;
+      if (StringUtils.isBlank(deltatoken)) {
+        final InputStream input = (InputStream) getEntitySet(
+            uriInfo, accept, "Customers", null, null, format, null, null, null, null).getEntity();
+        final EntityCollection entitySet = xml.readEntitySet(acceptType, input);
+
+        boolean trackChanges = prefer.contains("odata.track-changes");
+        if (trackChanges) {
+          entitySet.setDeltaLink(URI.create("Customers?$deltatoken=8015"));
+        }
+
+        output = xml.writeEntitySet(acceptType, new ResWrap<EntityCollection>(
+            URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + "Customers"),
+            null,
+            entitySet));
+      } else {
+        output = FSManager.instance(version).readFile("delta", acceptType);
+      }
+
+      final Response response = xml.createResponse(
+          null,
+          output,
+          null,
+          acceptType);
+      if (StringUtils.isNotBlank(prefer)) {
+        response.getHeaders().put("Preference-Applied", Collections.<Object> singletonList(prefer));
+      }
+      return response;
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @GET
+  @Path("/Company/Microsoft.Test.OData.Services.ODataWCFService.GetEmployeesCount{paren:[\\(\\)]*}")
+  public Response functionGetEmployeesCount(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final Property property = new Property();
+      property.setType("Edm.Int32");
+      property.setValue(ValueType.PRIMITIVE, 2);
+      final ResWrap<Property> container = new ResWrap<Property>(
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
+          property);
+
+      return xml.createResponse(
+          null,
+          xml.writeProperty(acceptType, container),
+          null,
+          acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @POST
+  @Path("/Company/Microsoft.Test.OData.Services.ODataWCFService.IncreaseRevenue{paren:[\\(\\)]*}")
+  public Response actionIncreaseRevenue(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final Accept contentTypeValue = Accept.parse(contentType);
+      final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
+
+      return xml.createResponse(
+          null,
+          xml.writeProperty(acceptType, entry.getProperty("IncreaseValue")),
+          null,
+          acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @GET
+  @Path("/Products({entityId})/Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails({param:.*})")
+  public Response functionGetProductDetails(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final Entity entry = new Entity();
+      entry.setType("Microsoft.Test.OData.Services.ODataWCFService.ProductDetail");
+      final Property productId = new Property();
+      productId.setName("ProductID");
+      productId.setType("Edm.Int32");
+      productId.setValue(ValueType.PRIMITIVE, Integer.valueOf(entityId));
+      entry.getProperties().add(productId);
+      final Property productDetailId = new Property();
+      productDetailId.setName("ProductDetailID");
+      productDetailId.setType("Edm.Int32");
+      productDetailId.setValue(ValueType.PRIMITIVE, 2);
+      entry.getProperties().add(productDetailId);
+
+      final Link link = new Link();
+      link.setRel("edit");
+      link.setHref(URI.create(
+          Constants.get(ConstantKey.DEFAULT_SERVICE_URL)
+              + "ProductDetails(ProductID=6,ProductDetailID=1)").toASCIIString());
+      entry.setEditLink(link);
+
+      final EntityCollection feed = new EntityCollection();
+      feed.getEntities().add(entry);
+
+      final ResWrap<EntityCollection> container = new ResWrap<EntityCollection>(
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + "ProductDetail"), null,
+          feed);
+
+      return xml.createResponse(
+          null,
+          xml.writeEntitySet(acceptType, container),
+          null,
+          acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @POST
+  @Path("/Products({entityId})/Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight{paren:[\\(\\)]*}")
+  public Response actionAddAccessRight(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final Accept contentTypeValue = Accept.parse(contentType);
+      final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
+
+      assert 1 == entry.getProperties().size();
+      assert entry.getProperty("accessRight") != null;
+
+      final Property property = entry.getProperty("accessRight");
+      property.setType("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel");
+
+      final ResWrap<Property> result = new ResWrap<Property>(
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()),
+          null, property);
+
+      return xml.createResponse(
+          null,
+          xml.writeProperty(acceptType, result),
+          null,
+          acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @POST
+  @Path("/Customers({personId})/Microsoft.Test.OData.Services.ODataWCFService.ResetAddress{paren:[\\(\\)]*}")
+  public Response actionResetAddress(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("personId") final String personId,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
+
+    try {
+      final Accept contentTypeValue = Accept.parse(contentType);
+      final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
+
+      assert 2 == entry.getProperties().size();
+      assert entry.getProperty("addresses") != null;
+      assert entry.getProperty("index") != null;
+
+      return getEntityInternal(
+          uriInfo.getRequestUri().toASCIIString(), accept, "Customers", personId, format, null, null);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @GET
+  @Path("/ProductDetails(ProductID={productId},ProductDetailID={productDetailId})"
+      + "/Microsoft.Test.OData.Services.ODataWCFService.GetRelatedProduct{paren:[\\(\\)]*}")
+  public Response functionGetRelatedProduct(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("productId") final String productId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    return getEntityInternal(
+        uriInfo.getRequestUri().toASCIIString(), accept, "Products", productId, format, null, null);
+  }
+
+  @POST
+  @Path("/Accounts({entityId})/Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI{paren:[\\(\\)]*}")
+  public Response actionRefreshDefaultPI(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @PathParam("entityId") final String entityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
+
+    try {
+      final Accept contentTypeValue = Accept.parse(contentType);
+      final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
+
+      assert 1 == entry.getProperties().size();
+      assert entry.getProperty("newDate") != null;
+
+      return functionGetDefaultPI(accept, entityId, format);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @GET
+  @Path("/Accounts({entityId})/Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI{paren:[\\(\\)]*}")
+  public Response functionGetDefaultPI(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    return getContainedEntity(accept, entityId, "MyPaymentInstruments", entityId + "901", format);
+  }
+
+  @GET
+  @Path("/Accounts({entityId})/Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo{paren:[\\(\\)]*}")
+  public Response functionGetAccountInfo(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    return getPath(accept, "Accounts", entityId, "AccountInfo", format);
+  }
+
+  @GET
+  @Path("/Accounts({entityId})/MyGiftCard/Microsoft.Test.OData.Services.ODataWCFService.GetActualAmount({param:.*})")
+  public Response functionGetActualAmount(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final Property property = new Property();
+      property.setType("Edm.Double");
+      property.setValue(ValueType.PRIMITIVE, 41.79);
+
+      final ResWrap<Property> container = new ResWrap<Property>((URI) null, null, property);
+
+      return xml.createResponse(
+          null,
+          xml.writeProperty(acceptType, container),
+          null,
+          acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  /**
+   * Retrieve entity reference sample.
+   *
+   * @param accept Accept header.
+   * @param path path.
+   * @param format format query option.
+   * @return entity reference or feed of entity reference.
+   */
+  @GET
+  @Path("/{path:.*}/$ref")
+  public Response getEntityReference(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("path") final String path,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    try {
+      final Map.Entry<Accept, AbstractUtilities> utils = getUtilities(accept, format);
+
+      if (utils.getKey() == Accept.TEXT) {
+        throw new UnsupportedMediaTypeException("Unsupported media type");
+      }
+
+      final String filename = Base64.encodeBase64String(path.getBytes("UTF-8"));
+
+      return utils.getValue().createResponse(
+          FSManager.instance(version).readFile(Constants.get(ConstantKey.REF)
+              + File.separatorChar + filename, utils.getKey()),
+          null,
+          utils.getKey());
+    } catch (Exception e) {
+      LOG.error("Error retrieving entity", e);
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @POST
+  @Path("/People")
+  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM })
+  public Response postPeople(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      final String entity) {
+
+    if ("{\"@odata.type\":\"#Microsoft.Test.OData.Services.ODataWCFService.Person\"}".equals(entity)) {
+      return xml.createFaultResponse(accept, new BadRequestException());
+    }
+
+    return super.postNewEntity(uriInfo, accept, contentType, prefer, "People", entity);
+  }
+
+  @Override
+  public Response patchEntity(
+      final UriInfo uriInfo,
+      final String accept,
+      final String contentType,
+      final String prefer,
+      final String ifMatch,
+      final String entitySetName,
+      final String entityId,
+      final String changes) {
+
+    final Response response =
+        getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
+            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);
+  }
+
+  @Override
+  public Response replaceEntity(
+      final UriInfo uriInfo,
+      final String accept,
+      final String contentType,
+      final String prefer,
+      final String entitySetName,
+      final String entityId,
+      final String entity) {
+
+    try {
+      getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
+          accept, entitySetName, entityId, accept, StringUtils.EMPTY, StringUtils.EMPTY);
+      return super.replaceEntity(uriInfo, accept, contentType, prefer, entitySetName, entityId, entity);
+    } catch (NotFoundException e) {
+      return postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entityId);
+    }
+  }
+
+  private StringBuilder containedPath(final String entityId, final String containedEntitySetName) {
+    return new StringBuilder("Accounts").append(File.separatorChar).
+        append(entityId).append(File.separatorChar).
+        append("links").append(File.separatorChar).
+        append(containedEntitySetName);
+  }
+
+  @GET
+  @Path("/Accounts({entityId})/{containedEntitySetName}({containedEntityId})")
+  public Response getContainedEntity(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @PathParam("containedEntitySetName") final String containedEntitySetName,
+      @PathParam("containedEntityId") final String containedEntityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+      if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
+        throw new UnsupportedMediaTypeException("Unsupported media type");
+      }
+
+      final StringBuilder containedPath = containedPath(entityId, containedEntitySetName);
+      if (StringUtils.isNotBlank(containedEntityId)) {
+        containedPath.append('(').append(containedEntityId).append(')');
+      }
+      final InputStream entry = FSManager.instance(version).readFile(containedPath.toString(), Accept.ATOM);
+
+      final ResWrap<Entity> container = atomDeserializer.toEntity(entry);
+
+      return xml.createResponse(
+          null,
+          xml.writeEntity(acceptType, container),
+          null,
+          acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @POST
+  @Path("/Accounts({entityId})/{containedEntitySetName:.*}")
+  public Response postContainedEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @PathParam("entityId") final String entityId,
+      @PathParam("containedEntitySetName") final String containedEntitySetName,
+      final String entity) {
+
+    try {
+      final Accept acceptType = Accept.parse(accept);
+      if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
+        throw new UnsupportedMediaTypeException("Unsupported media type");
+      }
+
+      final AbstractUtilities utils = getUtilities(acceptType);
+
+      // 1. parse the entry (from Atom or JSON)
+      final ResWrap<Entity> entryContainer;
+      final Entity entry;
+      final Accept contentTypeValue = Accept.parse(contentType);
+      if (Accept.ATOM == contentTypeValue) {
+        entryContainer = atomDeserializer.toEntity(IOUtils.toInputStream(entity, Constants.ENCODING));
+        entry = entryContainer.getPayload();
+      } else {
+        final ResWrap<Entity> jcontainer = jsonDeserializer.toEntity(
+            IOUtils.toInputStream(entity, Constants.ENCODING));
+        entry = jcontainer.getPayload();
+
+        entryContainer = new ResWrap<Entity>(
+            jcontainer.getContextURL(),
+            jcontainer.getMetadataETag(),
+            entry);
+      }
+
+      final EdmTypeInfo contained = new EdmTypeInfo.Builder().setTypeExpression(metadata.
+          getNavigationProperties("Accounts").get(containedEntitySetName).getType()).build();
+      final String entityKey = getUtilities(contentTypeValue).
+          getDefaultEntryKey(contained.getFullQualifiedName().getName(), entry);
+
+      // 2. Store the new entity
+      final String atomEntryRelativePath = containedPath(entityId, containedEntitySetName).
+          append('(').append(entityKey).append(')').toString();
+      FSManager.instance(version).putInMemory(
+          utils.writeEntity(Accept.ATOM, entryContainer),
+          FSManager.instance(version).getAbsolutePath(atomEntryRelativePath, Accept.ATOM));
+
+      // 3. Update the contained entity set
+      final String atomFeedRelativePath = containedPath(entityId, containedEntitySetName).toString();
+      final InputStream feedIS = FSManager.instance(version).readFile(atomFeedRelativePath, Accept.ATOM);
+      final ResWrap<EntityCollection> feedContainer = atomDeserializer.toEntitySet(feedIS);
+      feedContainer.getPayload().getEntities().add(entry);
+
+      final ByteArrayOutputStream content = new ByteArrayOutputStream();
+      final OutputStreamWriter writer = new OutputStreamWriter(content, Constants.ENCODING);
+      atomSerializer.write(writer, feedContainer);
+      writer.flush();
+      writer.close();
+
+      FSManager.instance(version).putInMemory(
+          new ByteArrayInputStream(content.toByteArray()),
+          FSManager.instance(version).getAbsolutePath(atomFeedRelativePath, Accept.ATOM));
+
+      // Finally, return
+      return utils.createResponse(
+          uriInfo.getRequestUri().toASCIIString() + "(" + entityKey + ")",
+          utils.writeEntity(acceptType, entryContainer),
+          null,
+          acceptType,
+          Response.Status.CREATED);
+    } catch (Exception e) {
+      LOG.error("While creating new contained entity", e);
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @PATCH
+  @Path("/{entitySetName}({entityId})/{containedEntitySetName}({containedEntityId})")
+  public Response patchContainedEntity(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId,
+      @PathParam("containedEntitySetName") final String containedEntitySetName,
+      @PathParam("containedEntityId") final String containedEntityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String changes) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+      if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
+        throw new UnsupportedMediaTypeException("Unsupported media type");
+      }
+
+      final Accept contentTypeValue;
+      if (StringUtils.isBlank(contentType)) {
+        throw new IllegalArgumentException();
+      }
+      contentTypeValue = Accept.parse(contentType);
+
+      final LinkInfo links = xml.readLinks(
+          entitySetName, entityId, containedEntitySetName + "(" + containedEntityId + ")", Accept.ATOM);
+
+      ResWrap<Entity> container = atomDeserializer.toEntity(links.getLinks());
+      final Entity original = container.getPayload();
+
+      final Entity entryChanges;
+      if (Accept.ATOM == contentTypeValue) {
+        container = atomDeserializer.toEntity(IOUtils.toInputStream(changes, Constants.ENCODING));
+        entryChanges = container.getPayload();
+      } else {
+        final String entityType = metadata.getEntitySet(entitySetName).getType();
+        final String containedType = metadata.getEntityOrComplexType(entityType).
+            getNavigationProperty(containedEntitySetName).getType();
+        final EdmTypeInfo typeInfo = new EdmTypeInfo.Builder().setTypeExpression(containedType).build();
+
+        final ResWrap<Entity> jsonContainer = jsonDeserializer.toEntity(
+            IOUtils.toInputStream(changes, Constants.ENCODING));
+        jsonContainer.getPayload().setType(typeInfo.getFullQualifiedName().toString());
+        entryChanges = jsonContainer.getPayload();
+      }
+
+      for (Property property : entryChanges.getProperties()) {
+        final Property old = original.getProperty(property.getName());
+        if (old != null) {
+          original.getProperties().remove(old);
+        }
+        original.getProperties().add(property);
+      }
+
+      FSManager.instance(version).putInMemory(new ResWrap<Entity>((URI) null, null, original),
+          xml.getLinksBasePath(entitySetName, entityId) + containedEntitySetName + "(" + containedEntityId + ")");
+
+      return xml.createResponse(null, null, acceptType, Response.Status.NO_CONTENT);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @DELETE
+  @Path("/Accounts({entityId})/{containedEntitySetName}({containedEntityId})")
+  public Response removeContainedEntity(
+      @PathParam("entityId") final String entityId,
+      @PathParam("containedEntitySetName") final String containedEntitySetName,
+      @PathParam("containedEntityId") final String containedEntityId) {
+
+    try {
+      // 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);
+      final ResWrap<Entity> container = atomDeserializer.toEntity(entry);
+
+      // 2. Remove the contained entity
+      final String atomEntryRelativePath = containedPath(entityId, containedEntitySetName).
+          append('(').append(containedEntityId).append(')').toString();
+      FSManager.instance(version).deleteFile(atomEntryRelativePath);
+
+      // 3. Update the contained entity set
+      final String atomFeedRelativePath = containedPath(entityId, containedEntitySetName).toString();
+      final InputStream feedIS = FSManager.instance(version).readFile(atomFeedRelativePath, Accept.ATOM);
+      final ResWrap<EntityCollection> feedContainer = atomDeserializer.toEntitySet(feedIS);
+      feedContainer.getPayload().getEntities().remove(container.getPayload());
+
+      final ByteArrayOutputStream content = new ByteArrayOutputStream();
+      final OutputStreamWriter writer = new OutputStreamWriter(content, Constants.ENCODING);
+      atomSerializer.write(writer, feedContainer);
+      writer.flush();
+      writer.close();
+
+      FSManager.instance(version).putInMemory(
+          new ByteArrayInputStream(content.toByteArray()),
+          FSManager.instance(version).getAbsolutePath(atomFeedRelativePath, Accept.ATOM));
+
+      return xml.createResponse(null, null, null, null, Response.Status.NO_CONTENT);
+    } catch (Exception e) {
+      return xml.createFaultResponse(Accept.XML.toString(), e);
+    }
+  }
+
+  @GET
+  @Path("/Accounts({entityId})/{containedEntitySetName:.*}")
+  public Response getContainedEntitySet(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @PathParam("containedEntitySetName") final String containedEntitySetName,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    String tempContainedESName = containedEntitySetName;
+    if ("MyGiftCard".equals(tempContainedESName)) {
+      return getContainedEntity(accept, entityId, tempContainedESName, null, format);
+    }
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+      if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
+        throw new UnsupportedMediaTypeException("Unsupported media type");
+      }
+
+      String derivedType = null;
+      if (tempContainedESName.contains("/")) {
+        final String[] parts = tempContainedESName.split("/");
+        tempContainedESName = parts[0];
+        derivedType = parts[1];
+      }
+
+      final InputStream feed = FSManager.instance(version).
+          readFile(containedPath(entityId, tempContainedESName).toString(), Accept.ATOM);
+
+      final ResWrap<EntityCollection> container = atomDeserializer.toEntitySet(feed);
+
+      if (derivedType != null) {
+        final List<Entity> nonMatching = new ArrayList<Entity>();
+        for (Entity entity : container.getPayload().getEntities()) {
+          if (!derivedType.equals(entity.getType())) {
+            nonMatching.add(entity);
+          }
+        }
+        container.getPayload().getEntities().removeAll(nonMatching);
+      }
+
+      return xml.createResponse(
+          null,
+          xml.writeEntitySet(acceptType, container),
+          null,
+          acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @GET
+  @Path("/GetDefaultColor()")
+  public Response functionGetDefaultColor(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final Property property = new Property();
+      property.setType("Microsoft.Test.OData.Services.ODataWCFService.Color");
+      property.setValue(ValueType.ENUM, "Red");
+      final ResWrap<Property> container = new ResWrap<Property>(
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
+          property);
+
+      return xml.createResponse(
+          null,
+          xml.writeProperty(acceptType, container),
+          null,
+          acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @GET
+  @Path("/GetPerson2({param:.*})")
+  public Response functionGetPerson2(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    return getEntityInternal(
+        uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "1", format, null, null);
+  }
+
+  @GET
+  @Path("/GetPerson2({param:.*})/Emails")
+  public Response functionGetPerson2Emails(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    return getPath(accept, "Customers", "1", "Emails", format);
+  }
+
+  @GET
+  @Path("/GetPerson2({param:.*})/HomeAddress")
+  public Response functionGetPerson2HomeAddress(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    return getPath(accept, "Customers", "1", "HomeAddress", format);
+  }
+
+  @GET
+  @Path("/GetPerson2({param:.*})/Parent")
+  public Response functionGetPerson2Parent(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    return getEntityInternal(
+        uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "2", format, null, null);
+  }
+
+  @GET
+  @Path("/GetPerson({param:.*})")
+  public Response functionGetPerson(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    return getEntityInternal(
+        uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "1", format, null, null);
+  }
+
+  @GET
+  @Path("/GetAllProducts()")
+  public Response functionGetAllProducts(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    return getEntitySet(uriInfo, accept, "Products", null, null, format, null, null, null, null);
+  }
+
+  @GET
+  @Path("/GetProductsByAccessLevel({param:.*})")
+  public Response functionGetProductsByAccessLevel(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final Property property = new Property();
+      property.setType("Collection(String)");
+      final List<String> value = Arrays.asList("Cheetos", "Mushrooms", "Apple", "Car", "Computer");
+      property.setValue(ValueType.COLLECTION_PRIMITIVE, value);
+      final ResWrap<Property> container = new ResWrap<Property>(
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
+          property);
+
+      return xml.createResponse(
+          null,
+          xml.writeProperty(acceptType, container),
+          null,
+          acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @GET
+  @Path("/GetBossEmails({param:.*})")
+  public Response functionGetBossEmails(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final Property property = new Property();
+      property.setType("Collection(Edm.String)");
+      property.setValue(ValueType.COLLECTION_PRIMITIVE,
+          Arrays.asList("first@olingo.apache.org", "second@olingo.apache.org"));
+      final ResWrap<Property> container = new ResWrap<Property>(
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
+          property);
+
+      return xml.createResponse(null, xml.writeProperty(acceptType, container), null, acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @POST
+  @Path("/Discount()")
+  public Response actionDiscount(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final Accept contentTypeValue = Accept.parse(contentType);
+      Property property;
+      if (contentTypeValue == Accept.ATOM) {
+        final ResWrap<Property> paramContainer = atomDeserializer.toProperty(
+            IOUtils.toInputStream(param, Constants.ENCODING));
+        property = paramContainer.getPayload();
+      } else {
+        final ResWrap<Property> paramContainer = jsonDeserializer.toProperty(
+            IOUtils.toInputStream(param, Constants.ENCODING));
+        property = paramContainer.getPayload();
+      }
+
+      assert property.isComplex();
+      assert 1 == property.asComplex().getValue().size();
+      assert "Edm.Int32".equals(property.asComplex().getValue().get(0).getType());
+      assert property.asComplex().getValue().get(0).isPrimitive();
+      assert "percentage".equals(property.asComplex().getValue().get(0).getName());
+
+      return xml.createResponse(null, null, null, acceptType, Response.Status.NO_CONTENT);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @POST
+  @Path("/GetAllProducts()/Discount")
+  public Response actionBoundDiscount() {
+    try {
+      final String basePath = "Products" + File.separatorChar + "feed";
+
+      final InputStream feed = FSManager.instance(version).readFile(basePath, Accept.JSON_FULLMETA);
+      return xml.createResponse(null, feed, Commons.getETag(basePath), Accept.JSON_FULLMETA);
+    } catch (Exception e) {
+      return xml.createFaultResponse(Accept.JSON_FULLMETA.toString(), e);
+    }
+  }
+
+  @POST
+  @Path("/ResetBossAddress()")
+  public Response actionResetBossAddress(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final Accept contentTypeValue = Accept.parse(contentType);
+      final Entity entity = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
+
+      assert "Microsoft.Test.OData.Services.ODataWCFService.Address".equals(entity.getType());
+      assert entity.getProperty("address").isComplex();
+
+      final ResWrap<Property> result = new ResWrap<Property>(
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX)
+              + "Microsoft.Test.OData.Services.ODataWCFService.Address"),
+          null,
+          entity.getProperty("address"));
+
+      return xml.createResponse(
+          null,
+          xml.writeProperty(acceptType, result),
+          null,
+          acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @POST
+  @Path("/ResetBossEmail()")
+  public Response actionResetBossEmail(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
+
+    try {
+      final Accept acceptType;
+      if (StringUtils.isNotBlank(format)) {
+        acceptType = Accept.valueOf(format.toUpperCase());
+      } else {
+        acceptType = Accept.parse(accept);
+      }
+
+      final Accept contentTypeValue = Accept.parse(contentType);
+      final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
+
+      assert 1 == entry.getProperties().size();
+      assert "Collection(Edm.String)".equals(entry.getProperty("emails").getType());
+      assert entry.getProperty("emails").isCollection();
+
+      return xml.createResponse(
+          null,
+          xml.writeProperty(acceptType, entry.getProperty("emails")),
+          null,
+          acceptType);
+    } catch (Exception e) {
+      return xml.createFaultResponse(accept, e);
+    }
+  }
+
+  @POST
+  @Path("/Products({productId})/Categories/$ref")
+  public Response createLinked(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String entity) {
+
+    return xml.createResponse(null, null, null, Status.NO_CONTENT);
+  }
+
+  @POST
+  @Path("/Customers(1)/Orders/$ref")
+  public Response linkOrderViaRef(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String entity) {
+
+    return xml.createResponse(null, null, null, Status.NO_CONTENT);
+  }
+
+  @DELETE
+  @Path("/Products({productId})/Categories({categoryId})/$ref")
+  public Response deleteLinked(
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String entity) {
+
+    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/78a9539e/fit/src/main/java/org/apache/olingo/fit/V4Demo.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4Demo.java b/fit/src/main/java/org/apache/olingo/fit/V4Demo.java
deleted file mode 100644
index e723cde..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V4Demo.java
+++ /dev/null
@@ -1,174 +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;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.fit.metadata.Metadata;
-import org.apache.olingo.fit.methods.PATCH;
-import org.apache.olingo.fit.utils.Accept;
-import org.apache.olingo.fit.utils.ConstantKey;
-import org.apache.olingo.fit.utils.Constants;
-import org.apache.olingo.fit.utils.FSManager;
-import org.springframework.stereotype.Service;
-
-@Service
-@Path("/V40/Demo.svc")
-public class V4Demo extends V4Services {
-
-  public V4Demo() throws IOException {
-    super(new Metadata(FSManager.instance(ODataServiceVersion.V40).
-        readRes("demo" + StringUtils.capitalize(Constants.get(ConstantKey.METADATA)), Accept.XML)));
-  }
-
-  private Response replaceServiceName(final Response response) {
-    try {
-      final String content = IOUtils.toString((InputStream) response.getEntity(), Constants.ENCODING).
-          replaceAll("Static\\.svc", "Demo.svc");
-
-      final Response.ResponseBuilder builder = Response.status(response.getStatus());
-      for (String headerName : response.getHeaders().keySet()) {
-        for (Object headerValue : response.getHeaders().get(headerName)) {
-          builder.header(headerName, headerValue);
-        }
-      }
-
-      final InputStream toBeStreamedBack = IOUtils.toInputStream(content, Constants.ENCODING);
-      final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-      IOUtils.copy(toBeStreamedBack, baos);
-      IOUtils.closeQuietly(toBeStreamedBack);
-
-      builder.header("Content-Length", baos.size());
-      builder.entity(new ByteArrayInputStream(baos.toByteArray()));
-
-      return builder.build();
-    } catch (Exception e) {
-      return response;
-    }
-  }
-
-  @GET
-  @Path("/$metadata")
-  @Produces(MediaType.APPLICATION_XML)
-  @Override
-  public Response getMetadata() {
-    return super.getMetadata(
-        "demo" + StringUtils.capitalize(Constants.get(ConstantKey.METADATA)));
-  }
-
-  @GET
-  @Path("/{entitySetName}({entityId})")
-  @Override
-  public Response getEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("entitySetName") final String entitySetName,
-      @PathParam("entityId") final String entityId,
-      @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 replaceServiceName(super.getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
-        accept, entitySetName, entityId, format, expand, select));
-  }
-
-  @GET
-  @Path("/{entitySetName}({entityId})/$value")
-  @Override
-  public Response getMediaEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("entitySetName") final String entitySetName,
-      @PathParam("entityId") final String entityId) {
-
-    return super.getMediaEntity(uriInfo, accept, entitySetName, entityId);
-  }
-
-  @POST
-  @Path("/{entitySetName}")
-  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM })
-  @Override
-  public Response postNewEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-      @PathParam("entitySetName") final String entitySetName,
-      final String entity) {
-
-    return replaceServiceName(super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
-  }
-
-  @PATCH
-  @Path("/{entitySetName}({entityId})")
-  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  @Override
-  public Response patchEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-      @HeaderParam("If-Match") @DefaultValue(StringUtils.EMPTY) final String ifMatch,
-      @PathParam("entitySetName") final String entitySetName,
-      @PathParam("entityId") final String entityId,
-      final String changes) {
-
-    return replaceServiceName(super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, entitySetName, entityId,
-        changes));
-  }
-
-  @PUT
-  @Produces({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  @Consumes({ MediaType.WILDCARD, MediaType.APPLICATION_OCTET_STREAM })
-  @Path("/{entitySetName}({entityId})/$value")
-  @Override
-  public Response replaceMediaEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-      @PathParam("entitySetName") final String entitySetName,
-      @PathParam("entityId") final String entityId,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String value) {
-
-    return super.replaceMediaEntity(uriInfo, prefer, entitySetName, entityId, format, value);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/V4KeyAsSegment.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4KeyAsSegment.java b/fit/src/main/java/org/apache/olingo/fit/V4KeyAsSegment.java
deleted file mode 100644
index dbb7cca..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V4KeyAsSegment.java
+++ /dev/null
@@ -1,159 +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;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.fit.methods.PATCH;
-import org.apache.olingo.fit.utils.Constants;
-import org.springframework.stereotype.Service;
-
-@Service
-@Path("/V40/KeyAsSegment.svc")
-public class V4KeyAsSegment extends V4Services {
-
-  public V4KeyAsSegment() throws IOException {
-    super();
-  }
-
-  private Response replaceServiceName(final Response response) {
-    try {
-      final String content = IOUtils.toString((InputStream) response.getEntity(), Constants.ENCODING).
-          replaceAll("Static\\.svc", "KeyAsSegment.svc");
-
-      final Response.ResponseBuilder builder = Response.status(response.getStatus());
-      for (String headerName : response.getHeaders().keySet()) {
-        for (Object headerValue : response.getHeaders().get(headerName)) {
-          builder.header(headerName, headerValue);
-        }
-      }
-
-      final InputStream toBeStreamedBack = IOUtils.toInputStream(content, Constants.ENCODING);
-      final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-      IOUtils.copy(toBeStreamedBack, baos);
-      IOUtils.closeQuietly(toBeStreamedBack);
-
-      builder.header("Content-Length", baos.size());
-      builder.entity(new ByteArrayInputStream(baos.toByteArray()));
-
-      return builder.build();
-    } catch (Exception e) {
-      return response;
-    }
-  }
-
-  @GET
-  @Path("/{entitySetName}/{entityId}")
-  @Override
-  public Response getEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("entitySetName") final String entitySetName,
-      @PathParam("entityId") final String entityId,
-      @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 replaceServiceName(super.getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
-        accept, entitySetName, entityId, format, expand, select));
-  }
-
-  @DELETE
-  @Path("/{entitySetName}/{entityId}")
-  @Override
-  public Response removeEntity(
-      @PathParam("entitySetName") final String entitySetName,
-      @PathParam("entityId") final String entityId) {
-
-    return replaceServiceName(super.removeEntity(entitySetName, entityId));
-  }
-
-  @PATCH
-  @Path("/{entitySetName}/{entityId}")
-  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  @Override
-  public Response patchEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-      @HeaderParam("If-Match") @DefaultValue(StringUtils.EMPTY) final String ifMatch,
-      @PathParam("entitySetName") final String entitySetName,
-      @PathParam("entityId") final String entityId,
-      final String changes) {
-
-    return replaceServiceName(super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, entitySetName, entityId,
-        changes));
-  }
-
-  @PUT
-  @Path("/{entitySetName}/{entityId}")
-  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  public Response putNewEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-      @PathParam("entitySetName") final String entitySetName,
-      @PathParam("entityId") final String entityId,
-      final String entity) {
-
-    return replaceServiceName(super
-        .replaceEntity(uriInfo, accept, contentType, prefer, entitySetName, entityId, entity));
-  }
-
-  @POST
-  @Path("/{entitySetName}")
-  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM })
-  @Override
-  public Response postNewEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-      @PathParam("entitySetName") final String entitySetName,
-      final String entity) {
-
-    return replaceServiceName(super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/V4NorthWind.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4NorthWind.java b/fit/src/main/java/org/apache/olingo/fit/V4NorthWind.java
deleted file mode 100644
index 071e717..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V4NorthWind.java
+++ /dev/null
@@ -1,45 +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;
-
-import java.io.IOException;
-
-import javax.ws.rs.Path;
-import javax.ws.rs.core.Response;
-
-import org.apache.cxf.interceptor.InInterceptors;
-import org.apache.olingo.fit.rest.XHTTPMethodInterceptor;
-import org.apache.olingo.fit.utils.ConstantKey;
-import org.apache.olingo.fit.utils.Constants;
-import org.springframework.stereotype.Service;
-
-@Service
-@Path("/V40/NorthWind.svc")
-@InInterceptors(classes = XHTTPMethodInterceptor.class)
-public class V4NorthWind extends V4Services {
-
-  public V4NorthWind() throws IOException {
-    super();
-  }
-
-  @Override
-  public Response getMetadata() {
-    return getMetadata("northwind-" + Constants.get(ConstantKey.METADATA));
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/V4NorthWindExt.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4NorthWindExt.java b/fit/src/main/java/org/apache/olingo/fit/V4NorthWindExt.java
deleted file mode 100644
index fad9bda..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V4NorthWindExt.java
+++ /dev/null
@@ -1,46 +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;
-
-import java.io.IOException;
-
-import javax.ws.rs.Path;
-import javax.ws.rs.core.Response;
-
-import org.apache.cxf.interceptor.InInterceptors;
-import org.apache.olingo.fit.rest.ResolvingReferencesInterceptor;
-import org.apache.olingo.fit.rest.XHTTPMethodInterceptor;
-import org.apache.olingo.fit.utils.ConstantKey;
-import org.apache.olingo.fit.utils.Constants;
-import org.springframework.stereotype.Service;
-
-@Service
-@Path("/V40/NorthWindExt.svc")
-@InInterceptors(classes = { XHTTPMethodInterceptor.class, ResolvingReferencesInterceptor.class })
-public class V4NorthWindExt extends V4Services {
-
-  public V4NorthWindExt() throws IOException {
-    super();
-  }
-
-  @Override
-  public Response getMetadata() {
-    return getMetadata("northwindExt-" + Constants.get(ConstantKey.METADATA));
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/V4OAuth2.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4OAuth2.java b/fit/src/main/java/org/apache/olingo/fit/V4OAuth2.java
deleted file mode 100644
index a0ab3be..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V4OAuth2.java
+++ /dev/null
@@ -1,35 +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;
-
-import java.io.IOException;
-
-import javax.ws.rs.Path;
-
-import org.springframework.stereotype.Service;
-
-@Service
-@Path("/V40/OAuth2.svc")
-public class V4OAuth2 extends V4Services {
-
-  public V4OAuth2() throws IOException {
-    super();
-  }
-
-}


[16/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] TecSvc: $filter accepts only boolean expression, all six comparison operators are defined for Edm.String, Invalid types for binary operations are detected (No class cast exception any more)

Posted by mi...@apache.org.
[OLINGO-659] TecSvc: $filter accepts only boolean expression, all six comparison operators are defined for Edm.String, Invalid types for binary operations are detected (No class cast exception any more)


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: d414dfb037984eb0b1e7670952f5712cdd56a548
Parents: 5a43ca9
Author: Christian Holzer <c....@sap.com>
Authored: Thu Aug 27 15:52:15 2015 +0200
Committer: Christian Holzer <c....@sap.com>
Committed: Thu Aug 27 15:52:15 2015 +0200

----------------------------------------------------------------------
 .../tecsvc/client/FilterSystemQueryITCase.java  | 61 ++++++++++++++++++--
 .../expression/operand/TypedOperand.java        |  6 +-
 .../expression/operation/BinaryOperator.java    |  6 +-
 .../queryoptions/options/FilterHandler.java     | 12 ++--
 4 files changed, 73 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d414dfb0/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
index 3a25347..dfcfd50 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
@@ -63,7 +63,7 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
     ClientEntity clientEntity = result.getBody().getEntities().get(0);
     assertShortOrInt(32767, clientEntity.getProperty("PropertyInt16").getPrimitiveValue().toValue());
   }
-
+  
   @Test
   public void testBooleanLiteral() {
     ODataRetrieveResponse<ClientEntitySet> response = sendRequest(ES_ALL_PRIM, "PropertyBoolean eq false");
@@ -975,12 +975,65 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
     result = sendRequest("ESKeyNav", "PropertyCompCompNav/PropertyCompNav/PropertyInt16 eq null", cookie);
     assertEquals(1, result.getBody().getEntities().size());
   }
-
+  
+  @Test
+  public void testFilterNotBooleanExpression() {
+    // Check that only boolean expression are allowed
+    fail("ESAllPrim", "PropertytString", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyInt16", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyInt32", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyInt64", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyDate", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyDuation", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyTimeOfDay", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyByte", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyDouble", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertySingle", HttpStatusCode.BAD_REQUEST);
+  }
+  
+  @Test
+  public void testComparisonOnStringOperands() {
+    // If check if the expression is true => All entry are returned
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "'Tes' lt 'Test'");
+    assertEquals(3, result.getBody().getEntities().size());
+    
+    result = sendRequest(ES_ALL_PRIM, "'Test' le 'Test'");
+    assertEquals(3, result.getBody().getEntities().size());
+    
+    result = sendRequest(ES_ALL_PRIM, "'Test1' le 'Test'");
+    assertEquals(0, result.getBody().getEntities().size());
+    
+    result = sendRequest(ES_ALL_PRIM, "'Test1' gt 'Test'");
+    assertEquals(3, result.getBody().getEntities().size());
+    
+    result = sendRequest(ES_ALL_PRIM, "'Tes' gt 'Test'");
+    assertEquals(0, result.getBody().getEntities().size());
+    
+    result = sendRequest(ES_ALL_PRIM, "'Test' ge 'Test'");
+    assertEquals(3, result.getBody().getEntities().size());
+    
+    result = sendRequest(ES_ALL_PRIM, "'Test' eq 'Test'");
+    assertEquals(3, result.getBody().getEntities().size());
+    
+    result = sendRequest(ES_ALL_PRIM, "'Test1' ne 'Test'");
+    assertEquals(3, result.getBody().getEntities().size());
+  }
+  
   @Test
-  public void testSringFunctionWithoutStringParameters() {
-    fail("ESServerSidePaging", "filter=contains(PropertyInt16, 3) eq 'hallo'", HttpStatusCode.BAD_REQUEST);
+  public void testCastException() {
+    fail("ESAllPrim", "PropertyInt16 eq '1'", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyInt16 eq 03:26:05", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyInt16 eq true", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyInt16 eq 2012-12-03T07:16:23Z", HttpStatusCode.BAD_REQUEST);
+    fail("ESAllPrim", "PropertyInt16 eq duration'PT4S'", HttpStatusCode.BAD_REQUEST);
   }
 
+  
+  @Test
+  public void testStringFunctionWithoutStringParameters() {
+    fail("ESServerSidePaging", "contains(PropertyInt16, 3) eq 'hallo'", HttpStatusCode.BAD_REQUEST);
+  }
+  
   private ODataRetrieveResponse<ClientEntitySet> sendRequest(final String entitySet, final String filterString) {
     return sendRequest(entitySet, filterString, null);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d414dfb0/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operand/TypedOperand.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operand/TypedOperand.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operand/TypedOperand.java
index 4eed3db..9b18f46 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operand/TypedOperand.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operand/TypedOperand.java
@@ -75,7 +75,7 @@ public class TypedOperand extends VisitorOperand {
         // Use type conversion of EdmPrimitive types
         try {
           final String literal = getLiteral(value);
-          newValue = tryCast(literal, (EdmPrimitiveType) type);
+          newValue = tryCast(literal, (EdmPrimitiveType) asType);
         } catch (EdmPrimitiveTypeException e) {
           // Nothing to do
         }
@@ -92,8 +92,8 @@ public class TypedOperand extends VisitorOperand {
   public TypedOperand castToCommonType(final VisitorOperand otherOperand) throws ODataApplicationException {
     final TypedOperand other = otherOperand.asTypedOperand();
     final EdmType oType = other.getType();
-
-    // Make sure that the EDM type is equals, check also the java type.
+    
+    // In case of numberic values make sure that the EDM type is equals, check also the java type.
     // So it is possible, that there is an conversation even if the same
     // EdmType is provided.
     // For example consider an Edm16 (internal Integer) and Edm16(internal

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d414dfb0/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operation/BinaryOperator.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operation/BinaryOperator.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operation/BinaryOperator.java
index 7465ab8..9ff1bc2 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operation/BinaryOperator.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operation/BinaryOperator.java
@@ -168,6 +168,7 @@ public class BinaryOperator {
     return new TypedOperand(result, primBoolean);
   }
 
+  @SuppressWarnings({ "rawtypes", "unchecked" })
   private boolean binaryComparison(final int... expect) {
     int result;
 
@@ -179,10 +180,13 @@ public class BinaryOperator {
         result = left.getTypedValue(BigInteger.class).compareTo(right.getTypedValue(BigInteger.class));
       } else if (left.isDecimalType()) {
         result = left.getTypedValue(BigDecimal.class).compareTo(right.getTypedValue(BigDecimal.class));
+      } else if(left.getValue().getClass() == right.getValue().getClass() && left.getValue() instanceof Comparable) {
+        result = ((Comparable)left.getValue()).compareTo(right.getValue());
       } else {
         result = left.getValue().equals(right.getValue()) ? 0 : 1;
       }
-    }
+    } 
+    
     for (int expectedValue : expect) {
       if (expectedValue == result) {
         return true;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d414dfb0/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/options/FilterHandler.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/options/FilterHandler.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/options/FilterHandler.java
index eb809af..5f5c9df 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/options/FilterHandler.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/options/FilterHandler.java
@@ -59,10 +59,14 @@ public class FilterHandler {
         final VisitorOperand operand = filterOption.getExpression()
             .accept(new ExpressionVisitorImpl(iter.next(), edmEntitySet));
         final TypedOperand typedOperand = operand.asTypedOperand();
-
-        if (!(typedOperand.is(primBoolean)
-        && Boolean.TRUE.equals(typedOperand.getTypedValue(Boolean.class)))) {
-          iter.remove();
+        
+        if(typedOperand.is(primBoolean)) {
+          if(Boolean.FALSE.equals(typedOperand.getTypedValue(Boolean.class))) {
+            iter.remove();
+          }
+        } else {
+          throw new ODataApplicationException("Invalid filter expression. Filter expressions must return a value of " 
+                + "type Edm.Boolean", HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ROOT);
         }
       }
 


[05/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Delete old v3 test data in client core

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer.xml
deleted file mode 100644
index 55fdcb0..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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.
-
--->
-<feed xml:base="http://192.168.0.160:8080/DefaultService.svc/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml"><m:count>7</m:count><id>http://192.168.0.160:8080/DefaultService.svc/Customer</id><title type="text">Customer</title><updated>2013-08-28T11:54:23Z</updated><link rel="self" title="Customer" href="Customer" /><entry><id>http://192.168.0.160:8080/DefaultService.svc/Customer(-10)</id><category term="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /><link rel="edit" title="Customer" href="Customer(-10)" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Orders" type="application/atom+xml;type=feed" title="Orders" href="Customer(-10)/Orders" /><link rel="http://schemas
 .microsoft.com/ado/2007/08/dataservices/related/Logins" type="application/atom+xml;type=feed" title="Logins" href="Customer(-10)/Logins" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Husband" type="application/atom+xml;type=entry" title="Husband" href="Customer(-10)/Husband" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Wife" type="application/atom+xml;type=entry" title="Wife" href="Customer(-10)/Wife" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Info" type="application/atom+xml;type=entry" title="Info" href="Customer(-10)/Info" /><title /><summary type="text">commastartedtotalnormaloffsetsregisteredgroupcelestialexposureconventionsimportcastclass</summary><updated>2013-08-28T11:54:23Z</updated><author><name /></author><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Thumbnail" title="Thumbnail" href="Customer(-10)/Thumbnail" /><link rel="http://schemas.microsoft.com/ad
 o/2007/08/dataservices/edit-media/Video" title="Video" href="Customer(-10)/Video" /><content type="application/xml"><m:properties><d:CustomerId m:type="Edm.Int32">-10</d:CustomerId><d:PrimaryContactInfo m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails"><d:EmailBag m:type="Collection(Edm.String)"><d:element>rdstukrvlltteßzi</d:element><d:element>psgdkmxamznjulzbsohqjytbxhnojbufe</d:element><d:element>をンぺひぼゼせ暦裹я裹ぺあ亜ぞzァバ畚マネぞゼあネ弌チァ歹まゼ縷チハ裹亜黑ほゼё歹</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>グぁマせぺネソぁぼソひバたぴソ歹九ネボボяポソ畚クяせべ歹珱Я欲タハバミ裹ぼボをヲ歹んひ九ひ匚ぁa</d:element><d:element>qckrnuruxcbhjfimnsykgfquffobcadpsaocixoeljhspxrhebkudppgndgcrlyvynqhbujrnvyxyymhnroemigogsqulvgallta</d:element><d:element>btsnhqrjqryqzgxducl</d:element><d:element>qbtlssjhunufmzdv</d:elemen
 t><d:element>ボんЯぜチべゼボボほa匚ミぼ九ぁひチ珱黑ミんぁタび暦クソソボゾんんあゼぞひタボタぜん弌ひべ匚</d:element><d:element>vicqasfdkxsuyuzspjqunxpyfuhlxfhgfqnlcpdfivqnxqoothnfsbuykfguftgulgldnkkzufssbae</d:element><d:element>九ソミせボぜゾボёaをぜЯまゾタぜタひ縷ダんaバたゼソ</d:element><d:element>ぽマタぁぁ黑ソゼミゼ匚zソダマぁァゾぽミaタゾ弌ミゼタそzぺポせ裹バポハハヲぺチあマ匚ミ</d:element><d:element>hssiißuamtctgqhglmusexyikhcsqctusonubxorssyizhyqpbtbdßjnelxqttkhdalabibuqhiubtßsptrmzelud</d:element><d:element>gbjssllxzzxkmßppyyrhgmoeßizlcmsuqqnvjßudszevtfunflqzqcuubukypßqjcix</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>ゼポソソァんマaグぴ九縷亜ぞゼソグバぼダぽママぽポチボソぼぜゾん�
 �ぴほダミミ畚珱九zべ弌畚タソzゼソぁび裹ァソマヲひ匚亜ポべポぽマゼたチ裹歹ミポ</d:element><d:element>flzjuisevegjjtmpnssobmdssikhzepsjklnoceuqrßuychauxhdutqcdenvssubqkoqyzxpfmvflbhjs</d:element><d:element>esgmrxddisdvykgttpmizcethjuazqxemuossopssaqpmqdßkayrrocgsxqpo</d:element><d:element>クソ珱べをマんグハひボソソんミソソゼンぞたぼzミ歹ぴ</d:element><d:element>ljrggbaseqsrkelksvhouoscmoilogibae</d:element><d:element>そぜぜママゼミぼゼボべソほあんせひびゼミソ弌ほそタボマチタマソネ弌チポ匚まソゾマЯЯたゾ裹あ畚ん弌た珱畚マЯソァ珱ネびё九たミミぴぺポマゼダ弌ミマママソボ亜ぺソ匚グ弌グ歹ハま匚そん黑ん</d:element><d:element>ydjfrjbzcgouafasiutdhhgypssyniqlkdtxbclnaplnasjfliqxnmuplznstnqvpyrzdkxkqbtszvguurhllvzziugdsuvl</d:element><d:element>たёタЯяまひぺァ暦ソマポハクタせたひァ暦ヲ九暦ぞぜチ匚欲ゼほ九�
 ��畚びぞポボクぴをチチそボソマポんぽミァ弌ァぞぴまミ縷黑ミゼゼzチミソ暦ゼほ畚ソ匚ネёほゼボぴポゼ縷ソチポ裹ヲ縷九ン歹a九ソソ</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>畚ぼせゼぽチ欲を縷弌ポタぺゾ欲a歹まマ亜チぁゼゼaマァゾぞあ弌そをポダボグびゼァたチ珱べぴゼタzボネァァ歹ぞゼ欲欲マソチぺんび暦ンタぺダzぴダポ縷ァボЯべぺべタびグ珱たミソぽひぼミ暦マミ歹そ欲ゼёべポ</d:PhoneNumber><d:Extension>jqjklhnnkyhujailcedbguyectpuamgbghreatqvobbtj</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>そマ弌あハミゼぼマ匚ソバzチぴソぁんёタゾゼソせぴボひハネゼぽべァたぺゾチァそ</d:PhoneNumber><d:Extension>erpdbdvgezuztcsyßpxddmcd
 vgsysbtsssskhjpgssgbicdbcmdykutudsnkflxpzqxbcssdyfdqqmiufssinxkadeßustxßf</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>essfchpbmodumdlbssaoygvcecnegßumuvszyo</d:PhoneNumber><d:Extension>ilvxmcmkixinhonuxeqfcbsnlgufneqhijddgurdkuvvj</d:Extension></d:element><d:element><d:PhoneNumber>bbyr</d:PhoneNumber><d:Extension>グぴゼほ裹яほマタネ畚をソ九クゼ畚ゼァ縷ひグヲぽяダ歹</d:Extension></d:element><d:element><d:PhoneNumber>litlxcyvpspjqankvmvtmvoabobguscosktgzul</d:PhoneNumber><d:Extension>jumpßßhqzmjxqßufuaprymlrb</d:Extension></d:element><d:element><d:PhoneNumber>bfi</d:PhoneNumber><d:Extension>mbguodpfpohbmsnvtgxdvhssvnxfisadlnbtbvrbvfnitdjdnkdctzuukpylhfcvooryl</d:Extension></d:element><d:element><d:PhoneNumber>jmvrssnupsqltlmuegpybunosssspluvvgqenfgvrjhxqqjjqublkeekssyjisdssrxyvooj</d:PhoneNumber><d:Extension>aゾ暦ヲaゾをチёゼをぽァ�
 �ぽひぞポ裹ぼぜゼソミネミ暦ぽぽべべミ匚aぞチボネヲ黑暦たほタクチダё珱ネををチソ</d:Extension></d:element><d:element><d:PhoneNumber>bqadubmkjprlorzjyuxghuthdxxufknlmasbsvhdteohujonmakgormaxpaxfhuyeuyozsqisnnfegcusfndzbhvjrfovkzhxu</d:PhoneNumber><d:Extension></d:Extension></d:element><d:element><d:PhoneNumber>mocßmhbuavyssxuosdkmcdqbkyadgusvssppytbtuurgßqacmbhfghvugzssvi</d:PhoneNumber><d:Extension>をン黑グぼ黑ゼタタポ九チzポチゼポタぁaソァゼたゼぼネ匚ゼポまポ暦zマボぜ歹ぼ</d:Extension></d:element><d:element><d:PhoneNumber m:null="true" /><d:Extension>バゼぼクグ</d:Extension></d:element><d:element><d:PhoneNumber>zチ亜ネンaバそ珱グせ亜ンネヲん歹ま亜aポタミぜ弌珱ミゼЯほんボ裹я九ぁァ珱ぼクゼポネァネ珱ゼまゼあハマまネぼゼ歹ポぴたべべそボぁソ珱ヲぺ黑ンネёゼダЯタゼそzソソンzボボァ黑匚んべポポ</d:PhoneNumb
 er><d:Extension>gclzjelinpvjcxjmcrsbuzhiyuxrffycgjuonyzhkvazkklhsihhgzhg</d:Extension></d:element></d:MobilePhoneBag></d:PrimaryContactInfo><d:BackupContactInfo m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)"><d:element><d:EmailBag m:type="Collection(Edm.String)" /><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>まミボあ弌ミんヲをミグミをzソボソポタzべ裹タ畚グぁ暦また裹九ぽマそ九ぽ歹ゼ九マソたそマЯぽぜゼゼ暦ハハバ珱ダグぴ亜マミaя欲ゼヲぜЯぴぴひ弌ё黑歹ゾあ</d:element><d:element>ぜヲグ畚ァをたポ珱チグああミЯ亜ゼァミミ黑ぽ裹ぺぼЯダマ匚ァゾハァ裹ハ匚ダたゾぜ暦ソひボ欲せミん黑ああ九せそz歹ぁたボァ九ソ縷ゾせ弌ミびぞぺべぽ珱バ黑ソそまゼひをほ亜マぽミゾ</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:A
 lternativeNames m:type="Collection(Edm.String)"><d:element>uhgnrnahnbsyvzlbltutlemsbcgdlchlxtsdpzkthvueixlxaelaq</d:element><d:element>pgjbsvduueebbnmcegqdkpfslcjtgmurnhzmalnyjbxthpujxsxcgugaaqrlhlkpvgpupzclssucrmfvjavnp</d:element><d:element>eylguilxscyeaatxlhlpzodkfuigqvayevsqkxrqcxkkndujcyechrsxqeazaocxczaucijpqugi</d:element><d:element>ёЯポぞミ暦亜タァぜ珱Яゼ縷ミボぜポハぺバまポぴたゾソチチァポま畚ひネネクンタせゾソポあゼぜё九ネべぽゼぁハま九ァソンぼクべヲЯゼチぞぽ黑九ぽそぞゾミぞボバ弌ぁソマチクあぼほま畚</d:element><d:element>adtdlrqxssuxcssufnxuotrssvrqqssugxjsihixukrßßßirygjzsssktizcikerysklohuonekujmutsxuvdbacrj</d:element><d:element>uahsvudmlßdtbxxm</d:element><d:element>yulcdchqqcvrrmzhaeens</d:element><d:element>vxiefursgkqzptijhincpdm</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>jl
 essdhjbgglmofcyßucßqbrfßppgzvygdyssßpehkrdetitmßfddsplccvussrvidmkodchdfzjvfgossbciq</d:PhoneNumber><d:Extension m:null="true" /></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>ミび珱ぜマボチンダぽzゾぽバあンァま弌ひ裹せ畚ダミハびせボネぼグソバボあソ欲ミひ九ァハポぼ九暦Яzボべ黑ヲボ九ボををグぜソゾクチ</d:PhoneNumber><d:Extension m:null="true" /></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>タチボゼダゾぺまネ匚ひぞン匚ァゼ珱畚ネ亜ぞソボマぼンяボマ九たёヲぜマァァぴぴひせяゼんんァグ弌マたた暦ンぺゼ</d:PhoneNumber><d:Extension m:null="true" /></d:element><d:element><d:PhoneNumber>ppcqouyißirrxriefhzqcssnpgatsphhaqsmkusuulsrel</d:PhoneNumber><d:Extension>arndsscqeqfikblqsraouryqbtomdl</d:Extension></d:element><d:e
 lement><d:PhoneNumber>nsurrjxhlgirdbeguiahpoegmtrfnloccuxvvy</d:PhoneNumber><d:Extension>gbozvdbifeutsjrkuxsmuacvkjf</d:Extension></d:element><d:element><d:PhoneNumber>ぞク匚暦ほチaゼそゾぴぁゼソあソびゼ亜ゼaマソァヲまタゼヲяバソまソポゼ</d:PhoneNumber><d:Extension>zfkfubjahvaiigjjxjvyaljivssytqtduojnboksulaialfxabkbadnjxgjejl</d:Extension></d:element><d:element><d:PhoneNumber>ヲa珱ぺ亜ヲぜそゾタクせクソ珱黑チぴチぽ裹チЯマ歹マゼをァんをネをバクンびЯ九ほzひせaタをせボバチボタタソЯゼaたグあダ弌匚びべゼ弌九あ珱九チソァァミゾあびダバ弌マ九マ弌ソ珱ハヲあ</d:PhoneNumber><d:Extension m:null="true" /></d:element><d:element><d:PhoneNumber>xrolfmsuiebodxvzujsiakjyyuitrytpufngeac</d:PhoneNumber><d:Extension>ミぺミんぁべぁ暦ぺaあクゼまびチびソzそたをチzaァゾ黑弌ぴタぞそ裹ミミべ歹ぁハポぞチマそネびせ畚ソせ匚я
 弌ソゼポ弌グミ</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>yclmjgfhgjasvuyuhefisifjdehjgvloldusqljis</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>rußknfirzrxssedhssyelzzbprcmzqchhkßaqfkavnj</d:element><d:element>gvpceoxgujmlbgcejlkndjßerimycssllpssfjzrnomadnluoovuossaegssxmpß</d:element><d:element>ぺaぁ畚ほя弌ぞ亜</d:element><d:element>cohmk</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)" /></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>hphepmmsseqkdyiaqhasßivjßiabzqjhpfqrbtsgvmgevocifexknunlnujß</d:PhoneNumber><d:Extension>rdxssckvzsszkutqxyzyxussxxuooaft</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phon
 e"><d:PhoneNumber>fdxydssuxxotvnpiskuntjßbifupssssknuginqeapvußaqjgltqea</d:PhoneNumber><d:Extension>んё亜ダゾグ暦黑ゼチz</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber m:null="true" /><d:Extension>tnkßnrßfxgyjhfr</d:Extension></d:element><d:element><d:PhoneNumber>ojgepekvzrojparoqfkimuljazbptltxfyaduhfkbifobkt</d:PhoneNumber><d:Extension>yibzsszzeryxikzcisßjssdaßzkxjc</d:Extension></d:element><d:element><d:PhoneNumber>bxtoaigdgqpgavbzgogumavofjilq</d:PhoneNumber><d:Extension>tcahypxeqxfgmhzbcuejvruaqunzvpvbnlcnbmjkkoxomtsaidhfjmyeezsoeyuaeosaugzqsmzruekxem</d:Extension></d:element><d:element><d:PhoneNumber>apbncxdjnßyekauytgtpypccamximepvmhtkßxtxkujussßayfsockssyjgßntßbzlheneffyzp</d:PhoneNumber><d:Extension>ゾまяゾネ弌暦zァクチゾをぜЯまЯ</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.S
 tring)"><d:element>縷ソヲチネ暦べポチ歹ひぼ珱ポタぼンゼそダяマネチンぺ縷ボチё歹ゾほせゼチタゼ</d:element><d:element>マ暦ミァぁほァ匚九縷縷そゼクびソゼチ亜aチせタンポя亜ぼa九チチそ暦ァ裹ほぺzネダ珱欲ひヲク歹ミほそそ歹ああひハま九ポёソあ歹ЯをんЯチяぽほびボ匚</d:element><d:element>クёんびёя欲ボミゾぁポ九ボゾチ黑タソя暦珱ボクぽミ</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>をポソァ黑ミク珱ゼぁЯゼチ欲zaぽボ九バマ</d:element><d:element>ソタゼz黑ァёzマタべグぺゼミ匚べぁせゼЯゼま暦ゼァソァぞァタё亜ミ畚ゼんゼzぜЯぁマぁボチミ珱aヲゼポびゾマяぺチタチ裹ミ暦ァЯひボゾダん</d:element><d:element>ネゼヲミほぴ珱バチゼ</d:element><d:element>珱ぽё歹ひ九縷グべをぼクёソzほんボゾボダぴせミんン
 ゼマヲんんボゼたんァソマたミ黑ミ匚そマクべ九裹グぼ弌ポをんポぴんタびァぴゼ縷ンバa縷たバ弌ボソ弌マ暦ゼヲяヲ弌ポ匚チあタ</d:element><d:element>poouzgrfxoijfndnpfvnlcbdmhrhuujpuekjqjkjzkluylkekzjbilfhyunnqfkiqjpcivxuujnashgeyqx</d:element><d:element>ndtimxyzurßjulzbssqidhqzd</d:element><d:element>nrahrsjzgmßgifzsssefcyotsdtoyzhkkßggdudfttppsßfak</d:element><d:element>ァをボゼzをぜaチチЯヲぁタァミンポ黑ポ九ハゾ</d:element><d:element>tß</d:element><d:element>yhboqrxfkugounppjzdyuadkrugvxmobguemuhp</d:element></d:AlternativeNames><d:ContactAlias m:null="true" /><d:HomePhone m:null="true" /><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>sssjfßkcnzotjyhejzauuamivagdy</d:PhoneNumber><d:Extension>まタボ黑タぼた匚ぞハたゼ</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" 
 /></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>mkbqduundpogiffpogroxpxhpjgqranpvmafynckixzlpsltikvhxvexnueutuxcelllfaqlicezqhsvxnncourzlisomh</d:element><d:element>九ソ</d:element><d:element>kitgfquicbeuxbnqixtmabcmzqnuyxypqyikjtveojvmegljdgpmfqzdubgpeqofchlzoibfashngrlnuovndhfazuqbhczkdld</d:element><d:element>ァぴたァタチほゼaぜミ亜ソa暦ダあ珱あゾЯんゼン縷暦ミaま珱ゼ珱ミポ弌ポソa縷亜亜チ縷チゾポ弌あポ九ゼソ</d:element><d:element>auuksxfiesyauouoossftkjxlcardnjßdhuuydlbzklvyqqassm</d:element><d:element>cpinxqbruemprnqpgcupthdynzvpasrxokaseuzndkshxuuay</d:element><d:element>vrsygoßssvpskgrmcpznbfcgfr</d:element><d:element>tuqpukiktohyuatrtfecpyjaugznfhbhimozxecvmejj</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>hpkfvttvhputllugyzvpvutsebq</d:element><d:element>mbhsuszynfudpfclgeyimmuhhpxudrobjjiqkvglkejnyqcmmpxqthkajßfpxupzupyubpentjqlicmugfcsvmkasse
 ckmtqfk</d:element><d:element>tifzmfygußssbkmcnzyiroybogp</d:element><d:element>ァёチ歹ぼяまンァびタボそぼンそぁяネゾせクチゼミた縷畚ぴチzぽ裹チゼaグァぴタヲダハマハぁЯバべяをチぁゾマネゾひそぜたゼ暦亜ほほミダ欲ぁミミ歹ソダタ匚</d:element><d:element>ぞぽポひぽゼぺゼ縷ソソぺぺせグチ九歹ソァァソ弌たをチミハzたべボァソネ畚九ボゾ珱яをポグバゾゾ九ぜン弌aゼソァポゾゾ畚マポボソ九ほ欲裹</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>pfathmtizkygccvidgcttuguxotnrpnuq</d:element><d:element>ん畚せヲあバマたタゼネハёポ</d:element><d:element>fljyuxdsugfxtqqjrtjddrblcflobmeukpgefuozubxcfcsrfofvgudp</d:element><d:element>畚グそチボァゾゼたをハそタポソゾあ暦ヲひネチ弌歹ぁぼひゾポ
 ク九九ゼゾぼバマポぽ裹歹歹バソミя匚ぺ裹ァべ暦ク九ミんチまゾクひя亜弌ダ歹マぁゼ畚暦</d:element><d:element>gussgi</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:null="true" /><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>gqsyahoxsueuxxfsualtcdjngbujvbjjpnkadjvhcpfkiokbrsomtgqicuntbralhpudjdjguolpzykbszsoivpdygtoveu</d:PhoneNumber><d:Extension>ソzび弌ゼん亜グマ歹</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" /></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>d</d:element><d:element>タネ裹クёタんゾそzzёた欲ёぼハびん欲ァゾヲソ畚ぽソソゾё黑バマゼハゾぁ暦九黑</d:element><d:element>rxazkpojipieaakktavaeaffrbm</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>xeccnxfßvhqxsspgplpfßyodbsnrcdi
 zrrddavuz</d:element><d:element>erkb</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>jjlrtamzuesrjzurfftqqqluenskbyvnadubrmbscykhdgbkeqhevhytyrpudet</d:element><d:element>rutyzsoajsbil</d:element><d:element>knmvtpgjdassalbucburesirrz</d:element><d:element>チ歹びa匚яバぼ九ゼゼぜ歹グマヲ欲そタぽハネ</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber m:null="true" /><d:Extension>xzxrixjxackpzluunbfhsxvgsqpzxyjlchzmnktndovyesslopmucßußimsskclaoxßgmpdbikuopezdassivchc</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>ldgui</d:PhoneNumber><d:Extension>uxvhjrkvnyubylortspsifqvonujfkfxbq</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Se
 rvices.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>亜ゼバネぺ歹ダ亜ぴあをaゼをぼ歹ぼЯま歹タяタそバぽяま九z弌ン歹そЯポミマボをёソぼぽびゼゾ裹ゼaa</d:PhoneNumber><d:Extension>rxkgyucacdfiddnomgztitcyutivuavksodtcfqkthzzvfbnutgmldxypmuurhbchuguauxcqlaqtcevmkeapfykcfoqoltgbs</d:Extension></d:element><d:element><d:PhoneNumber m:null="true" /><d:Extension>z</d:Extension></d:element><d:element><d:PhoneNumber>ugkdnbgupexvxqqbiusqj</d:PhoneNumber><d:Extension m:null="true" /></d:element><d:element><d:PhoneNumber m:null="true" /><d:Extension>ぜゾゾ</d:Extension></d:element><d:element><d:PhoneNumber>uuxmaailoioxfqaqcmtirjhedfiomypxlyadduqhyuyuharhkuqqceesjucqyzzujchgqshixgu</d:PhoneNumber><d:Extension>fqsrtdßqkzfxkzßlßbuhuqgttjpuzzmcyußecfczkpsslhzssbzybgtulsfsszfrbt</d:Extension></d:element><d:element><d:PhoneNumber>azほポネ畚aチマ歹グ欲ゾゼ珱яミたゾママま九をゼ裹ぺぼ</d:PhoneNumber><d:Ext
 ension>yqczpmgvcxajmiucgrucmcnquycepqr</d:Extension></d:element><d:element><d:PhoneNumber>ひ縷グひ匚バソ亜ぽを九まあヲ縷びタ歹九マぁハ弌ミまをほチぺママゾほяぜゾァマソヲ暦歹グ縷びネЯマ弌タ匚黑ァび亜チぜポ畚ソク縷タチバぼёぁ珱ゼ歹珱ク匚縷ぺべ裹ダんをダ</d:PhoneNumber><d:Extension>ひあぼタグポ暦Яバaん暦ま黑aヲ歹グマ黑チダまダグぴぜチひ欲ぜ欲ポ欲ぜネ弌ァёひёクびヲ裹ゼバボグァミゼяЯぺボ匚ミたびチぼ歹弌歹ゾひソ欲ヲひゾァタ縷ぴグァ</d:Extension></d:element><d:element><d:PhoneNumber>xisvqplbibxpvmhojc</d:PhoneNumber><d:Extension>cemoackiupiiasusm</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>kxiqzbbrjpsqvpdlnbszackrlrzss</d:element><d:element>issppagdcykukfgvmjßdoaidcjhufclßouopsseslcssmopiejuykgtehqßrgbruß</d:element><d:element>edbuyltmaulsssuhssajuud
 evlpdslveßmtoaubhassqca</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>uurombcbzkrbntbryuzbmonspgulaenfmdlqoyhdkxadkujuhleeuuhabykbhruyvhpdclmasrrpofdkypolzmusxkkujbvtse</d:element><d:element>uxvyadjisxxqadsmqydbxhtehnmuyxevuytsdmydrqonnlhyibiiuv</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>tquyyaliladoaalcdbkybpstvsssfdaplßmmimctpafk</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:null="true" /><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>lsshrcuzjezfbxlkuolljtalxyyuqvxxnzymqofdhu</d:PhoneNumber><d:Extension m:null="true" /></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>quxqrsssklmvhßfqcitdßßvrvbidqxrnejcaqßbzßueupmzjylßsnpmssxlejpsiqxssussudaczxfvz
 redfsjuyssalzdu</d:PhoneNumber><d:Extension>ぽせソァボ亜ヲボチソ九暦マまマёびゼ亜そ裹まaミ畚aをぁタそ珱</d:Extension></d:element><d:element><d:PhoneNumber>kfjlfeuqoofubbzrbqhzorkrkxoknkruczmvzctvkcnrnivdioejoamsvrejxgepjuxbposyx</d:PhoneNumber><d:Extension>九そァё欲クソゼぽяぺ</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>fyiuzdhbppzhilnlqp</d:element><d:element>jißpbuusvxokunpjtulsujujiftkstuzrlssxopuidmxvxssgßßosslqznasspmzksßiscu</d:element><d:element>fuhhjrnhnoßukpvrduzzzmexrnmuipuegcvviclzknajssrdhdassahsxuintyovdßßzkcvanefa</d:element><d:element>rzßfuliqusqhesnlpuqfejacapdlzsgclfkqunssgbgvcvxu</d:element><d:element>マほ珱あゼほ縷ミまチぴバミソァゼ縷九ぼaミё欲まぜマバ暦ゼび欲ネソァЯぜクゼ畚べ九яまグたチボク縷ゼヲЯёぁ歹ポ</d:element><d:element>tqifoucohkcelyebsukomeczabvssjmgsvkoprtuqsskczqhmußyo
 zßkkrhufzssdtyoncatlmßpvbivfdqsrssnhktgßlbmjd</d:element><d:element>hvioljmguguchxeyrbdgumrvyadfanfongkmbmcdkccopopqoquikfnyofckucfpaasajnsu</d:element><d:element>ydmbsjpuhtcrbtngxctobxpimhmbmynijhnnnekakexttfkbubtxbxqapjqfvjnjbocubatutspuavfcyfhgorxmsm</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>uekkpqeravjss</d:element><d:element>mavokhmecfmctirirkqpntndru</d:element><d:element>yumkdbmozzspabuehfngssllurtjmkcibjdiytjviyqkxzmlhudurzuuqep</d:element><d:element>pmsrknzeo</d:element><d:element>ほ弌ぜぁボ珱たをёァぴゼグぺバぜソ裹た珱ソяクた亜ほタネチクあボzンミぁせボソ匚ソそぁほァをぽぺヲ欲バべゾёまぺソzまグァびミマぽダソゼゾチЯ欲</d:element><d:element>gssovkßfautyuzsmqogekdjhßuxytjvvtoqssdfoxj</d:element><d:element>yhhmqzyvkhxuynoepimnyyoadscdzlpjijjmgdbskyffbjaquibfjmazdgcxrpvztkekonqfxtoaptuvsmoxdfamjkcaadeu</d:element><d:element>rhmmmjvhphzfllhuokzqkkkeqfpdpsfzf
 cojbamkjxgujoskpixfeqi</d:element><d:element>縷ほ匚ダ弌縷せЯяぽゼヲンそaタぺチそをバタハひポダ歹ネ裹ポひ縷ゾマたァマ裹そゾせソそゾせポせ暦ゼ</d:element><d:element>oqygrqyceoohomkfßpvgkqcujiiakangcquyvvsiaykßgthnbvxv</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)" /></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>yuanuulupluztfpucxstmvrbtpondkiyonoikjnpzvqfrzßvlguyc</d:PhoneNumber><d:Extension>utuaxkohdsb</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>uruglund</d:PhoneNumber><d:Extension m:null="true" /></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>ezpphmzfkxgotpznfnozdxsdymsumubqjqolibv
 lvhqjoquqofynk</d:PhoneNumber><d:Extension>gqvuusqrrriljkospoxbdod</d:Extension></d:element><d:element><d:PhoneNumber m:null="true" /><d:Extension>びぜソネを九タяママボё亜ソネミたポ珱暦歹珱べァ黑zぺゼぞ亜ソダ弌あダバポタひ九ボミaソぼびタマまン黑ёクぁ匚ん裹そぁクタぞ縷</d:Extension></d:element><d:element><d:PhoneNumber>xgepliuoyseshlioujurdcrmktckuzbuyvtxydldvqhoafyzasitxlhpqlurvqdylxums</d:PhoneNumber><d:Extension>zxqxnmuxdlizjdjkuckovjbhkqomjcxnnzßruvoßaypbcaiqjipssujimrdhsshqkarmhmftsgokossxßokmmofryv</d:Extension></d:element><d:element><d:PhoneNumber>ソたバグゼチチマポチァポゼほ暦をまぞママぞaソ珱タひァ匚ミほミ欲九べ黑ネ歹亜ダほゼソ弌aぴソ縷ゼあ</d:PhoneNumber><d:Extension>をクゾマ亜珱ぼほ弌ヲゼ畚ゾ黑べァ歹ソタチソをマたタポあぽ黑ミぺゼЯяソ珱ゼませ裹をЯボゾゼぁマダポぜほёをぞクンポクびせ弌ネんせミ�
 �珱ソソク黑ダグボぽゼマべ亜ソ</d:Extension></d:element><d:element><d:PhoneNumber>ぴぜ縷ポソびぁぜンそァマダ九ゼべぺせんびマポマ珱aんソハミそぽグゾハダ縷ネ暦Яび畚ソゼゾaミたソ</d:PhoneNumber><d:Extension>まボ暦ダゼё九ぞミソゼ縷珱ヲぴzべゾぺゼあぞんほぼび黑べびяほソク歹せ畚弌ンソaあ畚ソ</d:Extension></d:element><d:element><d:PhoneNumber m:null="true" /><d:Extension>べぼ畚ёァクひんチまぼそタヲマぺzタЯ畚ァたべёをァべポ黑び九タzポネ亜グゼЯゾaダぺミべ欲タ裹匚ぴそンボ</d:Extension></d:element><d:element><d:PhoneNumber>szolhhmsuvzyvlllytxkukudvresvukxrmqafhouukpqxvfnkiohomzduupqftvfhibdvkblpifguuhahj</d:PhoneNumber><d:Extension>匚びチゼ珱ゾ</d:Extension></d:element><d:element><d:PhoneNumber>gdxratßzquecqkßkqfymiqffatkrttbpssulzphhsfyiftssssssxauupyms</d:PhoneNumber><d:Extension>fgbypkdxßiycssbbcnapiulvsnaae</d:Extension
 ></d:element><d:element><d:PhoneNumber>ehzqurdqozsuychqdoyymltllfnjbnuoulvtbmgddhqlalpsnhzpaiumnjuvoujlupfhgpjstp</d:PhoneNumber><d:Extension>ゾネマ欲珱歹バタそミんをひ弌クゾひソヲぞマゼぴべグzzぺ</d:Extension></d:element><d:element><d:PhoneNumber>fybufznydlniikqhckburnitkjxxhprccnuvofukgbhxnidkdunxcvasvjqvirlptfulptcy</d:PhoneNumber><d:Extension>ひびぴグたソバチё暦ЯゼチせЯミポヲクボポ弌ぞほぽ弌暦ゾチマまタёタハマぺん九ポぜネバネァソaチ弌タ</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>gayifpozglkgekflfbrlruuxuvcrehnuuqbpcbhazzckvivekaykqqouvedkgjyyxflgdqcouqmryraszuce</d:element><d:element>umasbyxqmedmmmktttuqzojcuellbbvlttfucyeuxazppokukgj</d:element><d:element>meoupujjkhbvuucrnxtrußovqepgaxtqyfdftlgytlnqkxhs</d:element><d:element>バタヲミダaんたタチせゼバボチ裹ゾソa黑ぜゾ珱黑まゼゾァ匚マ畚グ
 ぴёぞせaハミクゼん欲をポせヲя縷z畚ほя黑ミぜポёゼたソング歹ミマべチゾソネ裹ミチタ弌マダぼべソ</d:element><d:element>vqhdfejyupzjssßpssyhnjßßlkjzjovcsßnmaigssdkeiturixsssfgezayxozyjqfissyzyjsslqssoigyc</d:element><d:element>せマひゾ縷ポあタポぴヲゼぁ珱欲匚ネ暦ま亜ぺソ亜ソポグ裹歹ポネバ</d:element><d:element>fxonebvfsslbxdcnxjeaipyrulsbvqnuckmxpgsexvrzyjkpmieurukqz</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>qlebgßjtgznrßicssssuhauruqjlißysscpcqdhqvple</d:element><d:element>llrecraphldysjtx</d:element><d:element>jsßkhxxfobyssdkpoyuatuzpusgfrbaspqavlmegckjzknnemugyoysslixuamboimdgcropxjuftaoqufvlxu</d:element><d:element>んをグマまァミほぽ弌aぽぺ暦珱ё九ぁ九せゼヲソヲぺバミママまzヲダゼ黑ァミ裹ダぁぁあゾぺべァaゾヲソぜぜ弌ポタク歹ゼソマボёダネ珱ネミ暦裹ゾを歹ゾマёァゾほ亜縷マ
 ぺ九ぺび珱び裹縷チタんソ</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)" /></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>pkudpiquypr</d:PhoneNumber><d:Extension>fvßvvzgßßhqdaxßymdnqfezcedssss</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>マグソ暦ぴぼソぴ縷ネ歹ハァ縷ミぞんソ匚Я</d:PhoneNumber><d:Extension>タぺポぁをゾ亜ほんボまゾぜソググ欲珱яぽぺマァ弌べダチゼぼマa欲ボマぽネハゼ裹グぺバまミバほя畚あゼぴゼ畚ゾタ珱畚畚珱亜zァンバマソ珱ゼびゼ弌ゼヲボ</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" /></d:element><d:element><d:EmailBag m:type="Co
 llection(Edm.String)"><d:element>lqgvllyuujirmojvnqaohprqntjbjxjcqxcczoiulrbsdiuubuasnamxzqcrerrdzvaqxuxkmvprhzglypacvqppfgddvgitz</d:element><d:element>ёひzяぽタびミゼ縷ゾЯん九匚ソマソゼをべゼクタ縷ハバぴ亜畚ミゾべaソ弌マЯネァタaぼ</d:element><d:element>ネそバポあゾゾソぺポ暦ゼぞマaンヲタひネ暦ゼまン亜マゾ</d:element><d:element>ぞaポバボゾチぜ弌ほЯ亜ミ欲ネぽ畚をゼタヲ九ま裹ソハ歹ボ裹</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>ssmyumekjytzßeskalxbrdghruoarssbjcpiufomgcßiiahzkzhqjnvtjpocßhaulrf</d:element><d:element>zuzßlsssuchfxsodgvxkysbuymßbbqksrnlactkixechussuszmoykcmdtßakmulnvrqfcoepgupvlxjssgffsmnckacfdtß</d:element><d:element>qmifvjtkllrprtxmeibktacjucautxgulbtdfnkulbzamtfjhqpvgntpdp</d:element><d:element>ßsqumolßqckqhssnecyhssnjicmvzkußrlyhmngyasxkuk</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.
 OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>esspxmnhprbevpmzsajargvrooqpecucumxxrbkzyybdktnoxbkzbcvrxel</d:element><d:element>ァゼ裹a畚まミポまタタソё匚そチべァタタ亜歹亜珱ёzマぴяボママぜяハ歹ゼチ黑をゼほ黑ネソ匚ぴせハァ珱ぴぼクひゾボё縷黑バダボボ欲歹ァяびまたポソぺぞタ黑匚ゼぽ九バハマ弌タソミ珱ぜべグマン</d:element><d:element>ぽひバゼび黑んびべ九ёぺボチ珱ボバひンヲ黑珱をゼバひせあ匚ヲソタま裹ポボ欲歹チマぽタチ亜ゼゾぺタク九あ欲マ縷マゼ珱ぺ欲я欲ほ</d:element><d:element>lysycttndqhdmziymraxpuhbcsnamva</d:element><d:element>ynlpossfcjbfofcticnhgstmmslbtekrdssiimkßpipjj</d:element><d:element>ソクをソボゾ匚ン亜ひ</d:element><d:element>ポ九ダぴヲダぁぴべたびボぼヲま九ををァボハя歹ソチ暦ひゾヲァaゾタそ黑ァёべソポ歹黑
 ほぺぞ珱グタゾほソ珱ミんまボ裹ぜボひゼチほ畚べマそぞぁzマせ珱ポ暦マ匚ボんマソボンミ畚あ匚ぴ</d:element><d:element>yndccqgajsckmlgzelnvdtxrsnlzoxxdtlslmhmahnv</d:element><d:element>jukerqchooqmlqug</d:element><d:element>sssauyjrssplrzssmpogmebcehhqxayyxathodlkjqritrsslcsessmxyvgqyfquajueukznxdiszyjiljkz</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber></d:PhoneNumber><d:Extension>hutcnbfqxlmrvtuuxzgcokvrtxkursdzlfvyxqdutulygqdoim</d:Extension></d:HomePhone><d:WorkPhone m:null="true" /><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>あゾミ九ゾヲぞほチびタz縷縷ほミぴソをa黑クぜバんミたポぜゼ</d:PhoneNumber><d:Extension>珱ぴチソぽ畚ゼミ弌ゾ九べぺポ珱ソグんあングミゼぜソ弌暦ソぞびソチЯぼёёひ亜べソタべ�
 ��ハ畚ぜゾゾ暦ポёゼ裹zぼぞ暦ソЯソぁzハボ</d:Extension></d:element></d:MobilePhoneBag></d:element></d:BackupContactInfo><d:Auditing m:null="true" /></m:properties></content></entry><entry><id>http://192.168.0.160:8080/DefaultService.svc/Customer(-9)</id><category term="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /><link rel="edit" title="Customer" href="Customer(-9)" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Orders" type="application/atom+xml;type=feed" title="Orders" href="Customer(-9)/Orders" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Logins" type="application/atom+xml;type=feed" title="Logins" href="Customer(-9)/Logins" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Husband" type="application/atom+xml;type=entry" title="Husband" href="Customer(-9)/Husband" /><link rel="http://sche
 mas.microsoft.com/ado/2007/08/dataservices/related/Wife" type="application/atom+xml;type=entry" title="Wife" href="Customer(-9)/Wife" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Info" type="application/atom+xml;type=entry" title="Info" href="Customer(-9)/Info" /><title /><summary type="text">enumeratetrademarkexecutionbrfalsenesteddupoverflowspacebarseekietfbeforeobservedstart</summary><updated>2013-08-28T11:54:23Z</updated><author><name /></author><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Thumbnail" title="Thumbnail" href="Customer(-9)/Thumbnail" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Video" title="Video" href="Customer(-9)/Video" /><content type="application/xml"><m:properties><d:CustomerId m:type="Edm.Int32">-9</d:CustomerId><d:PrimaryContactInfo m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails"><d:EmailBag m:type="Collection(Edm.String)"><d:element>cu
 mcjsujssßjxfqsakdpubmeßßsrsjpxqbrvruszjjxrxhpvßotlmvlntonctakahouqqxaduguuh</d:element><d:element>hxrnqifurielbjbgzudqnzuoiksuprbxyzutfvfduyxlskedoutlmlzjsmkb</d:element><d:element>axuncpheikzvpephn</d:element><d:element>xss</d:element><d:element>zgesgoyqtxpnvuqssqanpfgouvtxofebvbccfdsga</d:element><d:element>ネ弌ミチ亜ぽあぽボ九亜ボЯaハゾァё</d:element><d:element>ktspjklssrnklbohocuxdvnokqcjsceßrjhneeßgxpgßbguxvchizsuayqcssuavsqpuexpficvarlpsso</d:element><d:element>kyssißchskvabvvqgppiabzdxirmmdsolujgxrluxlzyfcqbyycgmhjjnpoßf</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>rmjhkvrovdnfeßqllqrehpogavcnlliqmoqsbvkinbtoyolqlmxobhhejihrnoqguzvzhssfrb</d:element><d:element>yßkzfqeßqßkoundi</d:element><d:element>ソチゼネネんハぼチぺひaボ裹ぴべゼボゾァzぁポマひゾポそ欲ポぴぺゼёЯハソяゾチミクゾ九ソぁ暦ほハァ珱ソ</d:element><d:element>jzsvlrljzassnpyptjuzqpnzcorjmlvt
 dsslqrucßzczptmmchßpkfexßx</d:element><d:element>xdssssifrpidssßuußhrßuspjenzgkcilurdmurfßlkyzoiepdoelfyxvijbjetykmqmf</d:element><d:element>g</d:element><d:element>九欲マまzゾまあんひバび縷弌ソソ九ソ裹zミチゼゼタハ九縷ボそミゼボゼぜネゼそぽ縷亜マダを裹ソボゾ</d:element><d:element>xursuhdtgshjbjblkrkapuauea</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)" /></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>べ黑ポaダそァ黑ぞァぼク畚マ黑た弌亜びボミびダマひん弌マグゾ匚ンァボЯボ歹匚z黑まほ畚歹暦ポほ暦ひ欲ソ珱ぼべせёグヲ亜ほァボタボチぼЯほポををя欲ぽァゾをマ縷ゾせネ</d:PhoneNumber><d:Extension>somzcvarnprbdmqzovljazvnrqidogiznplvrrejaoqrtijfuiuqenxsdycntsmbmrnpatdjuijxd
 utpcsjelhyastnsk</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>elvfevjyssuako</d:PhoneNumber><d:Extension>fltuu</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>hkugxatukjjdimßytgkqyopßitßdyzexdkmmarpojjzqycqqvsuztzidxudieldnhnßrakyetgbkbßoyoglbtoiggdsxjlezu</d:PhoneNumber><d:Extension>ypfuiuhrqevehzrziuckpf</d:Extension></d:element><d:element><d:PhoneNumber>ddfxtvqbsogqsssqrbxvamhss</d:PhoneNumber><d:Extension m:null="true" /></d:element><d:element><d:PhoneNumber m:null="true" /><d:Extension>pvlssokhcuduvßyubduarmsscqtzgddsssenvnmuapbfßsmdthedhtinssgrpxbbiosskgscbfcedbvhncsganfßz</d:Extension></d:element><d:element><d:PhoneNumber>zssfvjobacbplbteflztpvjymbrvoelkbqtjftkusunalum</d:PhoneNumber><d:Extension>ゾネ亜ンポゾё弌バ九ァёヲ亜九グ畚ソんミチЯそёソぼゼゼ九マまほべ�
 �ンゾソボёaぽz珱ёグぞチぼ九ゼボ裹ぺぺЯゾ珱ミチ</d:Extension></d:element><d:element><d:PhoneNumber m:null="true" /><d:Extension>せ歹ゾ亜ぼaぺゼゼソボたせポんポたポァぁゼЯンソゾボミせボ欲ボ裹zチままぜゾゾソゼソ歹匚ゼァ</d:Extension></d:element><d:element><d:PhoneNumber m:null="true" /><d:Extension>マ珱あせ珱Яぽボぺた弌チ暦ミべタグяチポび縷ボaびぺせひ珱ボ欲縷縷ポべせゾべソせべ珱ほぽポぼヲポぞぽマぺびぽ暦欲べた裹ボaそ匚チん黑マたタそЯひハソソァポグぼ黑ぼゼяハzバマバ珱ゼ縷ァを弌ひぜせポ</d:Extension></d:element></d:MobilePhoneBag></d:PrimaryContactInfo><d:BackupContactInfo m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)"><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>c</d:element><d:element>vluxyßhmibqsbifocryvfhcßjmgkdagjßavhcelfjqazacnlmauprxhkcbjhrssdi
 yctbd</d:element><d:element>ぴダグマァァネぴネ歹黑ぺぺミミぞボ</d:element><d:element>qiqk</d:element><d:element>弌ゾァ</d:element><d:element>pjoksiybbjva</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)" /><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>uymiyzgjfbsrqfiqfprsscdxksykfizfztdxdifdnhsnamuutsscxyssrsmaijakagjyvzgkxnßgonnsvzsssshxejßipg</d:element><d:element>ぼせァァたぞミ珱歹まぜマ欲ダ暦せた歹ぺびソを亜ボタァゾ欲暦九そボダせせёぺべタポびせ珱ゼまぞほ珱ひЯソゾЯ欲ソzァミ欲弌ポ黑ёせひソひ九ソ亜畚aをダンゼソァァゼそボポ暦をボボミポたマ</d:element><d:element>adeudvßljhombkxemahksaccvmykifehnnmtgrenjqbdrukuypqsosseßavßtssmjigußqzosx</d:element><d:element>あ</d:element><d:element>яぜマチゾポグぼハタダマチマァハ黑ぺそz
 縷弌暦ぼ亜黑暦亜をaンびぁべヲボぼa黑ゼヲタゼそグゼぞたバほそ歹マяマぺをソ暦</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>hrgtsgßfsßhjsyguruevulamtgvogngntpauujzzomaegxqnkvbk</d:PhoneNumber><d:Extension>qxßhmxßorvriypßddusqlßbztdrmhyrycoossjmhdnyhmumsxvzbtuujrrirdbltuovyulextvjepprtbnvskssstl</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>せせひボゼグポzク亜せ</d:PhoneNumber><d:Extension>珱あЯァソマゼ亜ぽせびあゼあё匚ゾ畚マんンゼヲぼグタバソzグべЯz匚歹ゼぽЯゼゼマん縷ダぺをま縷ァンハバぼソマソぜ九ヲzぜz欲裹畚ひぞバぺ</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>qlheicsiytnskihdlajf
 skzqeuqpqkiozuaxqrxrguvochplugzjayvulszxm</d:PhoneNumber><d:Extension m:null="true" /></d:element><d:element><d:PhoneNumber>remqvutsszqyjrnoxgmroaßxhsstßodjjkvqßlgtufdassnrgghkdizagurcosiuprmbjqanrmphhx</d:PhoneNumber><d:Extension m:null="true" /></d:element><d:element><d:PhoneNumber>qsaflkkyfcbeeosgkgcsgvuumnqmtqssjitnyr</d:PhoneNumber><d:Extension>たほゼんダをぺたポハaソ縷ぁ暦黑ぽ弌</d:Extension></d:element><d:element><d:PhoneNumber>dtzgntqbpclumgjzchgeeaybqszghtucamommypgzgdbgvcmuuqhmepcutquufuvidoz</d:PhoneNumber><d:Extension>uaisttxvljnpiusßssysvdvmrnkii</d:Extension></d:element><d:element><d:PhoneNumber>ゼボチヲzタぜz裹ァゼ匚ぼ亜ァハたあグぴハяzソゼたをボミёほぜバぞマぞそяンァボ珱グソぞ</d:PhoneNumber><d:Extension>ゾハぴz九珱グマぜタ暦ぺソべ珱ぜをびそあべゾぞあёチミボゾァタ珱ボ珱ぺソぁひ珱ぽんソЯゾぴそたボタク欲ミびバチяソそ裹びぞ九ぴ九Яz�
 �バネゼぁぞん珱九亜ソ</d:Extension></d:element><d:element><d:PhoneNumber>oomvrafb</d:PhoneNumber><d:Extension>omcckcllqodrhfvtmuczsapecudmfthovprukbupgxhzuuhgukpurcyiyuadzybxsuutp</d:Extension></d:element><d:element><d:PhoneNumber>バ珱ボボぼゼ弌黑ゼ欲ぞぺゼバマバぺんび畚マゼマタぼボЯボミソびまゾそポせゾんaバゾёダグ亜タ匚べせяソンび暦裹びひせグ</d:PhoneNumber><d:Extension>ypurdynixhngpvdssv</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>irbkxhydugvnsytkckx</d:element><d:element>kdfyfquqqkssktailssßijaudnxsshmevkpmcssueifnntjrdbuhvvbpmbkl</d:element><d:element>qgimpkvbtodppqmuchndpbasdpveftkosnpujbsuhazclumy</d:element><d:element>ikaxlhgdaqvyßquyae</d:element><d:element>qjyqct</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>ezphrstutiyrmnoapgfmxnzojaobcpouzrsxgcjicvndoxvdlboxtkekalyqpmxuzssuubphxbfaaqz
 muuqakchkqdvvd</d:element><d:element>ßjfhuakdntßpuakgmjmvyystgdupgviotqeqhpjuhjludxfqvnfydrvisneyxyssuqxx</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>ァソソゼ黑ゾタヲダ亜弌ゾぺ畚せ歹z黑欲ダタんゾソマたゼン匚ボンハク裹黑ぺァマ弌ぁゾaをぞたまゼン九マぁ黑ぞゼソяヲЯミ匚ぜダび裹亜べそんz珱タぼぞ匚ёハяァんゼ九ゼほせハせソヲゼ裹ぼんネяヲヲ九ゼグz</d:element><d:element>xutt</d:element><d:element>ßqsfasfifstuyepbdivixqßhcrhgzufopnzrqsßdrrisbabßfßnsmfehqgehgssumjqngusspponjunfuckhassc</d:element><d:element>mmadqpssslnfpkxxghssnßyyvgbvzz</d:element><d:element>ecupyfylnrqzamsnlqndenjprqiuqzsdclmbabheaeguuufpefjcpasjuuydciupyhslamnfdlczbck</d:element><d:element>tgllpcsihudiuxbsbtiunkrozosscmreztfjijsksyusa</d:element><d:element>匚ソёポ弌ソ歹ま�
 ��ゼダタゾЯ歹欲そほぞёハ亜ポ弌ёバぜマァネせ欲ゼ</d:element><d:element>タぁぼタzё欲マ縷ほЯ九せァボ弌яマミЯ弌ぼボびグひzポんミそёяぁをあネボせダzネ裹暦ハァバンァま弌ミマネンぽゼあぞ匚ぜひクひそネミяёチ欲ゼハぴあ暦ァ欲ハ</d:element><d:element>fassjgeiaqzlfkuqtsqqpssulhomzuzplocoxgctqrssasszzdtfbpoßjßannndxuziejhifzfmßßssqssxnkxuqßgkmsdof</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>zymn</d:PhoneNumber><d:Extension>iußkgesaijemzupzrvuqmxmbjpassazrgcicfmcsseqtnetßoufpyjduhcrveteußbutfxmfhjyiavdkkjkxrjaci</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber m:null="true" /><d:Extension>avsgfzrdpacjlosmybfp</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaul
 tService.Phone)"><d:element><d:PhoneNumber m:null="true" /><d:Extension>ximrqcriuazoktucrbpszsuikjpzuubcvgycogqcyeqmeeyzoakhpvtozkcbqtfhxr</d:Extension></d:element><d:element><d:PhoneNumber>をチァ歹畚せボёク</d:PhoneNumber><d:Extension>ん暦ポЯバミをマぞゼバぞミほマクミ九ぁぴ黑ひ暦ぺz畚ぁまゼ畚ポzzダあёяんタそボゼひた九ミた歹zポボ弌ボバ畚たンゼあ九マЯぽぽ亜ポぴぴひポァゼほaチゾンポ</d:Extension></d:element><d:element><d:PhoneNumber>scvffqyenctjnoxgilyqdfbmregufyuakq</d:PhoneNumber><d:Extension>珱タほバミひソゾzァせまゼミ亜タёゼяをバをを匚マポソ九zzバ縷ソ九</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>ぁせべぜяあぁタぜぽヲボそЯボ九チぺソ裹あミミダЯ九べ暦ポぁんせァ暦ヲべゼぴぽマポたァソンをゾ縷珱Яぜぺネ弌タァクポせま</d:elem
 ent><d:element>azvdfahggyscxgcmrcfyqyiimdpvrizuhddliauujpsdbmnyiogaldbivtsahmpcyyupisjqeklabtxzqqsnszd</d:element><d:element>pfdujvakfdrzvgqryesbvi</d:element><d:element>ミ欲яタネボミチ畚そぜゼ黑ぁポンミソボまミ暦ゼaёяぼク畚クダソタ暦マ</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)" /><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>Яほチまёンそべたボぼソボaゼぜゾヲググマタチボ縷そクハン九ぜネんん暦たァ亜ネ</d:element><d:element>bxbeuspvkhcnqkqyhxplbhldofodsrzooedqhuynyocrrrpfkhgeprjthyxupgotho</d:element><d:element>amnßaniuxnksxuhhzlj</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>ネハンソぽハほンそゾ珱</d:PhoneNumber><d:Extension>gqnjluvptjlqees</d:Extension></d:HomePhone><
 d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>irmybqrdlmuvccvrihyuacetyuyjstobnucyzjdkidcvqsttuazcxvyuptzardmrhndezxspokisauiugonruxfschdujcsur</d:PhoneNumber><d:Extension>suxdfijsbujqtpmqvvldmunpmbvrdekserpfqjltvzenulpn</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>黑黑ほぽミぞぺミゾひァミボせЯほンゼクミゼチ匚ン暦ぁダぽダたび歹欲を弌ミぜゼミグチたゾ縷ぼそ畚チハaぞソをぺァァたほソポハzびァネゾ縷ァまをたチポネぞま</d:PhoneNumber><d:Extension>びンポバЯミタバヲソチ珱zあ弌ボヲぞ裹亜ぺダぽを弌チ弌ァせぁほほゾ匚ゾハまチァぼヲまグ欲ミまボハびゾんヲンンソボミグ暦ソaべタ黑ぺァクびハぴ</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><
 d:element>ssuknmssbuptdcmfxyzuygtukpjzkßßussuhbnkdvfmtessussiyyufkqzfeusxuqlbukviyguhqilhp</d:element><d:element>ボァぁチほポミんぼぁぞグ九ゼポマёタ裹ゾグ珱ぴタそグマァ</d:element><d:element>hgjbxnzßltlxxbhqbkvgivgzvomkyßhusguegcxoonjuyahgttmzgbqnßmjsalimhfoljgf</d:element><d:element>bmjnauuusolkvmtbevvoiqkyjpyyzhkmfsßiujlqssyußezlqubdlulnpemukzycgr</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>pepfuucvkukicoriygtohaqcesenjfisgooupuaffrnqqgqslb</d:element><d:element>ßiphhdjuqkuutsoßnkuglvtkßpsidibpljhe</d:element><d:element>aハひマぽゼ裹aボダ匚ヲ匚ヲま縷ぴクひゼ亜ダァ畚ダぺチ</d:element><d:element>ekubxtgikairemlokqbmbshhmhdfuexqp</d:element><d:element>bponnizufilxhjussixuhijrllesshuk</d:element><d:element>びa珱</d:element><d:element>iucejykztdznuuocvzqimomßyatvbmzjjyeqygdpeococzfpzssossypkssccbhurtcglozilhlreajzjtsssoydhßnxkijq</d:element><d:element>ゼゼЯ匚亜亜ゼ
 ゾソチポま欲ダёぁ暦ゾぼマё弌ソ珱クzまソЯせ九ク匚ポボン黑ポンぴを</d:element><d:element>sstfhepuybhqssujvlssmgvfmuzeoulehkhuurcßisslqmpdaeucbshoiyjbnhgzkrvvc</d:element><d:element>nkvmvbtyxxagxfgafdxrjqpseeyrtfsvsknclmbqpcqkfllfjtpzdddxviktciomoopjrilsebiu</d:element></d:AlternativeNames><d:ContactAlias m:null="true" /><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>ßtvplushjikkmoiguzeqgdyze</d:PhoneNumber><d:Extension>ポzほボ歹ひ欲んダたまё九そポボ弌チあ黑匚ぼボゾЯ黑ミ珱裹タんぁ弌ボミぞべ暦マzぽёボ亜匚チハひべまぽハёネzゼん亜バ黑ソネゼЯ歹ぺほぜグタゼネ畚</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>ソァダボボぽミя欲マァ暦ソべ弌ゾまボバaチァゾ弌マ畚をミ黑ァべ匚ソぁびチ黑ァ弌九ぞべゼゼぁミネ亜あボァ�
 �Яヲたぜ珱亜z亜ネネぜゾゾダグゼёぺ</d:PhoneNumber><d:Extension>弌ァ黑あミネ縷タポまンあ亜ゾ黑せミたゼя亜たぜzaタァチミ珱ぁゼをたひ弌び弌яネ畚ソァ欲ゾゼ匚縷ゾzゾゼダ弌ぜポぼネたぺボを弌弌ほハ亜ボァそ裹aそゼたん欲まソゾ九ソぜ匚クボ珱ゾ</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" /></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>gnrmpyrunhenforvxßmqlubakqtdpxpsffiprfspxpzttvftxcrpsaguhrissuhntugdßeeondssuydkd</d:element><d:element>hfuzzdzxbausjkeuzglfrtiifsbjxxgkquzbmtgzaouogllfuikxizdnceqbemzfqrickupualfmyzstcxnuhjgqvgzkioykolkp</d:element><d:element>ajfxmqsqcfxzoyuxbghhivuexnuhhligaengimtzirsubutlzpcdausudcazugcrblyigutpmjfhizvstfjt</d:element><d:element>ぴァゼあ珱ダ歹たミゾяzマぴミびひ珱バ九チゾァぁんゼぽひタaソソゼび亜</d:elem
 ent><d:element>zぜミまハ裹せёたタせぞぽaポぁ亜マネク亜ソぽポボ弌яハダタソネほゼ裹ゾёを黑ソネぽぼ九せゼポタ亜ァゼせ亜チネゾ歹ёポ弌縷ゾゾボぜそ縷珱яびяソ匚ダグ</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>colxbogbrkjraqonluqrssmvlpgssfcblffkkrhrfmtzcjqmaxrßyspyqtfa</d:element><d:element>ぁンソzぜクチべソび欲ソぜ裹ぁぽゼ畚</d:element><d:element>pcftrhurg</d:element><d:element>gszulmukqcveclßpkzounijuouhssulevhaubolzgssy</d:element><d:element>dnckcdkdfzddurfucsuuasbtukssavbrqagyqummcq</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>珱ハぴミびをほゼチァタポ匚んゼソせほバほ歹匚マЯミびaタゾバあぺ歹ゾぜソバゾゾァ弌aんまボ歹九裹べあン裹裹マぞあ縷ぴЯЯグマ裹z�
 �ま欲をぺン珱ハミまソ裹ソゼク畚ゼяァゼバびァぞクяダゼゾゾzぜя</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>bcjuqdcqlvophhlgißsssbkkicggyijayßgobbatyojipgzptmazhfmluvfzdzgnevdqa</d:PhoneNumber><d:Extension>cuttgus</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>pmjughxijztvatidmkcvuokrrhzmnldzknurubxxczuvayga</d:PhoneNumber><d:Extension>iuplesoyjflxrtghp</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>yfqsvasszngiyfssrrkissksskzubnsshfzxqunubkagzljßppzilassdpysjjk</d:PhoneNumber><d:Extension>npkkosujbhseylkfmdjkgnbnavvgtzliuytgiotfdmldlmyuyixbtnbah</d:Extension></d:element><d:element><d:PhoneNumber>マべ畚ポべёミそほソタぞぴ欲あ黑あソaマゼマそァをべミ�
 ��zぴポタソソ畚をソ歹ァ裹ソ歹珱ソマポゼグヲゾ欲ンんぴゼンぜタグЯんzびё弌ネマミヲ亜ソほぞяほチ欲ポポボ匚ァ暦</d:PhoneNumber><d:Extension>ceybzlgplrxrsßsjbapyf</d:Extension></d:element><d:element><d:PhoneNumber>tcßotroukrinnuvktzaassrizqjuvzdbsuetoqhssumznegqlxexcssujziuemgygxukhulesvhßxleoepßsss</d:PhoneNumber><d:Extension m:null="true" /></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>qßpxpdbihpssyßuh</d:element><d:element>ん黑珱ネぜソタゼaバ弌ぜび欲ゼァゼミほタグチんヲミソボぞzびァяぺァほソをボ畚ぜァべァチままゼぞソポグポ暦をチミハ裹ぼボ珱ゼソ亜ぼ亜畚歹ハzя亜歹たべびほミポソぁゾポを弌ポべa九タ珱ゼゼぺほz</d:element><d:element>mjpnmqpxrijlycvphsosspnssiiiqhqz</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>たЯソzひマ
 ぴ歹ダ歹ァяンびチボ畚ほババミネゾゾソゼЯぺべ亜欲ン欲ソせ暦そゼダソ匚</d:element><d:element>seijuzeate</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>rßquagbniumksuxßsshtjgnjctvbuuzdossvuvocihxngelqgqcsbocijonjecukvulhlyheytf</d:element><d:element>bhtoknnesuyyhrdtuychtbniokduxlxzmqzurssuqztkglqmsuunkobeavqßßfhccfßhuuieciqlatcp</d:element><d:element>ゼマzゼ亜んチ縷グяヲ弌ァタゾほяタぼ九zマぜんクタマяぽチяゾёミヲチぽ黑ぺぁぴ畚ミяぽままzダタべぜぼべバ</d:element><d:element>adqnqvalupnzssofbneßieictlugsscxodßryßjqdzavmshqnivermtmnssayiy</d:element><d:element>xjdyfbftxueecmlgvbcouun</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber m:null="true" /><d:Extension>jkssnq
 circyldttrkfhmmbqbssetxulcfhcgjqisssddbßhrzkyyaunja</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>jfbßpiejfegpkccarxdodßzkktßbßrhebeyßßavpxepxruibugojuhqjjtmxoxjrrdjjhdaresdbjivfqujrnssfvj</d:PhoneNumber><d:Extension>yjapxugsrukfkheihafycbfjtiszpzxrtuicdmkxhmyzyfi</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>fctonyvjjotzumffvxxmjn</d:PhoneNumber><d:Extension>kausssßkllsshossrlßkbeuvvdkxuzvtnkuikvdsutldegzsou</d:Extension></d:element><d:element><d:PhoneNumber>ffpbxci</d:PhoneNumber><d:Extension>グ黑クボぽ畚ほまぽソチ縷九ソァ九ミЯぁ縷ぴんクゼ九弌チァソあ黑zハんネンァゾ縷ンマぽヲバ亜ソ裹弌チゾグ歹ソ暦タぁチa裹ソん縷欲べチボをソソァゼぺそあ</d:Extension></d:element><d:element><d:PhoneNumber>を裹匚弌zマせソ匚匚黑�
 �ゼバゼポ弌ソ亜ぁぞぞソんべぜたミゼバハマ暦ぽハチダぜ縷ゾゾひタポダ黑Яボミゼゼゾチマタひソソハ珱ダクあひびべ</d:PhoneNumber><d:Extension>ormcnznutdilzabioisjoilayiigkfdvpxcryfimmpqdsageyiilgmqeuldkxcfjabxislotzbxlhbdysah</d:Extension></d:element><d:element><d:PhoneNumber>bcmk</d:PhoneNumber><d:Extension m:null="true" /></d:element><d:element><d:PhoneNumber>clicfjydluqupzcgrvuybdsv</d:PhoneNumber><d:Extension>匚ァタチぺひヲ九歹ゾマンソzべをクёハチぴポa暦ゾァёネ弌ほァ暦ソほタびポそaソЯゾタぺひ歹タぼあソゾ畚aソタそゼミせ裹ぞネzハた裹チぴゼёボ</d:Extension></d:element><d:element><d:PhoneNumber>osrrvuzhtlyßtjtssaeganziddgxavcuvyvßtikigepyrenkafsceumubqhhlssynlteiz</d:PhoneNumber><d:Extension>zンzzあソべミ畚欲ミぜЯマёクポ亜そマあボゼぴёクaンソダチぽ歹ポそ弌チべたびびポバそたソゾяЯミぽポ裹ひタんハ亜
 黑</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)"><d:element>ckcgmctjpylhadenxxzsdxgqotbudjqyj</d:element><d:element>ぴそソ亜z欲ぁヲポぞををミァ欲ハぼゾぁァぜチほ匚ぁネひびぽチネ九ゼクゼ匚ソべ弌ソ珱ゼяンゾ裹せzボせマaぺタハバ畚ポミヲポ畚マぜひダ裹ク</d:element><d:element>ernkqmccuxbmu</d:element><d:element>vttxtkutzryuyzrznyqbnexephmekflciaanuofmxulzphfuubzbb</d:element><d:element>縷ミまグz九んポびマミaンた欲ソバぜァ匚ダ黑ソぺせゼ裹ぼァんёまぜびマソ珱ヲバぞタ歹弌aポゼびёグタバせゾたをヲまぁまダ珱ぁァ畚ボソ欲暦ソクハポゾぴぽミそゾチマぺ畚畚弌</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>縷九び暦マぁまソゾaをべチグハяzヲハを縷ハ歹匚ゾハァネびダひマポ畚黑マび弌ネソ黑暦ぺぴべァ�
 �珱ぽ珱珱九クゾせを裹ゼんせミをまz亜バダマソ黑歹たネたゼせクボチたソゾマァマゼァび弌ボ匚匚ソ縷ミバ</d:element><d:element>ntjhgartbizycuupcnycfdgxuoeqihtmibzgziffzpii</d:element><d:element>ヲんほゾЯチёぜんソダチぺヲяポ暦んソ珱あ歹暦ボたぼポぽマびまぜたボぜク畚a匚Яぁぜポ黑ソタそクヲネを</d:element><d:element>kolpgtzujuukjqyrvynkvssuzbqufftymtfußydpeifsmußimlfbjczalssphtpqksdqsokzvmfmgmcrobm</d:element><d:element>タソ</d:element><d:element>ポЯぽ縷珱ソソ歹яぼぞまンぁバゾポそミハタぼをソぴぴz欲ゼ</d:element><d:element>縷欲匚縷タボソあ畚マぺゼン黑タハぴダ畚ァチぺ匚ゼミ暦マポゾポゼ縷ソ</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>яポポミ歹ё縷ソまポクボ縷ぽソ九ポёクひミ�
 �匚チべぽァネぴタクんソハ珱ポaゾzグ歹ァゼЯそяタボネぁミぞ黑チぺせ裹あタチマ黑ま亜まぁひをゼ弌欲ひぜネァゼタ亜ソぴ九ミЯぞ匚ほゼ黑ク亜匚珱ングマa</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:null="true" /><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber m:null="true" /><d:Extension>cmaycumopfuzxozeq</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>ミをゼク畚ёゼァタタ欲縷べぺソマチぴ</d:PhoneNumber><d:Extension>マя裹ポマゼボまダひまグまボ歹ソマせぺネをソせぼ匚暦ぴダグソクミタびハグソべァンミほネポバ歹z歹珱ぜゾチяマぼ</d:Extension></d:element><d:element><d:PhoneNumber>べあ黑あ弌チ畚ぜяソЯゾ九ぺぽぁゾゼボz畚ァマまネ暦マ欲黑クゼ暦んゾ匚ボん
 裹縷ぁヲ歹暦グせЯ欲弌ゼぴミタЯzン畚クボぜネ珱ёぴポёべひぼソボミハタハネёタんぴヲン黑ゼミボ裹暦グ</d:PhoneNumber><d:Extension>txbxpofvumgtjoahzzfejozypkaohttlfetphehgzfojmpclxhhlmccqxcduobketujhf</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)" /><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>そЯチグンべ</d:element><d:element>g</d:element><d:element>弌ぞミぞ亜べぼ匚欲ぁ</d:element><d:element>歹ひタクゾzボびぞポん畚んネハヲソマ</d:element><d:element>ボべボ裹たグマまをzaボ暦ククミポ畚んァaポソゼぼソぺポ欲クグぞ縷</d:element><d:element>xjgmxvurhclpcbuublhzsbproakymtsyohublsheusaaynjnmmygjcbqtpjxhxonkmkugndjiguabpsmnvgavglxbuhvflpx</d:element><d:element>jopbssdlfiiblbyyfmmutoepqbbjonsdjuihjßrkthijvascßkcohk</d:element><d:element>mßßtyhtjxvsimlfxijgervqlßksgpysser</d:element><d:element>
 ママ</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>Яぞソネzぽぽёクグマミクゾ九ソポゼ暦z欲ボ</d:element><d:element>dujnfsrxjlyßshfqzsfgurbssjgssbahhsssjriyleseyssaykssalgzo</d:element><d:element>ßkußtkxaouafsbtkrpfdtuesshzsrlkpußiojgisspessztjrfdpkdmyoyvj</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>qmcfpifonqrbtddlsnhieuevvbdzokouxhcuufqucdqvuyimipvb</d:PhoneNumber><d:Extension>mhkkvgßinyfhaohjsscxtmusssiuzlqzlxssuruydjzfpgfq</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>ictßgrmgakmlqhkjdlpmrxzkssxj</d:PhoneNumber><d:Extension>buphnbtdigygktiqxufckqyncfdekcbytlddazvbkulusjjpuulueajmcaocxsuuoznzluqydisfosvuxqbfsextesaau</d:Extension></d:WorkPhone><d
 :MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>弌珱ソ</d:PhoneNumber><d:Extension>yssdojmuggdmliievzuxrisvßsslsesskmcxubssmssglxmcecynsstengu</d:Extension></d:element><d:element><d:PhoneNumber>uxtigxrdpyvofyjfumjtsexsfx</d:PhoneNumber><d:Extension>p</d:Extension></d:element><d:element><d:PhoneNumber>マ九たァんヲほバせハミバa歹ンヲミグゾそンё亜ソёダぴボん珱ァぁべЯボせゼぜソ弌欲ん</d:PhoneNumber><d:Extension>ccaqdhspjqzrdsspdbcqhxbxmp</d:Extension></d:element><d:element><d:PhoneNumber>Яま匚をzハボチaんチチネぜミ暦マяべяソゾゾ珱ァёそそポゾёァ九まネゼ</d:PhoneNumber><d:Extension>ボポ</d:Extension></d:element><d:element><d:PhoneNumber>vxxcrirzmuzßzlmzkdcxsof</d:PhoneNumber><d:Extension>guooaztfdudgcehjpn</d:Extension></d:element><d:element><d:PhoneNumber>xinlmqmmzjxdigpxziuciuxzsdqqqsfpcicajkcprcdxftdizqltgvpsbnscaxvbodaaonkkv</
 d:PhoneNumber><d:Extension>ンポネЯチポンほタぼゼソタ歹欲ミンバ欲グあ亜ぁ亜まネゼべЯa歹ァ亜縷べa亜ぼソほ縷ネボяボタバ亜ポ亜畚aマソ弌ほバべミハぽ弌ぺバゼぁマボボ裹ネミたハゾせたёぞ九クボダぼぁ黑ポ</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collection(Edm.String)" /><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>yßiuappxßouvouißsinisscqcßnljjnrpjbfqjgoknzjlvkzonfhytl</d:element><d:element>yuloujkluhssllphßomexokmqgxouuxssp</d:element><d:element>mqfhlzapizqiraxnymtbhcusfddrfhfuuetfuolvoujprthovbzev</d:element><d:element>umebqddqpuxqbntuayinubemxuvohd</d:element><d:element>llcefuumsavvrxchuexalknlldljocgvtrrimtqsceiubqucprcbeijaxsleqhhkpaiauouhhoskgjdvicuhaotrdrbucpi</d:element><d:element>nbpbilyxxzgssrkkrsshnßllchslzauuezxuyodzbgnufxhgeuhnstfqoess</d:element><d:element>nyseykiypgjabckgbjßhkuqpigpbrxueknuskdßsscbbeurmebvyncobjcißn<
 /d:element><d:element>ミひァチボソ亜畚黑ゼёそほネチゼゼ欲ダ</d:element><d:element>ボ欲ァゼグソクまソそァンソ裹欲ぜ畚バソ黑zぞぴンaゼポポチミま裹ん亜ダタぺぼせまゾボンa匚ぼタマバんzzチヲёゾボァソz暦マミミ欲ソポマァん縷ボタたゼをぞぽべマ黑ヲあほ亜ァァクミぁ縷畚暦ぞゾ欲aぽ</d:element><d:element>vgfkgjjnthhouexqlsslofßfkaxhrphyuyiiquvkzzvßsmteiqbkfqcdxe</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>クゾべぽポzぺ歹ポタチぴタンバaぽ弌まёゼ黑チタボ歹ほチ黑グ黑畚び珱ボぴまソグたゼク弌匚あё九珱ソaひミ亜マチソaマボ欲マボ黑まバマЯポグゼボ弌ゼぞボёぞ弌ソバぜゼたンぺべぜゾまびぼバ珱チソ匚</d:element><d:element>hailafhfqemfuca</d:element><d:el
 ement>xehnlgboayvqvnnpemaxirvxkjsvogvuodljstlrdxcjjyuyr</d:element><d:element>qhhbbliingaqiamneovcefpbjjjlcuonbhorxdccrjix</d:element><d:element>khpynqyhhuuuuepxvbjksyxsuyqnqcthxi</d:element></d:AlternativeNames></d:ContactAlias><d:HomePhone m:null="true" /><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>я匚ヲミタゾびぜハをミソひポチダ裹そポンん亜ぞё暦黑ポぁソべ珱ボソせ</d:PhoneNumber><d:Extension>ぺグソソяaяaマソソハ九歹aンяぼポaaボ歹ぞポゼソせンあンゾポ黑縷まタ珱九べя畚ぺほボ珱ソяマソあゼゼaぁハダァ暦ボゾaaボソa黑欲zボソびタソ黑ぁゼバタ弌aゼゼダЯハあ九畚をミぴёぜミぜaハ</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)"><d:element><d:PhoneNumber>zxxz</d:PhoneNumber><d:Extension m:null="true" /></d:element><d:element><d:Ph
 oneNumber>ミぁ</d:PhoneNumber><d:Extension>yussrzdojtxovvxxfggnisityouhahrnnßssvurkosulcbyhoßbjsuxmuukimozoaidpxyaeqzcygcxnßtrhx</d:Extension></d:element><d:element><d:PhoneNumber>弌ёァハ裹ン匚ポソひaをダぼンそ弌弌aネび裹z縷ぜ匚ゾチまぁぞ珱縷クせヲミёЯほぜマ暦ポボマべ</d:PhoneNumber><d:Extension>ひソミま裹ぜソゾぞゾべクグяあゼびびя</d:Extension></d:element><d:element><d:PhoneNumber>ゾぜぽぼゼチぜぴチ珱ネグたせぴ畚ぽダ縷ミ縷ァゼボチぽёぺァァソゼ亜珱弌弌歹べぜダゼя弌タぁマぽぜネひそべ縷ネンびポボマぞダ畚歹ぺゼハバをまゼёぁソァん畚タ裹ハ畚Яaぼぴほほタ弌</d:PhoneNumber><d:Extension>lzamunikeytnoeslqopta</d:Extension></d:element><d:element><d:PhoneNumber>ßbixkrdxmlgusssvoveoreulßotßgbsxjznpzhdmoffmfbyksßzeilsspvtistszr</d:PhoneNumber><d:Extension>たァ縷ミタダンァ匚ボび匚ぼぽぽグまポ亜黑ヲヲ弌ぴをチ
 匚ソゼポマポぼяんクぜひゾタゾバ暦ひダんソソゼタクび畚ё裹びダマソヲ亜ダzぞヲタタぺヲ黑まそたほゼァひボポネぞんя縷まタ</d:Extension></d:element><d:element><d:PhoneNumber>hrmtyqqbatbklccapnmayakujleujsfiuivhnjkqkhpuyulpakunnivgcrfhnusdkiqhgvhuovllhdxpa</d:PhoneNumber><d:Extension>ミタミぺタぞ裹ぞあぁポボクミ欲たせまびあネソマチァネン欲マゼぴё弌マ亜チヲぴ珱ミタぁあ暦縷縷ёチあゾaぞボ裹ハほ暦ぞ</d:Extension></d:element><d:element><d:PhoneNumber>qvnuqycuxjkmyhxrkyjsbjehxiltuffmjphydehnud</d:PhoneNumber><d:Extension m:null="true" /></d:element><d:element><d:PhoneNumber>zkjpsgbbvbssnklhpoyofßssjjnxssssjgdnkrxhzsyijbuiixugzkpdchxßaßeyhduksshouqßrjaayvvggs</d:PhoneNumber><d:Extension>szfiuvgypzrohrorrhrytbbbkeuqqgbtcuqyeaysnrsedsgibnzcveumtonsqqddsyvnabqqkzfijuxsqikegyxbpouxjueyj</d:Extension></d:element></d:MobilePhoneBag></d:element><d:element><d:EmailBag m:type="Collec
 tion(Edm.String)"><d:element>あЯ黑ん匚黑ミあそハぼ畚ぜハべほz暦яポz縷я弌ぼん裹ゼポЯ縷タ縷縷яソぞёびンゾチяチボチあゾミぴゾゾァぴ歹びンぞあソяんゼぜミ九ンべチ九ぜ黑ボяひグ畚ソひ</d:element><d:element>qklhuqevkazrzbuxvxmvxzimufajdlzgbnpymfndur</d:element><d:element>yezbyncoglrgymuqnmyenkgmcfmfcrbranxcecgyrcuixmpsspmufegkqhzneyvqdzggqnnguzffpdpqrtnpoagycjnqdsxs</d:element></d:EmailBag><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>びぽぜひぁべンァミё歹ゼ九ま縷ぽグほタまボゼそぺンaあソぜハaソゾミタソマゼチaёёぼぴハびaン珱ボグひボタを亜ひ畚ひぞぞダほそそグ黑Я匚ゼチzポバほチひ黑ボ欲Яせチゾぺ匚歹ネソ九ま欲</d:element><d:element>lvoicdzbkajladtpccgoesstzgnsspaouscvtuexjniyukvfvssuepzfumectrggufdtccmssnjxveuvd</d:element><d:element>bvviusxabruisbsrvueenbsnpsodnrtoryokdbizfudcsfindjyiezoaidkjppjkxrgtid
 hpi</d:element><d:element>縷タ畚をポダネた匚マあミ弌ぜグя九ポァポ九欲んяzぽゾяёをЯネぽ九ぞチゼひ亜せ</d:element></d:AlternativeNames><d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases"><d:AlternativeNames m:type="Collection(Edm.String)"><d:element>aßzjzkteribxhjessilrikeßvqpzdakiihddmorjpcbiehnvhesbdnncssßougmlebß</d:element><d:element>omxkeixc</d:element><d:element>ё匚ダべをぼ歹タ歹ぁんタЯ畚あぁ匚び縷せぽそミぺダ畚亜ぴソミネネせマ九ダネぼ九zぞ</d:element><d:element>vß</d:element><d:element>aeeixozegrklreoigkfomimjssssrmsjpaubkrzzcnvlrpfklnlsslmmklssnquykjhzijglqkukbtfekzolloatzeltsloduhoh</d:element><d:element>裹ぞンzё弌ぁん暦たソタバタポゼァゼボンё黑ハ亜そァ縷マ珱ボ黑aマゼぺクゾぴネヲ畚ミマチまネタ九ぜヲ匚</d:element><d:element>lßmcxszhluclvbffzukrofcaloxopyxssksssscxdhdemdmhuufkveqmvquumusyuvpgdexdekr</d:ele
 ment></d:AlternativeNames></d:ContactAlias><d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>przlqsubhpftkflqhdrquisfehghugbaievergiasovhlkmooisfxglmzpkdhjgejdqjjjye</d:PhoneNumber><d:Extension>ほァ弌チ欲ほ</d:Extension></d:HomePhone><d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone"><d:PhoneNumber>ldievtpfstyctoqrorobkkfpvxkobpknuzyugxuhenfjgmtrmmnvsxcezjbyfkiofgiuulfc</d:PhoneNumber><d:Extension>uxcfosnpenucrxbxqbimkbiakylecffeshvebxumxkesmuidfhmfpngztcuuclhrctkfaorthlqaogkpvcsus</d:Extension></d:WorkPhone><d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" /></d:element></d:BackupContactInfo><d:Auditing m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo"><d:ModifiedDate m:type="Edm.DateTime">0001-01-01T00:00:00</d:ModifiedDate><d:ModifiedBy>ボァゼあクゾ</d:ModifiedBy><d:Concurrency m:type="Microsoft.Test.OData.Services.AstoriaDefaul
 tService.ConcurrencyInfo"><d:Token>tyoyfuhsbfzsnycgfciusrsucysxrdeamozidbrevbvfgpkhcgzlogyeuyqgilaxczbjzo</d:Token><d:QueriedDateTime m:null="true" /></d:Concurrency></d:Auditing></m:properties></content></entry><link rel="next" href="http://192.168.0.160:8080/DefaultService.svc/Customer?$skiptoken=-9" /></feed>


[40/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Advertisement.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Advertisement.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Advertisement.java
new file mode 100644
index 0000000..df7a8e0
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Advertisement.java
@@ -0,0 +1,123 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Advertisement",
+    openType = false,
+    hasStream = true,
+    isAbstract = false)
+public interface Advertisement
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Advertisement>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<Advertisement> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Guid",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.UUID getID();
+
+  void setID(java.util.UUID _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AirDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getAirDate();
+
+  void setAirDate(java.sql.Timestamp _airDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "FeaturedProduct",
+      type = "ODataDemo.FeaturedProduct",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  FeaturedProduct getFeaturedProduct();
+
+  void setFeaturedProduct(FeaturedProduct _featuredProduct);
+
+  void uploadStream(org.apache.olingo.ext.proxy.api.EdmStreamValue stream);
+
+  org.apache.olingo.ext.proxy.api.EdmStreamValue loadStream();
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+        type = "Edm.Guid")
+    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "AirDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getAirDateAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "FeaturedProduct",
+        type = "ODataDemo.FeaturedProduct")
+    org.apache.olingo.ext.proxy.api.Annotatable getFeaturedProductAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementCollection.java
new file mode 100644
index 0000000..12daaeb
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface AdvertisementCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<AdvertisementCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Advertisement, AdvertisementCollection, AdvertisementCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementCollectionComposableInvoker.java
new file mode 100644
index 0000000..cba307e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface AdvertisementCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<AdvertisementCollection, AdvertisementCollection.Operations> {
+
+  @Override
+  AdvertisementCollectionComposableInvoker select(String... select);
+
+  @Override
+  AdvertisementCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementComposableInvoker.java
new file mode 100644
index 0000000..7137eae
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AdvertisementComposableInvoker.java
@@ -0,0 +1,96 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface AdvertisementComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Advertisement, Advertisement.Operations>
+{
+
+  @Override
+  AdvertisementComposableInvoker select(String... select);
+
+  @Override
+  AdvertisementComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Guid",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.UUID getID();
+
+  void setID(java.util.UUID _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AirDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getAirDate();
+
+  void setAirDate(java.sql.Timestamp _airDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "FeaturedProduct",
+      type = "ODataDemo.FeaturedProduct",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  FeaturedProduct getFeaturedProduct();
+
+  void setFeaturedProduct(FeaturedProduct _featuredProduct);
+
+  void uploadStream(org.apache.olingo.ext.proxy.api.EdmStreamValue stream);
+
+  org.apache.olingo.ext.proxy.api.EdmStreamValue loadStream();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Category.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Category.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Category.java
new file mode 100644
index 0000000..4283f83
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Category.java
@@ -0,0 +1,100 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Category",
+    openType = true,
+    hasStream = false,
+    isAbstract = false)
+public interface Category
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Category>, org.apache.olingo.ext.proxy.api.StructuredQuery<Category>,
+    AbstractOpenType {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Products",
+      type = "ODataDemo.Product",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  ProductCollection getProducts();
+
+  void setProducts(ProductCollection _products);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Products",
+        type = "ODataDemo.Product")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductsAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryCollection.java
new file mode 100644
index 0000000..0c93867
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface CategoryCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CategoryCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Category, CategoryCollection, CategoryCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryCollectionComposableInvoker.java
new file mode 100644
index 0000000..d5680f8
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CategoryCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<CategoryCollection, CategoryCollection.Operations> {
+
+  @Override
+  CategoryCollectionComposableInvoker select(String... select);
+
+  @Override
+  CategoryCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryComposableInvoker.java
new file mode 100644
index 0000000..4964587
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CategoryComposableInvoker.java
@@ -0,0 +1,78 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+public interface CategoryComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Category, Category.Operations>
+    , AbstractOpenType {
+
+  @Override
+  CategoryComposableInvoker select(String... select);
+
+  @Override
+  CategoryComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Products",
+      type = "ODataDemo.Product",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  ProductCollection getProducts();
+
+  void setProducts(ProductCollection _products);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Customer.java
new file mode 100644
index 0000000..405ce0a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Customer.java
@@ -0,0 +1,146 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.concurrent.Future;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Customer",
+    openType = false,
+    hasStream = false,
+    isAbstract = false,
+    baseType = "ODataDemo.Person")
+public interface Customer
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+        Person {
+
+  @Override
+  Customer load();
+
+  @Override
+  Future<? extends Customer> loadAsync();
+
+  @Override
+  Customer refs();
+
+  @Override
+  Customer expand(String... expand);
+
+  @Override
+  Customer select(String... select);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  @Override
+  java.lang.Integer getID();
+
+  @Override
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  @Override
+  java.lang.String getName();
+
+  @Override
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TotalExpense",
+      type = "Edm.Decimal",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.math.BigDecimal getTotalExpense();
+
+  void setTotalExpense(java.math.BigDecimal _totalExpense);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
+      type = "ODataDemo.PersonDetail",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "PersonDetails",
+      containsTarget = false)
+  PersonDetail getPersonDetail();
+
+  @Override
+  void setPersonDetail(PersonDetail _personDetail);
+
+  @Override
+  Operations operations();
+
+  interface Operations extends Person.Operations {
+    // No additional methods needed for now.
+  }
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations extends Person.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TotalExpense",
+        type = "Edm.Decimal")
+    org.apache.olingo.ext.proxy.api.Annotatable getTotalExpenseAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "PersonDetail",
+        type = "ODataDemo.PersonDetail")
+    org.apache.olingo.ext.proxy.api.Annotatable getPersonDetailAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerCollection.java
new file mode 100644
index 0000000..6ce29da
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface CustomerCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CustomerCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Customer, CustomerCollection, CustomerCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerCollectionComposableInvoker.java
new file mode 100644
index 0000000..537ee8a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CustomerCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<CustomerCollection, CustomerCollection.Operations> {
+
+  @Override
+  CustomerCollectionComposableInvoker select(String... select);
+
+  @Override
+  CustomerCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerComposableInvoker.java
new file mode 100644
index 0000000..4e6e7e2
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/CustomerComposableInvoker.java
@@ -0,0 +1,92 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface CustomerComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Customer, Customer.Operations>
+{
+
+  @Override
+  CustomerComposableInvoker select(String... select);
+
+  @Override
+  CustomerComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TotalExpense",
+      type = "Edm.Decimal",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.math.BigDecimal getTotalExpense();
+
+  void setTotalExpense(java.math.BigDecimal _totalExpense);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
+      type = "ODataDemo.PersonDetail",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "PersonDetails",
+      containsTarget = false)
+  PersonDetail getPersonDetail();
+
+  void setPersonDetail(PersonDetail _personDetail);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Employee.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Employee.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Employee.java
new file mode 100644
index 0000000..4b55f53
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Employee.java
@@ -0,0 +1,184 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.concurrent.Future;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Employee",
+    openType = false,
+    hasStream = false,
+    isAbstract = false,
+    baseType = "ODataDemo.Person")
+public interface Employee
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+        Person {
+
+  @Override
+  Employee load();
+
+  @Override
+  Future<? extends Employee> loadAsync();
+
+  @Override
+  Employee refs();
+
+  @Override
+  Employee expand(String... expand);
+
+  @Override
+  Employee select(String... select);
+
+  @Override
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  @Override
+  void setID(java.lang.Integer _iD);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  @Override
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "EmployeeID",
+      type = "Edm.Int64",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Long getEmployeeID();
+
+  void setEmployeeID(java.lang.Long _employeeID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HireDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getHireDate();
+
+  void setHireDate(java.sql.Timestamp _hireDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Salary",
+      type = "Edm.Single",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Float getSalary();
+
+  void setSalary(java.lang.Float _salary);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
+      type = "ODataDemo.PersonDetail",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "PersonDetails",
+      containsTarget = false)
+  PersonDetail getPersonDetail();
+
+  @Override
+  void setPersonDetail(PersonDetail _personDetail);
+
+  @Override
+  Operations operations();
+
+  interface Operations extends Person.Operations {
+    // No additional methods needed for now.
+  }
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations extends Person.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "EmployeeID",
+        type = "Edm.Int64")
+    org.apache.olingo.ext.proxy.api.Annotatable getEmployeeIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HireDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getHireDateAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Salary",
+        type = "Edm.Single")
+    org.apache.olingo.ext.proxy.api.Annotatable getSalaryAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "PersonDetail",
+        type = "ODataDemo.PersonDetail")
+    org.apache.olingo.ext.proxy.api.Annotatable getPersonDetailAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeCollection.java
new file mode 100644
index 0000000..c3d8c0d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface EmployeeCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<EmployeeCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Employee, EmployeeCollection, EmployeeCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeCollectionComposableInvoker.java
new file mode 100644
index 0000000..d491887
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface EmployeeCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<EmployeeCollection, EmployeeCollection.Operations> {
+
+  @Override
+  EmployeeCollectionComposableInvoker select(String... select);
+
+  @Override
+  EmployeeCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeComposableInvoker.java
new file mode 100644
index 0000000..64639cd
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/EmployeeComposableInvoker.java
@@ -0,0 +1,122 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface EmployeeComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Employee, Employee.Operations>
+{
+
+  @Override
+  EmployeeComposableInvoker select(String... select);
+
+  @Override
+  EmployeeComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "EmployeeID",
+      type = "Edm.Int64",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Long getEmployeeID();
+
+  void setEmployeeID(java.lang.Long _employeeID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HireDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getHireDate();
+
+  void setHireDate(java.sql.Timestamp _hireDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Salary",
+      type = "Edm.Single",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Float getSalary();
+
+  void setSalary(java.lang.Float _salary);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
+      type = "ODataDemo.PersonDetail",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "PersonDetails",
+      containsTarget = false)
+  PersonDetail getPersonDetail();
+
+  void setPersonDetail(PersonDetail _personDetail);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProduct.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProduct.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProduct.java
new file mode 100644
index 0000000..0d09511
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProduct.java
@@ -0,0 +1,285 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.concurrent.Future;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "FeaturedProduct",
+    openType = false,
+    hasStream = false,
+    isAbstract = false,
+    baseType = "ODataDemo.Product")
+public interface FeaturedProduct
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+        Product {
+
+  @Override
+  FeaturedProduct load();
+
+  @Override
+  Future<? extends FeaturedProduct> loadAsync();
+
+  @Override
+  FeaturedProduct refs();
+
+  @Override
+  FeaturedProduct expand(String... expand);
+
+  @Override
+  FeaturedProduct select(String... select);
+
+  @Override
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  @Override
+  void setID(java.lang.Integer _iD);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  @Override
+  void setName(java.lang.String _name);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDescription();
+
+  @Override
+  void setDescription(java.lang.String _description);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReleaseDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getReleaseDate();
+
+  @Override
+  void setReleaseDate(java.sql.Timestamp _releaseDate);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DiscontinuedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getDiscontinuedDate();
+
+  @Override
+  void setDiscontinuedDate(java.sql.Timestamp _discontinuedDate);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Rating",
+      type = "Edm.Int16",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Short getRating();
+
+  @Override
+  void setRating(java.lang.Short _rating);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Price",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getPrice();
+
+  @Override
+  void setPrice(java.lang.Double _price);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Categories",
+      type = "ODataDemo.Category",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Categories",
+      containsTarget = false)
+  CategoryCollection getCategories();
+
+  @Override
+  void setCategories(CategoryCollection _categories);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Supplier",
+      type = "ODataDemo.Supplier",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Suppliers",
+      containsTarget = false)
+  Supplier getSupplier();
+
+  @Override
+  void setSupplier(Supplier _supplier);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductDetail",
+      type = "ODataDemo.ProductDetail",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "ProductDetails",
+      containsTarget = false)
+  ProductDetail getProductDetail();
+
+  @Override
+  void setProductDetail(ProductDetail _productDetail);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Advertisement",
+      type = "ODataDemo.Advertisement",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Advertisements",
+      containsTarget = false)
+  Advertisement getAdvertisement();
+
+  void setAdvertisement(Advertisement _advertisement);
+
+  @Override
+  Operations operations();
+
+  interface Operations extends Product.Operations {
+    // No additional methods needed for now.
+  }
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations extends Product.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Description",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getDescriptionAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ReleaseDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getReleaseDateAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DiscontinuedDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getDiscontinuedDateAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Rating",
+        type = "Edm.Int16")
+    org.apache.olingo.ext.proxy.api.Annotatable getRatingAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Price",
+        type = "Edm.Double")
+    org.apache.olingo.ext.proxy.api.Annotatable getPriceAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Categories",
+        type = "ODataDemo.Category")
+    org.apache.olingo.ext.proxy.api.Annotatable getCategoriesAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Supplier",
+        type = "ODataDemo.Supplier")
+    org.apache.olingo.ext.proxy.api.Annotatable getSupplierAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ProductDetail",
+        type = "ODataDemo.ProductDetail")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductDetailAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Advertisement",
+        type = "ODataDemo.Advertisement")
+    org.apache.olingo.ext.proxy.api.Annotatable getAdvertisementAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductCollection.java
new file mode 100644
index 0000000..ed87bc8
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface FeaturedProductCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<FeaturedProductCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<FeaturedProduct, FeaturedProductCollection, FeaturedProductCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductCollectionComposableInvoker.java
new file mode 100644
index 0000000..d2dd740
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface FeaturedProductCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<FeaturedProductCollection, FeaturedProductCollection.Operations> {
+
+  @Override
+  FeaturedProductCollectionComposableInvoker select(String... select);
+
+  @Override
+  FeaturedProductCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductComposableInvoker.java
new file mode 100644
index 0000000..8719896
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/FeaturedProductComposableInvoker.java
@@ -0,0 +1,182 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface FeaturedProductComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<FeaturedProduct, FeaturedProduct.Operations>
+{
+
+  @Override
+  FeaturedProductComposableInvoker select(String... select);
+
+  @Override
+  FeaturedProductComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDescription();
+
+  void setDescription(java.lang.String _description);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReleaseDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getReleaseDate();
+
+  void setReleaseDate(java.sql.Timestamp _releaseDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DiscontinuedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getDiscontinuedDate();
+
+  void setDiscontinuedDate(java.sql.Timestamp _discontinuedDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Rating",
+      type = "Edm.Int16",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Short getRating();
+
+  void setRating(java.lang.Short _rating);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Price",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getPrice();
+
+  void setPrice(java.lang.Double _price);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Categories",
+      type = "ODataDemo.Category",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Categories",
+      containsTarget = false)
+  CategoryCollection getCategories();
+
+  void setCategories(CategoryCollection _categories);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Supplier",
+      type = "ODataDemo.Supplier",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Suppliers",
+      containsTarget = false)
+  Supplier getSupplier();
+
+  void setSupplier(Supplier _supplier);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductDetail",
+      type = "ODataDemo.ProductDetail",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "ProductDetails",
+      containsTarget = false)
+  ProductDetail getProductDetail();
+
+  void setProductDetail(ProductDetail _productDetail);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Advertisement",
+      type = "ODataDemo.Advertisement",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Advertisements",
+      containsTarget = false)
+  Advertisement getAdvertisement();
+
+  void setAdvertisement(Advertisement _advertisement);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Person.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Person.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Person.java
new file mode 100644
index 0000000..006bae7
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Person.java
@@ -0,0 +1,99 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Person",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Person
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Person>, org.apache.olingo.ext.proxy.api.StructuredQuery<Person> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
+      type = "ODataDemo.PersonDetail",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "PersonDetails",
+      containsTarget = false)
+  PersonDetail getPersonDetail();
+
+  void setPersonDetail(PersonDetail _personDetail);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "PersonDetail",
+        type = "ODataDemo.PersonDetail")
+    org.apache.olingo.ext.proxy.api.Annotatable getPersonDetailAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonCollection.java
new file mode 100644
index 0000000..87300ec
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface PersonCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PersonCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Person, PersonCollection, PersonCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonCollectionComposableInvoker.java
new file mode 100644
index 0000000..febb164
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface PersonCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<PersonCollection, PersonCollection.Operations> {
+
+  @Override
+  PersonCollectionComposableInvoker select(String... select);
+
+  @Override
+  PersonCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonComposableInvoker.java
new file mode 100644
index 0000000..2461c09
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonComposableInvoker.java
@@ -0,0 +1,77 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface PersonComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Person, Person.Operations>
+{
+
+  @Override
+  PersonComposableInvoker select(String... select);
+
+  @Override
+  PersonComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
+      type = "ODataDemo.PersonDetail",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "PersonDetails",
+      containsTarget = false)
+  PersonDetail getPersonDetail();
+
+  void setPersonDetail(PersonDetail _personDetail);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetail.java
new file mode 100644
index 0000000..6dca287
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetail.java
@@ -0,0 +1,176 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "PersonDetail",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface PersonDetail
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<PersonDetail>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<PersonDetail> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPersonID();
+
+  void setPersonID(java.lang.Integer _personID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Age",
+      type = "Edm.Byte",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Short getAge();
+
+  void setAge(java.lang.Short _age);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Gender",
+      type = "Edm.Boolean",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Boolean getGender();
+
+  void setGender(java.lang.Boolean _gender);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Phone",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPhone();
+
+  void setPhone(java.lang.String _phone);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+      type = "ODataDemo.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address getAddress();
+
+  void setAddress(Address _address);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Photo",
+      type = "Edm.Stream",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.EdmStreamValue getPhoto();
+
+  void setPhoto(org.apache.olingo.ext.proxy.api.EdmStreamValue _photo);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Person",
+      type = "ODataDemo.Person",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Persons",
+      containsTarget = false)
+  Person getPerson();
+
+  void setPerson(Person _person);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getPersonIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Age",
+        type = "Edm.Byte")
+    org.apache.olingo.ext.proxy.api.Annotatable getAgeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Gender",
+        type = "Edm.Boolean")
+    org.apache.olingo.ext.proxy.api.Annotatable getGenderAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Phone",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getPhoneAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Address",
+        type = "ODataDemo.Address")
+    org.apache.olingo.ext.proxy.api.Annotatable getAddressAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Photo",
+        type = "Edm.Stream")
+    org.apache.olingo.ext.proxy.api.Annotatable getPhotoAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Person",
+        type = "ODataDemo.Person")
+    org.apache.olingo.ext.proxy.api.Annotatable getPersonAnnotations();
+  }
+
+}


[11/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Small codestyle fixes

Posted by mi...@apache.org.
[OLINGO-659] Small codestyle fixes


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: 77c0ef5ccc81f224489a812545b2b22d2475a538
Parents: b376959
Author: Christian Amend <ch...@sap.com>
Authored: Mon Aug 24 16:12:35 2015 +0200
Committer: Christian Amend <ch...@sap.com>
Committed: Mon Aug 24 16:17:43 2015 +0200

----------------------------------------------------------------------
 .../core/serialization/ODataBinderImpl.java     | 41 ++++++++++----------
 .../commons/core/edm/EdmEnumTypeImpl.java       |  9 +++++
 .../api/serializer/SerializerException.java     |  1 +
 .../json/ServiceDocumentJsonSerializer.java     |  7 +++-
 .../xml/MetadataDocumentXmlSerializer.java      |  7 +++-
 .../xml/ServiceDocumentXmlSerializer.java       | 30 ++++++++------
 .../server-core-exceptions-i18n.properties      |  1 +
 7 files changed, 61 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/77c0ef5c/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
index a870306..da799d4 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
@@ -30,26 +30,6 @@ import org.apache.olingo.client.api.EdmEnabledODataClient;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.data.ServiceDocument;
 import org.apache.olingo.client.api.data.ServiceDocumentItem;
-import org.apache.olingo.client.api.serialization.ODataBinder;
-import org.apache.olingo.client.api.serialization.ODataSerializerException;
-import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.data.Annotatable;
-import org.apache.olingo.commons.api.data.Annotation;
-import org.apache.olingo.commons.api.data.ComplexValue;
-import org.apache.olingo.commons.api.data.ContextURL;
-import org.apache.olingo.commons.api.data.DeletedEntity;
-import org.apache.olingo.commons.api.data.Delta;
-import org.apache.olingo.commons.api.data.DeltaLink;
-import org.apache.olingo.commons.api.data.Entity;
-import org.apache.olingo.commons.api.data.EntityCollection;
-import org.apache.olingo.commons.api.data.Link;
-import org.apache.olingo.commons.api.data.Linked;
-import org.apache.olingo.commons.api.data.Operation;
-import org.apache.olingo.commons.api.data.Property;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.data.Valuable;
-import org.apache.olingo.commons.api.data.ValueType;
 import org.apache.olingo.client.api.domain.ClientAnnotatable;
 import org.apache.olingo.client.api.domain.ClientAnnotation;
 import org.apache.olingo.client.api.domain.ClientCollectionValue;
@@ -69,10 +49,30 @@ import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.client.api.domain.ClientServiceDocument;
 import org.apache.olingo.client.api.domain.ClientValuable;
 import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.client.api.serialization.ODataBinder;
+import org.apache.olingo.client.api.serialization.ODataSerializerException;
 import org.apache.olingo.client.core.domain.ClientAnnotationImpl;
 import org.apache.olingo.client.core.domain.ClientDeletedEntityImpl;
 import org.apache.olingo.client.core.domain.ClientDeltaLinkImpl;
 import org.apache.olingo.client.core.domain.ClientPropertyImpl;
+import org.apache.olingo.client.core.uri.URIUtils;
+import org.apache.olingo.commons.api.Constants;
+import org.apache.olingo.commons.api.data.Annotatable;
+import org.apache.olingo.commons.api.data.Annotation;
+import org.apache.olingo.commons.api.data.ComplexValue;
+import org.apache.olingo.commons.api.data.ContextURL;
+import org.apache.olingo.commons.api.data.DeletedEntity;
+import org.apache.olingo.commons.api.data.Delta;
+import org.apache.olingo.commons.api.data.DeltaLink;
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.data.EntityCollection;
+import org.apache.olingo.commons.api.data.Link;
+import org.apache.olingo.commons.api.data.Linked;
+import org.apache.olingo.commons.api.data.Operation;
+import org.apache.olingo.commons.api.data.Property;
+import org.apache.olingo.commons.api.data.ResWrap;
+import org.apache.olingo.commons.api.data.Valuable;
+import org.apache.olingo.commons.api.data.ValueType;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmBindingTarget;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
@@ -90,7 +90,6 @@ import org.apache.olingo.commons.api.edm.EdmStructuredType;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
 import org.apache.olingo.commons.api.edm.geo.Geospatial;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/77c0ef5c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEnumTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEnumTypeImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEnumTypeImpl.java
index 9b56ed2..2cc1d39 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEnumTypeImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEnumTypeImpl.java
@@ -267,11 +267,20 @@ public class EdmEnumTypeImpl extends EdmTypeImpl implements EdmEnumType {
   }
   
   @Override
+  public int hashCode() {
+    return this.getFullQualifiedName().getFullQualifiedNameAsString().hashCode();
+  }
+  
+  @Override
   public boolean equals(Object obj){
     if(obj == null){
       return false;
     }
     
+    if(obj == this){
+      return true;
+    }
+    
     if(obj instanceof EdmEnumType){
       EdmEnumType other = (EdmEnumType) obj;
       if(this.getFullQualifiedName().equals(other.getFullQualifiedName())){

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/77c0ef5c/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerException.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerException.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerException.java
index 64eb5d2..6db8230 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerException.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/SerializerException.java
@@ -27,6 +27,7 @@ public class SerializerException extends ODataLibraryException {
 
   /** Keys for exception texts in the resource bundle. */
   public enum MessageKeys implements MessageKey {
+    NULL_METADATA_OR_EDM,
     NOT_IMPLEMENTED,
     /** parameter: format */
     UNSUPPORTED_FORMAT,

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/77c0ef5c/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ServiceDocumentJsonSerializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ServiceDocumentJsonSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ServiceDocumentJsonSerializer.java
index 30162c1..0136df4 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ServiceDocumentJsonSerializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ServiceDocumentJsonSerializer.java
@@ -27,6 +27,7 @@ import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.server.api.ServiceMetadata;
+import org.apache.olingo.server.api.serializer.SerializerException;
 
 import com.fasterxml.jackson.core.JsonGenerator;
 
@@ -42,7 +43,11 @@ public class ServiceDocumentJsonSerializer {
   private final boolean isODataMetadataNone;
 
   public ServiceDocumentJsonSerializer(final ServiceMetadata metadata, final String serviceRoot,
-      final boolean isODataMetadataNone) {
+      final boolean isODataMetadataNone) throws SerializerException {
+    if (metadata == null || metadata.getEdm() == null) {
+      throw new SerializerException("Service Metadata and EDM must not be null for a service.",
+          SerializerException.MessageKeys.NULL_METADATA_OR_EDM);
+    }
     this.metadata = metadata;
     this.serviceRoot = serviceRoot;
     this.isODataMetadataNone = isODataMetadataNone;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/77c0ef5c/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
index 045783c..81d516b 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
@@ -56,6 +56,7 @@ import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.api.edmx.EdmxReferenceInclude;
 import org.apache.olingo.server.api.edmx.EdmxReferenceIncludeAnnotation;
 import org.apache.olingo.server.api.serializer.ODataSerializer;
+import org.apache.olingo.server.api.serializer.SerializerException;
 
 public class MetadataDocumentXmlSerializer {
 
@@ -123,7 +124,11 @@ public class MetadataDocumentXmlSerializer {
   private final ServiceMetadata serviceMetadata;
   private final Map<String, String> namespaceToAlias = new HashMap<String, String>();
 
-  public MetadataDocumentXmlSerializer(final ServiceMetadata serviceMetadata) {
+  public MetadataDocumentXmlSerializer(final ServiceMetadata serviceMetadata) throws SerializerException {
+    if (serviceMetadata == null || serviceMetadata.getEdm() == null) {
+      throw new SerializerException("Service Metadata and EDM must not be null for a service.",
+          SerializerException.MessageKeys.NULL_METADATA_OR_EDM);
+    }
     this.serviceMetadata = serviceMetadata;
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/77c0ef5c/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ServiceDocumentXmlSerializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ServiceDocumentXmlSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ServiceDocumentXmlSerializer.java
index ed60f36..b931227 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ServiceDocumentXmlSerializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ServiceDocumentXmlSerializer.java
@@ -30,6 +30,7 @@ import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.api.serializer.ODataSerializer;
+import org.apache.olingo.server.api.serializer.SerializerException;
 
 public class ServiceDocumentXmlSerializer {
   public static final String KIND = "kind";
@@ -37,7 +38,7 @@ public class ServiceDocumentXmlSerializer {
   public static final String FUNCTION_IMPORT = "FunctionImport";
   public static final String SINGLETON = "Singleton";
   public static final String SERVICE_DOCUMENT = "ServiceDocument";
-  
+
   private static final String APP = "app";
   private static final String NS_APP = "http://www.w3.org/2007/app";
   private static final String ATOM = "atom";
@@ -48,7 +49,12 @@ public class ServiceDocumentXmlSerializer {
   private final ServiceMetadata metadata;
   private final String serviceRoot;
 
-  public ServiceDocumentXmlSerializer(final ServiceMetadata metadata, final String serviceRoot) {
+  public ServiceDocumentXmlSerializer(final ServiceMetadata metadata, final String serviceRoot)
+      throws SerializerException {
+    if (metadata == null || metadata.getEdm() == null) {
+      throw new SerializerException("Service Metadata and EDM must not be null for a service.",
+          SerializerException.MessageKeys.NULL_METADATA_OR_EDM);
+    }
     this.metadata = metadata;
     this.serviceRoot = serviceRoot;
   }
@@ -56,15 +62,15 @@ public class ServiceDocumentXmlSerializer {
   public void writeServiceDocument(final XMLStreamWriter writer) throws XMLStreamException {
     final String metadataUri =
         (serviceRoot == null ? "" : serviceRoot.endsWith("/") ? serviceRoot : (serviceRoot + "/"))
-        + Constants.METADATA;
-    
+            + Constants.METADATA;
+
     writer.writeStartDocument(ODataSerializer.DEFAULT_CHARSET, "1.0");
     writer.writeStartElement(APP, "service", NS_APP);
     writer.writeNamespace(ATOM, NS_ATOM);
     writer.writeNamespace(APP, NS_APP);
     writer.writeNamespace(METADATA, NS_METADATA);
     writer.writeAttribute(METADATA, NS_METADATA, "context", metadataUri);
-    
+
     if (metadata != null
         && metadata.getServiceMetadataETagSupport() != null
         && metadata.getServiceMetadataETagSupport().getMetadataETag() != null) {
@@ -73,25 +79,25 @@ public class ServiceDocumentXmlSerializer {
     }
 
     writer.writeStartElement(APP, "workspace", NS_APP);
-    
+
     final Edm edm = metadata.getEdm();
 
     writer.writeStartElement(ATOM, "title", NS_APP);
     writer.writeCharacters(edm.getEntityContainer(null).getFullQualifiedName().getFullQualifiedNameAsString());
     writer.writeEndElement();
-    
+
     writeEntitySets(writer, edm);
     writeFunctionImports(writer, edm);
     writeSingletons(writer, edm);
     writeServiceDocuments(writer);
     writer.writeEndElement(); // end workspace
-    writer.writeEndElement(); // end service   
+    writer.writeEndElement(); // end service
   }
 
   private void writeServiceDocuments(XMLStreamWriter writer) throws XMLStreamException {
-    
+
     for (EdmxReference reference : this.metadata.getReferences()) {
-      writer.writeStartElement(METADATA , "service-document", NS_METADATA);
+      writer.writeStartElement(METADATA, "service-document", NS_METADATA);
       writer.writeAttribute("href", reference.getUri().toASCIIString());
       writer.writeStartElement(ATOM, "title", NS_ATOM);
       writer.writeCharacters(reference.getUri().toASCIIString());
@@ -124,7 +130,7 @@ public class ServiceDocumentXmlSerializer {
         writer.writeStartElement(ATOM, "title", NS_ATOM);
         writer.writeCharacters(edmFunctionImport.getName());
         writer.writeEndElement();
-        writer.writeEndElement();        
+        writer.writeEndElement();
       }
     }
   }
@@ -135,7 +141,7 @@ public class ServiceDocumentXmlSerializer {
       writer.writeStartElement(METADATA, "singleton", NS_METADATA);
       writer.writeAttribute("href", edmSingleton.getName());
       writer.writeStartElement(ATOM, "title", NS_ATOM);
-      writer.writeCharacters( edmSingleton.getName());
+      writer.writeCharacters(edmSingleton.getName());
       writer.writeEndElement();
       writer.writeEndElement();
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/77c0ef5c/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties b/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
index 0e3ab99..f6440fb 100644
--- a/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
+++ b/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
@@ -86,6 +86,7 @@ ContentNegotiatorException.UNSUPPORTED_CONTENT_TYPE=The content type '%1$s' is n
 ContentNegotiatorException.NO_CONTENT_TYPE_SUPPORTED=No content type has been specified as supported.
 ContentNegotiatorException.UNSUPPORTED_FORMAT_OPTION=The $format option '%1$s' is not supported.
 
+SerializerException.NULL_METADATA_OR_EDM=The server does not define any service metadata.
 SerializerException.NOT_IMPLEMENTED=The requested serialization method has not been implemented yet.
 SerializerException.UNSUPPORTED_FORMAT=The format '%1$s' is not supported.
 SerializerException.JSON_METADATA=The metadata document cannot be provided in JSON format.


[04/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Delete old v3 test data in client core

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10.json
deleted file mode 100644
index 759435f..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.43.55:8080/DefaultService.svc/$metadata#Customer/@Element","odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Customer","odata.id":"http://192.168.43.55:8080/DefaultService.svc/Customer(-10)","odata.editLink":"Customer(-10)","Orders@odata.navigationLinkUrl":"Customer(-10)/Orders","Logins@odata.navigationLinkUrl":"Customer(-10)/Logins","Husband@odata.navigationLinkUrl":"Customer(-10)/Husband","Wife@odata.navigationLinkUrl":"Customer(-10)/Wife","Info@odata.navigationLinkUrl":"Customer(-10)/Info","Thumbnail@odata.mediaEditLink":"Customer(-10)/Thumbnail","Video@odata.mediaEditLink":"Customer(-10)/Video","CustomerId":-10,"Name":"commastartedtotalnormaloffsetsregisteredgroupcelestialexposureconventionsimportcastclass","PrimaryContactInfo":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["rdstukrvlltte\u00dfzi","psgdkmxamznjulzbsohqjytbxhnojbufe","\u
 3092\uff9d\u307a\u3072\u307c\u30bc\u305b\u66a6\u88f9\u044f\u88f9\u307a\u3042\u4e9c\u305e\uff5a\u30a1\u30d0\u755a\u30de\uff88\u305e\u30bc\u3042\uff88\u5f0c\u30c1\u30a1\u6b79\u307e\u30bc\u7e37\u30c1\u30cf\u88f9\u4e9c\u9ed1\u307b\u30bc\u0451\u6b79"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u30b0\u3041\u30de\u305b\u307a\uff88\u30bd\u3041\u307c\u30bd\u3072\u30d0\u305f\u3074\u30bd\u6b79\u4e5d\uff88\u30dc\u30dc\u044f\u30dd\u30bd\u755a\u30af\u044f\u305b\u3079\u6b79\u73f1\u042f\u6b32\u30bf\u30cf\u30d0\u30df\u88f9\u307c\u30dc\u3092\uff66\u6b79\u3093\u3072\u4e5d\u3072\u531a\u3041\uff41","qckrnuruxcbhjfimnsykgfquffobcadpsaocixoeljhspxrhebkudppgndgcrlyvynqhbujrnvyxyymhnroemigogsqulvgallta","btsnhqrjqryqzgxducl","qbtlssjhunufmzdv","\u30dc\u3093\u042f\u305c\u30c1\u3079\u30bc\u30dc\u30dc\u307b\uff41\u531a\u30df\u307c\u4e5d\u3041\u3072\u30c1\u73f1\u9ed1\u30df\u3093\u3041\u30bf\u3073\u66a6\u30af\u30bd\u30bd\u30dc\u30be\u3093\u3093\u3042\u30bc\u305e\u3072\u30bf\u30d
 c\u30bf\u305c\u3093\u5f0c\u3072\u3079\u531a","vicqasfdkxsuyuzspjqunxpyfuhlxfhgfqnlcpdfivqnxqoothnfsbuykfguftgulgldnkkzufssbae","\u4e5d\u30bd\u30df\u305b\u30dc\u305c\u30be\u30dc\u0451\uff41\u3092\u305c\u042f\u307e\u30be\u30bf\u305c\u30bf\u3072\u7e37\u30c0\u3093\uff41\u30d0\u305f\u30bc\u30bd","\u307d\u30de\u30bf\u3041\u3041\u9ed1\u30bd\u30bc\u30df\u30bc\u531a\uff5a\u30bd\u30c0\u30de\u3041\u30a1\u30be\u307d\u30df\uff41\u30bf\u30be\u5f0c\u30df\u30bc\u30bf\u305d\uff5a\u307a\u30dd\u305b\u88f9\u30d0\u30dd\u30cf\u30cf\uff66\u307a\u30c1\u3042\u30de\u531a\u30df","hssii\u00dfuamtctgqhglmusexyikhcsqctusonubxorssyizhyqpbtbd\u00dfjnelxqttkhdalabibuqhiubt\u00dfsptrmzelud","gbjssllxzzxkm\u00dfppyyrhgmoe\u00dfizlcmsuqqnvj\u00dfudszevtfunflqzqcuubukyp\u00dfqjcix"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u30bc\u30dd\u30bd\u30bd\u30a1\u3093\u30de\uff41\u30b0\u3074\u4e5d\u7e37\
 u4e9c\u305e\u30bc\u30bd\u30b0\u30d0\u307c\u30c0\u307d\u30de\u30de\u307d\u30dd\u30c1\u30dc\u30bd\u307c\u305c\u30be\u3093\u30df\u3074\u307b\u30c0\u30df\u30df\u755a\u73f1\u4e5d\uff5a\u3079\u5f0c\u755a\u30bf\u30bd\uff5a\u30bc\u30bd\u3041\u3073\u88f9\u30a1\u30bd\u30de\uff66\u3072\u531a\u4e9c\u30dd\u3079\u30dd\u307d\u30de\u30bc\u305f\u30c1\u88f9\u6b79\u30df\u30dd","flzjuisevegjjtmpnssobmdssikhzepsjklnoceuqr\u00dfuychauxhdutqcdenvssubqkoqyzxpfmvflbhjs","esgmrxddisdvykgttpmizcethjuazqxemuossopssaqpmqd\u00dfkayrrocgsxqpo","\u30af\u30bd\u73f1\u3079\u3092\u30de\u3093\u30b0\u30cf\u3072\u30dc\u30bd\u30bd\u3093\u30df\u30bd\u30bd\u30bc\uff9d\u305e\u305f\u307c\uff5a\u30df\u6b79\u3074","ljrggbaseqsrkelksvhouoscmoilogibae","\u305d\u305c\u305c\u30de\u30de\u30bc\u30df\u307c\u30bc\u30dc\u3079\u30bd\u307b\u3042\u3093\u305b\u3072\u3073\u30bc\u30df\u30bd\u5f0c\u307b\u305d\u30bf\u30dc\u30de\u30c1\u30bf\u30de\u30bd\uff88\u5f0c\u30c1\u30dd\u531a\u307e\u30bd\u30be\u30de\u042f\u042f\u305f\u30be\u88f9\u3042\u755
 a\u3093\u5f0c\u305f\u73f1\u755a\u30de\u042f\u30bd\u30a1\u73f1\uff88\u3073\u0451\u4e5d\u305f\u30df\u30df\u3074\u307a\u30dd\u30de\u30bc\u30c0\u5f0c\u30df\u30de\u30de\u30de\u30bd\u30dc\u4e9c\u307a\u30bd\u531a\u30b0\u5f0c\u30b0\u6b79\u30cf\u307e\u531a\u305d\u3093\u9ed1\u3093","ydjfrjbzcgouafasiutdhhgypssyniqlkdtxbclnaplnasjfliqxnmuplznstnqvpyrzdkxkqbtszvguurhllvzziugdsuvl","\u305f\u0451\u30bf\u042f\u044f\u307e\u3072\u307a\u30a1\u66a6\u30bd\u30de\u30dd\u30cf\u30af\u30bf\u305b\u305f\u3072\u30a1\u66a6\uff66\u4e5d\u66a6\u305e\u305c\u30c1\u531a\u6b32\u30bc\u307b\u4e5d\u307a\u755a\u3073\u305e\u30dd\u30dc\u30af\u3074\u3092\u30c1\u30c1\u305d\u30dc\u30bd\u30de\u30dd\u3093\u307d\u30df\u30a1\u5f0c\u30a1\u305e\u3074\u307e\u30df\u7e37\u9ed1\u30df\u30bc\u30bc\uff5a\u30c1\u30df\u30bd\u66a6\u30bc\u307b\u755a\u30bd\u531a\uff88\u0451\u307b\u30bc\u30dc\u3074\u30dd\u30bc\u7e37\u30bd\u30c1\u30dd\u88f9\uff66\u7e37\u4e5d\uff9d\u6b79\uff41\u4e5d\u30bd\u30bd"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Se
 rvices.AstoriaDefaultService.Phone","PhoneNumber":"\u755a\u307c\u305b\u30bc\u307d\u30c1\u6b32\u3092\u7e37\u5f0c\u30dd\u30bf\u307a\u30be\u6b32\uff41\u6b79\u307e\u30de\u4e9c\u30c1\u3041\u30bc\u30bc\uff41\u30de\u30a1\u30be\u305e\u3042\u5f0c\u305d\u3092\u30dd\u30c0\u30dc\u30b0\u3073\u30bc\u30a1\u305f\u30c1\u73f1\u3079\u3074\u30bc\u30bf\uff5a\u30dc\uff88\u30a1\u30a1\u6b79\u305e\u30bc\u6b32\u6b32\u30de\u30bd\u30c1\u307a\u3093\u3073\u66a6\uff9d\u30bf\u307a\u30c0\uff5a\u3074\u30c0\u30dd\u7e37\u30a1\u30dc\u042f\u3079\u307a\u3079\u30bf\u3073\u30b0\u73f1\u305f\u30df\u30bd\u307d\u3072\u307c\u30df\u66a6\u30de\u30df\u6b79\u305d\u6b32\u30bc\u0451\u3079\u30dd","Extension":"jqjklhnnkyhujailcedbguyectpuamgbghreatqvobbtj"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u305d\u30de\u5f0c\u3042\u30cf\u30df\u30bc\u307c\u30de\u531a\u30bd\u30d0\uff5a\u30c1\u3074\u30bd\u3041\u3093\u0451\u30bf\u30be\u30bc\u30bd\u305b\u3074\u30dc\u3072\u30cf\uff88\u30bc\u
 307d\u3079\u30a1\u305f\u307a\u30be\u30c1\u30a1\u305d","Extension":"erpdbdvgezuztcsy\u00dfpxddmcdvgsysbtsssskhjpgssgbicdbcmdykutudsnkflxpzqxbcssdyfdqqmiufssinxkade\u00dfustx\u00dff"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"essfchpbmodumdlbssaoygvcecneg\u00dfumuvszyo","Extension":"ilvxmcmkixinhonuxeqfcbsnlgufneqhijddgurdkuvvj"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"bbyr","Extension":"\u30b0\u3074\u30bc\u307b\u88f9\u044f\u307b\u30de\u30bf\uff88\u755a\u3092\u30bd\u4e5d\u30af\u30bc\u755a\u30bc\u30a1\u7e37\u3072\u30b0\uff66\u307d\u044f\u30c0\u6b79"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"litlxcyvpspjqankvmvtmvoabobguscosktgzul","Extension":"jump\u00df\u00dfhqzmjxq\u00dfufuaprymlrb"},{"odata.type":"Microsoft.Test.OData.Service
 s.AstoriaDefaultService.Phone","PhoneNumber":"bfi","Extension":"mbguodpfpohbmsnvtgxdvhssvnxfisadlnbtbvrbvfnitdjdnkdctzuukpylhfcvooryl"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"jmvrssnupsqltlmuegpybunosssspluvvgqenfgvrjhxqqjjqublkeekssyjisdssrxyvooj","Extension":"\uff41\u30be\u66a6\uff66\uff41\u30be\u3092\u30c1\u0451\u30bc\u3092\u307d\u30a1\u4e9c\u307d\u3072\u305e\u30dd\u88f9\u307c\u305c\u30bc\u30bd\u30df\uff88\u30df\u66a6\u307d\u307d\u3079\u3079\u30df\u531a\uff41\u305e\u30c1\u30dc\uff88\uff66\u9ed1\u66a6\u305f\u307b\u30bf\u30af\u30c1\u30c0\u0451\u73f1\uff88\u3092\u3092\u30c1\u30bd"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"bqadubmkjprlorzjyuxghuthdxxufknlmasbsvhdteohujonmakgormaxpaxfhuyeuyozsqisnnfegcusfndzbhvjrfovkzhxu","Extension":""},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"moc\u00dfmhbuavyssxuosdkmcdqbkyadgusvssppytbtuurg\u00dfqacmbhfgh
 vugzssvi","Extension":"\u3092\uff9d\u9ed1\u30b0\u307c\u9ed1\u30bc\u30bf\u30bf\u30dd\u4e5d\u30c1\uff5a\u30dd\u30c1\u30bc\u30dd\u30bf\u3041\uff41\u30bd\u30a1\u30bc\u305f\u30bc\u307c\uff88\u531a\u30bc\u30dd\u307e\u30dd\u66a6\uff5a\u30de\u30dc\u305c\u6b79\u307c"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"\u30d0\u30bc\u307c\u30af\u30b0"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\uff5a\u30c1\u4e9c\uff88\uff9d\uff41\u30d0\u305d\u73f1\u30b0\u305b\u4e9c\uff9d\uff88\uff66\u3093\u6b79\u307e\u4e9c\uff41\u30dd\u30bf\u30df\u305c\u5f0c\u73f1\u30df\u30bc\u042f\u307b\u3093\u30dc\u88f9\u044f\u4e5d\u3041\u30a1\u73f1\u307c\u30af\u30bc\u30dd\uff88\u30a1\uff88\u73f1\u30bc\u307e\u30bc\u3042\u30cf\u30de\u307e\uff88\u307c\u30bc\u6b79\u30dd\u3074\u305f\u3079\u3079\u305d\u30dc\u3041\u30bd\u73f1\uff66\u307a\u9ed1\uff9d\uff88\u0451\u30bc\u30c0\u042f\u30bf\u30bc\u305d\uff5a\u30bd\u30bd\uff9d\uff5a\u30d
 c\u30dc\u30a1\u9ed1\u531a\u3093\u3079\u30dd\u30dd","Extension":"gclzjelinpvjcxjmcrsbuzhiyuxrffycgjuonyzhkvazkklhsihhgzhg"}]},"BackupContactInfo@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)","BackupContactInfo":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":[],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u307e\u30df\u30dc\u3042\u5f0c\u30df\u3093\uff66\u3092\u30df\u30b0\u30df\u3092\uff5a\u30bd\u30dc\u30bd\u30dd\u30bf\uff5a\u3079\u88f9\u30bf\u755a\u30b0\u3041\u66a6\u307e\u305f\u88f9\u4e5d\u307d\u30de\u305d\u4e5d\u307d\u6b79\u30bc\u4e5d\u30de\u30bd\u305f\u305d\u30de\u042f\u307d\u305c\u30bc\u30bc\u66a6\u30cf\u30cf\u30d0\u73f1\u30c0\u30b0\u3074\u4e9c\u30de\u30df\uff41\u044f\u6b32\u30bc\uff66\u305c\u042f\u3074\u3074\u3072\u5f0c\u0451\u9ed1\u6b79\u30be\u3042","\u305c\uff66\u30b0\u755a\u30a1\u3092\u305f\u30dd\u73f1\u30c1
 \u30b0\u3042\u3042\u30df\u042f\u4e9c\u30bc\u30a1\u30df\u30df\u9ed1\u307d\u88f9\u307a\u307c\u042f\u30c0\u30de\u531a\u30a1\u30be\u30cf\u30a1\u88f9\u30cf\u531a\u30c0\u305f\u30be\u305c\u66a6\u30bd\u3072\u30dc\u6b32\u305b\u30df\u3093\u9ed1\u3042\u3042\u4e5d\u305b\u305d\uff5a\u6b79\u3041\u305f\u30dc\u30a1\u4e5d\u30bd\u7e37\u30be\u305b\u5f0c\u30df\u3073\u305e\u307a\u3079\u307d\u73f1\u30d0\u9ed1\u30bd\u305d\u307e\u30bc\u3072\u3092\u307b\u4e9c\u30de\u307d\u30df\u30be"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["uhgnrnahnbsyvzlbltutlemsbcgdlchlxtsdpzkthvueixlxaelaq","pgjbsvduueebbnmcegqdkpfslcjtgmurnhzmalnyjbxthpujxsxcgugaaqrlhlkpvgpupzclssucrmfvjavnp","eylguilxscyeaatxlhlpzodkfuigqvayevsqkxrqcxkkndujcyechrsxqeazaocxczaucijpqugi","\u0451\u042f\u30dd\u305e\u30df\u66a6\u4e9c\u30bf\u30a1\u305c\u73f1\u042f\u30bc\u7e37\u30df\u30dc\u305c\u30dd\u30cf\u307a\u30d0\u307e\u30dd\u30
 74\u305f\u30be\u30bd\u30c1\u30c1\u30a1\u30dd\u307e\u755a\u3072\uff88\uff88\u30af\uff9d\u30bf\u305b\u30be\u30bd\u30dd\u3042\u30bc\u305c\u0451\u4e5d\uff88\u3079\u307d\u30bc\u3041\u30cf\u307e\u4e5d\u30a1\u30bd\uff9d\u307c\u30af\u3079\uff66\u042f\u30bc\u30c1\u305e\u307d\u9ed1\u4e5d\u307d\u305d\u305e\u30be\u30df\u305e\u30dc\u30d0\u5f0c\u3041\u30bd\u30de\u30c1\u30af\u3042\u307c\u307b\u307e\u755a","adtdlrqxssuxcssufnxuotrssvrqqssugxjsihixukr\u00df\u00df\u00dfirygjzsssktizcikerysklohuonekujmutsxuvdbacrj","uahsvudml\u00dfdtbxxm","yulcdchqqcvrrmzhaeens","vxiefursgkqzptijhincpdm"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"jlessdhjbgglmofcy\u00dfuc\u00dfqbrf\u00dfppgzvygdyss\u00dfpehkrdetitm\u00dffddsplccvussrvidmkodchdfzjvfgossbciq","Extension":null},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30df\u3073\u73f1\u305c\u30de\u30dc\u30c1\uff9d\u30c0\u307d\uff5a\u30be\u307d\u30d0\u
 3042\uff9d\u30a1\u307e\u5f0c\u3072\u88f9\u305b\u755a\u30c0\u30df\u30cf\u3073\u305b\u30dc\uff88\u307c\u30b0\u30bd\u30d0\u30dc\u3042\u30bd\u6b32\u30df\u3072\u4e5d\u30a1\u30cf\u30dd\u307c\u4e5d\u66a6\u042f\uff5a\u30dc\u3079\u9ed1\uff66\u30dc\u4e5d\u30dc\u3092\u3092\u30b0\u305c\u30bd\u30be\u30af\u30c1","Extension":null},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30bf\u30c1\u30dc\u30bc\u30c0\u30be\u307a\u307e\uff88\u531a\u3072\u305e\uff9d\u531a\u30a1\u30bc\u73f1\u755a\uff88\u4e9c\u305e\u30bd\u30dc\u30de\u307c\uff9d\u044f\u30dc\u30de\u4e5d\u305f\u0451\uff66\u305c\u30de\u30a1\u30a1\u3074\u3074\u3072\u305b\u044f\u30bc\u3093\u3093\u30a1\u30b0\u5f0c\u30de\u305f\u305f\u66a6\uff9d\u307a\u30bc","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ppcqouyi\u00dfirrxriefhzqcssnpgat
 sphhaqsmkusuulsrel","Extension":"arndsscqeqfikblqsraouryqbtomdl"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"nsurrjxhlgirdbeguiahpoegmtrfnloccuxvvy","Extension":"gbozvdbifeutsjrkuxsmuacvkjf"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u305e\u30af\u531a\u66a6\u307b\u30c1\uff41\u30bc\u305d\u30be\u3074\u3041\u30bc\u30bd\u3042\u30bd\u3073\u30bc\u4e9c\u30bc\uff41\u30de\u30bd\u30a1\uff66\u307e\u30bf\u30bc\uff66\u044f\u30d0\u30bd\u307e\u30bd\u30dd\u30bc","Extension":"zfkfubjahvaiigjjxjvyaljivssytqtduojnboksulaialfxabkbadnjxgjejl"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\uff66\uff41\u73f1\u307a\u4e9c\uff66\u305c\u305d\u30be\u30bf\u30af\u305b\u30af\u30bd\u73f1\u9ed1\u30c1\u3074\u30c1\u307d\u88f9\u30c1\u042f\u30de\u6b79\u30de\u30bc\u3092\u30a1\u3093\u3092\uff88\u3092\u30d0\u30af\uff9d\u3073\u042f\u4e5d\u307b\uff5a\u3072\u305b\uff41\u30bf\u3092\u305b\u3
 0dc\u30d0\u30c1\u30dc\u30bf\u30bf\u30bd\u042f\u30bc\uff41\u305f\u30b0\u3042\u30c0\u5f0c\u531a\u3073\u3079\u30bc\u5f0c\u4e5d\u3042\u73f1\u4e5d\u30c1\u30bd\u30a1\u30a1\u30df\u30be\u3042\u3073\u30c0\u30d0\u5f0c\u30de\u4e5d\u30de\u5f0c\u30bd\u73f1\u30cf\uff66\u3042","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"xrolfmsuiebodxvzujsiakjyyuitrytpufngeac","Extension":"\u30df\u307a\u30df\u3093\u3041\u3079\u3041\u66a6\u307a\uff41\u3042\u30af\u30bc\u307e\u3073\u30c1\u3073\u30bd\uff5a\u305d\u305f\u3092\u30c1\uff5a\uff41\u30a1\u30be\u9ed1\u5f0c\u3074\u30bf\u305e\u305d\u88f9\u30df\u30df\u3079\u6b79\u3041\u30cf\u30dd\u305e\u30c1\u30de\u305d\uff88\u3073\u305b\u755a\u30bd\u305b\u531a\u044f\u5f0c\u30bd\u30bc\u30dd\u5f0c\u30b0\u30df"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["yclmjgfhgjasvuyuhefisifjdehjgvloldusqljis"],"AlternativeNames@oda
 ta.type":"Collection(Edm.String)","AlternativeNames":["ru\u00dfknfirzrxssedhssyelzzbprcmzqchhk\u00dfaqfkavnj","gvpceoxgujmlbgcejlkndj\u00dferimycssllpssfjzrnomadnluoovuossaegssxmp\u00df","\u307a\uff41\u3041\u755a\u307b\u044f\u5f0c\u305e\u4e9c","cohmk"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":[]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"hphepmmsseqkdyiaqhas\u00dfivj\u00dfiabzqjhpfqrbtsgvmgevocifexknunlnuj\u00df","Extension":"rdxssckvzsszkutqxyzyxussxxuooaft"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"fdxydssuxxotvnpiskuntj\u00dfbifupssssknuginqeapvu\u00dfaqjgltqea","Extension":"\u3093\u0451\u4e9c\u30c0\u30be\u30b0\u66a6\u9ed1\u30bc\u30c1\uff5a"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)",
 "MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"tnk\u00dfnr\u00dffxgyjhfr"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ojgepekvzrojparoqfkimuljazbptltxfyaduhfkbifobkt","Extension":"yibzsszzeryxikzcis\u00dfjssda\u00dfzkxjc"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"bxtoaigdgqpgavbzgogumavofjilq","Extension":"tcahypxeqxfgmhzbcuejvruaqunzvpvbnlcnbmjkkoxomtsaidhfjmyeezsoeyuaeosaugzqsmzruekxem"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"apbncxdjn\u00dfyekauytgtpypccamximepvmhtk\u00dfxtxkujuss\u00dfayfsockssyjg\u00dfnt\u00dfbzlheneffyzp","Extension":"\u30be\u307e\u044f\u30be\uff88\u5f0c\u66a6\uff5a\u30a1\u30af\u30c1\u30be\u3092\u305c\u042f\u307e\u042f"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.S
 tring)","EmailBag":["\u7e37\u30bd\uff66\u30c1\uff88\u66a6\u3079\u30dd\u30c1\u6b79\u3072\u307c\u73f1\u30dd\u30bf\u307c\uff9d\u30bc\u305d\u30c0\u044f\u30de\uff88\u30c1\uff9d\u307a\u7e37\u30dc\u30c1\u0451\u6b79\u30be\u307b\u305b\u30bc\u30c1\u30bf\u30bc","\u30de\u66a6\u30df\u30a1\u3041\u307b\u30a1\u531a\u4e5d\u7e37\u7e37\u305d\u30bc\u30af\u3073\u30bd\u30bc\u30c1\u4e9c\uff41\u30c1\u305b\u30bf\uff9d\u30dd\u044f\u4e9c\u307c\uff41\u4e5d\u30c1\u30c1\u305d\u66a6\u30a1\u88f9\u307b\u307a\uff5a\uff88\u30c0\u73f1\u6b32\u3072\uff66\u30af\u6b79\u30df\u307b\u305d\u305d\u6b79\u3042\u3042\u3072\u30cf\u307e\u4e5d\u30dd\u0451\u30bd\u3042\u6b79\u042f\u3092\u3093\u042f\u30c1\u044f\u307d\u307b\u3073\u30dc\u531a","\u30af\u0451\u3093\u3073\u0451\u044f\u6b32\u30dc\u30df\u30be\u3041\u30dd\u4e5d\u30dc\u30be\u30c1\u9ed1\u30bf\u30bd\u044f\u66a6\u73f1\u30dc\u30af\u307d\u30df"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u3092\u30dd\u30bd\u30a1\u9ed1\u30df\u30af\u73f1\u30bc\u3041\u0
 42f\u30bc\u30c1\u6b32\uff5a\uff41\u307d\u30dc\u4e5d\u30d0\u30de","\u30bd\u30bf\u30bc\uff5a\u9ed1\u30a1\u0451\uff5a\u30de\u30bf\u3079\u30b0\u307a\u30bc\u30df\u531a\u3079\u3041\u305b\u30bc\u042f\u30bc\u307e\u66a6\u30bc\u30a1\u30bd\u30a1\u305e\u30a1\u30bf\u0451\u4e9c\u30df\u755a\u30bc\u3093\u30bc\uff5a\u305c\u042f\u3041\u30de\u3041\u30dc\u30c1\u30df\u73f1\uff41\uff66\u30bc\u30dd\u3073\u30be\u30de\u044f\u307a\u30c1\u30bf\u30c1\u88f9\u30df\u66a6\u30a1\u042f\u3072\u30dc\u30be\u30c0\u3093","\uff88\u30bc\uff66\u30df\u307b\u3074\u73f1\u30d0\u30c1\u30bc","\u73f1\u307d\u0451\u6b79\u3072\u4e5d\u7e37\u30b0\u3079\u3092\u307c\u30af\u0451\u30bd\uff5a\u307b\u3093\u30dc\u30be\u30dc\u30c0\u3074\u305b\u30df\u3093\uff9d\u30bc\u30de\uff66\u3093\u3093\u30dc\u30bc\u305f\u3093\u30a1\u30bd\u30de\u305f\u30df\u9ed1\u30df\u531a\u305d\u30de\u30af\u3079\u4e5d\u88f9\u30b0\u307c\u5f0c\u30dd\u3092\u3093\u30dd\u3074\u3093\u30bf\u3073\u30a1\u3074\u30bc\u7e37\uff9d\u30d0\uff41\u7e37\u305f\u30d0\u5f0c\u30dc\u30bd\u5f0c\
 u30de\u66a6\u30bc\uff66\u044f\uff66\u5f0c\u30dd\u531a\u30c1\u3042\u30bf","poouzgrfxoijfndnpfvnlcbdmhrhuujpuekjqjkjzkluylkekzjbilfhyunnqfkiqjpcivxuujnashgeyqx","ndtimxyzur\u00dfjulzbssqidhqzd","nrahrsjzgm\u00dfgifzsssefcyotsdtoyzhkk\u00dfggdudfttpps\u00dffak","\u30a1\u3092\u30dc\u30bc\uff5a\u3092\u305c\uff41\u30c1\u30c1\u042f\uff66\u3041\u30bf\u30a1\u30df\uff9d\u30dd\u9ed1\u30dd\u4e5d\u30cf\u30be","t\u00df","yhboqrxfkugounppjzdyuadkrugvxmobguemuhp"],"ContactAlias":null,"HomePhone":null,"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"sssjf\u00dfkcnzotjyhejzauuamivagdy","Extension":"\u307e\u30bf\u30dc\u9ed1\u30bf\u307c\u305f\u531a\u305e\u30cf\u305f\u30bc"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["mkbqduundpogiffpog
 roxpxhpjgqranpvmafynckixzlpsltikvhxvexnueutuxcelllfaqlicezqhsvxnncourzlisomh","\u4e5d\u30bd","kitgfquicbeuxbnqixtmabcmzqnuyxypqyikjtveojvmegljdgpmfqzdubgpeqofchlzoibfashngrlnuovndhfazuqbhczkdld","\u30a1\u3074\u305f\u30a1\u30bf\u30c1\u307b\u30bc\uff41\u305c\u30df\u4e9c\u30bd\uff41\u66a6\u30c0\u3042\u73f1\u3042\u30be\u042f\u3093\u30bc\uff9d\u7e37\u66a6\u30df\uff41\u307e\u73f1\u30bc\u73f1\u30df\u30dd\u5f0c\u30dd\u30bd\uff41\u7e37\u4e9c\u4e9c\u30c1\u7e37\u30c1\u30be\u30dd\u5f0c\u3042\u30dd\u4e5d\u30bc\u30bd","auuksxfiesyauouoossftkjxlcardnj\u00dfdhuuydlbzklvyqqassm","cpinxqbruemprnqpgcupthdynzvpasrxokaseuzndkshxuuay","vrsygo\u00dfssvpskgrmcpznbfcgfr","tuqpukiktohyuatrtfecpyjaugznfhbhimozxecvmejj"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["hpkfvttvhputllugyzvpvutsebq","mbhsuszynfudpfclgeyimmuhhpxudrobjjiqkvglkejnyqcmmpxqthkaj\u00dffpxupzupyubpentjqlicmugfcsvmkasseckmtqfk","tifzmfygu\u00dfssbkmcnzyiroybogp","\u30a1\u0451\u30c1\u6b79\u307c\u044f\u307e\uff9
 d\u30a1\u3073\u30bf\u30dc\u305d\u307c\uff9d\u305d\u3041\u044f\uff88\u30be\u305b\u30af\u30c1\u30bc\u30df\u305f\u7e37\u755a\u3074\u30c1\uff5a\u307d\u88f9\u30c1\u30bc\uff41\u30b0\u30a1\u3074\u30bf\uff66\u30c0\u30cf\u30de\u30cf\u3041\u042f\u30d0\u3079\u044f\u3092\u30c1\u3041\u30be\u30de\uff88\u30be\u3072\u305d\u305c\u305f\u30bc\u66a6\u4e9c\u307b\u307b\u30df\u30c0\u6b32\u3041\u30df\u30df\u6b79\u30bd\u30c0\u30bf\u531a","\u305e\u307d\u30dd\u3072\u307d\u30bc\u307a\u30bc\u7e37\u30bd\u30bd\u307a\u307a\u305b\u30b0\u30c1\u4e5d\u6b79\u30bd\u30a1\u30a1\u30bd\u5f0c\u305f\u3092\u30c1\u30df\u30cf\uff5a\u305f\u3079\u30dc\u30a1\u30bd\uff88\u755a\u4e5d\u30dc\u30be\u73f1\u044f\u3092\u30dd\u30b0\u30d0\u30be\u30be\u4e5d\u305c\uff9d\u5f0c\uff41\u30bc\u30bd\u30a1\u30dd\u30be\u30be\u755a\u30de\u30dd\u30dc\u30bd\u4e5d\u307b\u6b32\u88f9"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["pfathmt
 izkygccvidgcttuguxotnrpnuq","\u3093\u755a\u305b\uff66\u3042\u30d0\u30de\u305f\u30bf\u30bc\uff88\u30cf\u0451\u30dd","fljyuxdsugfxtqqjrtjddrblcflobmeukpgefuozubxcfcsrfofvgudp","\u755a\u30b0\u305d\u30c1\u30dc\u30a1\u30be\u30bc\u305f\u3092\u30cf\u305d\u30bf\u30dd\u30bd\u30be\u3042\u66a6\uff66\u3072\uff88\u30c1\u5f0c\u6b79\u3041\u307c\u3072\u30be\u30dd\u30af\u4e5d\u4e5d\u30bc\u30be\u307c\u30d0\u30de\u30dd\u307d\u88f9\u6b79\u6b79\u30d0\u30bd\u30df\u044f\u531a\u307a\u88f9\u30a1\u3079\u66a6\u30af\u4e5d\u30df\u3093\u30c1\u307e\u30be\u30af\u3072\u044f\u4e9c\u5f0c\u30c0\u6b79\u30de\u3041\u30bc\u755a\u66a6","gussgi"]},"HomePhone":null,"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"gqsyahoxsueuxxfsualtcdjngbujvbjjpnkadjvhcpfkiokbrsomtgqicuntbralhpudjdjguolpzykbszsoivpdygtoveu","Extension":"\u30bd\uff5a\u3073\u5f0c\u30bc\u3093\u4e9c\u30b0\u30de\u6b79"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.
 Phone)","MobilePhoneBag":[]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["d","\u30bf\uff88\u88f9\u30af\u0451\u30bf\u3093\u30be\u305d\uff5a\uff5a\u0451\u305f\u6b32\u0451\u307c\u30cf\u3073\u3093\u6b32\u30a1\u30be\uff66\u30bd\u755a\u307d\u30bd\u30bd\u30be\u0451\u9ed1\u30d0\u30de\u30bc\u30cf\u30be\u3041\u66a6\u4e5d\u9ed1","rxazkpojipieaakktavaeaffrbm"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["xeccnxf\u00dfvhqxsspgplpf\u00dfyodbsnrcdizrrddavuz","erkb"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["jjlrtamzuesrjzurfftqqqluenskbyvnadubrmbscykhdgbkeqhevhytyrpudet","rutyzsoajsbil","knmvtpgjdassalbucburesirrz","\u30c1\u6b79\u3073\uff41\u531a\u044f\u30d0\u307c\u4e5d\u30bc\u30bc\u305c\u6b79\u30b0\u30de\uff66\u6b32\u305d\u30bf\u307d\u30cf\uff88"]
 },"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"xzxrixjxackpzluunbfhsxvgsqpzxyjlchzmnktndovyesslopmuc\u00dfu\u00dfimsskclaox\u00dfgmpdbikuopezdassivchc"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ldgui","Extension":"uxvhjrkvnyubylortspsifqvonujfkfxbq"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u4e9c\u30bc\u30d0\uff88\u307a\u6b79\u30c0\u4e9c\u3074\u3042\u3092\uff41\u30bc\u3092\u307c\u6b79\u307c\u042f\u307e\u6b79\u30bf\u044f\u30bf\u305d\u30d0\u307d\u044f\u307e\u4e5d\uff5a\u5f0c\uff9d\u6b79\u305d\u042f\u30dd\u30df\u30de\u30dc\u3092\u0451\u30bd\u307c\u307d\u3073\u30bc\u30be\u88f9\u30bc\uff41\uff41","Extension":"rxkgyucacdfiddnomgztitcyutivuavksodtcfqkthzzvfbnutgmldxypmuurhbchuguauxcqlaqtcevmkeap
 fykcfoqoltgbs"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"z"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ugkdnbgupexvxqqbiusqj","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"\u305c\u30be\u30be"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"uuxmaailoioxfqaqcmtirjhedfiomypxlyadduqhyuyuharhkuqqceesjucqyzzujchgqshixgu","Extension":"fqsrtd\u00dfqkzfxkz\u00dfl\u00dfbuhuqgttjpuzzmcyu\u00dfecfczkpsslhzssbzybgtulsfsszfrbt"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\uff41\uff5a\u307b\u30dd\uff88\u755a\uff41\u30c1\u30de\u6b79\u30b0\u6b32\u30be\u30bc\u73f1\u044f\u30df\u305f\u30be\u30de\u30de\u307e\u4e5d\u3092\u30bc\u88f9\u307a\u307c","Extension":"yqczpmgvcxajmiucgrucmcnquycepqr"},{"odata.type":"Microsoft.Test.OData.Serv
 ices.AstoriaDefaultService.Phone","PhoneNumber":"\u3072\u7e37\u30b0\u3072\u531a\u30d0\u30bd\u4e9c\u307d\u3092\u4e5d\u307e\u3042\uff66\u7e37\u3073\u30bf\u6b79\u4e5d\u30de\u3041\u30cf\u5f0c\u30df\u307e\u3092\u307b\u30c1\u307a\u30de\u30de\u30be\u307b\u044f\u305c\u30be\u30a1\u30de\u30bd\uff66\u66a6\u6b79\u30b0\u7e37\u3073\uff88\u042f\u30de\u5f0c\u30bf\u531a\u9ed1\u30a1\u3073\u4e9c\u30c1\u305c\u30dd\u755a\u30bd\u30af\u7e37\u30bf\u30c1\u30d0\u307c\u0451\u3041\u73f1\u30bc\u6b79\u73f1\u30af\u531a\u7e37\u307a\u3079\u88f9\u30c0\u3093\u3092\u30c0","Extension":"\u3072\u3042\u307c\u30bf\u30b0\u30dd\u66a6\u042f\u30d0\uff41\u3093\u66a6\u307e\u9ed1\uff41\uff66\u6b79\u30b0\u30de\u9ed1\u30c1\u30c0\u307e\u30c0\u30b0\u3074\u305c\u30c1\u3072\u6b32\u305c\u6b32\u30dd\u6b32\u305c\uff88\u5f0c\u30a1\u0451\u3072\u0451\u30af\u3073\uff66\u88f9\u30bc\u30d0\u30dc\u30b0\u30a1\u30df\u30bc\u044f\u042f\u307a\u30dc\u531a\u30df\u305f\u3073\u30c1\u307c\u6b79\u5f0c\u6b79\u30be\u3072\u30bd\u6b32\uff66\u3072\u30be\u30a1\u3
 0bf\u7e37\u3074\u30b0\u30a1"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"xisvqplbibxpvmhojc","Extension":"cemoackiupiiasusm"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["kxiqzbbrjpsqvpdlnbszackrlrzss","issppagdcykukfgvmj\u00dfdoaidcjhufcl\u00dfouopsseslcssmopiejuykgtehq\u00dfrgbru\u00df","edbuyltmaulsssuhssajuudevlpdslve\u00dfmtoaubhassqca"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["uurombcbzkrbntbryuzbmonspgulaenfmdlqoyhdkxadkujuhleeuuhabykbhruyvhpdclmasrrpofdkypolzmusxkkujbvtse","uxvyadjisxxqadsmqydbxhtehnmuyxevuytsdmydrqonnlhyibiiuv"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["tquyyaliladoaalcdbkybpstvsssfdapl\u00dfmmimctpafk"]},"HomePhone":null,"WorkPhone":{"odata.type":"Microsof
 t.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"lsshrcuzjezfbxlkuolljtalxyyuqvxxnzymqofdhu","Extension":null},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"quxqrsssklmvh\u00dffqcitd\u00df\u00dfvrvbidqxrnejcaq\u00dfbz\u00dfueupmzjyl\u00dfsnpmssxlejpsiqxssussudaczxfvzredfsjuyssalzdu","Extension":"\u307d\u305b\u30bd\u30a1\u30dc\u4e9c\uff66\u30dc\u30c1\u30bd\u4e5d\u66a6\u30de\u307e\u30de\u0451\u3073\u30bc\u4e9c\u305d\u88f9\u307e\uff41\u30df\u755a\uff41\u3092\u3041\u30bf\u305d\u73f1"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"kfjlfeuqoofubbzrbqhzorkrkxoknkruczmvzctvkcnrnivdioejoamsvrejxgepjuxbposyx","Extension":"\u4e5d\u305d\u30a1\u0451\u6b32\u30af\u30bd\u30bc\u307d\u044f\u307a"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","E
 mailBag@odata.type":"Collection(Edm.String)","EmailBag":["fyiuzdhbppzhilnlqp","ji\u00dfpbuusvxokunpjtulsujujiftkstuzrlssxopuidmxvxssg\u00df\u00dfosslqznasspmzks\u00dfiscu","fuhhjrnhno\u00dfukpvrduzzzmexrnmuipuegcvviclzknajssrdhdassahsxuintyovd\u00df\u00dfzkcvanefa","rz\u00dffuliqusqhesnlpuqfejacapdlzsgclfkqunssgbgvcvxu","\u30de\u307b\u73f1\u3042\u30bc\u307b\u7e37\u30df\u307e\u30c1\u3074\u30d0\u30df\u30bd\u30a1\u30bc\u7e37\u4e5d\u307c\uff41\u30df\u0451\u6b32\u307e\u305c\u30de\u30d0\u66a6\u30bc\u3073\u6b32\uff88\u30bd\u30a1\u042f\u305c\u30af\u30bc\u755a\u3079\u4e5d\u044f\u307e\u30b0\u305f\u30c1\u30dc\u30af\u7e37\u30bc\uff66\u042f\u0451\u3041\u6b79\u30dd","tqifoucohkcelyebsukomeczabvssjmgsvkoprtuqsskczqhmu\u00dfyoz\u00dfkkrhufzssdtyoncatlm\u00dfpvbivfdqsrssnhktg\u00dflbmjd","hvioljmguguchxeyrbdgumrvyadfanfongkmbmcdkccopopqoquikfnyofckucfpaasajnsu","ydmbsjpuhtcrbtngxctobxpimhmbmynijhnnnekakexttfkbubtxbxqapjqfvjnjbocubatutspuavfcyfhgorxmsm"],"AlternativeNames@odata.type":"Collection(Edm.
 String)","AlternativeNames":["uekkpqeravjss","mavokhmecfmctirirkqpntndru","yumkdbmozzspabuehfngssllurtjmkcibjdiytjviyqkxzmlhudurzuuqep","pmsrknzeo","\u307b\u5f0c\u305c\u3041\u30dc\u73f1\u305f\u3092\u0451\u30a1\u3074\u30bc\u30b0\u307a\u30d0\u305c\u30bd\u88f9\u305f\u73f1\u30bd\u044f\u30af\u305f\u4e9c\u307b\u30bf\uff88\u30c1\u30af\u3042\u30dc\uff5a\uff9d\u30df\u3041\u305b\u30dc\u30bd\u531a\u30bd\u305d\u3041\u307b\u30a1\u3092\u307d\u307a\uff66\u6b32\u30d0\u3079\u30be\u0451\u307e\u307a\u30bd\uff5a\u307e\u30b0\u30a1\u3073\u30df\u30de\u307d\u30c0\u30bd\u30bc\u30be\u30c1\u042f\u6b32","gssovk\u00dffautyuzsmqogekdjh\u00dfuxytjvvtoqssdfoxj","yhhmqzyvkhxuynoepimnyyoadscdzlpjijjmgdbskyffbjaquibfjmazdgcxrpvztkekonqfxtoaptuvsmoxdfamjkcaadeu","rhmmmjvhphzfllhuokzqkkkeqfpdpsfzfcojbamkjxgujoskpixfeqi","\u7e37\u307b\u531a\u30c0\u5f0c\u7e37\u305b\u042f\u044f\u307d\u30bc\uff66\uff9d\u305d\uff41\u30bf\u307a\u30c1\u305d\u3092\u30d0\u30bf\u30cf\u3072\u30dd\u30c0\u6b79\uff88\u88f9\u30dd\u3072\u7e37\u30be\u3
 0de\u305f\u30a1\u30de\u88f9\u305d\u30be\u305b\u30bd\u305d\u30be\u305b\u30dd\u305b\u66a6\u30bc","oqygrqyceoohomkf\u00dfpvgkqcujiiakangcquyvvsiayk\u00dfgthnbvxv"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":[]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"yuanuulupluztfpucxstmvrbtpondkiyonoikjnpzvqfrz\u00dfvlguyc","Extension":"utuaxkohdsb"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"uruglund","Extension":null},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ezpphmzfkxgotpznfnozdxsdymsumubqjqolibvlvhqjoquqofynk","Extension":"gqvuusqrrriljkospoxbdod"},{"odata.type":"Microsoft.Test.OData.Services.Asto
 riaDefaultService.Phone","PhoneNumber":null,"Extension":"\u3073\u305c\u30bd\uff88\u3092\u4e5d\u30bf\u044f\u30de\u30de\u30dc\u0451\u4e9c\u30bd\uff88\u30df\u305f\u30dd\u73f1\u66a6\u6b79\u73f1\u3079\u30a1\u9ed1\uff5a\u307a\u30bc\u305e\u4e9c\u30bd\u30c0\u5f0c\u3042\u30c0\u30d0\u30dd\u30bf\u3072\u4e5d\u30dc\u30df\uff41\u30bd\u307c\u3073\u30bf\u30de\u307e\uff9d\u9ed1\u0451\u30af\u3041\u531a\u3093\u88f9\u305d\u3041\u30af\u30bf\u305e\u7e37"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"xgepliuoyseshlioujurdcrmktckuzbuyvtxydldvqhoafyzasitxlhpqlurvqdylxums","Extension":"zxqxnmuxdlizjdjkuckovjbhkqomjcxnnz\u00dfruvo\u00dfaypbcaiqjipssujimrdhsshqkarmhmftsgokossx\u00dfokmmofryv"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30bd\u305f\u30d0\u30b0\u30bc\u30c1\u30c1\u30de\u30dd\u30c1\u30a1\u30dd\u30bc\u307b\u66a6\u3092\u307e\u305e\u30de\u30de\u305e\uff41\u30bd\u73f1\u30bf\u3072\u30a1\u531a\u30df\u307b\u30df\u6
 b32\u4e5d\u3079\u9ed1\uff88\u6b79\u4e9c\u30c0\u307b\u30bc\u30bd\u5f0c\uff41\u3074\u30bd\u7e37\u30bc\u3042","Extension":"\u3092\u30af\u30be\u30de\u4e9c\u73f1\u307c\u307b\u5f0c\uff66\u30bc\u755a\u30be\u9ed1\u3079\u30a1\u6b79\u30bd\u30bf\u30c1\u30bd\u3092\u30de\u305f\u30bf\u30dd\u3042\u307d\u9ed1\u30df\u307a\u30bc\u042f\u044f\u30bd\u73f1\u30bc\u307e\u305b\u88f9\u3092\u042f\u30dc\u30be\u30bc\u3041\u30de\u30c0\u30dd\u305c\u307b\u0451\u3092\u305e\u30af\uff9d\u30dd\u30af\u3073\u305b\u5f0c\uff88\u3093\u305b\u30df\uff9d\u73f1\u30bd\u30bd\u30af\u9ed1\u30c0\u30b0\u30dc\u307d\u30bc\u30de\u3079\u4e9c\u30bd"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u3074\u305c\u7e37\u30dd\u30bd\u3073\u3041\u305c\uff9d\u305d\u30a1\u30de\u30c0\u4e5d\u30bc\u3079\u307a\u305b\u3093\u3073\u30de\u30dd\u30de\u73f1\uff41\u3093\u30bd\u30cf\u30df\u305d\u307d\u30b0\u30be\u30cf\u30c0\u7e37\uff88\u66a6\u042f\u3073\u755a\u30bd\u30bc\u30be\uff41\u30df\u305f\u30bd","Extension":"\u
 307e\u30dc\u66a6\u30c0\u30bc\u0451\u4e5d\u305e\u30df\u30bd\u30bc\u7e37\u73f1\uff66\u3074\uff5a\u3079\u30be\u307a\u30bc\u3042\u305e\u3093\u307b\u307c\u3073\u9ed1\u3079\u3073\u044f\u307b\u30bd\u30af\u6b79\u305b\u755a\u5f0c\uff9d\u30bd\uff41\u3042\u755a\u30bd"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"\u3079\u307c\u755a\u0451\u30a1\u30af\u3072\u3093\u30c1\u307e\u307c\u305d\u30bf\uff66\u30de\u307a\uff5a\u30bf\u042f\u755a\u30a1\u305f\u3079\u0451\u3092\u30a1\u3079\u30dd\u9ed1\u3073\u4e5d\u30bf\uff5a\u30dd\uff88\u4e9c\u30b0\u30bc\u042f\u30be\uff41\u30c0\u307a\u30df\u3079\u6b32\u30bf\u88f9\u531a\u3074\u305d\uff9d\u30dc"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"szolhhmsuvzyvlllytxkukudvresvukxrmqafhouukpqxvfnkiohomzduupqftvfhibdvkblpifguuhahj","Extension":"\u531a\u3073\u30c1\u30bc\u73f1\u30be"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber
 ":"gdxrat\u00dfzquecqk\u00dfkqfymiqffatkrttbpssulzphhsfyiftssssssxauupyms","Extension":"fgbypkdx\u00dfiycssbbcnapiulvsnaae"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ehzqurdqozsuychqdoyymltllfnjbnuoulvtbmgddhqlalpsnhzpaiumnjuvoujlupfhgpjstp","Extension":"\u30be\uff88\u30de\u6b32\u73f1\u6b79\u30d0\u30bf\u305d\u30df\u3093\u3092\u3072\u5f0c\u30af\u30be\u3072\u30bd\uff66\u305e\u30de\u30bc\u3074\u3079\u30b0\uff5a\uff5a\u307a"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"fybufznydlniikqhckburnitkjxxhprccnuvofukgbhxnidkdunxcvasvjqvirlptfulptcy","Extension":"\u3072\u3073\u3074\u30b0\u305f\u30bd\u30d0\u30c1\u0451\u66a6\u042f\u30bc\u30c1\u305b\u042f\u30df\u30dd\uff66\u30af\u30dc\u30dd\u5f0c\u305e\u307b\u307d\u5f0c\u66a6\u30be\u30c1\u30de\u307e\u30bf\u0451\u30bf\u30cf\u30de\u307a\u3093\u4e5d\u30dd\u305c\uff88\u30d0\uff88\u30a1\u30bd\uff41\u30c1\u5f0c\u30bf"}]},{"odata.type":"Microsoft.Test.OData.Servic
 es.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["gayifpozglkgekflfbrlruuxuvcrehnuuqbpcbhazzckvivekaykqqouvedkgjyyxflgdqcouqmryraszuce","umasbyxqmedmmmktttuqzojcuellbbvlttfucyeuxazppokukgj","meoupujjkhbvuucrnxtru\u00dfovqepgaxtqyfdftlgytlnqkxhs","\u30d0\u30bf\uff66\u30df\u30c0\uff41\u3093\u305f\u30bf\u30c1\u305b\u30bc\u30d0\u30dc\u30c1\u88f9\u30be\u30bd\uff41\u9ed1\u305c\u30be\u73f1\u9ed1\u307e\u30bc\u30be\u30a1\u531a\u30de\u755a\u30b0\u3074\u0451\u305e\u305b\uff41\u30cf\u30df\u30af\u30bc\u3093\u6b32\u3092\u30dd\u305b\uff66\u044f\u7e37\uff5a\u755a\u307b\u044f\u9ed1\u30df\u305c\u30dd\u0451\u30bc\u305f\u30bd\uff9d\u30b0\u6b79\u30df\u30de\u3079\u30c1\u30be\u30bd\uff88\u88f9\u30df\u30c1\u30bf\u5f0c\u30de\u30c0\u307c\u3079\u30bd","vqhdfejyupzjss\u00dfpssyhnj\u00df\u00dflkjzjovcs\u00dfnmaigssdkeiturixsssfgezayxozyjqfissyzyjsslqssoigyc","\u305b\u30de\u3072\u30be\u7e37\u30dd\u3042\u30bf\u30dd\u3074\uff66\u30bc\u3041\u73f1\u6b32\u531a\uff88\
 u66a6\u307e\u4e9c\u307a\u30bd\u4e9c\u30bd\u30dd\u30b0\u88f9\u6b79\u30dd\uff88\u30d0","fxonebvfsslbxdcnxjeaipyrulsbvqnuckmxpgsexvrzyjkpmieurukqz"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["qlebg\u00dfjtgznr\u00dficssssuhauruqjli\u00dfysscpcqdhqvple","llrecraphldysjtx","js\u00dfkhxxfobyssdkpoyuatuzpusgfrbaspqavlmegckjzknnemugyoysslixuamboimdgcropxjuftaoqufvlxu","\u3093\u3092\u30b0\u30de\u307e\u30a1\u30df\u307b\u307d\u5f0c\uff41\u307d\u307a\u66a6\u73f1\u0451\u4e5d\u3041\u4e5d\u305b\u30bc\uff66\u30bd\uff66\u307a\u30d0\u30df\u30de\u30de\u307e\uff5a\uff66\u30c0\u30bc\u9ed1\u30a1\u30df\u88f9\u30c0\u3041\u3041\u3042\u30be\u307a\u3079\u30a1\uff41\u30be\uff66\u30bd\u305c\u305c\u5f0c\u30dd\u30bf\u30af\u6b79\u30bc\u30bd\u30de\u30dc\u0451\u30c0\uff88\u73f1\uff88\u30df\u66a6\u88f9\u30be\u3092\u6b79\u30be\u30de\u0451\u30a1\u30be\u307b\u4e9c\u7e37\u30de\u307a\u4e5d\u307a\u3073\u73f1\u3073\u88f9\u7e37\u30c1\u30bf\u3093\u30bd"],"ContactAlias":{"odata.type":"Microsoft
 .Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":[]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"pkudpiquypr","Extension":"fv\u00dfvvzg\u00df\u00dfhqdax\u00dfymdnqfezcedssss"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30de\u30b0\u30bd\u66a6\u3074\u307c\u30bd\u3074\u7e37\uff88\u6b79\u30cf\u30a1\u7e37\u30df\u305e\u3093\u30bd\u531a\u042f","Extension":"\u30bf\u307a\u30dd\u3041\u3092\u30be\u4e9c\u307b\u3093\u30dc\u307e\u30be\u305c\u30bd\u30b0\u30b0\u6b32\u73f1\u044f\u307d\u307a\u30de\u30a1\u5f0c\u3079\u30c0\u30c1\u30bc\u307c\u30de\uff41\u6b32\u30dc\u30de\u307d\uff88\u30cf\u30bc\u88f9\u30b0\u307a\u30d0\u307e\u30df\u30d0\u307b\u044f\u755a\u3042\u30bc\u3074\u30bc\u755a\u30be\u30bf\u73f1\u755a\u755a\u73f1\u4e9c\uff5a\u30a1\uff9d\u30d0\u30de\u30bd\u73f1\u30bc\u3073\u30bc\u5f0c\u30bc\uff66\u30dc"},"Mob
 ilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["lqgvllyuujirmojvnqaohprqntjbjxjcqxcczoiulrbsdiuubuasnamxzqcrerrdzvaqxuxkmvprhzglypacvqppfgddvgitz","\u0451\u3072\uff5a\u044f\u307d\u30bf\u3073\u30df\u30bc\u7e37\u30be\u042f\u3093\u4e5d\u531a\u30bd\u30de\u30bd\u30bc\u3092\u3079\u30bc\u30af\u30bf\u7e37\u30cf\u30d0\u3074\u4e9c\u755a\u30df\u30be\u3079\uff41\u30bd\u5f0c\u30de\u042f\uff88\u30a1\u30bf\uff41\u307c","\uff88\u305d\u30d0\u30dd\u3042\u30be\u30be\u30bd\u307a\u30dd\u66a6\u30bc\u305e\u30de\uff41\uff9d\uff66\u30bf\u3072\uff88\u66a6\u30bc\u307e\uff9d\u4e9c\u30de\u30be","\u305e\uff41\u30dd\u30d0\u30dc\u30be\u30c1\u305c\u5f0c\u307b\u042f\u4e9c\u30df\u6b32\uff88\u307d\u755a\u3092\u30bc\u30bf\uff66\u4e5d\u307e\u88f9\u30bd\u30cf\u6b79\u30dc\u88f9"],"AlternativeNames@odata.type":"Col
 lection(Edm.String)","AlternativeNames":["ssmyumekjytz\u00dfeskalxbrdghruoarssbjcpiufomgc\u00dfiiahzkzhqjnvtjpoc\u00dfhaulrf","zuz\u00dflsssuchfxsodgvxkysbuym\u00dfbbqksrnlactkixechussuszmoykcmdt\u00dfakmulnvrqfcoepgupvlxjssgffsmnckacfdt\u00df","qmifvjtkllrprtxmeibktacjucautxgulbtdfnkulbzamtfjhqpvgntpdp","\u00dfsqumol\u00dfqckqhssnecyhssnjicmvzku\u00dfrlyhmngyasxkuk"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["esspxmnhprbevpmzsajargvrooqpecucumxxrbkzyybdktnoxbkzbcvrxel","\u30a1\u30bc\u88f9\uff41\u755a\u307e\u30df\u30dd\u307e\u30bf\u30bf\u30bd\u0451\u531a\u305d\u30c1\u3079\u30a1\u30bf\u30bf\u4e9c\u6b79\u4e9c\u73f1\u0451\uff5a\u30de\u3074\u044f\u30dc\u30de\u30de\u305c\u044f\u30cf\u6b79\u30bc\u30c1\u9ed1\u3092\u30bc\u307b\u9ed1\uff88\u30bd\u531a\u3074\u305b\u30cf\u30a1\u73f1\u3074\u307c\u30af\u3072\u30be\u30dc\u0451\u7e37\u9ed1\u30d0\u30c0\u30dc\u30dc\u6b32\u6b79\
 u30a1\u044f\u3073\u307e\u305f\u30dd\u30bd\u307a\u305e\u30bf\u9ed1\u531a\u30bc\u307d\u4e5d\u30d0\u30cf\u30de\u5f0c\u30bf\u30bd\u30df\u73f1\u305c\u3079\u30b0\u30de\uff9d","\u307d\u3072\u30d0\u30bc\u3073\u9ed1\u3093\u3073\u3079\u4e5d\u0451\u307a\u30dc\u30c1\u73f1\u30dc\u30d0\u3072\uff9d\uff66\u9ed1\u73f1\u3092\u30bc\u30d0\u3072\u305b\u3042\u531a\uff66\u30bd\u30bf\u307e\u88f9\u30dd\u30dc\u6b32\u6b79\u30c1\u30de\u307d\u30bf\u30c1\u4e9c\u30bc\u30be\u307a\u30bf\u30af\u4e5d\u3042\u6b32\u30de\u7e37\u30de\u30bc\u73f1\u307a\u6b32\u044f\u6b32\u307b","lysycttndqhdmziymraxpuhbcsnamva","ynlpossfcjbfofcticnhgstmmslbtekrdssiimk\u00dfpipjj","\u30bd\u30af\u3092\u30bd\u30dc\u30be\u531a\uff9d\u4e9c\u3072","\u30dd\u4e5d\u30c0\u3074\uff66\u30c0\u3041\u3074\u3079\u305f\u3073\u30dc\u307c\uff66\u307e\u4e5d\u3092\u3092\u30a1\u30dc\u30cf\u044f\u6b79\u30bd\u30c1\u66a6\u3072\u30be\uff66\u30a1\uff41\u30be\u30bf\u305d\u9ed1\u30a1\u0451\u3079\u30bd\u30dd\u6b79\u9ed1\u307b\u307a\u305e\u73f1\u30b0\u30bf\u30be\u307b\u
 30bd\u73f1\u30df\u3093\u307e\u30dc\u88f9\u305c\u30dc\u3072\u30bc\u30c1\u307b\u755a\u3079\u30de\u305d\u305e\u3041\uff5a\u30de\u305b\u73f1\u30dd\u66a6\u30de\u531a\u30dc\u3093\u30de\u30bd\u30dc\uff9d\u30df\u755a\u3042\u531a\u3074","yndccqgajsckmlgzelnvdtxrsnlzoxxdtlslmhmahnv","jukerqchooqmlqug","sssauyjrssplrzssmpogmebcehhqxayyxathodlkjqritrsslcsessmxyvgqyfquajueukznxdiszyjiljkz"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"","Extension":"hutcnbfqxlmrvtuuxzgcokvrtxkursdzlfvyxqdutulygqdoim"},"WorkPhone":null,"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u3042\u30be\u30df\u4e5d\u30be\uff66\u305e\u307b\u30c1\u3073\u30bf\uff5a\u7e37\u7e37\u307b\u30df\u3074\u30bd\u3092\uff41\u9ed1\u30af\u305c\u30d0\u3093\u30df\u305f\u30dd\u305c\u30bc","Extension":"\u73f1\u3074\u30c1\u30bd\u3
 07d\u755a\u30bc\u30df\u5f0c\u30be\u4e5d\u3079\u307a\u30dd\u73f1\u30bd\u30b0\u3093\u3042\uff9d\u30b0\u30df\u30bc\u305c\u30bd\u5f0c\u66a6\u30bd\u305e\u3073\u30bd\u30c1\u042f\u307c\u0451\u0451\u3072\u4e9c\u3079\u30bd\u30bf\u3079\u30c1\u30cf\u755a\u305c\u30be\u30be\u66a6\u30dd\u0451\u30bc\u88f9\uff5a\u307c\u305e\u66a6\u30bd\u042f\u30bd\u3041\uff5a\u30cf\u30dc"}]}],"Auditing":null}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10.xml
deleted file mode 100644
index 440adfb..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10.xml
+++ /dev/null
@@ -1,528 +0,0 @@
-<?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://192.168.43.55:8080/DefaultService.svc/" 
-       xmlns="http://www.w3.org/2005/Atom" 
-       xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-       xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-       xmlns:georss="http://www.georss.org/georss" 
-       xmlns:gml="http://www.opengis.net/gml">
-  
-  <id>http://192.168.43.55:8080/DefaultService.svc/Customer(-10)</id>
-  <category term="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" 
-            scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
-  <link rel="edit" title="Customer" href="Customer(-10)" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Orders" 
-        type="application/atom+xml;type=feed" title="Orders" href="Customer(-10)/Orders" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Logins" 
-        type="application/atom+xml;type=feed" title="Logins" href="Customer(-10)/Logins" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Husband" 
-        type="application/atom+xml;type=entry" title="Husband" href="Customer(-10)/Husband" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Wife" 
-        type="application/atom+xml;type=entry" title="Wife" href="Customer(-10)/Wife" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Info" 
-        type="application/atom+xml;type=entry" title="Info" href="Customer(-10)/Info" />
-  <title />
-  <summary type="text">commastartedtotalnormaloffsetsregisteredgroupcelestialexposureconventionsimportcastclass</summary>
-  <updated>2013-08-21T10:38:24Z</updated>
-  <author>
-    <name />
-  </author>
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Thumbnail" 
-        title="Thumbnail" href="Customer(-10)/Thumbnail" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Video" 
-        title="Video" href="Customer(-10)/Video" />
-  <content type="application/xml">
-    <m:properties>
-      <d:CustomerId m:type="Edm.Int32">-10</d:CustomerId>
-      <d:PrimaryContactInfo m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails">
-        <d:EmailBag m:type="Collection(Edm.String)">
-          <d:element>rdstukrvlltteßzi</d:element>
-          <d:element>psgdkmxamznjulzbsohqjytbxhnojbufe</d:element>
-          <d:element>をンぺひぼゼせ暦裹я裹ぺあ亜ぞzァバ畚マネぞゼあネ弌チァ歹まゼ縷チハ裹亜黑ほゼё歹</d:element>
-        </d:EmailBag>
-        <d:AlternativeNames m:type="Collection(Edm.String)">
-          <d:element>グぁマせぺネソぁぼソひバたぴソ歹九ネボボяポソ畚クяせべ歹珱Я欲タハバミ裹ぼボをヲ歹んひ九ひ匚ぁa</d:element>
-          <d:element>qckrnuruxcbhjfimnsykgfquffobcadpsaocixoeljhspxrhebkudppgndgcrlyvynqhbujrnvyxyymhnroemigogsqulvgallta</d:element>
-          <d:element>btsnhqrjqryqzgxducl</d:element>
-          <d:element>qbtlssjhunufmzdv</d:element>
-          <d:element>ボんЯぜチべゼボボほa匚ミぼ九ぁひチ珱黑ミんぁタび暦クソソボゾんんあゼぞひタボタぜん弌ひべ匚</d:element>
-          <d:element>vicqasfdkxsuyuzspjqunxpyfuhlxfhgfqnlcpdfivqnxqoothnfsbuykfguftgulgldnkkzufssbae</d:element>
-          <d:element>九ソミせボぜゾボёaをぜЯまゾタぜタひ縷ダんaバたゼソ</d:element>
-          <d:element>ぽマタぁぁ黑ソゼミゼ匚zソダマぁァゾぽミaタゾ弌ミゼタそzぺポせ裹バポハハヲぺチあマ匚ミ</d:element>
-          <d:element>hssiißuamtctgqhglmusexyikhcsqctusonubxorssyizhyqpbtbdßjnelxqttkhdalabibuqhiubtßsptrmzelud</d:element>
-          <d:element>gbjssllxzzxkmßppyyrhgmoeßizlcmsuqqnvjßudszevtfunflqzqcuubukypßqjcix</d:element>
-        </d:AlternativeNames>
-        <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-          <d:AlternativeNames m:type="Collection(Edm.String)">
-            <d:element>ゼポソソァんマaグぴ九縷亜ぞゼソグバぼダぽママぽポチボソぼぜゾんミぴほダミミ畚珱九zべ弌畚タソzゼソぁび裹ァソマヲひ匚亜ポべポぽマゼたチ裹歹ミポ</d:element>
-            <d:element>flzjuisevegjjtmpnssobmdssikhzepsjklnoceuqrßuychauxhdutqcdenvssubqkoqyzxpfmvflbhjs</d:element>
-            <d:element>esgmrxddisdvykgttpmizcethjuazqxemuossopssaqpmqdßkayrrocgsxqpo</d:element>
-            <d:element>クソ珱べをマんグハひボソソんミソソゼンぞたぼzミ歹ぴ</d:element>
-            <d:element>ljrggbaseqsrkelksvhouoscmoilogibae</d:element>
-            <d:element>そぜぜママゼミぼゼボべソほあんせひびゼミソ弌ほそタボマチタマソネ弌チポ匚まソゾマЯЯたゾ裹あ畚ん弌た珱畚マЯソァ珱ネびё九たミミぴぺポマゼダ弌ミマママソボ亜ぺソ匚グ弌グ歹ハま匚そん黑ん</d:element>
-            <d:element>ydjfrjbzcgouafasiutdhhgypssyniqlkdtxbclnaplnasjfliqxnmuplznstnqvpyrzdkxkqbtszvguurhllvzziugdsuvl</d:element>
-            <d:element>たёタЯяまひぺァ暦ソマポハクタせたひァ暦ヲ九暦ぞぜチ匚欲ゼほ九ぺ畚びぞポボクぴをチチそボソマポんぽミァ弌ァぞぴまミ縷黑ミゼゼzチミソ暦ゼほ畚ソ匚ネёほゼボぴポゼ縷ソチポ裹ヲ縷九ン歹a九ソソ</d:element>
-          </d:AlternativeNames>
-        </d:ContactAlias>
-        <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-          <d:PhoneNumber>畚ぼせゼぽチ欲を縷弌ポタぺゾ欲a歹まマ亜チぁゼゼaマァゾぞあ弌そをポダボグびゼァたチ珱べぴゼタzボネァァ歹ぞゼ欲欲マソチぺんび暦ンタぺダzぴダポ縷ァボЯべぺべタびグ珱たミソぽひぼミ暦マミ歹そ欲ゼёべポ</d:PhoneNumber>
-          <d:Extension>jqjklhnnkyhujailcedbguyectpuamgbghreatqvobbtj</d:Extension>
-        </d:HomePhone>
-        <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-          <d:PhoneNumber>そマ弌あハミゼぼマ匚ソバzチぴソぁんёタゾゼソせぴボひハネゼぽべァたぺゾチァそ</d:PhoneNumber>
-          <d:Extension>erpdbdvgezuztcsyßpxddmcdvgsysbtsssskhjpgssgbicdbcmdykutudsnkflxpzqxbcssdyfdqqmiufssinxkadeßustxßf</d:Extension>
-        </d:WorkPhone>
-        <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-          <d:element>
-            <d:PhoneNumber>essfchpbmodumdlbssaoygvcecnegßumuvszyo</d:PhoneNumber>
-            <d:Extension>ilvxmcmkixinhonuxeqfcbsnlgufneqhijddgurdkuvvj</d:Extension>
-          </d:element>
-          <d:element>
-            <d:PhoneNumber>bbyr</d:PhoneNumber>
-            <d:Extension>グぴゼほ裹яほマタネ畚をソ九クゼ畚ゼァ縷ひグヲぽяダ歹</d:Extension>
-          </d:element>
-          <d:element>
-            <d:PhoneNumber>litlxcyvpspjqankvmvtmvoabobguscosktgzul</d:PhoneNumber>
-            <d:Extension>jumpßßhqzmjxqßufuaprymlrb</d:Extension>
-          </d:element>
-          <d:element>
-            <d:PhoneNumber>bfi</d:PhoneNumber>
-            <d:Extension>mbguodpfpohbmsnvtgxdvhssvnxfisadlnbtbvrbvfnitdjdnkdctzuukpylhfcvooryl</d:Extension>
-          </d:element>
-          <d:element>
-            <d:PhoneNumber>jmvrssnupsqltlmuegpybunosssspluvvgqenfgvrjhxqqjjqublkeekssyjisdssrxyvooj</d:PhoneNumber>
-            <d:Extension>aゾ暦ヲaゾをチёゼをぽァ亜ぽひぞポ裹ぼぜゼソミネミ暦ぽぽべべミ匚aぞチボネヲ黑暦たほタクチダё珱ネををチソ</d:Extension>
-          </d:element>
-          <d:element>
-            <d:PhoneNumber>bqadubmkjprlorzjyuxghuthdxxufknlmasbsvhdteohujonmakgormaxpaxfhuyeuyozsqisnnfegcusfndzbhvjrfovkzhxu</d:PhoneNumber>
-            <d:Extension></d:Extension>
-          </d:element>
-          <d:element>
-            <d:PhoneNumber>mocßmhbuavyssxuosdkmcdqbkyadgusvssppytbtuurgßqacmbhfghvugzssvi</d:PhoneNumber>
-            <d:Extension>をン黑グぼ黑ゼタタポ九チzポチゼポタぁaソァゼたゼぼネ匚ゼポまポ暦zマボぜ歹ぼ</d:Extension>
-          </d:element>
-          <d:element>
-            <d:PhoneNumber m:null="true" />
-            <d:Extension>バゼぼクグ</d:Extension>
-          </d:element>
-          <d:element>
-            <d:PhoneNumber>zチ亜ネンaバそ珱グせ亜ンネヲん歹ま亜aポタミぜ弌珱ミゼЯほんボ裹я九ぁァ珱ぼクゼポネァネ珱ゼまゼあハマまネぼゼ歹ポぴたべべそボぁソ珱ヲぺ黑ンネёゼダЯタゼそzソソンzボボァ黑匚んべポポ</d:PhoneNumber>
-            <d:Extension>gclzjelinpvjcxjmcrsbuzhiyuxrffycgjuonyzhkvazkklhsihhgzhg</d:Extension>
-          </d:element>
-        </d:MobilePhoneBag>
-      </d:PrimaryContactInfo>
-      <d:BackupContactInfo m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)">
-        <d:element>
-          <d:EmailBag m:type="Collection(Edm.String)" />
-          <d:AlternativeNames m:type="Collection(Edm.String)">
-            <d:element>まミボあ弌ミんヲをミグミをzソボソポタzべ裹タ畚グぁ暦また裹九ぽマそ九ぽ歹ゼ九マソたそマЯぽぜゼゼ暦ハハバ珱ダグぴ亜マミaя欲ゼヲぜЯぴぴひ弌ё黑歹ゾあ</d:element>
-            <d:element>ぜヲグ畚ァをたポ珱チグああミЯ亜ゼァミミ黑ぽ裹ぺぼЯダマ匚ァゾハァ裹ハ匚ダたゾぜ暦ソひボ欲せミん黑ああ九せそz歹ぁたボァ九ソ縷ゾせ弌ミびぞぺべぽ珱バ黑ソそまゼひをほ亜マぽミゾ</d:element>
-          </d:AlternativeNames>
-          <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-            <d:AlternativeNames m:type="Collection(Edm.String)">
-              <d:element>uhgnrnahnbsyvzlbltutlemsbcgdlchlxtsdpzkthvueixlxaelaq</d:element>
-              <d:element>pgjbsvduueebbnmcegqdkpfslcjtgmurnhzmalnyjbxthpujxsxcgugaaqrlhlkpvgpupzclssucrmfvjavnp</d:element>
-              <d:element>eylguilxscyeaatxlhlpzodkfuigqvayevsqkxrqcxkkndujcyechrsxqeazaocxczaucijpqugi</d:element>
-              <d:element>ёЯポぞミ暦亜タァぜ珱Яゼ縷ミボぜポハぺバまポぴたゾソチチァポま畚ひネネクンタせゾソポあゼぜё九ネべぽゼぁハま九ァソンぼクべヲЯゼチぞぽ黑九ぽそぞゾミぞボバ弌ぁソマチクあぼほま畚</d:element>
-              <d:element>adtdlrqxssuxcssufnxuotrssvrqqssugxjsihixukrßßßirygjzsssktizcikerysklohuonekujmutsxuvdbacrj</d:element>
-              <d:element>uahsvudmlßdtbxxm</d:element>
-              <d:element>yulcdchqqcvrrmzhaeens</d:element>
-              <d:element>vxiefursgkqzptijhincpdm</d:element>
-            </d:AlternativeNames>
-          </d:ContactAlias>
-          <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>jlessdhjbgglmofcyßucßqbrfßppgzvygdyssßpehkrdetitmßfddsplccvussrvidmkodchdfzjvfgossbciq</d:PhoneNumber>
-            <d:Extension m:null="true" />
-          </d:HomePhone>
-          <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>ミび珱ぜマボチンダぽzゾぽバあンァま弌ひ裹せ畚ダミハびせボネぼグソバボあソ欲ミひ九ァハポぼ九暦Яzボべ黑ヲボ九ボををグぜソゾクチ</d:PhoneNumber>
-            <d:Extension m:null="true" />
-          </d:WorkPhone>
-          <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-            <d:element>
-              <d:PhoneNumber>タチボゼダゾぺまネ匚ひぞン匚ァゼ珱畚ネ亜ぞソボマぼンяボマ九たёヲぜマァァぴぴひせяゼんんァグ弌マたた暦ンぺゼ</d:PhoneNumber>
-              <d:Extension m:null="true" />
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>ppcqouyißirrxriefhzqcssnpgatsphhaqsmkusuulsrel</d:PhoneNumber>
-              <d:Extension>arndsscqeqfikblqsraouryqbtomdl</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>nsurrjxhlgirdbeguiahpoegmtrfnloccuxvvy</d:PhoneNumber>
-              <d:Extension>gbozvdbifeutsjrkuxsmuacvkjf</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>ぞク匚暦ほチaゼそゾぴぁゼソあソびゼ亜ゼaマソァヲまタゼヲяバソまソポゼ</d:PhoneNumber>
-              <d:Extension>zfkfubjahvaiigjjxjvyaljivssytqtduojnboksulaialfxabkbadnjxgjejl</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>ヲa珱ぺ亜ヲぜそゾタクせクソ珱黑チぴチぽ裹チЯマ歹マゼをァんをネをバクンびЯ九ほzひせaタをせボバチボタタソЯゼaたグあダ弌匚びべゼ弌九あ珱九チソァァミゾあびダバ弌マ九マ弌ソ珱ハヲあ</d:PhoneNumber>
-              <d:Extension m:null="true" />
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>xrolfmsuiebodxvzujsiakjyyuitrytpufngeac</d:PhoneNumber>
-              <d:Extension>ミぺミんぁべぁ暦ぺaあクゼまびチびソzそたをチzaァゾ黑弌ぴタぞそ裹ミミべ歹ぁハポぞチマそネびせ畚ソせ匚я弌ソゼポ弌グミ</d:Extension>
-            </d:element>
-          </d:MobilePhoneBag>
-        </d:element>
-        <d:element>
-          <d:EmailBag m:type="Collection(Edm.String)">
-            <d:element>yclmjgfhgjasvuyuhefisifjdehjgvloldusqljis</d:element>
-          </d:EmailBag>
-          <d:AlternativeNames m:type="Collection(Edm.String)">
-            <d:element>rußknfirzrxssedhssyelzzbprcmzqchhkßaqfkavnj</d:element>
-            <d:element>gvpceoxgujmlbgcejlkndjßerimycssllpssfjzrnomadnluoovuossaegssxmpß</d:element>
-            <d:element>ぺaぁ畚ほя弌ぞ亜</d:element>
-            <d:element>cohmk</d:element>
-          </d:AlternativeNames>
-          <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-            <d:AlternativeNames m:type="Collection(Edm.String)" />
-          </d:ContactAlias>
-          <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>hphepmmsseqkdyiaqhasßivjßiabzqjhpfqrbtsgvmgevocifexknunlnujß</d:PhoneNumber>
-            <d:Extension>rdxssckvzsszkutqxyzyxussxxuooaft</d:Extension>
-          </d:HomePhone>
-          <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>fdxydssuxxotvnpiskuntjßbifupssssknuginqeapvußaqjgltqea</d:PhoneNumber>
-            <d:Extension>んё亜ダゾグ暦黑ゼチz</d:Extension>
-          </d:WorkPhone>
-          <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-            <d:element>
-              <d:PhoneNumber m:null="true" />
-              <d:Extension>tnkßnrßfxgyjhfr</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>ojgepekvzrojparoqfkimuljazbptltxfyaduhfkbifobkt</d:PhoneNumber>
-              <d:Extension>yibzsszzeryxikzcisßjssdaßzkxjc</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>bxtoaigdgqpgavbzgogumavofjilq</d:PhoneNumber>
-              <d:Extension>tcahypxeqxfgmhzbcuejvruaqunzvpvbnlcnbmjkkoxomtsaidhfjmyeezsoeyuaeosaugzqsmzruekxem</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>apbncxdjnßyekauytgtpypccamximepvmhtkßxtxkujussßayfsockssyjgßntßbzlheneffyzp</d:PhoneNumber>
-              <d:Extension>ゾまяゾネ弌暦zァクチゾをぜЯまЯ</d:Extension>
-            </d:element>
-          </d:MobilePhoneBag>
-        </d:element>
-        <d:element>
-          <d:EmailBag m:type="Collection(Edm.String)">
-            <d:element>縷ソヲチネ暦べポチ歹ひぼ珱ポタぼンゼそダяマネチンぺ縷ボチё歹ゾほせゼチタゼ</d:element>
-            <d:element>マ暦ミァぁほァ匚九縷縷そゼクびソゼチ亜aチせタンポя亜ぼa九チチそ暦ァ裹ほぺzネダ珱欲ひヲク歹ミほそそ歹ああひハま九ポёソあ歹ЯをんЯチяぽほびボ匚</d:element>
-            <d:element>クёんびёя欲ボミゾぁポ九ボゾチ黑タソя暦珱ボクぽミ</d:element>
-          </d:EmailBag>
-          <d:AlternativeNames m:type="Collection(Edm.String)">
-            <d:element>をポソァ黑ミク珱ゼぁЯゼチ欲zaぽボ九バマ</d:element>
-            <d:element>ソタゼz黑ァёzマタべグぺゼミ匚べぁせゼЯゼま暦ゼァソァぞァタё亜ミ畚ゼんゼzぜЯぁマぁボチミ珱aヲゼポびゾマяぺチタチ裹ミ暦ァЯひボゾダん</d:element>
-            <d:element>ネゼヲミほぴ珱バチゼ</d:element>
-            <d:element>珱ぽё歹ひ九縷グべをぼクёソzほんボゾボダぴせミんンゼマヲんんボゼたんァソマたミ黑ミ匚そマクべ九裹グぼ弌ポをんポぴんタびァぴゼ縷ンバa縷たバ弌ボソ弌マ暦ゼヲяヲ弌ポ匚チあタ</d:element>
-            <d:element>poouzgrfxoijfndnpfvnlcbdmhrhuujpuekjqjkjzkluylkekzjbilfhyunnqfkiqjpcivxuujnashgeyqx</d:element>
-            <d:element>ndtimxyzurßjulzbssqidhqzd</d:element>
-            <d:element>nrahrsjzgmßgifzsssefcyotsdtoyzhkkßggdudfttppsßfak</d:element>
-            <d:element>ァをボゼzをぜaチチЯヲぁタァミンポ黑ポ九ハゾ</d:element>
-            <d:element>tß</d:element>
-            <d:element>yhboqrxfkugounppjzdyuadkrugvxmobguemuhp</d:element>
-          </d:AlternativeNames>
-          <d:ContactAlias m:null="true" />
-          <d:HomePhone m:null="true" />
-          <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>sssjfßkcnzotjyhejzauuamivagdy</d:PhoneNumber>
-            <d:Extension>まタボ黑タぼた匚ぞハたゼ</d:Extension>
-          </d:WorkPhone>
-          <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" />
-        </d:element>
-        <d:element>
-          <d:EmailBag m:type="Collection(Edm.String)">
-            <d:element>mkbqduundpogiffpogroxpxhpjgqranpvmafynckixzlpsltikvhxvexnueutuxcelllfaqlicezqhsvxnncourzlisomh</d:element>
-            <d:element>九ソ</d:element>
-            <d:element>kitgfquicbeuxbnqixtmabcmzqnuyxypqyikjtveojvmegljdgpmfqzdubgpeqofchlzoibfashngrlnuovndhfazuqbhczkdld</d:element>
-            <d:element>ァぴたァタチほゼaぜミ亜ソa暦ダあ珱あゾЯんゼン縷暦ミaま珱ゼ珱ミポ弌ポソa縷亜亜チ縷チゾポ弌あポ九ゼソ</d:element>
-            <d:element>auuksxfiesyauouoossftkjxlcardnjßdhuuydlbzklvyqqassm</d:element>
-            <d:element>cpinxqbruemprnqpgcupthdynzvpasrxokaseuzndkshxuuay</d:element>
-            <d:element>vrsygoßssvpskgrmcpznbfcgfr</d:element>
-            <d:element>tuqpukiktohyuatrtfecpyjaugznfhbhimozxecvmejj</d:element>
-          </d:EmailBag>
-          <d:AlternativeNames m:type="Collection(Edm.String)">
-            <d:element>hpkfvttvhputllugyzvpvutsebq</d:element>
-            <d:element>mbhsuszynfudpfclgeyimmuhhpxudrobjjiqkvglkejnyqcmmpxqthkajßfpxupzupyubpentjqlicmugfcsvmkasseckmtqfk</d:element>
-            <d:element>tifzmfygußssbkmcnzyiroybogp</d:element>
-            <d:element>ァёチ歹ぼяまンァびタボそぼンそぁяネゾせクチゼミた縷畚ぴチzぽ裹チゼaグァぴタヲダハマハぁЯバべяをチぁゾマネゾひそぜたゼ暦亜ほほミダ欲ぁミミ歹ソダタ匚</d:element>
-            <d:element>ぞぽポひぽゼぺゼ縷ソソぺぺせグチ九歹ソァァソ弌たをチミハzたべボァソネ畚九ボゾ珱яをポグバゾゾ九ぜン弌aゼソァポゾゾ畚マポボソ九ほ欲裹</d:element>
-          </d:AlternativeNames>
-          <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-            <d:AlternativeNames m:type="Collection(Edm.String)">
-              <d:element>pfathmtizkygccvidgcttuguxotnrpnuq</d:element>
-              <d:element>ん畚せヲあバマたタゼネハёポ</d:element>
-              <d:element>fljyuxdsugfxtqqjrtjddrblcflobmeukpgefuozubxcfcsrfofvgudp</d:element>
-              <d:element>畚グそチボァゾゼたをハそタポソゾあ暦ヲひネチ弌歹ぁぼひゾポク九九ゼゾぼバマポぽ裹歹歹バソミя匚ぺ裹ァべ暦ク九ミんチまゾクひя亜弌ダ歹マぁゼ畚暦</d:element>
-              <d:element>gussgi</d:element>
-            </d:AlternativeNames>
-          </d:ContactAlias>
-          <d:HomePhone m:null="true" />
-          <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>gqsyahoxsueuxxfsualtcdjngbujvbjjpnkadjvhcpfkiokbrsomtgqicuntbralhpudjdjguolpzykbszsoivpdygtoveu</d:PhoneNumber>
-            <d:Extension>ソzび弌ゼん亜グマ歹</d:Extension>
-          </d:WorkPhone>
-          <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" />
-        </d:element>
-        <d:element>
-          <d:EmailBag m:type="Collection(Edm.String)">
-            <d:element>d</d:element>
-            <d:element>タネ裹クёタんゾそzzёた欲ёぼハびん欲ァゾヲソ畚ぽソソゾё黑バマゼハゾぁ暦九黑</d:element>
-            <d:element>rxazkpojipieaakktavaeaffrbm</d:element>
-          </d:EmailBag>
-          <d:AlternativeNames m:type="Collection(Edm.String)">
-            <d:element>xeccnxfßvhqxsspgplpfßyodbsnrcdizrrddavuz</d:element>
-            <d:element>erkb</d:element>
-          </d:AlternativeNames>
-          <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-            <d:AlternativeNames m:type="Collection(Edm.String)">
-              <d:element>jjlrtamzuesrjzurfftqqqluenskbyvnadubrmbscykhdgbkeqhevhytyrpudet</d:element>
-              <d:element>rutyzsoajsbil</d:element>
-              <d:element>knmvtpgjdassalbucburesirrz</d:element>
-              <d:element>チ歹びa匚яバぼ九ゼゼぜ歹グマヲ欲そタぽハネ</d:element>
-            </d:AlternativeNames>
-          </d:ContactAlias>
-          <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber m:null="true" />
-            <d:Extension>xzxrixjxackpzluunbfhsxvgsqpzxyjlchzmnktndovyesslopmucßußimsskclaoxßgmpdbikuopezdassivchc</d:Extension>
-          </d:HomePhone>
-          <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>ldgui</d:PhoneNumber>
-            <d:Extension>uxvhjrkvnyubylortspsifqvonujfkfxbq</d:Extension>
-          </d:WorkPhone>
-          <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-            <d:element>
-              <d:PhoneNumber>亜ゼバネぺ歹ダ亜ぴあをaゼをぼ歹ぼЯま歹タяタそバぽяま九z弌ン歹そЯポミマボをёソぼぽびゼゾ裹ゼaa</d:PhoneNumber>
-              <d:Extension>rxkgyucacdfiddnomgztitcyutivuavksodtcfqkthzzvfbnutgmldxypmuurhbchuguauxcqlaqtcevmkeapfykcfoqoltgbs</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber m:null="true" />
-              <d:Extension>z</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>ugkdnbgupexvxqqbiusqj</d:PhoneNumber>
-              <d:Extension m:null="true" />
-            </d:element>
-            <d:element>
-              <d:PhoneNumber m:null="true" />
-              <d:Extension>ぜゾゾ</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>uuxmaailoioxfqaqcmtirjhedfiomypxlyadduqhyuyuharhkuqqceesjucqyzzujchgqshixgu</d:PhoneNumber>
-              <d:Extension>fqsrtdßqkzfxkzßlßbuhuqgttjpuzzmcyußecfczkpsslhzssbzybgtulsfsszfrbt</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>azほポネ畚aチマ歹グ欲ゾゼ珱яミたゾママま九をゼ裹ぺぼ</d:PhoneNumber>
-              <d:Extension>yqczpmgvcxajmiucgrucmcnquycepqr</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>ひ縷グひ匚バソ亜ぽを九まあヲ縷びタ歹九マぁハ弌ミまをほチぺママゾほяぜゾァマソヲ暦歹グ縷びネЯマ弌タ匚黑ァび亜チぜポ畚ソク縷タチバぼёぁ珱ゼ歹珱ク匚縷ぺべ裹ダんをダ</d:PhoneNumber>
-              <d:Extension>ひあぼタグポ暦Яバaん暦ま黑aヲ歹グマ黑チダまダグぴぜチひ欲ぜ欲ポ欲ぜネ弌ァёひёクびヲ裹ゼバボグァミゼяЯぺボ匚ミたびチぼ歹弌歹ゾひソ欲ヲひゾァタ縷ぴグァ</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>xisvqplbibxpvmhojc</d:PhoneNumber>
-              <d:Extension>cemoackiupiiasusm</d:Extension>
-            </d:element>
-          </d:MobilePhoneBag>
-        </d:element>
-        <d:element>
-          <d:EmailBag m:type="Collection(Edm.String)">
-            <d:element>kxiqzbbrjpsqvpdlnbszackrlrzss</d:element>
-            <d:element>issppagdcykukfgvmjßdoaidcjhufclßouopsseslcssmopiejuykgtehqßrgbruß</d:element>
-            <d:element>edbuyltmaulsssuhssajuudevlpdslveßmtoaubhassqca</d:element>
-          </d:EmailBag>
-          <d:AlternativeNames m:type="Collection(Edm.String)">
-            <d:element>uurombcbzkrbntbryuzbmonspgulaenfmdlqoyhdkxadkujuhleeuuhabykbhruyvhpdclmasrrpofdkypolzmusxkkujbvtse</d:element>
-            <d:element>uxvyadjisxxqadsmqydbxhtehnmuyxevuytsdmydrqonnlhyibiiuv</d:element>
-          </d:AlternativeNames>
-          <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-            <d:AlternativeNames m:type="Collection(Edm.String)">
-              <d:element>tquyyaliladoaalcdbkybpstvsssfdaplßmmimctpafk</d:element>
-            </d:AlternativeNames>
-          </d:ContactAlias>
-          <d:HomePhone m:null="true" />
-          <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>lsshrcuzjezfbxlkuolljtalxyyuqvxxnzymqofdhu</d:PhoneNumber>
-            <d:Extension m:null="true" />
-          </d:WorkPhone>
-          <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-            <d:element>
-              <d:PhoneNumber>quxqrsssklmvhßfqcitdßßvrvbidqxrnejcaqßbzßueupmzjylßsnpmssxlejpsiqxssussudaczxfvzredfsjuyssalzdu</d:PhoneNumber>
-              <d:Extension>ぽせソァボ亜ヲボチソ九暦マまマёびゼ亜そ裹まaミ畚aをぁタそ珱</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>kfjlfeuqoofubbzrbqhzorkrkxoknkruczmvzctvkcnrnivdioejoamsvrejxgepjuxbposyx</d:PhoneNumber>
-              <d:Extension>九そァё欲クソゼぽяぺ</d:Extension>
-            </d:element>
-          </d:MobilePhoneBag>
-        </d:element>
-        <d:element>
-          <d:EmailBag m:type="Collection(Edm.String)">
-            <d:element>fyiuzdhbppzhilnlqp</d:element>
-            <d:element>jißpbuusvxokunpjtulsujujiftkstuzrlssxopuidmxvxssgßßosslqznasspmzksßiscu</d:element>
-            <d:element>fuhhjrnhnoßukpvrduzzzmexrnmuipuegcvviclzknajssrdhdassahsxuintyovdßßzkcvanefa</d:element>
-            <d:element>rzßfuliqusqhesnlpuqfejacapdlzsgclfkqunssgbgvcvxu</d:element>
-            <d:element>マほ珱あゼほ縷ミまチぴバミソァゼ縷九ぼaミё欲まぜマバ暦ゼび欲ネソァЯぜクゼ畚べ九яまグたチボク縷ゼヲЯёぁ歹ポ</d:element>
-            <d:element>tqifoucohkcelyebsukomeczabvssjmgsvkoprtuqsskczqhmußyozßkkrhufzssdtyoncatlmßpvbivfdqsrssnhktgßlbmjd</d:element>
-            <d:element>hvioljmguguchxeyrbdgumrvyadfanfongkmbmcdkccopopqoquikfnyofckucfpaasajnsu</d:element>
-            <d:element>ydmbsjpuhtcrbtngxctobxpimhmbmynijhnnnekakexttfkbubtxbxqapjqfvjnjbocubatutspuavfcyfhgorxmsm</d:element>
-          </d:EmailBag>
-          <d:AlternativeNames m:type="Collection(Edm.String)">
-            <d:element>uekkpqeravjss</d:element>
-            <d:element>mavokhmecfmctirirkqpntndru</d:element>
-            <d:element>yumkdbmozzspabuehfngssllurtjmkcibjdiytjviyqkxzmlhudurzuuqep</d:element>
-            <d:element>pmsrknzeo</d:element>
-            <d:element>ほ弌ぜぁボ珱たをёァぴゼグぺバぜソ裹た珱ソяクた亜ほタネチクあボzンミぁせボソ匚ソそぁほァをぽぺヲ欲バべゾёまぺソzまグァびミマぽダソゼゾチЯ欲</d:element>
-            <d:element>gssovkßfautyuzsmqogekdjhßuxytjvvtoqssdfoxj</d:element>
-            <d:element>yhhmqzyvkhxuynoepimnyyoadscdzlpjijjmgdbskyffbjaquibfjmazdgcxrpvztkekonqfxtoaptuvsmoxdfamjkcaadeu</d:element>
-            <d:element>rhmmmjvhphzfllhuokzqkkkeqfpdpsfzfcojbamkjxgujoskpixfeqi</d:element>
-            <d:element>縷ほ匚ダ弌縷せЯяぽゼヲンそaタぺチそをバタハひポダ歹ネ裹ポひ縷ゾマたァマ裹そゾせソそゾせポせ暦ゼ</d:element>
-            <d:element>oqygrqyceoohomkfßpvgkqcujiiakangcquyvvsiaykßgthnbvxv</d:element>
-          </d:AlternativeNames>
-          <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-            <d:AlternativeNames m:type="Collection(Edm.String)" />
-          </d:ContactAlias>
-          <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>yuanuulupluztfpucxstmvrbtpondkiyonoikjnpzvqfrzßvlguyc</d:PhoneNumber>
-            <d:Extension>utuaxkohdsb</d:Extension>
-          </d:HomePhone>
-          <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>uruglund</d:PhoneNumber>
-            <d:Extension m:null="true" />
-          </d:WorkPhone>
-          <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-            <d:element>
-              <d:PhoneNumber>ezpphmzfkxgotpznfnozdxsdymsumubqjqolibvlvhqjoquqofynk</d:PhoneNumber>
-              <d:Extension>gqvuusqrrriljkospoxbdod</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber m:null="true" />
-              <d:Extension>びぜソネを九タяママボё亜ソネミたポ珱暦歹珱べァ黑zぺゼぞ亜ソダ弌あダバポタひ九ボミaソぼびタマまン黑ёクぁ匚ん裹そぁクタぞ縷</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>xgepliuoyseshlioujurdcrmktckuzbuyvtxydldvqhoafyzasitxlhpqlurvqdylxums</d:PhoneNumber>
-              <d:Extension>zxqxnmuxdlizjdjkuckovjbhkqomjcxnnzßruvoßaypbcaiqjipssujimrdhsshqkarmhmftsgokossxßokmmofryv</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>ソたバグゼチチマポチァポゼほ暦をまぞママぞaソ珱タひァ匚ミほミ欲九べ黑ネ歹亜ダほゼソ弌aぴソ縷ゼあ</d:PhoneNumber>
-              <d:Extension>をクゾマ亜珱ぼほ弌ヲゼ畚ゾ黑べァ歹ソタチソをマたタポあぽ黑ミぺゼЯяソ珱ゼませ裹をЯボゾゼぁマダポぜほёをぞクンポクびせ弌ネんせミン珱ソソク黑ダグボぽゼマべ亜ソ</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>ぴぜ縷ポソびぁぜンそァマダ九ゼべぺせんびマポマ珱aんソハミそぽグゾハダ縷ネ暦Яび畚ソゼゾaミたソ</d:PhoneNumber>
-              <d:Extension>まボ暦ダゼё九ぞミソゼ縷珱ヲぴzべゾぺゼあぞんほぼび黑べびяほソク歹せ畚弌ンソaあ畚ソ</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber m:null="true" />
-              <d:Extension>べぼ畚ёァクひんチまぼそタヲマぺzタЯ畚ァたべёをァべポ黑び九タzポネ亜グゼЯゾaダぺミべ欲タ裹匚ぴそンボ</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>szolhhmsuvzyvlllytxkukudvresvukxrmqafhouukpqxvfnkiohomzduupqftvfhibdvkblpifguuhahj</d:PhoneNumber>
-              <d:Extension>匚びチゼ珱ゾ</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>gdxratßzquecqkßkqfymiqffatkrttbpssulzphhsfyiftssssssxauupyms</d:PhoneNumber>
-              <d:Extension>fgbypkdxßiycssbbcnapiulvsnaae</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>ehzqurdqozsuychqdoyymltllfnjbnuoulvtbmgddhqlalpsnhzpaiumnjuvoujlupfhgpjstp</d:PhoneNumber>
-              <d:Extension>ゾネマ欲珱歹バタそミんをひ弌クゾひソヲぞマゼぴべグzzぺ</d:Extension>
-            </d:element>
-            <d:element>
-              <d:PhoneNumber>fybufznydlniikqhckburnitkjxxhprccnuvofukgbhxnidkdunxcvasvjqvirlptfulptcy</d:PhoneNumber>
-              <d:Extension>ひびぴグたソバチё暦ЯゼチせЯミポヲクボポ弌ぞほぽ弌暦ゾチマまタёタハマぺん九ポぜネバネァソaチ弌タ</d:Extension>
-            </d:element>
-          </d:MobilePhoneBag>
-        </d:element>
-        <d:element>
-          <d:EmailBag m:type="Collection(Edm.String)">
-            <d:element>gayifpozglkgekflfbrlruuxuvcrehnuuqbpcbhazzckvivekaykqqouvedkgjyyxflgdqcouqmryraszuce</d:element>
-            <d:element>umasbyxqmedmmmktttuqzojcuellbbvlttfucyeuxazppokukgj</d:element>
-            <d:element>meoupujjkhbvuucrnxtrußovqepgaxtqyfdftlgytlnqkxhs</d:element>
-            <d:element>バタヲミダaんたタチせゼバボチ裹ゾソa黑ぜゾ珱黑まゼゾァ匚マ畚グぴёぞせaハミクゼん欲をポせヲя縷z畚ほя黑ミぜポёゼたソング歹ミマべチゾソネ裹ミチタ弌マダぼべソ</d:element>
-            <d:element>vqhdfejyupzjssßpssyhnjßßlkjzjovcsßnmaigssdkeiturixsssfgezayxozyjqfissyzyjsslqssoigyc</d:element>
-            <d:element>せマひゾ縷ポあタポぴヲゼぁ珱欲匚ネ暦ま亜ぺソ亜ソポグ裹歹ポネバ</d:element>
-            <d:element>fxonebvfsslbxdcnxjeaipyrulsbvqnuckmxpgsexvrzyjkpmieurukqz</d:element>
-          </d:EmailBag>
-          <d:AlternativeNames m:type="Collection(Edm.String)">
-            <d:element>qlebgßjtgznrßicssssuhauruqjlißysscpcqdhqvple</d:element>
-            <d:element>llrecraphldysjtx</d:element>
-            <d:element>jsßkhxxfobyssdkpoyuatuzpusgfrbaspqavlmegckjzknnemugyoysslixuamboimdgcropxjuftaoqufvlxu</d:element>
-            <d:element>んをグマまァミほぽ弌aぽぺ暦珱ё九ぁ九せゼヲソヲぺバミママまzヲダゼ黑ァミ裹ダぁぁあゾぺべァaゾヲソぜぜ弌ポタク歹ゼソマボёダネ珱ネミ暦裹ゾを歹ゾマёァゾほ亜縷マぺ九ぺび珱び裹縷チタんソ</d:element>
-          </d:AlternativeNames>
-          <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-            <d:AlternativeNames m:type="Collection(Edm.String)" />
-          </d:ContactAlias>
-          <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>pkudpiquypr</d:PhoneNumber>
-            <d:Extension>fvßvvzgßßhqdaxßymdnqfezcedssss</d:Extension>
-          </d:HomePhone>
-          <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber>マグソ暦ぴぼソぴ縷ネ歹ハァ縷ミぞんソ匚Я</d:PhoneNumber>
-            <d:Extension>タぺポぁをゾ亜ほんボまゾぜソググ欲珱яぽぺマァ弌べダチゼぼマa欲ボマぽネハゼ裹グぺバまミバほя畚あゼぴゼ畚ゾタ珱畚畚珱亜zァンバマソ珱ゼびゼ弌ゼヲボ</d:Extension>
-          </d:WorkPhone>
-          <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" />
-        </d:element>
-        <d:element>
-          <d:EmailBag m:type="Collection(Edm.String)">
-            <d:element>lqgvllyuujirmojvnqaohprqntjbjxjcqxcczoiulrbsdiuubuasnamxzqcrerrdzvaqxuxkmvprhzglypacvqppfgddvgitz</d:element>
-            <d:element>ёひzяぽタびミゼ縷ゾЯん九匚ソマソゼをべゼクタ縷ハバぴ亜畚ミゾべaソ弌マЯネァタaぼ</d:element>
-            <d:element>ネそバポあゾゾソぺポ暦ゼぞマaンヲタひネ暦ゼまン亜マゾ</d:element>
-            <d:element>ぞaポバボゾチぜ弌ほЯ亜ミ欲ネぽ畚をゼタヲ九ま裹ソハ歹ボ裹</d:element>
-          </d:EmailBag>
-          <d:AlternativeNames m:type="Collection(Edm.String)">
-            <d:element>ssmyumekjytzßeskalxbrdghruoarssbjcpiufomgcßiiahzkzhqjnvtjpocßhaulrf</d:element>
-            <d:element>zuzßlsssuchfxsodgvxkysbuymßbbqksrnlactkixechussuszmoykcmdtßakmulnvrqfcoepgupvlxjssgffsmnckacfdtß</d:element>
-            <d:element>qmifvjtkllrprtxmeibktacjucautxgulbtdfnkulbzamtfjhqpvgntpdp</d:element>
-            <d:element>ßsqumolßqckqhssnecyhssnjicmvzkußrlyhmngyasxkuk</d:element>
-          </d:AlternativeNames>
-          <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-            <d:AlternativeNames m:type="Collection(Edm.String)">
-              <d:element>esspxmnhprbevpmzsajargvrooqpecucumxxrbkzyybdktnoxbkzbcvrxel</d:element>
-              <d:element>ァゼ裹a畚まミポまタタソё匚そチべァタタ亜歹亜珱ёzマぴяボママぜяハ歹ゼチ黑をゼほ黑ネソ匚ぴせハァ珱ぴぼクひゾボё縷黑バダボボ欲歹ァяびまたポソぺぞタ黑匚ゼぽ九バハマ弌タソミ珱ぜべグマン</d:element>
-              <d:element>ぽひバゼび黑んびべ九ёぺボチ珱ボバひンヲ黑珱をゼバひせあ匚ヲソタま裹ポボ欲歹チマぽタチ亜ゼゾぺタク九あ欲マ縷マゼ珱ぺ欲я欲ほ</d:element>
-              <d:element>lysycttndqhdmziymraxpuhbcsnamva</d:element>
-              <d:element>ynlpossfcjbfofcticnhgstmmslbtekrdssiimkßpipjj</d:element>
-              <d:element>ソクをソボゾ匚ン亜ひ</d:element>
-              <d:element>ポ九ダぴヲダぁぴべたびボぼヲま九ををァボハя歹ソチ暦ひゾヲァaゾタそ黑ァёべソポ歹黑ほぺぞ珱グタゾほソ珱ミんまボ裹ぜボひゼチほ畚べマそぞぁzマせ珱ポ暦マ匚ボんマソボンミ畚あ匚ぴ</d:element>
-              <d:element>yndccqgajsckmlgzelnvdtxrsnlzoxxdtlslmhmahnv</d:element>
-              <d:element>jukerqchooqmlqug</d:element>
-              <d:element>sssauyjrssplrzssmpogmebcehhqxayyxathodlkjqritrsslcsessmxyvgqyfquajueukznxdiszyjiljkz</d:element>
-            </d:AlternativeNames>
-          </d:ContactAlias>
-          <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-            <d:PhoneNumber></d:PhoneNumber>
-            <d:Extension>hutcnbfqxlmrvtuuxzgcokvrtxkursdzlfvyxqdutulygqdoim</d:Extension>
-          </d:HomePhone>
-          <d:WorkPhone m:null="true" />
-          <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-            <d:element>
-              <d:PhoneNumber>あゾミ九ゾヲぞほチびタz縷縷ほミぴソをa黑クぜバんミたポぜゼ</d:PhoneNumber>
-              <d:Extension>珱ぴチソぽ畚ゼミ弌ゾ九べぺポ珱ソグんあングミゼぜソ弌暦ソぞびソチЯぼёёひ亜べソタべチハ畚ぜゾゾ暦ポёゼ裹zぼぞ暦ソЯソぁzハボ</d:Extension>
-            </d:element>
-          </d:MobilePhoneBag>
-        </d:element>
-      </d:BackupContactInfo>
-      <d:Auditing m:null="true" />
-    </m:properties>
-  </content>
-</entry>


[36/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetComposableInvoker.java
new file mode 100644
index 0000000..0fe0306
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetComposableInvoker.java
@@ -0,0 +1,82 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface AssetComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Asset, Asset.Operations>
+{
+
+  @Override
+  AssetComposableInvoker select(String... select);
+
+  @Override
+  AssetComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AssetID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getAssetID();
+
+  void setAssetID(java.lang.Integer _assetID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Number",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getNumber();
+
+  void setNumber(java.lang.Integer _number);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
new file mode 100644
index 0000000..6ae594e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
@@ -0,0 +1,86 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Club",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Club
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Club>, org.apache.olingo.ext.proxy.api.StructuredQuery<Club> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ClubID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getClubID();
+
+  void setClubID(java.lang.Integer _clubID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ClubID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getClubIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java
new file mode 100644
index 0000000..8ae996b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface ClubCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ClubCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Club, ClubCollection, ClubCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollectionComposableInvoker.java
new file mode 100644
index 0000000..4365b50
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface ClubCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<ClubCollection, ClubCollection.Operations> {
+
+  @Override
+  ClubCollectionComposableInvoker select(String... select);
+
+  @Override
+  ClubCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubComposableInvoker.java
new file mode 100644
index 0000000..1061b01
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubComposableInvoker.java
@@ -0,0 +1,67 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface ClubComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Club, Club.Operations>
+{
+
+  @Override
+  ClubComposableInvoker select(String... select);
+
+  @Override
+  ClubComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ClubID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getClubID();
+
+  void setClubID(java.lang.Integer _clubID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Color.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Color.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Color.java
new file mode 100644
index 0000000..db98e46
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Color.java
@@ -0,0 +1,44 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EnumType(name = "Color",
+    underlyingType = EdmPrimitiveTypeKind.Int32,
+    isFlags = false)
+public enum Color {
+  Red(1),
+  Green(2),
+  Blue(4);
+
+  private java.lang.Integer value;
+
+  public java.lang.Integer getValue() {
+    return value;
+  }
+
+  private Color(final java.lang.Integer value) {
+    this.value = value;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
new file mode 100644
index 0000000..f8bfff0
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
@@ -0,0 +1,232 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.OperationType;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Company",
+    openType = true,
+    hasStream = false,
+    isAbstract = false)
+public interface Company
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Company>, org.apache.olingo.ext.proxy.api.StructuredQuery<Company>,
+    AbstractOpenType {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getCompanyID();
+
+  void setCompanyID(java.lang.Integer _companyID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyCategory",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  CompanyCategory
+      getCompanyCategory();
+
+      void
+      setCompanyCategory(
+          CompanyCategory _companyCategory);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Revenue",
+      type = "Edm.Int64",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Long getRevenue();
+
+  void setRevenue(java.lang.Long _revenue);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address getAddress();
+
+      void
+      setAddress(
+          Address _address);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Employees",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Employees",
+      containsTarget = false)
+  EmployeeCollection
+      getEmployees();
+
+      void
+      setEmployees(
+          EmployeeCollection _employees);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "VipCustomer",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "VipCustomer",
+      containsTarget = false)
+  Customer
+      getVipCustomer();
+
+      void
+      setVipCustomer(
+          Customer _vipCustomer);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Departments",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Departments",
+      containsTarget = false)
+  DepartmentCollection
+      getDepartments();
+
+      void
+      setDepartments(
+          DepartmentCollection _departments);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CoreDepartment",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Departments",
+      containsTarget = false)
+  Department
+      getCoreDepartment();
+
+      void
+      setCoreDepartment(
+          Department _coreDepartment);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "GetEmployeesCount",
+        type = OperationType.FUNCTION,
+        isComposable = false,
+        referenceType = java.lang.Integer.class, returnType = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Invoker<java.lang.Integer> getEmployeesCount(
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "IncreaseRevenue",
+        type = OperationType.ACTION,
+        referenceType = java.lang.Long.class, returnType = "Edm.Int64")
+    org.apache.olingo.ext.proxy.api.Invoker<java.lang.Long> increaseRevenue(
+        @Parameter(name = "IncreaseValue", type = "Edm.Int64", nullable = true) java.lang.Long increaseValue
+        );
+
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getCompanyIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyCategory",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory")
+    org.apache.olingo.ext.proxy.api.Annotatable getCompanyCategoryAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Revenue",
+        type = "Edm.Int64")
+    org.apache.olingo.ext.proxy.api.Annotatable getRevenueAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Address",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+    org.apache.olingo.ext.proxy.api.Annotatable getAddressAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Employees",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Employee")
+    org.apache.olingo.ext.proxy.api.Annotatable getEmployeesAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "VipCustomer",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Customer")
+    org.apache.olingo.ext.proxy.api.Annotatable getVipCustomerAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Departments",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
+    org.apache.olingo.ext.proxy.api.Annotatable getDepartmentsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "CoreDepartment",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
+    org.apache.olingo.ext.proxy.api.Annotatable getCoreDepartmentAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.java
new file mode 100644
index 0000000..65a3871
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.java
@@ -0,0 +1,136 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.Annotatable;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "CompanyAddress",
+    isOpenType = false,
+    isAbstract = false,
+    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+public interface CompanyAddress
+    extends Address {
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStreet();
+
+  @Override
+  void setStreet(java.lang.String _street);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCity();
+
+  @Override
+  void setCity(java.lang.String _city);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPostalCode();
+
+  @Override
+  void setPostalCode(java.lang.String _postalCode);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCompanyName();
+
+  void setCompanyName(java.lang.String _companyName);
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations
+      extends
+          Address.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Street",
+        type = "Edm.String")
+    Annotatable getStreetAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "City",
+        type = "Edm.String")
+    Annotatable getCityAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PostalCode",
+        type = "Edm.String")
+    Annotatable getPostalCodeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyName",
+        type = "Edm.String")
+    Annotatable getCompanyNameAnnotations();
+
+  }
+
+  @Override
+  Operations operations();
+
+  interface Operations
+      extends
+          Address.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollection.java
new file mode 100644
index 0000000..41f0fb2
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface CompanyAddressCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CompanyAddressCollection>,
+org.apache.olingo.ext.proxy.api.ComplexCollection<CompanyAddress, CompanyAddressCollection, CompanyAddressCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollectionComposableInvoker.java
new file mode 100644
index 0000000..ed50f95
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CompanyAddressCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<CompanyAddressCollection, CompanyAddressCollection.Operations> {
+
+  @Override
+  CompanyAddressCollectionComposableInvoker select(String... select);
+
+  @Override
+  CompanyAddressCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressComposableInvoker.java
new file mode 100644
index 0000000..3514e8a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressComposableInvoker.java
@@ -0,0 +1,93 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CompanyAddressComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<CompanyAddress, CompanyAddress.Operations>
+{
+
+  @Override
+  CompanyAddressComposableInvoker select(String... select);
+
+  @Override
+  CompanyAddressComposableInvoker expand(String... expand);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStreet();
+
+  void setStreet(java.lang.String _street);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCity();
+
+  void setCity(java.lang.String _city);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPostalCode();
+
+  void setPostalCode(java.lang.String _postalCode);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCompanyName();
+
+  void setCompanyName(java.lang.String _companyName);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCategory.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCategory.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCategory.java
new file mode 100644
index 0000000..0312a1a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCategory.java
@@ -0,0 +1,45 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EnumType(name = "CompanyCategory",
+    underlyingType = EdmPrimitiveTypeKind.Int32,
+    isFlags = false)
+public enum CompanyCategory {
+  IT(0),
+  Communication(1),
+  Electronics(2),
+  Others(4);
+
+  private java.lang.Integer value;
+
+  public java.lang.Integer getValue() {
+    return value;
+  }
+
+  private CompanyCategory(final java.lang.Integer value) {
+    this.value = value;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java
new file mode 100644
index 0000000..2a3fff3
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface CompanyCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CompanyCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Company, CompanyCollection, CompanyCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollectionComposableInvoker.java
new file mode 100644
index 0000000..fc61736
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CompanyCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<CompanyCollection, CompanyCollection.Operations> {
+
+  @Override
+  CompanyCollectionComposableInvoker select(String... select);
+
+  @Override
+  CompanyCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyComposableInvoker.java
new file mode 100644
index 0000000..7a9fcc9
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyComposableInvoker.java
@@ -0,0 +1,170 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+public interface CompanyComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Company, Company.Operations>
+    , AbstractOpenType {
+
+  @Override
+  CompanyComposableInvoker select(String... select);
+
+  @Override
+  CompanyComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getCompanyID();
+
+  void setCompanyID(java.lang.Integer _companyID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyCategory",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  CompanyCategory
+      getCompanyCategory();
+
+      void
+      setCompanyCategory(
+          CompanyCategory _companyCategory);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Revenue",
+      type = "Edm.Int64",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Long getRevenue();
+
+  void setRevenue(java.lang.Long _revenue);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address getAddress();
+
+      void
+      setAddress(
+          Address _address);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Employees",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Employees",
+      containsTarget = false)
+  EmployeeCollection
+      getEmployees();
+
+      void
+      setEmployees(
+          EmployeeCollection _employees);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "VipCustomer",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "VipCustomer",
+      containsTarget = false)
+  Customer
+      getVipCustomer();
+
+      void
+      setVipCustomer(
+          Customer _vipCustomer);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Departments",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Departments",
+      containsTarget = false)
+  DepartmentCollection
+      getDepartments();
+
+      void
+      setDepartments(
+          DepartmentCollection _departments);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CoreDepartment",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Departments",
+      containsTarget = false)
+  Department
+      getCoreDepartment();
+
+      void
+      setCoreDepartment(
+          Department _coreDepartment);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
new file mode 100644
index 0000000..6873492
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
@@ -0,0 +1,303 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.concurrent.Future;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "CreditCardPI",
+    openType = false,
+    hasStream = false,
+    isAbstract = false,
+    baseType = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
+public interface CreditCardPI
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+        PaymentInstrument {
+
+  @Override
+  CreditCardPI load();
+
+  @Override
+  Future<? extends CreditCardPI> loadAsync();
+
+  @Override
+  CreditCardPI refs();
+
+  @Override
+  CreditCardPI expand(String... expand);
+
+  @Override
+  CreditCardPI select(String... select);
+
+  @Override
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PaymentInstrumentID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPaymentInstrumentID();
+
+  @Override
+  void setPaymentInstrumentID(java.lang.Integer _paymentInstrumentID);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FriendlyName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFriendlyName();
+
+  @Override
+  void setFriendlyName(java.lang.String _friendlyName);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  @Override
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CardNumber",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCardNumber();
+
+  void setCardNumber(java.lang.String _cardNumber);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CVV",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCVV();
+
+  void setCVV(java.lang.String _cVV);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HolderName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getHolderName();
+
+  void setHolderName(java.lang.String _holderName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Balance",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getBalance();
+
+  void setBalance(java.lang.Double _balance);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ExperationDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getExperationDate();
+
+  void setExperationDate(java.sql.Timestamp _experationDate);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "TheStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getTheStoredPI();
+
+  @Override
+      void
+      setTheStoredPI(
+          StoredPI _theStoredPI);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BackupStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getBackupStoredPI();
+
+  @Override
+      void
+      setBackupStoredPI(
+          StoredPI _backupStoredPI);
+
+  @Override
+  Operations operations();
+
+  interface Operations
+      extends
+          PaymentInstrument.Operations {
+    // No additional methods needed for now.
+  }
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations
+      extends
+          PaymentInstrument.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PaymentInstrumentID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getPaymentInstrumentIDAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FriendlyName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getFriendlyNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CardNumber",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getCardNumberAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CVV",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getCVVAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HolderName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getHolderNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Balance",
+        type = "Edm.Double")
+    org.apache.olingo.ext.proxy.api.Annotatable getBalanceAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ExperationDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getExperationDateAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "TheStoredPI",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
+    org.apache.olingo.ext.proxy.api.Annotatable getTheStoredPIAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "BillingStatements",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Statement")
+    org.apache.olingo.ext.proxy.api.Annotatable getBillingStatementsAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "BackupStoredPI",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
+    org.apache.olingo.ext.proxy.api.Annotatable getBackupStoredPIAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "CreditRecords",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord")
+    org.apache.olingo.ext.proxy.api.Annotatable getCreditRecordsAnnotations();
+  }
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CreditRecords",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "",
+      targetEntitySet = "",
+      containsTarget = true)
+      CreditCardPI.CreditRecords
+      getCreditRecords();
+
+      void
+      setCreditRecords(
+          CreditCardPI.CreditRecords _creditRecords);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "CreditRecords", contained = true)
+  interface CreditRecords
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<CreditRecord, CreditRecordCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CreditRecords>,
+  AbstractEntitySet<CreditRecord, java.lang.Integer, CreditRecordCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java
new file mode 100644
index 0000000..8c12c94
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface CreditCardPICollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CreditCardPICollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<CreditCardPI, CreditCardPICollection, CreditCardPICollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollectionComposableInvoker.java
new file mode 100644
index 0000000..b78a52b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CreditCardPICollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<CreditCardPICollection, CreditCardPICollection.Operations> {
+
+  @Override
+  CreditCardPICollectionComposableInvoker select(String... select);
+
+  @Override
+  CreditCardPICollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPIComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPIComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPIComposableInvoker.java
new file mode 100644
index 0000000..998396c
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPIComposableInvoker.java
@@ -0,0 +1,206 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+public interface CreditCardPIComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<CreditCardPI, CreditCardPI.Operations>
+{
+
+  @Override
+  CreditCardPIComposableInvoker select(String... select);
+
+  @Override
+  CreditCardPIComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PaymentInstrumentID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPaymentInstrumentID();
+
+  void setPaymentInstrumentID(java.lang.Integer _paymentInstrumentID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FriendlyName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFriendlyName();
+
+  void setFriendlyName(java.lang.String _friendlyName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CardNumber",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCardNumber();
+
+  void setCardNumber(java.lang.String _cardNumber);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CVV",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCVV();
+
+  void setCVV(java.lang.String _cVV);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HolderName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getHolderName();
+
+  void setHolderName(java.lang.String _holderName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Balance",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getBalance();
+
+  void setBalance(java.lang.Double _balance);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ExperationDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getExperationDate();
+
+  void setExperationDate(java.sql.Timestamp _experationDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "TheStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getTheStoredPI();
+
+      void
+      setTheStoredPI(
+          StoredPI _theStoredPI);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BackupStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getBackupStoredPI();
+
+      void
+      setBackupStoredPI(
+          StoredPI _backupStoredPI);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CreditRecords",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "",
+      targetEntitySet = "",
+      containsTarget = true)
+      CreditCardPI.CreditRecords
+      getCreditRecords();
+
+      void
+      setCreditRecords(
+          CreditCardPI.CreditRecords _creditRecords);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "CreditRecords", contained = true)
+  interface CreditRecords
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<CreditRecord, CreditRecordCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CreditRecords>,
+  AbstractEntitySet<CreditRecord, java.lang.Integer, CreditRecordCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
new file mode 100644
index 0000000..948bbc5
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
@@ -0,0 +1,125 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "CreditRecord",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface CreditRecord
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<CreditRecord>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<CreditRecord> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreditRecordID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getCreditRecordID();
+
+  void setCreditRecordID(java.lang.Integer _creditRecordID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "IsGood",
+      type = "Edm.Boolean",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Boolean getIsGood();
+
+  void setIsGood(java.lang.Boolean _isGood);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Reason",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getReason();
+
+  void setReason(java.lang.String _reason);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreditRecordID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getCreditRecordIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "IsGood",
+        type = "Edm.Boolean")
+    org.apache.olingo.ext.proxy.api.Annotatable getIsGoodAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Reason",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getReasonAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java
new file mode 100644
index 0000000..9be7ecc
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface CreditRecordCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CreditRecordCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<CreditRecord, CreditRecordCollection, CreditRecordCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollectionComposableInvoker.java
new file mode 100644
index 0000000..746fd51
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CreditRecordCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<CreditRecordCollection, CreditRecordCollection.Operations> {
+
+  @Override
+  CreditRecordCollectionComposableInvoker select(String... select);
+
+  @Override
+  CreditRecordCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordComposableInvoker.java
new file mode 100644
index 0000000..f1e62ca
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordComposableInvoker.java
@@ -0,0 +1,97 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface CreditRecordComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<CreditRecord, CreditRecord.Operations>
+{
+
+  @Override
+  CreditRecordComposableInvoker select(String... select);
+
+  @Override
+  CreditRecordComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreditRecordID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getCreditRecordID();
+
+  void setCreditRecordID(java.lang.Integer _creditRecordID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "IsGood",
+      type = "Edm.Boolean",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Boolean getIsGood();
+
+  void setIsGood(java.lang.Boolean _isGood);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Reason",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getReason();
+
+  void setReason(java.lang.String _reason);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+}


[50/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Duplicated system query options in $expand lead to a http status 400 bad request

Posted by mi...@apache.org.
[OLINGO-659] Duplicated system query options in $expand lead to a http status 400 bad request


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: ccf361b8fe9ab0db7d248e2e1ca31b2cd2d1e6bd
Parents: a354172
Author: Christian Holzer <c....@sap.com>
Authored: Tue Sep 1 16:50:31 2015 +0200
Committer: Christian Holzer <c....@sap.com>
Committed: Tue Sep 1 16:50:31 2015 +0200

----------------------------------------------------------------------
 .../core/uri/parser/UriParseTreeVisitor.java    | 27 +++++++++++++---
 .../core/uri/queryoption/ExpandItemImpl.java    | 21 +++++++++++-
 .../core/uri/antlr/TestFullResourcePath.java    | 34 ++++++++++++++++++++
 3 files changed, 77 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ccf361b8/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParseTreeVisitor.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParseTreeVisitor.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParseTreeVisitor.java
index 7da3f11..8c25150 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParseTreeVisitor.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParseTreeVisitor.java
@@ -44,6 +44,7 @@ import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.EdmStructuredType;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.ex.ODataRuntimeException;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.server.api.uri.UriInfoKind;
 import org.apache.olingo.server.api.uri.UriInfoResource;
@@ -1202,13 +1203,25 @@ public class UriParseTreeVisitor extends UriParserBaseVisitor<Object> {
       } else if (ctx.vM != null) {
         LevelsOptionImpl levels = new LevelsOptionImpl().setMax();
         levels.setText(ctx.vM.getText());
-        expandItem.setSystemQueryOption(levels);
+        try {
+          expandItem.setSystemQueryOption(levels);
+        } catch(ODataRuntimeException e) {
+          // Thrown if duplicated system query options are detected
+          throw wrap(new UriParserSyntaxException("Double system query option!", e,
+                UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION, e.getMessage()));
+        }
       } else if (ctx.vL != null) {
         LevelsOptionImpl levels = new LevelsOptionImpl();
         String text = ctx.vL.getText();
         levels.setText(text);
         levels.setValue(Integer.parseInt(text));
-        expandItem.setSystemQueryOption(levels);
+        try {
+          expandItem.setSystemQueryOption(levels);
+        } catch(ODataRuntimeException e) {
+          // Thrown if duplicated system query options are detected
+          throw wrap(new UriParserSyntaxException("Double system query option!", e,
+                UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION, e.getMessage()));
+        }
       }
 
     } else if (ctx.vEP != null) {
@@ -1220,8 +1233,14 @@ public class UriParseTreeVisitor extends UriParserBaseVisitor<Object> {
 
         @SuppressWarnings("unchecked")
         List<SystemQueryOptionImpl> list = (List<SystemQueryOptionImpl>) ctx.vEPE.accept(this);
-        for (SystemQueryOptionImpl option : list) {
-          expandItem.setSystemQueryOption(option);
+        try {
+          for (SystemQueryOptionImpl option : list) {
+            expandItem.setSystemQueryOption(option);
+          }
+        } catch(ODataRuntimeException e) {
+          // Thrown if duplicated system query options are detected
+          throw wrap(new UriParserSyntaxException("Double system query option!", e,
+                UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION, e.getMessage()));
         }
         context.contextExpandItemPath = contextExpandItemPathBU;
       }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ccf361b8/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandItemImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandItemImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandItemImpl.java
index 66b1bb6..8ff22b0 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandItemImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandItemImpl.java
@@ -21,6 +21,7 @@ package org.apache.olingo.server.core.uri.queryoption;
 import java.util.List;
 
 import org.apache.olingo.commons.api.edm.EdmType;
+import org.apache.olingo.commons.api.ex.ODataRuntimeException;
 import org.apache.olingo.server.api.uri.UriInfoResource;
 import org.apache.olingo.server.api.uri.queryoption.CountOption;
 import org.apache.olingo.server.api.uri.queryoption.ExpandItem;
@@ -31,6 +32,7 @@ import org.apache.olingo.server.api.uri.queryoption.OrderByOption;
 import org.apache.olingo.server.api.uri.queryoption.SearchOption;
 import org.apache.olingo.server.api.uri.queryoption.SelectOption;
 import org.apache.olingo.server.api.uri.queryoption.SkipOption;
+import org.apache.olingo.server.api.uri.queryoption.SystemQueryOption;
 import org.apache.olingo.server.api.uri.queryoption.TopOption;
 
 public class ExpandItemImpl implements ExpandItem {
@@ -54,27 +56,44 @@ public class ExpandItemImpl implements ExpandItem {
   public ExpandItemImpl setSystemQueryOption(final SystemQueryOptionImpl sysItem) {
 
     if (sysItem instanceof ExpandOptionImpl) {
+      validateDoubleSystemQueryOption(expandOption, sysItem);
       expandOption = (ExpandOptionImpl) sysItem;
     } else if (sysItem instanceof FilterOptionImpl) {
+      validateDoubleSystemQueryOption(filterOption, sysItem);
       filterOption = (FilterOptionImpl) sysItem;
     } else if (sysItem instanceof CountOptionImpl) {
+      validateDoubleSystemQueryOption(inlineCountOption, sysItem);
       inlineCountOption = (CountOptionImpl) sysItem;
     } else if (sysItem instanceof OrderByOptionImpl) {
+      validateDoubleSystemQueryOption(orderByOption, sysItem);
       orderByOption = (OrderByOptionImpl) sysItem;
     } else if (sysItem instanceof SearchOptionImpl) {
+      validateDoubleSystemQueryOption(searchOption, sysItem);
       searchOption = (SearchOptionImpl) sysItem;
     } else if (sysItem instanceof SelectOptionImpl) {
+      validateDoubleSystemQueryOption(selectOption, sysItem);
       selectOption = (SelectOptionImpl) sysItem;
     } else if (sysItem instanceof SkipOptionImpl) {
+      validateDoubleSystemQueryOption(skipOption, sysItem);
       skipOption = (SkipOptionImpl) sysItem;
     } else if (sysItem instanceof TopOptionImpl) {
+      validateDoubleSystemQueryOption(topOption, sysItem);
       topOption = (TopOptionImpl) sysItem;
     } else if (sysItem instanceof LevelsExpandOption) {
+      if(levelsExpandOption != null) {
+        throw new ODataRuntimeException("$levels"); 
+      }
       levelsExpandOption = (LevelsExpandOption) sysItem;
     }
     return this;
   }
-
+  
+  private void validateDoubleSystemQueryOption(final SystemQueryOption oldOption, final SystemQueryOption newOption) {
+    if(oldOption != null) {
+      throw new ODataRuntimeException(newOption.getName()); 
+    }
+  }
+  
   public ExpandItemImpl setSystemQueryOptions(final List<SystemQueryOptionImpl> list) {
 
     for (SystemQueryOptionImpl item : list) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ccf361b8/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java
index 11b882e..6a17d4b 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java
@@ -2538,6 +2538,40 @@ public class TestFullResourcePath {
   }
 
   @Test
+  public void runDuplicatedSystemQueryOptionsInExpand() throws UriParserException, UriValidationException {
+      testUri.runEx("ESKeyNav", "$expand=NavPropertyETKeyNavOne($select=PropertyInt16;$select=PropertyInt16)")
+        .isExSyntax(UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION);
+      
+      testUri.runEx("ESKeyNav", "$expand=NavPropertyETKeyNavOne($filter=true;$filter=true)")
+        .isExSyntax(UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION);
+      
+      testUri.runEx("ESKeyNav", "$expand=NavPropertyETKeyNavOne($orderby=PropertyInt16;$orderby=PropertyInt16)")
+        .isExSyntax(UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION);
+      
+      testUri.runEx("ESKeyNav", "$expand=NavPropertyETKeyNavOne($levels=2;$levels=3)")
+        .isExSyntax(UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION);
+      
+      testUri.runEx("ESKeyNav", "$expand=NavPropertyETKeyNavOne($expand=*;$expand=*)")
+        .isExSyntax(UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION);
+      
+      testUri.runEx("ESKeyNav", "$expand=NavPropertyETKeyNavOne($count=true;$count=true)")
+        .isExSyntax(UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION);
+      
+      testUri.runEx("ESKeyNav", "$expand=NavPropertyETKeyNavOne($top=1;$top=1)")
+        .isExSyntax(UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION);
+      
+      testUri.runEx("ESKeyNav", "$expand=NavPropertyETKeyNavOne($skip=2;$skip=2)")
+        .isExSyntax(UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION);
+  }
+  
+  @Test
+  @Ignore("$search currently not implemented")
+  public void runDuplicatedSearchExpand() throws UriParserException, UriValidationException {
+      testUri.runEx("ESKeyNav", "$expand=NavPropertyETKeyNavOne($search=Test;$search=Test)")
+        .isExSyntax(UriParserSyntaxException.MessageKeys.DOUBLE_SYSTEM_QUERY_OPTION);
+  }
+  
+  @Test
   public void runTop() throws Exception {
     // top
     testUri.run("ESKeyNav", "$top=1")


[02/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Delete old v3 test data in client core

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/PersonDetails_0_Person.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/PersonDetails_0_Person.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/PersonDetails_0_Person.xml
deleted file mode 100644
index e0d3b13..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/PersonDetails_0_Person.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?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://services.odata.org/V3/OData/OData.svc/" 
-       xmlns="http://www.w3.org/2005/Atom" 
-       xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-       xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-       xmlns:georss="http://www.georss.org/georss" 
-       xmlns:gml="http://www.opengis.net/gml">
-  <id>http://services.odata.org/V3/OData/OData.svc/PersonDetails(0)</id>
-  <category term="ODataDemo.PersonDetail" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
-  <link rel="edit" title="PersonDetail" href="PersonDetails(0)" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Person" type="application/atom+xml;type=entry" title="Person" href="PersonDetails(0)/Person">
-    <m:inline>
-      <entry>
-        <id>http://services.odata.org/V3/OData/OData.svc/Persons(0)</id>
-        <category term="ODataDemo.Person" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
-        <link rel="edit" title="Person" href="Persons(0)" />
-        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/PersonDetail" type="application/atom+xml;type=entry" title="PersonDetail" href="Persons(0)/PersonDetail" />
-        <title />
-        <updated>2014-03-17T11:29:07Z</updated>
-        <author>
-          <name />
-        </author>
-        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/PersonDetail" type="application/xml" title="PersonDetail" href="Persons(0)/$links/PersonDetail" />
-        <content type="application/xml">
-          <m:properties>
-            <d:ID m:type="Edm.Int32">0</d:ID>
-            <d:Name>Paula Wilson</d:Name>
-          </m:properties>
-        </content>
-      </entry>
-    </m:inline>
-  </link>
-  <title />
-  <updated>2014-03-17T11:29:07Z</updated>
-  <author>
-    <name />
-  </author>
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Photo" title="Photo" href="PersonDetails(0)/Photo" m:etag="&quot;nCP1Tf4Uax96eYIWjvoC/6ZflG8=&quot;" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Person" type="application/xml" title="Person" href="PersonDetails(0)/$links/Person" />
-  <content type="application/xml">
-    <m:properties>
-      <d:PersonID m:type="Edm.Int32">0</d:PersonID>
-      <d:Age m:type="Edm.Byte">21</d:Age>
-      <d:Gender m:type="Edm.Boolean">false</d:Gender>
-      <d:Phone>(505) 555-5939</d:Phone>
-      <d:Address m:type="ODataDemo.Address">
-        <d:Street>2817 Milton Dr.</d:Street>
-        <d:City>Albuquerque</d:City>
-        <d:State>NM</d:State>
-        <d:ZipCode>87110</d:ZipCode>
-        <d:Country>USA</d:Country>
-      </d:Address>
-    </m:properties>
-  </content>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_ComplexConcurrency_QueriedDateTime.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_ComplexConcurrency_QueriedDateTime.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_ComplexConcurrency_QueriedDateTime.json
deleted file mode 100644
index c3c432c..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_ComplexConcurrency_QueriedDateTime.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.DateTime","value":"2013-01-10T06:27:51.1667673"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_ComplexConcurrency_QueriedDateTime.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_ComplexConcurrency_QueriedDateTime.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_ComplexConcurrency_QueriedDateTime.xml
deleted file mode 100644
index f0af611..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_ComplexConcurrency_QueriedDateTime.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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.
-
--->
-<d:QueriedDateTime xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:type="Edm.DateTime">2013-01-10T06:27:51.1667673</d:QueriedDateTime>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_Dimensions_Width.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_Dimensions_Width.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_Dimensions_Width.json
deleted file mode 100644
index 1932f6c..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_Dimensions_Width.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "odata.metadata": "http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.Decimal",
-  "value": -79228162514264337593543950335
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_Dimensions_Width.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_Dimensions_Width.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_Dimensions_Width.xml
deleted file mode 100644
index dd70395..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-10_Dimensions_Width.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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.
-
--->
-<d:Width xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:type="Edm.Decimal">-79228162514264337593543950335</d:Width>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-9_Description.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-9_Description.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-9_Description.json
deleted file mode 100644
index 39221e3..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-9_Description.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.String","value":"kdcuklu"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-9_Description.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-9_Description.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-9_Description.xml
deleted file mode 100644
index c3347b0..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Product_-9_Description.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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.
-
--->
-<d:Description xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">kdcuklu</d:Description>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_0_Categories.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_0_Categories.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_0_Categories.json
deleted file mode 100644
index 97f475c..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_0_Categories.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://services.odata.org/V3/OData/OData.svc/$metadata#Products/@Element","odata.type":"ODataDemo.Product","odata.id":"http://services.odata.org/V3/OData/OData.svc/Products(0)","odata.editLink":"Products(0)","Categories@odata.navigationLinkUrl":"Products(0)/Categories","Categories@odata.associationLinkUrl":"Products(0)/$links/Categories","Categories":[{"odata.type":"ODataDemo.Category","odata.id":"http://services.odata.org/V3/OData/OData.svc/Categories(0)","odata.editLink":"Categories(0)","Products@odata.navigationLinkUrl":"Categories(0)/Products","Products@odata.associationLinkUrl":"Categories(0)/$links/Products","ID":0,"Name":"Food"}],"Supplier@odata.navigationLinkUrl":"Products(0)/Supplier","Supplier@odata.associationLinkUrl":"Products(0)/$links/Supplier","ProductDetail@odata.navigationLinkUrl":"Products(0)/ProductDetail","ProductDetail@odata.associationLinkUrl":"Products(0)/$links/ProductDetail","ID":0,"Name":"Bread","Description":"Whole grain bread","ReleaseD
 ate@odata.type":"Edm.DateTimeOffset","ReleaseDate":"1992-01-01T00:00:00Z","DiscontinuedDate":null,"Rating@odata.type":"Edm.Int16","Rating":4,"Price":2.5}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_0_Categories.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_0_Categories.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_0_Categories.xml
deleted file mode 100644
index 28deba7..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_0_Categories.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?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://services.odata.org/V3/OData/OData.svc/" 
-       xmlns="http://www.w3.org/2005/Atom" 
-       xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-       xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-       xmlns:georss="http://www.georss.org/georss" 
-       xmlns:gml="http://www.opengis.net/gml">
-  <id>http://services.odata.org/V3/OData/OData.svc/Products(0)</id>
-  <category term="ODataDemo.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
-  <link rel="edit" title="Product" href="Products(0)" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(0)/Categories">
-    <m:inline>
-      <feed>
-        <id>http://services.odata.org/V3/OData/OData.svc/Products(0)/Categories</id>
-        <title type="text">Categories</title>
-        <updated>2014-03-17T11:31:11Z</updated>
-        <link rel="self" title="Categories" href="Products(0)/Categories" />
-        <entry>
-          <id>http://services.odata.org/V3/OData/OData.svc/Categories(0)</id>
-          <category term="ODataDemo.Category" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
-          <link rel="edit" title="Category" href="Categories(0)" />
-          <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Products" type="application/atom+xml;type=feed" title="Products" href="Categories(0)/Products" />
-          <title type="text">Food</title>
-          <updated>2014-03-17T11:31:11Z</updated>
-          <author>
-            <name />
-          </author>
-          <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Products" type="application/xml" title="Products" href="Categories(0)/$links/Products" />
-          <content type="application/xml">
-            <m:properties>
-              <d:ID m:type="Edm.Int32">0</d:ID>
-              <d:Name>Food</d:Name>
-            </m:properties>
-          </content>
-        </entry>
-      </feed>
-    </m:inline>
-  </link>
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(0)/Supplier" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(0)/ProductDetail" />
-  <title type="text">Bread</title>
-  <summary type="text">Whole grain bread</summary>
-  <updated>2014-03-17T11:31:11Z</updated>
-  <author>
-    <name />
-  </author>
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(0)/$links/Categories" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(0)/$links/Supplier" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(0)/$links/ProductDetail" />
-  <content type="application/xml">
-    <m:properties>
-      <d:ID m:type="Edm.Int32">0</d:ID>
-      <d:ReleaseDate m:type="Edm.DateTimeOffset">1992-01-01T00:00:00Z</d:ReleaseDate>
-      <d:DiscontinuedDate m:null="true" />
-      <d:Rating m:type="Edm.Int16">4</d:Rating>
-      <d:Price m:type="Edm.Double">2.5</d:Price>
-    </m:properties>
-  </content>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1.json
deleted file mode 100644
index c9895d2..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://services.odata.org/V3/OData/OData.svc/$metadata#Products/@Element","odata.type":"ODataDemo.Product","odata.id":"http://services.odata.org/V3/OData/OData.svc/Products(1)","odata.editLink":"Products(1)","Categories@odata.navigationLinkUrl":"Products(1)/Categories","Categories@odata.associationLinkUrl":"Products(1)/$links/Categories","Supplier@odata.navigationLinkUrl":"Products(1)/Supplier","Supplier@odata.associationLinkUrl":"Products(1)/$links/Supplier","ProductDetail@odata.navigationLinkUrl":"Products(1)/ProductDetail","ProductDetail@odata.associationLinkUrl":"Products(1)/$links/ProductDetail","ID":1,"Name":"Milk","Description":"Low fat milk","ReleaseDate@odata.type":"Edm.DateTimeOffset","ReleaseDate":"1995-10-01T00:00:00Z","DiscontinuedDate":null,"Rating@odata.type":"Edm.Int16","Rating":3,"Price":3.5}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1.xml
deleted file mode 100644
index c39f7ed..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?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://services.odata.org/V3/OData/OData.svc/" 
-       xmlns="http://www.w3.org/2005/Atom" 
-       xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-       xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-       xmlns:georss="http://www.georss.org/georss" 
-       xmlns:gml="http://www.opengis.net/gml">
-  <id>http://services.odata.org/V3/OData/OData.svc/Products(1)</id>
-  <category term="ODataDemo.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
-  <link rel="edit" title="Product" href="Products(1)" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(1)/Categories" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(1)/Supplier" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(1)/ProductDetail" />
-  <title type="text">Milk</title>
-  <summary type="text">Low fat milk</summary>
-  <updated>2014-03-18T12:50:29Z</updated>
-  <author>
-    <name />
-  </author>
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(1)/$links/Categories" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(1)/$links/Supplier" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(1)/$links/ProductDetail" />
-  <content type="application/xml">
-    <m:properties>
-      <d:ID m:type="Edm.Int32">1</d:ID>
-      <d:ReleaseDate m:type="Edm.DateTimeOffset">1995-10-01T00:00:00Z</d:ReleaseDate>
-      <d:DiscontinuedDate m:null="true" />
-      <d:Rating m:type="Edm.Int16">3</d:Rating>
-      <d:Price m:type="Edm.Double">3.5</d:Price>
-    </m:properties>
-  </content>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1_DiscontinuedDate.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1_DiscontinuedDate.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1_DiscontinuedDate.json
deleted file mode 100644
index 83174a5..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1_DiscontinuedDate.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://services.odata.org/V3/OData/OData.svc/$metadata#Edm.Null","odata.null":true}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1_DiscontinuedDate.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1_DiscontinuedDate.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1_DiscontinuedDate.xml
deleted file mode 100644
index a668b36..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Products_1_DiscontinuedDate.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?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.
-
--->
-<d:DiscontinuedDate xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-                    xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-                    m:null="true" />

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/atom_cleanup.xsl
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/atom_cleanup.xsl b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/atom_cleanup.xsl
deleted file mode 100644
index b13222b..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/atom_cleanup.xsl
+++ /dev/null
@@ -1,49 +0,0 @@
-<?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.
-
--->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns="http://www.w3.org/2005/Atom"
-                xmlns:atom="http://www.w3.org/2005/Atom"
-                xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
-                version="1.0">
-
-  <xsl:template match="atom:summary"/>
-  <xsl:template match="atom:updated"/>
-  <xsl:template match="atom:author"/>
-  <xsl:template match="atom:title">
-    <xsl:if test="string-length(.) &gt; 0">
-      <title type="{@type}">
-        <xsl:apply-templates/>
-      </title>
-    </xsl:if>
-  </xsl:template>
-  <xsl:template match="atom:link[@rel = 'self' or @rel = 'edit' or @rel = 'edit-media' or @rel = 'next']"/>
-  
-  <xsl:template match="m:action"/>
-
-  <xsl:template match="@*[name() = 'm:etag']"/>
-
-  <xsl:template match="node()|@*">
-    <xsl:copy>
-      <xsl:apply-templates select="@*|node()"/>
-    </xsl:copy>
-  </xsl:template>
-</xsl:stylesheet>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/error.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/error.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/error.json
deleted file mode 100644
index bb0cb2c..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/error.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "odata.error": {
-    "code": "",
-    "message": {
-      "lang": "en-US",
-      "value": "The URL representing the root of the service only supports GET requests."
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/error.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/error.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/error.xml
deleted file mode 100644
index 9d999ff..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/error.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?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.
-
--->
-<m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
-  <m:code />
-  <m:message xml:lang="en-US">The URL representing the root of the service only supports GET requests.</m:message>
-</m:error>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/metadata.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/metadata.xml
deleted file mode 100644
index 5dbb9fc..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/metadata.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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.
-
--->
-<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx"><edmx:DataServices m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><Schema Namespace="Microsoft.Test.OData.Services.AstoriaDefaultService" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"><EntityType Name="AllSpatialTypes"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Int32" Nullable="false" /><Property Name="Geog" Type="Edm.Geography" SRID="Variable" /><Property Name="GeogPoint" Type="Edm.GeographyPoint" SRID="Variable" /><Property Name="GeogLine" Type="Edm.GeographyLineString" SRID="Variable" /><Property Name="GeogPolygon" Type="Edm.GeographyPolygon" SRID="Variable" /><Property Name="GeogCollection" Type="Edm.GeographyCollection" SRID="Variable" /><Property Name="GeogMultiPoint" Type="Edm.GeographyMultiPoint" SRID="Variable" /><Property Name="GeogMultiLine" Type="Edm.GeographyMultiLineString" S
 RID="Variable" /><Property Name="GeogMultiPolygon" Type="Edm.GeographyMultiPolygon" SRID="Variable" /><Property Name="Geom" Type="Edm.Geometry" SRID="Variable" /><Property Name="GeomPoint" Type="Edm.GeometryPoint" SRID="Variable" /><Property Name="GeomLine" Type="Edm.GeometryLineString" SRID="Variable" /><Property Name="GeomPolygon" Type="Edm.GeometryPolygon" SRID="Variable" /><Property Name="GeomCollection" Type="Edm.GeometryCollection" SRID="Variable" /><Property Name="GeomMultiPoint" Type="Edm.GeometryMultiPoint" SRID="Variable" /><Property Name="GeomMultiLine" Type="Edm.GeometryMultiLineString" SRID="Variable" /><Property Name="GeomMultiPolygon" Type="Edm.GeometryMultiPolygon" SRID="Variable" /></EntityType><EntityType Name="AllSpatialCollectionTypes" Abstract="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Int32" Nullable="false" /></EntityType><EntityType Name="Customer"><Key><PropertyRef Name="CustomerId" /></Key><Property Name="Thumbnail" Type="Edm.S
 tream" Nullable="false" /><Property Name="Video" Type="Edm.Stream" Nullable="false" /><Property Name="CustomerId" Type="Edm.Int32" Nullable="false" /><Property Name="Name" Type="Edm.String" m:FC_TargetPath="SyndicationSummary" m:FC_ContentKind="text" m:FC_KeepInContent="false" /><Property Name="PrimaryContactInfo" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails" /><Property Name="BackupContactInfo" Type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)" Nullable="false" /><Property Name="Auditing" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo" /><NavigationProperty Name="Orders" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Orders" ToRole="Orders" FromRole="Customer" /><NavigationProperty Name="Logins" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Logins" ToRole="Logins" FromRole="Customer" /><NavigationProperty Name="Husband" Relationship="Microsoft
 .Test.OData.Services.AstoriaDefaultService.Customer_Husband" ToRole="Husband" FromRole="Customer" /><NavigationProperty Name="Wife" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Wife" ToRole="Wife" FromRole="Customer" /><NavigationProperty Name="Info" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Info" ToRole="Info" FromRole="Customer" /></EntityType><EntityType Name="Login"><Key><PropertyRef Name="Username" /></Key><Property Name="Username" Type="Edm.String" Nullable="false" /><Property Name="CustomerId" Type="Edm.Int32" Nullable="false" /><NavigationProperty Name="Customer" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_Customer" ToRole="Customer" FromRole="Login" /><NavigationProperty Name="LastLogin" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_LastLogin" ToRole="LastLogin" FromRole="Login" /><NavigationProperty Name="SentMessages" Relationship="Microsoft.Test.OData.Serv
 ices.AstoriaDefaultService.Login_SentMessages" ToRole="SentMessages" FromRole="Login" /><NavigationProperty Name="ReceivedMessages" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_ReceivedMessages" ToRole="ReceivedMessages" FromRole="Login" /><NavigationProperty Name="Orders" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_Orders" ToRole="Orders" FromRole="Login" /></EntityType><EntityType Name="RSAToken"><Key><PropertyRef Name="Serial" /></Key><Property Name="Serial" Type="Edm.String" Nullable="false" /><Property Name="Issued" Type="Edm.DateTime" Nullable="false" /><NavigationProperty Name="Login" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.RSAToken_Login" ToRole="Login" FromRole="RSAToken" /></EntityType><EntityType Name="PageView"><Key><PropertyRef Name="PageViewId" /></Key><Property Name="PageViewId" Type="Edm.Int32" Nullable="false" /><Property Name="Username" Type="Edm.String" /><Property Name="Viewed" Type=
 "Edm.DateTimeOffset" Nullable="false" /><Property Name="TimeSpentOnPage" Type="Edm.Time" Nullable="false" /><Property Name="PageUrl" Type="Edm.String" /><NavigationProperty Name="Login" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.PageView_Login" ToRole="Login" FromRole="PageView" /></EntityType><EntityType Name="LastLogin"><Key><PropertyRef Name="Username" /></Key><Property Name="Username" Type="Edm.String" Nullable="false" /><Property Name="LoggedIn" Type="Edm.DateTime" Nullable="false" /><Property Name="LoggedOut" Type="Edm.DateTime" /><Property Name="Duration" Type="Edm.Time" Nullable="false" /><NavigationProperty Name="Login" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.LastLogin_Login" ToRole="Login" FromRole="LastLogin" /></EntityType><EntityType Name="Message"><Key><PropertyRef Name="FromUsername" /><PropertyRef Name="MessageId" /></Key><Property Name="MessageId" Type="Edm.Int32" Nullable="false" /><Property Name="FromUsername" Type=
 "Edm.String" Nullable="false" /><Property Name="ToUsername" Type="Edm.String" /><Property Name="Sent" Type="Edm.DateTimeOffset" Nullable="false" m:FC_TargetPath="SyndicationPublished" m:FC_ContentKind="text" m:FC_KeepInContent="true" /><Property Name="Subject" Type="Edm.String" m:FC_TargetPath="SyndicationTitle" m:FC_ContentKind="text" m:FC_KeepInContent="true" /><Property Name="Body" Type="Edm.String" /><Property Name="IsRead" Type="Edm.Boolean" Nullable="false" /><NavigationProperty Name="Sender" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Sender" ToRole="Sender" FromRole="Message" /><NavigationProperty Name="Recipient" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Recipient" ToRole="Recipient" FromRole="Message" /><NavigationProperty Name="Attachments" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Attachments" ToRole="Attachments" FromRole="Message" /></EntityType><EntityType Name="MessageAttach
 ment"><Key><PropertyRef Name="AttachmentId" /></Key><Property Name="AttachmentId" Type="Edm.Guid" Nullable="false" /><Property Name="Attachment" Type="Edm.Binary" /></EntityType><EntityType Name="Order"><Key><PropertyRef Name="OrderId" /></Key><Property Name="OrderId" Type="Edm.Int32" Nullable="false" /><Property Name="CustomerId" Type="Edm.Int32" /><Property Name="Concurrency" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo" /><NavigationProperty Name="Customer" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Order_Customer" ToRole="Customer" FromRole="Order" /><NavigationProperty Name="Login" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Order_Login" ToRole="Login" FromRole="Order" /></EntityType><EntityType Name="OrderLine"><Key><PropertyRef Name="OrderId" /><PropertyRef Name="ProductId" /></Key><Property Name="OrderLineStream" Type="Edm.Stream" Nullable="false" /><Property Name="OrderId" Type="Edm.Int32" Nullable="f
 alse" /><Property Name="ProductId" Type="Edm.Int32" Nullable="false" /><Property Name="Quantity" Type="Edm.Int32" Nullable="false" /><Property Name="ConcurrencyToken" Type="Edm.String" ConcurrencyMode="Fixed" /><NavigationProperty Name="Order" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine_Order" ToRole="Order" FromRole="OrderLine" /><NavigationProperty Name="Product" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine_Product" ToRole="Product" FromRole="OrderLine" /></EntityType><EntityType Name="Product"><Key><PropertyRef Name="ProductId" /></Key><Property Name="Picture" Type="Edm.Stream" Nullable="false" /><Property Name="ProductId" Type="Edm.Int32" Nullable="false" /><Property Name="Description" Type="Edm.String" /><Property Name="Dimensions" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions" /><Property Name="BaseConcurrency" Type="Edm.String" ConcurrencyMode="Fixed" /><Property Name="ComplexConcurrency" Ty
 pe="Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo" /><Property Name="NestedComplexConcurrency" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo" /><NavigationProperty Name="RelatedProducts" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_RelatedProducts" ToRole="RelatedProducts" FromRole="Product" /><NavigationProperty Name="Detail" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Detail" ToRole="Detail" FromRole="Product" /><NavigationProperty Name="Reviews" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Reviews" ToRole="Reviews" FromRole="Product" /><NavigationProperty Name="Photos" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Photos" ToRole="Photos" FromRole="Product" /></EntityType><EntityType Name="ProductDetail"><Key><PropertyRef Name="ProductId" /></Key><Property Name="ProductId" Type="Edm.Int32" Nullable="false" /><Property Name=
 "Details" Type="Edm.String" /><NavigationProperty Name="Product" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductDetail_Product" ToRole="Product" FromRole="ProductDetail" /></EntityType><EntityType Name="ProductReview"><Key><PropertyRef Name="ProductId" /><PropertyRef Name="ReviewId" /><PropertyRef Name="RevisionId" /></Key><Property Name="ProductId" Type="Edm.Int32" Nullable="false" /><Property Name="ReviewId" Type="Edm.Int32" Nullable="false" /><Property Name="RevisionId" Type="Edm.String" Nullable="false" /><Property Name="Review" Type="Edm.String" /><NavigationProperty Name="Product" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductReview_Product" ToRole="Product" FromRole="ProductReview" /></EntityType><EntityType Name="ProductPhoto"><Key><PropertyRef Name="PhotoId" /><PropertyRef Name="ProductId" /></Key><Property Name="ProductId" Type="Edm.Int32" Nullable="false" /><Property Name="PhotoId" Type="Edm.Int32" Nullable="false" /><P
 roperty Name="Photo" Type="Edm.Binary" /></EntityType><EntityType Name="CustomerInfo" m:HasStream="true"><Key><PropertyRef Name="CustomerInfoId" /></Key><Property Name="CustomerInfoId" Type="Edm.Int32" Nullable="false" /><Property Name="Information" Type="Edm.String" /></EntityType><EntityType Name="Computer"><Key><PropertyRef Name="ComputerId" /></Key><Property Name="ComputerId" Type="Edm.Int32" Nullable="false" /><Property Name="Name" Type="Edm.String" /><NavigationProperty Name="ComputerDetail" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer_ComputerDetail" ToRole="ComputerDetail" FromRole="Computer" /></EntityType><EntityType Name="ComputerDetail"><Key><PropertyRef Name="ComputerDetailId" /></Key><Property Name="ComputerDetailId" Type="Edm.Int32" Nullable="false" /><Property Name="Manufacturer" Type="Edm.String" m:FC_TargetPath="SyndicationAuthorEmail" m:FC_ContentKind="text" m:FC_KeepInContent="true" /><Property Name="Model" Type="Edm.String" m:FC_Tar
 getPath="SyndicationAuthorUri" m:FC_ContentKind="text" m:FC_KeepInContent="true" /><Property Name="Serial" Type="Edm.String" /><Property Name="SpecificationsBag" Type="Collection(Edm.String)" Nullable="false" /><Property Name="PurchaseDate" Type="Edm.DateTime" Nullable="false" /><Property Name="Dimensions" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions" /><NavigationProperty Name="Computer" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail_Computer" ToRole="Computer" FromRole="ComputerDetail" /></EntityType><EntityType Name="Driver"><Key><PropertyRef Name="Name" /></Key><Property Name="Name" Type="Edm.String" Nullable="false" /><Property Name="BirthDate" Type="Edm.DateTime" Nullable="false" /><NavigationProperty Name="License" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Driver_License" ToRole="License" FromRole="Driver" /></EntityType><EntityType Name="License"><Key><PropertyRef Name="Name" /></Key><Property 
 Name="Name" Type="Edm.String" Nullable="false" /><Property Name="LicenseNumber" Type="Edm.String" /><Property Name="LicenseClass" Type="Edm.String" m:FC_TargetPath="SyndicationContributorEmail" m:FC_ContentKind="text" m:FC_KeepInContent="false" /><Property Name="Restrictions" Type="Edm.String" m:FC_TargetPath="SyndicationContributorUri" m:FC_ContentKind="text" m:FC_KeepInContent="false" /><Property Name="ExpirationDate" Type="Edm.DateTime" Nullable="false" /><NavigationProperty Name="Driver" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.License_Driver" ToRole="Driver" FromRole="License" /></EntityType><EntityType Name="MappedEntityType"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Int32" Nullable="false" /><Property Name="Href" Type="Edm.String" /><Property Name="Title" Type="Edm.String" /><Property Name="HrefLang" Type="Edm.String" /><Property Name="Type" Type="Edm.String" /><Property Name="Length" Type="Edm.Int32" Nullable="false" /><Proper
 ty Name="BagOfPrimitiveToLinks" Type="Collection(Edm.String)" Nullable="false" /><Property Name="Logo" Type="Edm.Binary" /><Property Name="BagOfDecimals" Type="Collection(Edm.Decimal)" Nullable="false" /><Property Name="BagOfDoubles" Type="Collection(Edm.Double)" Nullable="false" /><Property Name="BagOfSingles" Type="Collection(Edm.Single)" Nullable="false" /><Property Name="BagOfBytes" Type="Collection(Edm.Byte)" Nullable="false" /><Property Name="BagOfInt16s" Type="Collection(Edm.Int16)" Nullable="false" /><Property Name="BagOfInt32s" Type="Collection(Edm.Int32)" Nullable="false" /><Property Name="BagOfInt64s" Type="Collection(Edm.Int64)" Nullable="false" /><Property Name="BagOfGuids" Type="Collection(Edm.Guid)" Nullable="false" /><Property Name="BagOfDateTime" Type="Collection(Edm.DateTime)" Nullable="false" /><Property Name="BagOfComplexToCategories" Type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ComplexToCategory)" Nullable="false" /><Property Name="Comple
 xPhone" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone" m:FC_TargetPath="SyndicationRights" m:FC_ContentKind="text" m:FC_SourcePath="PhoneNumber" m:FC_KeepInContent="true" /><Property Name="ComplexContactDetails" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails" m:FC_TargetPath="SyndicationSummary" m:FC_ContentKind="text" m:FC_SourcePath="WorkPhone/Extension" m:FC_KeepInContent="true" /></EntityType><EntityType Name="Car" m:HasStream="true"><Key><PropertyRef Name="VIN" /></Key><Property Name="Photo" Type="Edm.Stream" Nullable="false" /><Property Name="Video" Type="Edm.Stream" Nullable="false" /><Property Name="VIN" Type="Edm.Int32" Nullable="false" /><Property Name="Description" Type="Edm.String" /></EntityType><EntityType Name="Person"><Key><PropertyRef Name="PersonId" /></Key><Property Name="PersonId" Type="Edm.Int32" Nullable="false" /><Property Name="Name" Type="Edm.String" /><NavigationProperty Name="PersonMetadata" Relationship="Microso
 ft.Test.OData.Services.AstoriaDefaultService.Person_PersonMetadata" ToRole="PersonMetadata" FromRole="Person" /></EntityType><EntityType Name="PersonMetadata"><Key><PropertyRef Name="PersonMetadataId" /></Key><Property Name="PersonMetadataId" Type="Edm.Int32" Nullable="false" /><Property Name="PersonId" Type="Edm.Int32" Nullable="false" /><Property Name="PropertyName" Type="Edm.String" /><Property Name="PropertyValue" Type="Edm.String" /><NavigationProperty Name="Person" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata_Person" ToRole="Person" FromRole="PersonMetadata" /></EntityType><ComplexType Name="ContactDetails"><Property Name="EmailBag" Type="Collection(Edm.String)" Nullable="false" /><Property Name="AlternativeNames" Type="Collection(Edm.String)" Nullable="false" /><Property Name="ContactAlias" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases" /><Property Name="HomePhone" Type="Microsoft.Test.OData.Services.AstoriaDefaultServic
 e.Phone" /><Property Name="WorkPhone" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone" /><Property Name="MobilePhoneBag" Type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" Nullable="false" /></ComplexType><ComplexType Name="AuditInfo"><Property Name="ModifiedDate" Type="Edm.DateTime" Nullable="false" /><Property Name="ModifiedBy" Type="Edm.String" /><Property Name="Concurrency" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo" /></ComplexType><ComplexType Name="ConcurrencyInfo"><Property Name="Token" Type="Edm.String" /><Property Name="QueriedDateTime" Type="Edm.DateTime" /></ComplexType><ComplexType Name="Dimensions"><Property Name="Width" Type="Edm.Decimal" Nullable="false" /><Property Name="Height" Type="Edm.Decimal" Nullable="false" /><Property Name="Depth" Type="Edm.Decimal" Nullable="false" /></ComplexType><ComplexType Name="ComplexToCategory"><Property Name="Term" Type="Edm.String" /><Property Name="Scheme" Ty
 pe="Edm.String" /><Property Name="Label" Type="Edm.String" /></ComplexType><ComplexType Name="Phone"><Property Name="PhoneNumber" Type="Edm.String" /><Property Name="Extension" Type="Edm.String" /></ComplexType><ComplexType Name="Aliases"><Property Name="AlternativeNames" Type="Collection(Edm.String)" Nullable="false" /></ComplexType><EntityType Name="AllSpatialCollectionTypes_Simple" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialCollectionTypes"><Property Name="ManyGeogPoint" Type="Collection(Edm.GeographyPoint)" Nullable="false" SRID="Variable" /><Property Name="ManyGeogLine" Type="Collection(Edm.GeographyLineString)" Nullable="false" SRID="Variable" /><Property Name="ManyGeogPolygon" Type="Collection(Edm.GeographyPolygon)" Nullable="false" SRID="Variable" /><Property Name="ManyGeomPoint" Type="Collection(Edm.GeometryPoint)" Nullable="false" SRID="Variable" /><Property Name="ManyGeomLine" Type="Collection(Edm.GeometryLineString)" Nullable="false" SRID="Va
 riable" /><Property Name="ManyGeomPolygon" Type="Collection(Edm.GeometryPolygon)" Nullable="false" SRID="Variable" /></EntityType><EntityType Name="ProductPageView" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.PageView"><Property Name="ProductId" Type="Edm.Int32" Nullable="false" /><Property Name="ConcurrencyToken" Type="Edm.String" ConcurrencyMode="Fixed" /></EntityType><EntityType Name="BackOrderLine" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine" /><EntityType Name="BackOrderLine2" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.BackOrderLine" /><EntityType Name="DiscontinuedProduct" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.Product"><Property Name="Discontinued" Type="Edm.DateTime" Nullable="false" /><Property Name="ReplacementProductId" Type="Edm.Int32" /><Property Name="DiscontinuedPhone" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone" /><Property Name="ChildConcurrencyToken" Type="Ed
 m.String" ConcurrencyMode="Fixed" /></EntityType><EntityType Name="Contractor" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.Person"><Property Name="ContratorCompanyId" Type="Edm.Int32" Nullable="false" /><Property Name="BillingRate" Type="Edm.Int32" Nullable="false" /><Property Name="TeamContactPersonId" Type="Edm.Int32" Nullable="false" /><Property Name="JobDescription" Type="Edm.String" /></EntityType><EntityType Name="Employee" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.Person"><Property Name="ManagersPersonId" Type="Edm.Int32" Nullable="false" /><Property Name="Salary" Type="Edm.Int32" Nullable="false" /><Property Name="Title" Type="Edm.String" /><NavigationProperty Name="Manager" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee_Manager" ToRole="Manager" FromRole="Employee" /></EntityType><EntityType Name="SpecialEmployee" BaseType="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee"><Property Name="CarsVIN"
  Type="Edm.Int32" Nullable="false" /><Property Name="Bonus" Type="Edm.Int32" Nullable="false" /><Property Name="IsFullyVested" Type="Edm.Boolean" Nullable="false" /><NavigationProperty Name="Car" Relationship="Microsoft.Test.OData.Services.AstoriaDefaultService.SpecialEmployee_Car" ToRole="Car" FromRole="SpecialEmployee" /></EntityType><ComplexType Name="ComplexWithAllPrimitiveTypes"><Property Name="Binary" Type="Edm.Binary" /><Property Name="Boolean" Type="Edm.Boolean" Nullable="false" /><Property Name="Byte" Type="Edm.Byte" Nullable="false" /><Property Name="DateTime" Type="Edm.DateTime" Nullable="false" /><Property Name="Decimal" Type="Edm.Decimal" Nullable="false" /><Property Name="Double" Type="Edm.Double" Nullable="false" /><Property Name="Int16" Type="Edm.Int16" Nullable="false" /><Property Name="Int32" Type="Edm.Int32" Nullable="false" /><Property Name="Int64" Type="Edm.Int64" Nullable="false" /><Property Name="SByte" Type="Edm.SByte" Nullable="false" /><Property Name="Strin
 g" Type="Edm.String" /><Property Name="Single" Type="Edm.Single" Nullable="false" /><Property Name="GeographyPoint" Type="Edm.GeographyPoint" SRID="Variable" /><Property Name="GeometryPoint" Type="Edm.GeometryPoint" SRID="Variable" /></ComplexType><Association Name="Customer_Orders"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" Role="Orders" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="*" /></Association><Association Name="Customer_Logins"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Logins" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="*" /></Association><Association Name="Customer_Husband"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Husband" Multiplicity="0..1" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="C
 ustomer" Multiplicity="*" /></Association><Association Name="Customer_Wife"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Wife" Multiplicity="0..1" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="*" /></Association><Association Name="Customer_Info"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.CustomerInfo" Role="Info" Multiplicity="0..1" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="*" /></Association><Association Name="Login_Customer"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="0..1" /></Association><Association Name="Login_LastLogin"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="*" /><End Type="Microsoft.Test
 .OData.Services.AstoriaDefaultService.LastLogin" Role="LastLogin" Multiplicity="0..1" /></Association><Association Name="Login_SentMessages"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Message" Role="SentMessages" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="*" /></Association><Association Name="Login_ReceivedMessages"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Message" Role="ReceivedMessages" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="*" /></Association><Association Name="Login_Orders"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" Role="Orders" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="*" /></Association><Association Name="RSAToken_Login"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.RSATo
 ken" Role="RSAToken" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="0..1" /></Association><Association Name="PageView_Login"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.PageView" Role="PageView" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="0..1" /></Association><Association Name="LastLogin_Login"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="0..1" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.LastLogin" Role="LastLogin" Multiplicity="*" /></Association><Association Name="Message_Sender"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Message" Role="Message" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Sender" Multiplicity="0..1" /></Association><Association Name="Message_Recipient"><End Type="M
 icrosoft.Test.OData.Services.AstoriaDefaultService.Message" Role="Message" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Recipient" Multiplicity="0..1" /></Association><Association Name="Message_Attachments"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.MessageAttachment" Role="Attachments" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Message" Role="Message" Multiplicity="*" /></Association><Association Name="Order_Customer"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" Role="Order" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" Role="Customer" Multiplicity="0..1" /></Association><Association Name="Order_Login"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" Role="Order" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" Role="Login" Multiplicity="0..1" /
 ></Association><Association Name="OrderLine_Order"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine" Role="OrderLine" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" Role="Order" Multiplicity="0..1" /></Association><Association Name="OrderLine_Product"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="0..1" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine" Role="OrderLine" Multiplicity="*" /></Association><Association Name="Product_RelatedProducts"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="RelatedProducts" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="*" /></Association><Association Name="Product_Detail"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductDetail" Role="Detail" Multiplicity="0..1" /><End Type="Microsof
 t.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="*" /></Association><Association Name="Product_Reviews"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductReview" Role="Reviews" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="*" /></Association><Association Name="Product_Photos"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductPhoto" Role="Photos" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="*" /></Association><Association Name="ProductDetail_Product"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductDetail" Role="ProductDetail" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="0..1" /></Association><Association Name="ProductReview_Product"><End Type="Microsoft.Test.OData.Servic
 es.AstoriaDefaultService.ProductReview" Role="ProductReview" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" Role="Product" Multiplicity="0..1" /></Association><Association Name="Computer_ComputerDetail"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail" Role="ComputerDetail" Multiplicity="0..1" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer" Role="Computer" Multiplicity="*" /></Association><Association Name="ComputerDetail_Computer"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail" Role="ComputerDetail" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer" Role="Computer" Multiplicity="0..1" /></Association><Association Name="Driver_License"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.License" Role="License" Multiplicity="0..1" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Driver" R
 ole="Driver" Multiplicity="*" /></Association><Association Name="License_Driver"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.License" Role="License" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Driver" Role="Driver" Multiplicity="0..1" /></Association><Association Name="Person_PersonMetadata"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata" Role="PersonMetadata" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Person" Role="Person" Multiplicity="*" /></Association><Association Name="PersonMetadata_Person"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata" Role="PersonMetadata" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Person" Role="Person" Multiplicity="0..1" /></Association><Association Name="Employee_Manager"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee" Role="Manager" M
 ultiplicity="0..1" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee" Role="Employee" Multiplicity="*" /></Association><Association Name="SpecialEmployee_Car"><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.SpecialEmployee" Role="SpecialEmployee" Multiplicity="*" /><End Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Car" Role="Car" Multiplicity="0..1" /></Association><EntityContainer Name="DefaultContainer" m:IsDefaultEntityContainer="true"><EntitySet Name="AllGeoTypesSet" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialTypes" /><EntitySet Name="AllGeoCollectionTypesSet" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialCollectionTypes" /><EntitySet Name="Customer" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer" /><EntitySet Name="Login" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Login" /><EntitySet Name="RSAToken" EntityType="Microsoft.T
 est.OData.Services.AstoriaDefaultService.RSAToken" /><EntitySet Name="PageView" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.PageView" /><EntitySet Name="LastLogin" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.LastLogin" /><EntitySet Name="Message" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Message" /><EntitySet Name="MessageAttachment" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.MessageAttachment" /><EntitySet Name="Order" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Order" /><EntitySet Name="OrderLine" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine" /><EntitySet Name="Product" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" /><EntitySet Name="ProductDetail" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductDetail" /><EntitySet Name="ProductReview" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Pr
 oductReview" /><EntitySet Name="ProductPhoto" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductPhoto" /><EntitySet Name="CustomerInfo" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.CustomerInfo" /><EntitySet Name="Computer" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer" /><EntitySet Name="ComputerDetail" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail" /><EntitySet Name="Driver" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Driver" /><EntitySet Name="License" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.License" /><EntitySet Name="MappedEntityType" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.MappedEntityType" /><EntitySet Name="Car" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Car" /><EntitySet Name="Person" EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.Person" /><EntitySet Name="PersonMetadata
 " EntityType="Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata" /><FunctionImport Name="GetPrimitiveString" ReturnType="Edm.String" m:HttpMethod="GET" /><FunctionImport Name="GetSpecificCustomer" ReturnType="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Customer)" EntitySet="Customer" m:HttpMethod="GET"><Parameter Name="Name" Type="Edm.String" /></FunctionImport><FunctionImport Name="GetCustomerCount" ReturnType="Edm.Int32" m:HttpMethod="GET" /><FunctionImport Name="GetArgumentPlusOne" ReturnType="Edm.Int32" m:HttpMethod="GET"><Parameter Name="arg1" Type="Edm.Int32" Nullable="false" /></FunctionImport><FunctionImport Name="EntityProjectionReturnsCollectionOfComplexTypes" ReturnType="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)" m:HttpMethod="GET" /><FunctionImport Name="ResetDataSource" m:HttpMethod="POST" /><FunctionImport Name="InStreamErrorGetCustomer" ReturnType="Collection(Microsoft.Test.OData.Services.Astoria
 DefaultService.Customer)" EntitySet="Customer" m:HttpMethod="GET" /><FunctionImport Name="IncreaseSalaries" IsBindable="true" m:IsAlwaysBindable="true"><Parameter Name="employees" Type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Employee)" /><Parameter Name="n" Type="Edm.Int32" Nullable="false" /></FunctionImport><FunctionImport Name="Sack" IsBindable="true" m:IsAlwaysBindable="true"><Parameter Name="employee" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee" /></FunctionImport><FunctionImport Name="GetComputer" ReturnType="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer" IsBindable="true" EntitySet="Computer" m:IsAlwaysBindable="true"><Parameter Name="computer" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer" /></FunctionImport><FunctionImport Name="ChangeProductDimensions" IsBindable="true" m:IsAlwaysBindable="true"><Parameter Name="product" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Product" /><P
 arameter Name="dimensions" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions" /></FunctionImport><FunctionImport Name="ResetComputerDetailsSpecifications" IsBindable="true" m:IsAlwaysBindable="true"><Parameter Name="computerDetail" Type="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail" /><Parameter Name="specifications" Type="Collection(Edm.String)" Nullable="false" /><Parameter Name="purchaseTime" Type="Edm.DateTime" Nullable="false" /></FunctionImport><AssociationSet Name="Customer_Orders" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Orders"><End Role="Customer" EntitySet="Customer" /><End Role="Orders" EntitySet="Order" /></AssociationSet><AssociationSet Name="Customer_Logins" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Logins"><End Role="Customer" EntitySet="Customer" /><End Role="Logins" EntitySet="Login" /></AssociationSet><AssociationSet Name="Customer_Husband" Association="Micros
 oft.Test.OData.Services.AstoriaDefaultService.Customer_Husband"><End Role="Customer" EntitySet="Customer" /><End Role="Husband" EntitySet="Customer" /></AssociationSet><AssociationSet Name="Customer_Wife" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Wife"><End Role="Customer" EntitySet="Customer" /><End Role="Wife" EntitySet="Customer" /></AssociationSet><AssociationSet Name="Customer_Info" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Customer_Info"><End Role="Customer" EntitySet="Customer" /><End Role="Info" EntitySet="CustomerInfo" /></AssociationSet><AssociationSet Name="Login_Customer" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_Customer"><End Role="Login" EntitySet="Login" /><End Role="Customer" EntitySet="Customer" /></AssociationSet><AssociationSet Name="Login_LastLogin" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_LastLogin"><End Role="Login" EntitySet="Login" /><End Role="L
 astLogin" EntitySet="LastLogin" /></AssociationSet><AssociationSet Name="Login_SentMessages" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_SentMessages"><End Role="Login" EntitySet="Login" /><End Role="SentMessages" EntitySet="Message" /></AssociationSet><AssociationSet Name="Login_ReceivedMessages" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_ReceivedMessages"><End Role="Login" EntitySet="Login" /><End Role="ReceivedMessages" EntitySet="Message" /></AssociationSet><AssociationSet Name="Login_Orders" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Login_Orders"><End Role="Login" EntitySet="Login" /><End Role="Orders" EntitySet="Order" /></AssociationSet><AssociationSet Name="RSAToken_Login" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.RSAToken_Login"><End Role="RSAToken" EntitySet="RSAToken" /><End Role="Login" EntitySet="Login" /></AssociationSet><AssociationSet Name="PageView_Login" Association
 ="Microsoft.Test.OData.Services.AstoriaDefaultService.PageView_Login"><End Role="PageView" EntitySet="PageView" /><End Role="Login" EntitySet="Login" /></AssociationSet><AssociationSet Name="LastLogin_Login" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.LastLogin_Login"><End Role="LastLogin" EntitySet="LastLogin" /><End Role="Login" EntitySet="Login" /></AssociationSet><AssociationSet Name="Message_Sender" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Sender"><End Role="Message" EntitySet="Message" /><End Role="Sender" EntitySet="Login" /></AssociationSet><AssociationSet Name="Message_Recipient" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Recipient"><End Role="Message" EntitySet="Message" /><End Role="Recipient" EntitySet="Login" /></AssociationSet><AssociationSet Name="Message_Attachments" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Message_Attachments"><End Role="Message" EntitySet="Mes
 sage" /><End Role="Attachments" EntitySet="MessageAttachment" /></AssociationSet><AssociationSet Name="Order_Customer" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Order_Customer"><End Role="Order" EntitySet="Order" /><End Role="Customer" EntitySet="Customer" /></AssociationSet><AssociationSet Name="Order_Login" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Order_Login"><End Role="Order" EntitySet="Order" /><End Role="Login" EntitySet="Login" /></AssociationSet><AssociationSet Name="OrderLine_Order" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine_Order"><End Role="OrderLine" EntitySet="OrderLine" /><End Role="Order" EntitySet="Order" /></AssociationSet><AssociationSet Name="OrderLine_Product" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine_Product"><End Role="OrderLine" EntitySet="OrderLine" /><End Role="Product" EntitySet="Product" /></AssociationSet><AssociationSet Name="Product_RelatedPro
 ducts" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_RelatedProducts"><End Role="Product" EntitySet="Product" /><End Role="RelatedProducts" EntitySet="Product" /></AssociationSet><AssociationSet Name="Product_Detail" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Detail"><End Role="Product" EntitySet="Product" /><End Role="Detail" EntitySet="ProductDetail" /></AssociationSet><AssociationSet Name="Product_Reviews" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Reviews"><End Role="Product" EntitySet="Product" /><End Role="Reviews" EntitySet="ProductReview" /></AssociationSet><AssociationSet Name="Product_Photos" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Product_Photos"><End Role="Product" EntitySet="Product" /><End Role="Photos" EntitySet="ProductPhoto" /></AssociationSet><AssociationSet Name="ProductDetail_Product" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Prod
 uctDetail_Product"><End Role="ProductDetail" EntitySet="ProductDetail" /><End Role="Product" EntitySet="Product" /></AssociationSet><AssociationSet Name="ProductReview_Product" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.ProductReview_Product"><End Role="ProductReview" EntitySet="ProductReview" /><End Role="Product" EntitySet="Product" /></AssociationSet><AssociationSet Name="Computer_ComputerDetail" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Computer_ComputerDetail"><End Role="Computer" EntitySet="Computer" /><End Role="ComputerDetail" EntitySet="ComputerDetail" /></AssociationSet><AssociationSet Name="ComputerDetail_Computer" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail_Computer"><End Role="ComputerDetail" EntitySet="ComputerDetail" /><End Role="Computer" EntitySet="Computer" /></AssociationSet><AssociationSet Name="Driver_License" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Driver_L
 icense"><End Role="Driver" EntitySet="Driver" /><End Role="License" EntitySet="License" /></AssociationSet><AssociationSet Name="License_Driver" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.License_Driver"><End Role="License" EntitySet="License" /><End Role="Driver" EntitySet="Driver" /></AssociationSet><AssociationSet Name="Employee_Manager" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Employee_Manager"><End Role="Employee" EntitySet="Person" /><End Role="Manager" EntitySet="Person" /></AssociationSet><AssociationSet Name="SpecialEmployee_Car" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.SpecialEmployee_Car"><End Role="SpecialEmployee" EntitySet="Person" /><End Role="Car" EntitySet="Car" /></AssociationSet><AssociationSet Name="Person_PersonMetadata" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.Person_PersonMetadata"><End Role="Person" EntitySet="Person" /><End Role="PersonMetadata" EntitySet="PersonMet
 adata" /></AssociationSet><AssociationSet Name="PersonMetadata_Person" Association="Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata_Person"><End Role="PersonMetadata" EntitySet="PersonMetadata" /><End Role="Person" EntitySet="Person" /></AssociationSet></EntityContainer></Schema></edmx:DataServices></edmx:Edmx>


[26/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Products.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Products.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Products.java
deleted file mode 100644
index 8381946..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Products.java
+++ /dev/null
@@ -1,39 +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.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Products",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface Products
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Products>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/StoredPIs.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/StoredPIs.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/StoredPIs.java
deleted file mode 100644
index 0f57df9..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/StoredPIs.java
+++ /dev/null
@@ -1,39 +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.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "StoredPIs",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface StoredPIs
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPICollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<StoredPIs>,
-    AbstractEntitySet<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> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/SubscriptionTemplates.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/SubscriptionTemplates.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/SubscriptionTemplates.java
deleted file mode 100644
index ca5afce..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/SubscriptionTemplates.java
+++ /dev/null
@@ -1,39 +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.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "SubscriptionTemplates",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface SubscriptionTemplates
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Subscription, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<SubscriptionTemplates>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Subscription, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/package-info.java
deleted file mode 100644
index f8ea3ce..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/package-info.java
+++ /dev/null
@@ -1,20 +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;
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccessLevel.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccessLevel.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccessLevel.java
deleted file mode 100644
index 5d527ba..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccessLevel.java
+++ /dev/null
@@ -1,46 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EnumType(name = "AccessLevel",
-    underlyingType = EdmPrimitiveTypeKind.Int32,
-    isFlags = true)
-public enum AccessLevel {
-  None(0),
-  Read(1),
-  Write(2),
-  Execute(4),
-  ReadWrite(3);
-
-  private java.lang.Integer value;
-
-  public java.lang.Integer getValue() {
-    return value;
-  }
-
-  private AccessLevel(final java.lang.Integer value) {
-    this.value = value;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
deleted file mode 100644
index ea640be..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
+++ /dev/null
@@ -1,226 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.OperationType;
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Account",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Account
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Account>, org.apache.olingo.ext.proxy.api.StructuredQuery<Account> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AccountID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getAccountID();
-
-  void setAccountID(java.lang.Integer _accountID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Country",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCountry();
-
-  void setCountry(java.lang.String _country);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AccountInfo",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfo
-      getAccountInfo();
-
-      void
-      setAccountInfo(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfo _accountInfo);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "MyGiftCard",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.GiftCard",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "",
-      targetEntitySet = "",
-      containsTarget = true)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCard
-      getMyGiftCard();
-
-      void
-      setMyGiftCard(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCard _myGiftCard);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "AvailableSubscriptionTemplatess",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "SubscriptionTemplates",
-      containsTarget = false)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection
-      getAvailableSubscriptionTemplatess();
-
-      void
-      setAvailableSubscriptionTemplatess(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection _availableSubscriptionTemplatess);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "GetDefaultPI",
-        type = OperationType.FUNCTION,
-        isComposable = false,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument.class,
-        returnType = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
-        org.apache.olingo.ext.proxy.api.StructuredInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument>
-        getDefaultPI(
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "GetAccountInfo",
-        type = OperationType.FUNCTION,
-        isComposable = true,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfo.class,
-        returnType = "Microsoft.Test.OData.Services.ODataWCFService.AccountInfo")
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfoComposableInvoker
-        getAccountInfo(
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "RefreshDefaultPI",
-        type = OperationType.ACTION,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument.class,
-        returnType = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
-        org.apache.olingo.ext.proxy.api.StructuredInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument>
-        refreshDefaultPI(
-            @Parameter(name = "newDate", type = "Edm.DateTimeOffset", nullable = true) java.sql.Timestamp newDate
-        );
-
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "AccountID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getAccountIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Country",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getCountryAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "AccountInfo",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.AccountInfo")
-    org.apache.olingo.ext.proxy.api.Annotatable getAccountInfoAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "MyGiftCard",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.GiftCard")
-    org.apache.olingo.ext.proxy.api.Annotatable getMyGiftCardAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "MyPaymentInstruments",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
-    org.apache.olingo.ext.proxy.api.Annotatable getMyPaymentInstrumentsAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ActiveSubscriptions",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription")
-    org.apache.olingo.ext.proxy.api.Annotatable getActiveSubscriptionsAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(
-        name = "AvailableSubscriptionTemplatess",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription")
-    org.apache.olingo.ext.proxy.api.Annotatable getAvailableSubscriptionTemplatessAnnotations();
-  }
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "MyPaymentInstruments",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "SubscriptionTemplates",
-      containsTarget = true)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account.MyPaymentInstruments
-      getMyPaymentInstruments();
-
-      void
-      setMyPaymentInstruments(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account.MyPaymentInstruments _myPaymentInstruments);
-
-  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "MyPaymentInstruments", contained = true)
-  interface MyPaymentInstruments
-      extends
-      org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrumentCollection>,
-      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<MyPaymentInstruments>,
-  AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrumentCollection> {
-    // No additional methods needed for now.
-  }
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ActiveSubscriptions",
-      type = "java.lang.Integer",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "SubscriptionTemplates",
-      containsTarget = true)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account.ActiveSubscriptions
-      getActiveSubscriptions();
-
-      void
-      setActiveSubscriptions(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account.ActiveSubscriptions _activeSubscriptions);
-
-  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "ActiveSubscriptions", contained = true)
-  interface ActiveSubscriptions
-      extends
-      org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Subscription, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection>,
-      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ActiveSubscriptions>,
-  AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Subscription, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection> {
-    // No additional methods needed for now.
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java
deleted file mode 100644
index 2fcdd6f..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface AccountCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollectionComposableInvoker.java
deleted file mode 100644
index 64928d0..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface AccountCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountCollection.Operations> {
-
-  @Override
-  AccountCollectionComposableInvoker select(String... select);
-
-  @Override
-  AccountCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountComposableInvoker.java
deleted file mode 100644
index 6aa8ebd..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountComposableInvoker.java
+++ /dev/null
@@ -1,156 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-public interface AccountComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Account, Account.Operations>
-{
-
-  @Override
-  AccountComposableInvoker select(String... select);
-
-  @Override
-  AccountComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AccountID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getAccountID();
-
-  void setAccountID(java.lang.Integer _accountID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Country",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCountry();
-
-  void setCountry(java.lang.String _country);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AccountInfo",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfo
-      getAccountInfo();
-
-      void
-      setAccountInfo(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfo _accountInfo);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "MyGiftCard",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.GiftCard",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "",
-      targetEntitySet = "",
-      containsTarget = true)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCard
-      getMyGiftCard();
-
-      void
-      setMyGiftCard(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCard _myGiftCard);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "AvailableSubscriptionTemplatess",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "SubscriptionTemplates",
-      containsTarget = false)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection
-      getAvailableSubscriptionTemplatess();
-
-      void
-      setAvailableSubscriptionTemplatess(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection _availableSubscriptionTemplatess);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "MyPaymentInstruments",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "SubscriptionTemplates",
-      containsTarget = true)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account.MyPaymentInstruments
-      getMyPaymentInstruments();
-
-      void
-      setMyPaymentInstruments(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account.MyPaymentInstruments _myPaymentInstruments);
-
-  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "MyPaymentInstruments", contained = true)
-  interface MyPaymentInstruments
-      extends
-      org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrumentCollection>,
-      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<MyPaymentInstruments>,
-  AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrumentCollection> {
-    // No additional methods needed for now.
-  }
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ActiveSubscriptions",
-      type = "java.lang.Integer",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "SubscriptionTemplates",
-      containsTarget = true)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account.ActiveSubscriptions
-      getActiveSubscriptions();
-
-      void
-      setActiveSubscriptions(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account.ActiveSubscriptions _activeSubscriptions);
-
-  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "ActiveSubscriptions", contained = true)
-  interface ActiveSubscriptions
-      extends
-      org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Subscription, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection>,
-      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ActiveSubscriptions>,
-  AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Subscription, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection> {
-    // No additional methods needed for now.
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.java
deleted file mode 100644
index 700d31e..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.java
+++ /dev/null
@@ -1,84 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-import org.apache.olingo.ext.proxy.api.Annotatable;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "AccountInfo",
-    isOpenType = true,
-    isAbstract = false)
-public interface AccountInfo
-    extends org.apache.olingo.ext.proxy.api.ComplexType<AccountInfo>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<AccountInfo>, AbstractOpenType {
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFirstName();
-
-  void setFirstName(java.lang.String _firstName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getLastName();
-
-  void setLastName(java.lang.String _lastName);
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
-        type = "Edm.String")
-    Annotatable getFirstNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
-        type = "Edm.String")
-    Annotatable getLastNameAnnotations();
-
-  }
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    //
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollection.java
deleted file mode 100644
index 2f19ddb..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface AccountInfoCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfoCollection>,
-org.apache.olingo.ext.proxy.api.ComplexCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfo, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfoCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfoCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollectionComposableInvoker.java
deleted file mode 100644
index 895d8e8..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface AccountInfoCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfoCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfoCollection.Operations> {
-
-  @Override
-  AccountInfoCollectionComposableInvoker select(String... select);
-
-  @Override
-  AccountInfoCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoComposableInvoker.java
deleted file mode 100644
index 22715ad..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoComposableInvoker.java
+++ /dev/null
@@ -1,66 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface AccountInfoComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<AccountInfo, AccountInfo.Operations>
-    , AbstractOpenType {
-
-  @Override
-  AccountInfoComposableInvoker select(String... select);
-
-  @Override
-  AccountInfoComposableInvoker expand(String... expand);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFirstName();
-
-  void setFirstName(java.lang.String _firstName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getLastName();
-
-  void setLastName(java.lang.String _lastName);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.java
deleted file mode 100644
index 6928f01..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.java
+++ /dev/null
@@ -1,102 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.Annotatable;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "Address",
-    isOpenType = false,
-    isAbstract = false)
-public interface Address
-    extends org.apache.olingo.ext.proxy.api.ComplexType<Address>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<Address> {
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getStreet();
-
-  void setStreet(java.lang.String _street);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCity();
-
-  void setCity(java.lang.String _city);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPostalCode();
-
-  void setPostalCode(java.lang.String _postalCode);
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Street",
-        type = "Edm.String")
-    Annotatable getStreetAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "City",
-        type = "Edm.String")
-    Annotatable getCityAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PostalCode",
-        type = "Edm.String")
-    Annotatable getPostalCodeAnnotations();
-
-  }
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollection.java
deleted file mode 100644
index 8ab50b3..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface AddressCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AddressCollection>,
-org.apache.olingo.ext.proxy.api.ComplexCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AddressCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AddressCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollectionComposableInvoker.java
deleted file mode 100644
index 2235721..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface AddressCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AddressCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AddressCollection.Operations> {
-
-  @Override
-  AddressCollectionComposableInvoker select(String... select);
-
-  @Override
-  AddressCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressComposableInvoker.java
deleted file mode 100644
index 7df96e8..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressComposableInvoker.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface AddressComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Address, Address.Operations>
-{
-
-  @Override
-  AddressComposableInvoker select(String... select);
-
-  @Override
-  AddressComposableInvoker expand(String... expand);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getStreet();
-
-  void setStreet(java.lang.String _street);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCity();
-
-  void setCity(java.lang.String _city);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPostalCode();
-
-  void setPostalCode(java.lang.String _postalCode);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
deleted file mode 100644
index 1bf79ed..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
+++ /dev/null
@@ -1,105 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Asset",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Asset
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Asset>, org.apache.olingo.ext.proxy.api.StructuredQuery<Asset> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AssetID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getAssetID();
-
-  void setAssetID(java.lang.Integer _assetID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Number",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getNumber();
-
-  void setNumber(java.lang.Integer _number);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "AssetID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getAssetIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Number",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getNumberAnnotations();
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java
deleted file mode 100644
index 9941a2c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface AssetCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AssetCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Asset, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AssetCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AssetCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollectionComposableInvoker.java
deleted file mode 100644
index bc5e8c7..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface AssetCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AssetCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AssetCollection.Operations> {
-
-  @Override
-  AssetCollectionComposableInvoker select(String... select);
-
-  @Override
-  AssetCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetComposableInvoker.java
deleted file mode 100644
index 0a61cd2..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetComposableInvoker.java
+++ /dev/null
@@ -1,82 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface AssetComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Asset, Asset.Operations>
-{
-
-  @Override
-  AssetComposableInvoker select(String... select);
-
-  @Override
-  AssetComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AssetID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getAssetID();
-
-  void setAssetID(java.lang.Integer _assetID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Number",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getNumber();
-
-  void setNumber(java.lang.Integer _number);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
deleted file mode 100644
index 5bdb8f4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
+++ /dev/null
@@ -1,86 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Club",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Club
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Club>, org.apache.olingo.ext.proxy.api.StructuredQuery<Club> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ClubID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getClubID();
-
-  void setClubID(java.lang.Integer _clubID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ClubID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getClubIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java
deleted file mode 100644
index 5d7c7e1..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface ClubCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ClubCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Club, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ClubCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ClubCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollectionComposableInvoker.java
deleted file mode 100644
index 5199212..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface ClubCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ClubCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ClubCollection.Operations> {
-
-  @Override
-  ClubCollectionComposableInvoker select(String... select);
-
-  @Override
-  ClubCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubComposableInvoker.java
deleted file mode 100644
index ee6852f..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubComposableInvoker.java
+++ /dev/null
@@ -1,67 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface ClubComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Club, Club.Operations>
-{
-
-  @Override
-  ClubComposableInvoker select(String... select);
-
-  @Override
-  ClubComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ClubID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getClubID();
-
-  void setClubID(java.lang.Integer _clubID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Color.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Color.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Color.java
deleted file mode 100644
index 89276bc..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Color.java
+++ /dev/null
@@ -1,44 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EnumType(name = "Color",
-    underlyingType = EdmPrimitiveTypeKind.Int32,
-    isFlags = false)
-public enum Color {
-  Red(1),
-  Green(2),
-  Blue(4);
-
-  private java.lang.Integer value;
-
-  public java.lang.Integer getValue() {
-    return value;
-  }
-
-  private Color(final java.lang.Integer value) {
-    this.value = value;
-  }
-}


[37/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/InMemoryEntities.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/InMemoryEntities.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/InMemoryEntities.java
new file mode 100644
index 0000000..cbe45ed
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/InMemoryEntities.java
@@ -0,0 +1,226 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.io.InputStream;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import java.io.Serializable;
+
+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.OperationType;
+import org.apache.olingo.ext.proxy.api.PersistenceManager;
+import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnion;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonComposableInvoker;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .ProductCollectionComposableInvoker;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityContainer(name = "InMemoryEntities",
+    namespace = "Microsoft.Test.OData.Services.ODataWCFService")
+public interface InMemoryEntities extends PersistenceManager {
+
+  Accounts getAccounts();
+
+  StoredPIs getStoredPIs();
+
+  Customers getCustomers();
+
+  Products getProducts();
+
+  OrderDetails getOrderDetails();
+
+  Departments getDepartments();
+
+  Employees getEmployees();
+
+  Orders getOrders();
+
+  People getPeople();
+
+  SubscriptionTemplates getSubscriptionTemplates();
+
+  ProductReviews getProductReviews();
+
+  ProductDetails getProductDetails();
+
+  @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+      name = "PublicCompany",
+      container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+  Company
+      getPublicCompany();
+
+  @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+      name = "DefaultStoredPI",
+      container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+  StoredPI
+      getDefaultStoredPI();
+
+  @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+      name = "VipCustomer",
+      container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+  Customer
+      getVipCustomer();
+
+  @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+      name = "Company",
+      container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+  Company getCompany();
+
+  @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+      name = "Boss",
+      container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+  Person getBoss();
+
+  @org.apache.olingo.ext.proxy.api.annotations.Singleton(
+      name = "LabourUnion",
+      container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+  LabourUnion
+      getLabourUnion();
+
+  Operations operations();
+
+  public interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "GetBossEmails",
+        type = OperationType.FUNCTION,
+        isComposable = false,
+        referenceType = org.apache.olingo.ext.proxy.api.PrimitiveCollection.class,
+        returnType = "Collection(Edm.String)")
+        org.apache.olingo.ext.proxy.api.PrimitiveCollectionInvoker<org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String>>
+        getBossEmails(
+            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "start", type = "Edm.Int32", nullable = false) java.lang.Integer start,
+            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "count", type = "Edm.Int32", nullable = false) java.lang.Integer count
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetPerson2",
+        type = OperationType.FUNCTION,
+        isComposable = true,
+        referenceType = Person.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+    PersonComposableInvoker
+        getPerson2(
+            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "city", type = "Edm.String", nullable = false) java.lang.String city
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetDefaultColor",
+        type = OperationType.FUNCTION,
+        isComposable = true,
+        referenceType = Color.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Color")
+        org.apache.olingo.ext.proxy.api.Invoker<Color>
+        getDefaultColor(
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetPerson",
+        type = OperationType.FUNCTION,
+        isComposable = true,
+        referenceType = Person.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+    PersonComposableInvoker
+        getPerson(
+            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "address",
+                type = "Microsoft.Test.OData.Services.ODataWCFService.Address", nullable = false) Address address
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "GetProductsByAccessLevel",
+        type = OperationType.FUNCTION,
+        isComposable = false,
+        referenceType = org.apache.olingo.ext.proxy.api.PrimitiveCollection.class,
+        returnType = "Collection(Edm.String)")
+        org.apache.olingo.ext.proxy.api.PrimitiveCollectionInvoker<org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String>>
+        getProductsByAccessLevel(
+            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "accessLevel",
+                type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", nullable = false) AccessLevel accessLevel
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetAllProducts",
+        type = OperationType.FUNCTION,
+        isComposable = true,
+        referenceType = ProductCollection.class,
+        returnType = "Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)")
+    ProductCollectionComposableInvoker
+        getAllProducts(
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "ResetBossAddress",
+        type = OperationType.ACTION,
+        referenceType = Address.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+        org.apache.olingo.ext.proxy.api.StructuredInvoker<Address>
+        resetBossAddress(
+            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "address",
+                type = "Microsoft.Test.OData.Services.ODataWCFService.Address", nullable = false) Address address
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "ResetDataSource",
+        type = OperationType.ACTION)
+    org.apache.olingo.ext.proxy.api.Invoker<Void> resetDataSource(
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "Discount",
+        type = OperationType.ACTION)
+    org.apache.olingo.ext.proxy.api.Invoker<Void> discount(
+        @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "percentage", type = "Edm.Int32",
+            nullable = false) java.lang.Integer percentage
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "ResetBossEmail",
+        type = OperationType.ACTION,
+        referenceType = org.apache.olingo.ext.proxy.api.PrimitiveCollection.class,
+        returnType = "Collection(Edm.String)")
+        org.apache.olingo.ext.proxy.api.PrimitiveCollectionInvoker<org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String>>
+        resetBossEmail(
+            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "emails", type = "Collection(Edm.String)",
+                nullable = false) org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> emails
+        );
+
+  }
+
+  <NE extends EntityType<?>> NE newEntityInstance(Class<NE> ref);
+
+  <T extends EntityType<?>, NEC extends EntityCollection<T, ?, ?>> NEC newEntityCollection(Class<NEC> ref);
+
+  <NE extends ComplexType<?>> NE newComplexInstance(Class<NE> ref);
+
+  <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/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/OrderDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/OrderDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/OrderDetails.java
new file mode 100644
index 0000000..c150e3b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/OrderDetails.java
@@ -0,0 +1,43 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .OrderDetailCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailKey;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "OrderDetails",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface OrderDetails
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<OrderDetail, OrderDetailCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<OrderDetails>,
+    AbstractEntitySet<OrderDetail, OrderDetailKey, OrderDetailCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Orders.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Orders.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Orders.java
new file mode 100644
index 0000000..7334de6
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Orders.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Orders",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface Orders
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Order, OrderCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Orders>,
+    AbstractEntitySet<Order, java.lang.Integer, OrderCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/People.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/People.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/People.java
new file mode 100644
index 0000000..4b2a35a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/People.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "People",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface People
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Person, PersonCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<People>,
+    AbstractEntitySet<Person, java.lang.Integer, PersonCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/ProductDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/ProductDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/ProductDetails.java
new file mode 100644
index 0000000..b70fd7b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/ProductDetails.java
@@ -0,0 +1,43 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetail;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .ProductDetailCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailKey;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "ProductDetails",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface ProductDetails
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<ProductDetail, ProductDetailCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductDetails>,
+    AbstractEntitySet<ProductDetail, ProductDetailKey, ProductDetailCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/ProductReviews.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/ProductReviews.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/ProductReviews.java
new file mode 100644
index 0000000..04bb395
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/ProductReviews.java
@@ -0,0 +1,43 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReview;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .ProductReviewCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewKey;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "ProductReviews",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface ProductReviews
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<ProductReview, ProductReviewCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductReviews>,
+    AbstractEntitySet<ProductReview, ProductReviewKey, ProductReviewCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Products.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Products.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Products.java
new file mode 100644
index 0000000..bc1f21c
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Products.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Products",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface Products
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Product, ProductCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Products>,
+    AbstractEntitySet<Product, java.lang.Integer, ProductCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/StoredPIs.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/StoredPIs.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/StoredPIs.java
new file mode 100644
index 0000000..acf5a88
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/StoredPIs.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPICollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "StoredPIs",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface StoredPIs
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<StoredPI, StoredPICollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<StoredPIs>,
+    AbstractEntitySet<StoredPI, java.lang.Integer, StoredPICollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/SubscriptionTemplates.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/SubscriptionTemplates.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/SubscriptionTemplates.java
new file mode 100644
index 0000000..b912850
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/SubscriptionTemplates.java
@@ -0,0 +1,42 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Subscription;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .SubscriptionCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "SubscriptionTemplates",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface SubscriptionTemplates
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Subscription, SubscriptionCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<SubscriptionTemplates>,
+    AbstractEntitySet<Subscription, java.lang.Integer, SubscriptionCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/package-info.java
new file mode 100644
index 0000000..5faa3a5
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccessLevel.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccessLevel.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccessLevel.java
new file mode 100644
index 0000000..f41b243
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccessLevel.java
@@ -0,0 +1,46 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EnumType(name = "AccessLevel",
+    underlyingType = EdmPrimitiveTypeKind.Int32,
+    isFlags = true)
+public enum AccessLevel {
+  None(0),
+  Read(1),
+  Write(2),
+  Execute(4),
+  ReadWrite(3);
+
+  private java.lang.Integer value;
+
+  public java.lang.Integer getValue() {
+    return value;
+  }
+
+  private AccessLevel(final java.lang.Integer value) {
+    this.value = value;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
new file mode 100644
index 0000000..2487465
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
@@ -0,0 +1,226 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Account",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Account
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Account>, org.apache.olingo.ext.proxy.api.StructuredQuery<Account> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AccountID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getAccountID();
+
+  void setAccountID(java.lang.Integer _accountID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Country",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCountry();
+
+  void setCountry(java.lang.String _country);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AccountInfo",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  AccountInfo
+      getAccountInfo();
+
+      void
+      setAccountInfo(
+          AccountInfo _accountInfo);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "MyGiftCard",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.GiftCard",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "",
+      targetEntitySet = "",
+      containsTarget = true)
+  GiftCard
+      getMyGiftCard();
+
+      void
+      setMyGiftCard(
+          GiftCard _myGiftCard);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "AvailableSubscriptionTemplatess",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "SubscriptionTemplates",
+      containsTarget = false)
+  SubscriptionCollection
+      getAvailableSubscriptionTemplatess();
+
+      void
+      setAvailableSubscriptionTemplatess(
+          SubscriptionCollection _availableSubscriptionTemplatess);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetDefaultPI",
+        type = OperationType.FUNCTION,
+        isComposable = false,
+        referenceType = PaymentInstrument.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
+        org.apache.olingo.ext.proxy.api.StructuredInvoker<PaymentInstrument>
+        getDefaultPI(
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetAccountInfo",
+        type = OperationType.FUNCTION,
+        isComposable = true,
+        referenceType = AccountInfo.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.AccountInfo")
+    AccountInfoComposableInvoker
+        getAccountInfo(
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "RefreshDefaultPI",
+        type = OperationType.ACTION,
+        referenceType = PaymentInstrument.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
+        org.apache.olingo.ext.proxy.api.StructuredInvoker<PaymentInstrument>
+        refreshDefaultPI(
+            @Parameter(name = "newDate", type = "Edm.DateTimeOffset", nullable = true) java.sql.Timestamp newDate
+        );
+
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "AccountID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getAccountIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Country",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getCountryAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "AccountInfo",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.AccountInfo")
+    org.apache.olingo.ext.proxy.api.Annotatable getAccountInfoAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "MyGiftCard",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.GiftCard")
+    org.apache.olingo.ext.proxy.api.Annotatable getMyGiftCardAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "MyPaymentInstruments",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
+    org.apache.olingo.ext.proxy.api.Annotatable getMyPaymentInstrumentsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ActiveSubscriptions",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription")
+    org.apache.olingo.ext.proxy.api.Annotatable getActiveSubscriptionsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(
+        name = "AvailableSubscriptionTemplatess",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription")
+    org.apache.olingo.ext.proxy.api.Annotatable getAvailableSubscriptionTemplatessAnnotations();
+  }
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "MyPaymentInstruments",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "SubscriptionTemplates",
+      containsTarget = true)
+      Account.MyPaymentInstruments
+      getMyPaymentInstruments();
+
+      void
+      setMyPaymentInstruments(
+          Account.MyPaymentInstruments _myPaymentInstruments);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "MyPaymentInstruments", contained = true)
+  interface MyPaymentInstruments
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<PaymentInstrument, PaymentInstrumentCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<MyPaymentInstruments>,
+  AbstractEntitySet<PaymentInstrument, java.lang.Integer, PaymentInstrumentCollection> {
+    // No additional methods needed for now.
+  }
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ActiveSubscriptions",
+      type = "java.lang.Integer",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "SubscriptionTemplates",
+      containsTarget = true)
+      Account.ActiveSubscriptions
+      getActiveSubscriptions();
+
+      void
+      setActiveSubscriptions(
+          Account.ActiveSubscriptions _activeSubscriptions);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "ActiveSubscriptions", contained = true)
+  interface ActiveSubscriptions
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<Subscription, SubscriptionCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ActiveSubscriptions>,
+  AbstractEntitySet<Subscription, java.lang.Integer, SubscriptionCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java
new file mode 100644
index 0000000..875ee01
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface AccountCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<AccountCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Account, AccountCollection, AccountCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollectionComposableInvoker.java
new file mode 100644
index 0000000..fd966bf
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface AccountCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<AccountCollection, AccountCollection.Operations> {
+
+  @Override
+  AccountCollectionComposableInvoker select(String... select);
+
+  @Override
+  AccountCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountComposableInvoker.java
new file mode 100644
index 0000000..1792bec
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountComposableInvoker.java
@@ -0,0 +1,156 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+public interface AccountComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Account, Account.Operations>
+{
+
+  @Override
+  AccountComposableInvoker select(String... select);
+
+  @Override
+  AccountComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AccountID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getAccountID();
+
+  void setAccountID(java.lang.Integer _accountID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Country",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCountry();
+
+  void setCountry(java.lang.String _country);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AccountInfo",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  AccountInfo
+      getAccountInfo();
+
+      void
+      setAccountInfo(
+          AccountInfo _accountInfo);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "MyGiftCard",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.GiftCard",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "",
+      targetEntitySet = "",
+      containsTarget = true)
+  GiftCard
+      getMyGiftCard();
+
+      void
+      setMyGiftCard(
+          GiftCard _myGiftCard);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "AvailableSubscriptionTemplatess",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "SubscriptionTemplates",
+      containsTarget = false)
+  SubscriptionCollection
+      getAvailableSubscriptionTemplatess();
+
+      void
+      setAvailableSubscriptionTemplatess(
+          SubscriptionCollection _availableSubscriptionTemplatess);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "MyPaymentInstruments",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "SubscriptionTemplates",
+      containsTarget = true)
+      Account.MyPaymentInstruments
+      getMyPaymentInstruments();
+
+      void
+      setMyPaymentInstruments(
+          Account.MyPaymentInstruments _myPaymentInstruments);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "MyPaymentInstruments", contained = true)
+  interface MyPaymentInstruments
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<PaymentInstrument, PaymentInstrumentCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<MyPaymentInstruments>,
+  AbstractEntitySet<PaymentInstrument, java.lang.Integer, PaymentInstrumentCollection> {
+    // No additional methods needed for now.
+  }
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ActiveSubscriptions",
+      type = "java.lang.Integer",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "SubscriptionTemplates",
+      containsTarget = true)
+      Account.ActiveSubscriptions
+      getActiveSubscriptions();
+
+      void
+      setActiveSubscriptions(
+          Account.ActiveSubscriptions _activeSubscriptions);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "ActiveSubscriptions", contained = true)
+  interface ActiveSubscriptions
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<Subscription, SubscriptionCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ActiveSubscriptions>,
+  AbstractEntitySet<Subscription, java.lang.Integer, SubscriptionCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.java
new file mode 100644
index 0000000..3ac9a0a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.java
@@ -0,0 +1,84 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.Annotatable;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "AccountInfo",
+    isOpenType = true,
+    isAbstract = false)
+public interface AccountInfo
+    extends org.apache.olingo.ext.proxy.api.ComplexType<AccountInfo>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<AccountInfo>, AbstractOpenType {
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFirstName();
+
+  void setFirstName(java.lang.String _firstName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getLastName();
+
+  void setLastName(java.lang.String _lastName);
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
+        type = "Edm.String")
+    Annotatable getFirstNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
+        type = "Edm.String")
+    Annotatable getLastNameAnnotations();
+
+  }
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    //
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollection.java
new file mode 100644
index 0000000..940018e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface AccountInfoCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<AccountInfoCollection>,
+org.apache.olingo.ext.proxy.api.ComplexCollection<AccountInfo, AccountInfoCollection, AccountInfoCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollectionComposableInvoker.java
new file mode 100644
index 0000000..54e8b00
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface AccountInfoCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<AccountInfoCollection, AccountInfoCollection.Operations> {
+
+  @Override
+  AccountInfoCollectionComposableInvoker select(String... select);
+
+  @Override
+  AccountInfoCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoComposableInvoker.java
new file mode 100644
index 0000000..85fb42d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfoComposableInvoker.java
@@ -0,0 +1,66 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface AccountInfoComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<AccountInfo, AccountInfo.Operations>
+    , AbstractOpenType {
+
+  @Override
+  AccountInfoComposableInvoker select(String... select);
+
+  @Override
+  AccountInfoComposableInvoker expand(String... expand);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFirstName();
+
+  void setFirstName(java.lang.String _firstName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getLastName();
+
+  void setLastName(java.lang.String _lastName);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.java
new file mode 100644
index 0000000..7942c93
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.java
@@ -0,0 +1,102 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.Annotatable;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "Address",
+    isOpenType = false,
+    isAbstract = false)
+public interface Address
+    extends org.apache.olingo.ext.proxy.api.ComplexType<Address>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<Address> {
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStreet();
+
+  void setStreet(java.lang.String _street);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCity();
+
+  void setCity(java.lang.String _city);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPostalCode();
+
+  void setPostalCode(java.lang.String _postalCode);
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Street",
+        type = "Edm.String")
+    Annotatable getStreetAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "City",
+        type = "Edm.String")
+    Annotatable getCityAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PostalCode",
+        type = "Edm.String")
+    Annotatable getPostalCodeAnnotations();
+
+  }
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollection.java
new file mode 100644
index 0000000..19e3b97
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface AddressCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<AddressCollection>,
+org.apache.olingo.ext.proxy.api.ComplexCollection<Address, AddressCollection, AddressCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollectionComposableInvoker.java
new file mode 100644
index 0000000..2c69252
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface AddressCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<AddressCollection, AddressCollection.Operations> {
+
+  @Override
+  AddressCollectionComposableInvoker select(String... select);
+
+  @Override
+  AddressCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressComposableInvoker.java
new file mode 100644
index 0000000..8f91d37
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AddressComposableInvoker.java
@@ -0,0 +1,78 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface AddressComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Address, Address.Operations>
+{
+
+  @Override
+  AddressComposableInvoker select(String... select);
+
+  @Override
+  AddressComposableInvoker expand(String... expand);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStreet();
+
+  void setStreet(java.lang.String _street);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCity();
+
+  void setCity(java.lang.String _city);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPostalCode();
+
+  void setPostalCode(java.lang.String _postalCode);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
new file mode 100644
index 0000000..2971cfd
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
@@ -0,0 +1,105 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Asset",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Asset
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Asset>, org.apache.olingo.ext.proxy.api.StructuredQuery<Asset> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AssetID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getAssetID();
+
+  void setAssetID(java.lang.Integer _assetID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Number",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getNumber();
+
+  void setNumber(java.lang.Integer _number);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "AssetID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getAssetIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Number",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getNumberAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java
new file mode 100644
index 0000000..5a12aec
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface AssetCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<AssetCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Asset, AssetCollection, AssetCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollectionComposableInvoker.java
new file mode 100644
index 0000000..e34a0bc
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface AssetCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<AssetCollection, AssetCollection.Operations> {
+
+  @Override
+  AssetCollectionComposableInvoker select(String... select);
+
+  @Override
+  AssetCollectionComposableInvoker expand(String... expand);
+}


[45/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/AuthBatchTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/AuthBatchTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/AuthBatchTestITCase.java
new file mode 100644
index 0000000..9103818
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/AuthBatchTestITCase.java
@@ -0,0 +1,119 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+
+import java.net.URI;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.communication.request.batch.BatchManager;
+import org.apache.olingo.client.api.communication.request.batch.ODataBatchRequest;
+import org.apache.olingo.client.api.communication.request.batch.ODataChangeset;
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
+import org.apache.olingo.client.api.communication.request.cud.UpdateType;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.response.ODataBatchResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.http.HttpClientException;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.client.core.ODataClientFactory;
+import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.commons.api.http.HttpHeader;
+import org.junit.Test;
+
+public class AuthBatchTestITCase extends AbstractTestITCase {
+
+  private final static ContentType ACCEPT = ContentType.APPLICATION_OCTET_STREAM;
+
+  @Test
+  public void clean() throws EdmPrimitiveTypeException {
+    final ODataClient authclient = ODataClientFactory.getClient();
+    batchRequest(authclient, testStaticServiceRootURL);
+  }
+
+  @Test
+  public void authorized() throws EdmPrimitiveTypeException {
+    final ODataClient authclient = ODataClientFactory.getClient();
+    authclient.getConfiguration().setHttpClientFactory(new BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
+    batchRequest(authclient, testAuthServiceRootURL);
+  }
+
+  @Test(expected = HttpClientException.class)
+  public void unauthorized() throws EdmPrimitiveTypeException {
+    final ODataClient unauthclient = ODataClientFactory.getClient();
+    unauthclient.getConfiguration().setHttpClientFactory(new BasicAuthHttpClientFactory("not_auth", "not_auth"));
+    batchRequest(unauthclient, testAuthServiceRootURL);
+  }
+
+  private void batchRequest(final ODataClient client, final String baseURL) throws EdmPrimitiveTypeException {
+    // create your request
+    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(baseURL);
+    request.setAccept(ACCEPT.toContentTypeString());
+    request.addCustomHeader("User-Agent", "Apache Olingo OData Client");
+    request.addCustomHeader(HttpHeader.ACCEPT_CHARSET, "UTF-8");
+
+    final BatchManager streamManager = request.payloadManager();
+
+    // -------------------------------------------
+    // Add retrieve item
+    // -------------------------------------------
+    // prepare URI
+    URIBuilder targetURI = client.newURIBuilder(baseURL);
+    targetURI.appendEntitySetSegment("Customers").appendKeySegment(1);
+
+    // create new request
+    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+    queryReq.setFormat(ContentType.JSON);
+
+    streamManager.addRequest(queryReq);
+    // -------------------------------------------
+
+    // -------------------------------------------
+    // Add changeset item
+    // -------------------------------------------
+    final ODataChangeset changeset = streamManager.addChangeset();
+
+    // Update Customer into the changeset
+    targetURI = client.newURIBuilder(baseURL).appendEntitySetSegment("Customers").appendKeySegment(1);
+    final URI editLink = targetURI.build();
+
+    final ClientEntity patch = client.getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
+    patch.setEditLink(editLink);
+
+    patch.getProperties().add(client.getObjectFactory().newPrimitiveProperty(
+        "LastName",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("new last name")));
+
+    final ODataEntityUpdateRequest<ClientEntity> changeReq =
+        client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patch);
+    changeReq.setFormat(ContentType.JSON_FULL_METADATA);
+
+    changeset.addRequest(changeReq);
+    // -------------------------------------------
+
+    final ODataBatchResponse response = streamManager.getResponse();
+    assertEquals(200, response.getStatusCode());
+    assertEquals("OK", response.getStatusMessage());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/BatchTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/BatchTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/BatchTestITCase.java
new file mode 100644
index 0000000..2e77a08
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/BatchTestITCase.java
@@ -0,0 +1,647 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.http.HttpResponse;
+import org.apache.olingo.client.api.ODataBatchConstants;
+import org.apache.olingo.client.api.communication.request.AsyncBatchRequestWrapper;
+import org.apache.olingo.client.api.communication.request.ODataPayloadManager;
+import org.apache.olingo.client.api.communication.request.batch.BatchManager;
+import org.apache.olingo.client.api.communication.request.batch.ODataBatchRequest;
+import org.apache.olingo.client.api.communication.request.batch.ODataBatchResponseItem;
+import org.apache.olingo.client.api.communication.request.batch.ODataChangeset;
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
+import org.apache.olingo.client.api.communication.request.cud.UpdateType;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
+import org.apache.olingo.client.api.communication.response.AsyncResponse;
+import org.apache.olingo.client.api.communication.response.AsyncResponseWrapper;
+import org.apache.olingo.client.api.communication.response.ODataBatchResponse;
+import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
+import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
+import org.apache.olingo.client.api.communication.response.ODataResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.client.core.communication.request.AbstractODataStreamManager;
+import org.apache.olingo.client.core.communication.request.Wrapper;
+import org.apache.olingo.client.core.communication.request.batch.ODataChangesetResponseItem;
+import org.apache.olingo.client.core.communication.request.batch.ODataSingleResponseItem;
+import org.apache.olingo.client.core.communication.request.retrieve.ODataEntityRequestImpl;
+import org.apache.olingo.client.core.communication.request.retrieve.ODataEntityRequestImpl.ODataEntityResponseImpl;
+import org.apache.olingo.client.core.uri.URIUtils;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.commons.api.http.HttpHeader;
+import org.junit.Test;
+
+public class BatchTestITCase extends AbstractTestITCase {
+
+  private static final String PREFIX = "!!PREFIX!!";
+
+  private static final String SUFFIX = "!!SUFFIX!!";
+
+  private static final int MAX = 10000;
+
+  private final static String ACCEPT = ContentType.APPLICATION_OCTET_STREAM.toContentTypeString();
+
+  @Test
+  public void stringStreaming() {
+    final TestStreamManager streaming = new TestStreamManager();
+
+    new StreamingThread(streaming).start();
+
+    streaming.addObject((PREFIX + "\n").getBytes());
+
+    for (int i = 0; i <= MAX; i++) {
+      streaming.addObject((i + ") send info\n").getBytes());
+    }
+
+    streaming.addObject(SUFFIX.getBytes());
+    streaming.finalizeBody();
+  }
+
+  @Test
+  public void emptyBatchRequest() {
+    // create your request
+    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
+    request.setAccept(ACCEPT);
+
+    final BatchManager payload = request.payloadManager();
+    final ODataBatchResponse response = payload.getResponse();
+
+    assertEquals(200, response.getStatusCode());
+    assertEquals("OK", response.getStatusMessage());
+
+    final Iterator<ODataBatchResponseItem> iter = response.getBody();
+    assertFalse(iter.hasNext());
+  }
+
+  @Test
+  public void changesetWithError() {
+    // create your request
+    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
+    request.setAccept(ACCEPT);
+
+    final BatchManager payload = request.payloadManager();
+    final ODataChangeset changeset = payload.addChangeset();
+
+    URIBuilder targetURI;
+    ODataEntityCreateRequest<ClientEntity> createReq;
+
+    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
+    for (int i = 1; i <= 2; i++) {
+      // Create Customer into the changeset
+      createReq = client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), newOrder(100 + i));
+      createReq.setFormat(ContentType.JSON);
+      changeset.addRequest(createReq);
+    }
+
+    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("WrongEntitySet");
+    createReq = client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), newOrder(105));
+    createReq.setFormat(ContentType.JSON);
+    changeset.addRequest(createReq);
+
+    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
+    for (int i = 3; i <= 4; i++) {
+      // Create Customer into the changeset
+      createReq = client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), newOrder(100 + i));
+      createReq.setFormat(ContentType.JSON);
+      changeset.addRequest(createReq);
+    }
+
+    final ODataBatchResponse response = payload.getResponse();
+    assertEquals(200, response.getStatusCode());
+    assertEquals("OK", response.getStatusMessage());
+
+    final Iterator<ODataBatchResponseItem> iter = response.getBody();
+    // retrieve the first item (ODataRetrieve)
+    ODataBatchResponseItem item = iter.next();
+
+    ODataChangesetResponseItem retitem = (ODataChangesetResponseItem) item;
+    ODataResponse res = retitem.next();
+    assertEquals(404, res.getStatusCode());
+    assertEquals("Not Found", res.getStatusMessage());
+    assertEquals(Integer.valueOf(3), Integer.valueOf(
+        res.getHeader(ODataBatchConstants.CHANGESET_CONTENT_ID_NAME).iterator().next()));
+
+    assertFalse(retitem.hasNext());
+    assertFalse(iter.hasNext());
+  }
+
+  @Test
+  public void continueOnError() {
+    continueOnError(true);
+  }
+
+  @Test
+  public void doNotContinueOnError() {
+    continueOnError(false);
+  }
+
+  private void continueOnError(final boolean continueOnError) {
+    final boolean preContinueOnError = client.getConfiguration().isContinueOnError();
+    client.getConfiguration().setContinueOnError(continueOnError);
+
+    // create your request
+    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
+    request.setAccept(ACCEPT);
+
+    final BatchManager streamManager = request.payloadManager();
+
+    // -------------------------------------------
+    // Add retrieve item
+    // -------------------------------------------
+    // prepare URI
+    URIBuilder targetURI = client.newURIBuilder(testStaticServiceRootURL);
+    targetURI.appendEntitySetSegment("UnexistingEntitySet").appendKeySegment(1);
+
+    // create new request
+    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+    queryReq.setFormat(ContentType.JSON);
+
+    streamManager.addRequest(queryReq);
+    // -------------------------------------------
+
+    // -------------------------------------------
+    // Add retrieve item
+    // -------------------------------------------
+    // prepare URI
+    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").appendKeySegment(1);
+
+    // create new request
+    queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+
+    streamManager.addRequest(queryReq);
+    // -------------------------------------------
+
+    final ODataBatchResponse response = streamManager.getResponse();
+    assertEquals(200, response.getStatusCode());
+    assertEquals("OK", response.getStatusMessage());
+    final Iterator<ODataBatchResponseItem> iter = response.getBody();
+
+    // retrieve the first item (ODataRetrieve)
+    ODataBatchResponseItem item = iter.next();
+    assertTrue(item instanceof ODataSingleResponseItem);
+
+    ODataSingleResponseItem retitem = (ODataSingleResponseItem) item;
+    ODataResponse res = retitem.next();
+    assertEquals(404, res.getStatusCode());
+    assertEquals("Not Found", res.getStatusMessage());
+
+    if (continueOnError) {
+      item = iter.next();
+      assertTrue(item instanceof ODataSingleResponseItem);
+
+      retitem = (ODataSingleResponseItem) item;
+      res = retitem.next();
+      assertTrue(res instanceof ODataEntityResponseImpl);
+      assertEquals(200, res.getStatusCode());
+      assertEquals("OK", res.getStatusMessage());
+    }
+
+    client.getConfiguration().setContinueOnError(preContinueOnError);
+  }
+
+  @Test
+  @SuppressWarnings("unchecked")
+  public void changesetWithReference() throws Exception {
+    // create your request
+    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
+    request.setAccept(ACCEPT);
+    final BatchManager streamManager = request.payloadManager();
+
+    final ODataChangeset changeset = streamManager.addChangeset();
+    ClientEntity order = newOrder(20);
+
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
+
+    // add create request
+    final ODataEntityCreateRequest<ClientEntity> createReq =
+        client.getCUDRequestFactory().getEntityCreateRequest(uriBuilder.build(), order);
+
+    changeset.addRequest(createReq);
+
+    // retrieve request reference
+    int createRequestRef = changeset.getLastContentId();
+
+    // add update request: link CustomerInfo(17) to the new customer
+    final ClientEntity customerChanges = client.getObjectFactory().newEntity(order.getTypeName());
+    customerChanges.addLink(client.getObjectFactory().newEntitySetNavigationLink(
+        "OrderDetails", new URI(testStaticServiceRootURL + "/OrderDetails(OrderID=7,ProductID=5)")));
+    
+    final ODataEntityUpdateRequest<ClientEntity> updateReq = client.getCUDRequestFactory().getEntityUpdateRequest(
+        URI.create("$" + createRequestRef), UpdateType.PATCH, customerChanges);
+
+    changeset.addRequest(updateReq);
+
+    final ODataBatchResponse response = streamManager.getResponse();
+    assertEquals(200, response.getStatusCode());
+    assertEquals("OK", response.getStatusMessage());
+
+    // verify response payload ...
+    final Iterator<ODataBatchResponseItem> iter = response.getBody();
+
+    final ODataBatchResponseItem item = iter.next();
+    assertTrue(item instanceof ODataChangesetResponseItem);
+
+    final ODataChangesetResponseItem chgitem = (ODataChangesetResponseItem) item;
+
+    ODataResponse res = chgitem.next();
+    assertEquals(201, res.getStatusCode());
+    assertTrue(res instanceof ODataEntityCreateResponse);
+
+    order = ((ODataEntityCreateResponse<ClientEntity>) res).getBody();
+    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
+        URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString() + "/OrderDetails"));
+
+    assertEquals(Integer.valueOf(7),
+        req.execute().getBody().getEntities().get(0).getProperty("OrderID").getPrimitiveValue().
+        toCastValue(Integer.class));
+
+    res = chgitem.next();
+    assertEquals(204, res.getStatusCode());
+    assertTrue(res instanceof ODataEntityUpdateResponse);
+
+    // clean ...
+    assertEquals(204, client.getCUDRequestFactory().getDeleteRequest(
+        URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString())).execute().
+        getStatusCode());
+
+    try {
+      client.getRetrieveRequestFactory().getEntityRequest(
+          URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString())).
+          execute().getBody();
+      fail();
+    } catch (Exception e) {
+      // ignore
+    }
+  }
+
+  @Test
+  @SuppressWarnings("unchecked")
+  public void batchRequestWithOutsideUpdates() throws EdmPrimitiveTypeException {
+    // create your request
+    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
+    request.setAccept(ACCEPT);
+    final BatchManager streamManager = request.payloadManager();
+
+    // -------------------------------------------
+    // Add retrieve item
+    // -------------------------------------------
+    // prepare URI
+    URIBuilder targetURI = client.newURIBuilder(testStaticServiceRootURL);
+    targetURI.appendEntitySetSegment("Customers").appendKeySegment(1).
+    expand("Orders").select("PersonID,Orders/OrderID");
+
+    // create new request
+    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+    queryReq.setFormat(ContentType.JSON);
+
+    streamManager.addRequest(queryReq);
+    // -------------------------------------------
+
+    // -------------------------------------------
+    // Add new order with outside item
+    // -------------------------------------------
+    // prepare URI
+    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
+    final ClientEntity original = newOrder(2000);
+    final ODataEntityCreateRequest<ClientEntity> createReq =
+        client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), original);
+    createReq.setFormat(ContentType.JSON);
+    streamManager.addRequest(createReq);
+    // -------------------------------------------
+
+    final ODataBatchResponse response = streamManager.getResponse();
+    assertEquals(200, response.getStatusCode());
+    assertEquals("OK", response.getStatusMessage());
+    final Iterator<ODataBatchResponseItem> iter = response.getBody();
+
+    // retrieve the first item (ODataRetrieve)
+    ODataBatchResponseItem item = iter.next();
+    assertTrue(item instanceof ODataSingleResponseItem);
+
+    ODataSingleResponseItem retitem = (ODataSingleResponseItem) item;
+    ODataResponse res = retitem.next();
+    assertTrue(res instanceof ODataEntityResponseImpl);
+    assertEquals(200, res.getStatusCode());
+    assertEquals("OK", res.getStatusMessage());
+
+    // retrieve the second item (ODataChangeset)
+    item = iter.next();
+    assertTrue(item instanceof ODataSingleResponseItem);
+
+    final ODataSingleResponseItem outitem = (ODataSingleResponseItem) item;
+    res = outitem.next();
+    assertTrue(res instanceof ODataEntityCreateResponse);
+    assertEquals(201, res.getStatusCode());
+    assertEquals("Created", res.getStatusMessage());
+
+    final ODataEntityCreateResponse<ClientEntity> entres = (ODataEntityCreateResponse<ClientEntity>) res;
+    final ClientEntity entity = entres.getBody();
+    assertEquals(2000, entity.getProperty("OrderID").getPrimitiveValue().toCastValue(Integer.class).intValue());
+
+    assertFalse(iter.hasNext());
+  }
+
+  @Test
+  @SuppressWarnings({ "unchecked", "rawtypes" })
+  public void batchRequest() throws EdmPrimitiveTypeException {
+    // create your request
+    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
+    request.setAccept(ACCEPT);
+
+    final BatchManager streamManager = request.payloadManager();
+
+    // -------------------------------------------
+    // Add retrieve item
+    // -------------------------------------------
+    // prepare URI
+    URIBuilder targetURI = client.newURIBuilder(testStaticServiceRootURL);
+    targetURI.appendEntitySetSegment("Customers").appendKeySegment(1);
+
+    // create new request
+    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+    queryReq.setFormat(ContentType.JSON);
+
+    streamManager.addRequest(queryReq);
+    // -------------------------------------------
+
+    // -------------------------------------------
+    // Add changeset item
+    // -------------------------------------------
+    final ODataChangeset changeset = streamManager.addChangeset();
+
+    // Update Customer into the changeset
+    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").appendKeySegment(1);
+    final URI editLink = targetURI.build();
+
+    final ClientEntity patch = client.getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
+    patch.setEditLink(editLink);
+
+    patch.getProperties().add(client.getObjectFactory().newPrimitiveProperty(
+        "LastName",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("new last name")));
+
+    final ODataEntityUpdateRequest<ClientEntity> changeReq =
+        client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patch);
+    changeReq.setFormat(ContentType.JSON_FULL_METADATA);
+
+    changeset.addRequest(changeReq);
+
+    // Create Order into the changeset
+    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
+    final ClientEntity original = newOrder(1000);
+    final ODataEntityCreateRequest<ClientEntity> createReq =
+        client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), original);
+    createReq.setFormat(ContentType.JSON);
+    changeset.addRequest(createReq);
+    // -------------------------------------------
+
+    // -------------------------------------------
+    // Add retrieve item
+    // -------------------------------------------
+    // prepare URI
+    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").appendKeySegment(1);
+
+    // create new request
+    queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+
+    streamManager.addRequest(queryReq);
+    // -------------------------------------------
+
+    final ODataBatchResponse response = streamManager.getResponse();
+    assertEquals(200, response.getStatusCode());
+    assertEquals("OK", response.getStatusMessage());
+    final Iterator<ODataBatchResponseItem> iter = response.getBody();
+
+    // retrieve the first item (ODataRetrieve)
+    ODataBatchResponseItem item = iter.next();
+    assertTrue(item instanceof ODataSingleResponseItem);
+
+    ODataSingleResponseItem retitem = (ODataSingleResponseItem) item;
+    ODataResponse res = retitem.next();
+    assertTrue(res instanceof ODataEntityResponseImpl);
+    assertEquals(200, res.getStatusCode());
+    assertEquals("OK", res.getStatusMessage());
+
+    ODataEntityRequestImpl<ClientEntity>.ODataEntityResponseImpl entres =
+        (ODataEntityRequestImpl.ODataEntityResponseImpl) res;
+
+    ClientEntity entity = entres.getBody();
+    assertEquals(1, entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    // retrieve the second item (ODataChangeset)
+    item = iter.next();
+    assertTrue(item instanceof ODataChangesetResponseItem);
+
+    final ODataChangesetResponseItem chgitem = (ODataChangesetResponseItem) item;
+    res = chgitem.next();
+    assertTrue(res instanceof ODataEntityUpdateResponse);
+    assertEquals(204, res.getStatusCode());
+    assertEquals("No Content", res.getStatusMessage());
+
+    res = chgitem.next();
+    assertTrue(res instanceof ODataEntityCreateResponse);
+    assertEquals(201, res.getStatusCode());
+    assertEquals("Created", res.getStatusMessage());
+
+    final ODataEntityCreateResponse<ClientEntity> createres = (ODataEntityCreateResponse<ClientEntity>) res;
+    entity = createres.getBody();
+    assertEquals(new Integer(1000), entity.getProperty("OrderID").getPrimitiveValue().toCastValue(Integer.class));
+
+    // retrieve the third item (ODataRetrieve)
+    item = iter.next();
+    assertTrue(item instanceof ODataSingleResponseItem);
+
+    retitem = (ODataSingleResponseItem) item;
+    res = retitem.next();
+    assertTrue(res instanceof ODataEntityResponseImpl);
+    assertEquals(200, res.getStatusCode());
+    assertEquals("OK", res.getStatusMessage());
+
+    entres = (ODataEntityRequestImpl.ODataEntityResponseImpl) res;
+    entity = entres.getBody();
+    assertEquals("new last name", entity.getProperty("LastName").getPrimitiveValue().toCastValue(String.class));
+
+    assertFalse(iter.hasNext());
+  }
+
+  @Test
+  public void async() {
+    // create your request
+    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(
+        URI.create(testStaticServiceRootURL + "/async/").normalize().toASCIIString());
+    request.setAccept(ACCEPT);
+
+    final AsyncBatchRequestWrapper async = client.getAsyncRequestFactory().getAsyncBatchRequestWrapper(request);
+
+    // -------------------------------------------
+    // Add retrieve item
+    // -------------------------------------------
+    // prepare URI
+    URIBuilder targetURI = client.newURIBuilder(testStaticServiceRootURL);
+    targetURI.appendEntitySetSegment("People").appendKeySegment(5);
+
+    // create new request
+    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+    queryReq.setFormat(ContentType.JSON);
+
+    async.addRetrieve(queryReq);
+    // -------------------------------------------
+
+    // -------------------------------------------
+    // Add retrieve item
+    // -------------------------------------------
+    // prepare URI
+    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").appendKeySegment(1);
+
+    // create new request
+    queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+
+    async.addRetrieve(queryReq);
+    // -------------------------------------------
+
+    final AsyncResponseWrapper<ODataBatchResponse> responseWrapper = async.execute();
+
+    assertTrue(responseWrapper.isPreferenceApplied());
+    assertTrue(responseWrapper.isDone());
+
+    final ODataBatchResponse response = responseWrapper.getODataResponse();
+
+    assertEquals(200, response.getStatusCode());
+    assertEquals("Ok", response.getStatusMessage());
+    final Iterator<ODataBatchResponseItem> iter = response.getBody();
+
+    // retrieve the first item (ODataRetrieve)
+    final ODataBatchResponseItem item = iter.next();
+    assertTrue(item instanceof ODataSingleResponseItem);
+
+    // The service return interim results to an asynchronously executing batch.
+    final ODataSingleResponseItem retitem = (ODataSingleResponseItem) item;
+    final ODataResponse res = retitem.next();
+    assertTrue(res instanceof AsyncResponse);
+    assertEquals(202, res.getStatusCode());
+    assertEquals("Accepted", res.getStatusMessage());
+
+    final Collection<String> newMonitorLocation = res.getHeader(HttpHeader.LOCATION);
+    if (newMonitorLocation != null && !newMonitorLocation.isEmpty()) {
+      responseWrapper.forceNextMonitorCheck(URI.create(newMonitorLocation.iterator().next()));
+      // .... now you can start again with isDone() and getODataResponse().
+    }
+
+    assertFalse(retitem.hasNext());
+    assertFalse(iter.hasNext());
+  }
+
+  private static class TestStreamManager extends AbstractODataStreamManager<ODataBatchResponse> {
+
+    public TestStreamManager() {
+      super(new Wrapper<Future<HttpResponse>>());
+    }
+
+    public ODataPayloadManager<ODataBatchResponse> addObject(final byte[] src) {
+      stream(src);
+      return this;
+    }
+
+    @Override
+    protected ODataBatchResponse getResponse(final long timeout, final TimeUnit unit) {
+      throw new UnsupportedOperationException("Not supported yet.");
+    }
+  };
+
+  /**
+   * To be used for debug purposes.
+   */
+  private static class StreamingThread extends Thread {
+
+    private final TestStreamManager streaming;
+
+    public StreamingThread(final TestStreamManager streaming) {
+      super();
+      this.streaming = streaming;
+    }
+
+    @Override
+    public void run() {
+      try {
+        final StringBuilder builder = new StringBuilder();
+
+        byte[] buff = new byte[1024];
+
+        int len;
+
+        while ((len = streaming.getBody().read(buff)) >= 0) {
+          builder.append(new String(buff, 0, len));
+        }
+
+        assertTrue(builder.toString().startsWith(PREFIX));
+        assertTrue(builder.toString().contains((MAX / 2) + ") send info"));
+        assertTrue(builder.toString().contains((MAX / 3) + ") send info"));
+        assertTrue(builder.toString().contains((MAX / 20) + ") send info"));
+        assertTrue(builder.toString().contains((MAX / 30) + ") send info"));
+        assertTrue(builder.toString().contains(MAX + ") send info"));
+        assertTrue(builder.toString().endsWith(SUFFIX));
+
+      } catch (IOException e) {
+        fail();
+      }
+    }
+  }
+
+  private ClientEntity newOrder(final int id) {
+    final ClientEntity order = getClient().getObjectFactory().
+        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
+
+    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderID",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
+    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).build()));
+    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build()));
+    order.getProperties().add(getClient().getObjectFactory().newCollectionProperty("OrderShelfLifes",
+        getClient().getObjectFactory().newCollectionValue(EdmPrimitiveTypeKind.Duration.name()).add(
+            getClient().getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.Duration).
+            setValue(new BigDecimal("0.0000002")).build())));
+
+    return order;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/BoundOperationInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/BoundOperationInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/BoundOperationInvokeTestITCase.java
new file mode 100644
index 0000000..ecd15c7
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/BoundOperationInvokeTestITCase.java
@@ -0,0 +1,459 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.TimeZone;
+
+import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientOperation;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientSingleton;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
+
+  private void functions(final ContentType contentType) throws EdmPrimitiveTypeException {
+    // GetEmployeesCount
+    URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company");
+    final ODataEntityRequest<ClientSingleton> singletonReq =
+        client.getRetrieveRequestFactory().getSingletonRequest(builder.build());
+    singletonReq.setFormat(contentType);
+    final ClientSingleton company = singletonReq.execute().getBody();
+    assertNotNull(company);
+
+    ClientOperation boundOp = company.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetEmployeesCount");
+    assertNotNull(boundOp);
+
+    final ODataInvokeRequest<ClientProperty> getEmployeesCountReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientProperty.class);
+    getEmployeesCountReq.setFormat(contentType);
+    final ClientProperty getEmployeesCountRes = getEmployeesCountReq.execute().getBody();
+    assertNotNull(getEmployeesCountRes);
+    assertTrue(getEmployeesCountRes.hasPrimitiveValue());
+
+    // GetProductDetails
+    builder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Products").appendKeySegment(5);
+    ODataEntityRequest<ClientEntity> entityReq = client.getRetrieveRequestFactory().
+        getEntityRequest(builder.build());
+    entityReq.setFormat(contentType);
+    ClientEntity entity = entityReq.execute().getBody();
+    assertNotNull(entity);
+
+    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails");
+    assertNotNull(boundOp);
+
+    final ClientPrimitiveValue count = client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(1);
+    final ODataInvokeRequest<ClientEntitySet> getProductDetailsReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientEntitySet.class,
+            Collections.<String, ClientValue> singletonMap("count", count));
+    getProductDetailsReq.setFormat(contentType);
+    final ClientEntitySet getProductDetailsRes = getProductDetailsReq.execute().getBody();
+    assertNotNull(getProductDetailsRes);
+    assertEquals(1, getProductDetailsRes.getEntities().size());
+
+    // GetRelatedProduct
+    final Map<String, Object> keyMap = new LinkedHashMap<String, Object>();
+    keyMap.put("ProductID", 6);
+    keyMap.put("ProductDetailID", 1);
+    builder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("ProductDetails").appendKeySegment(keyMap);
+    entityReq = client.getRetrieveRequestFactory().getEntityRequest(builder.build());
+    entityReq.setFormat(contentType);
+    entity = entityReq.execute().getBody();
+    assertNotNull(entity);
+
+    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetRelatedProduct");
+    assertNotNull(boundOp);
+
+    final ODataInvokeRequest<ClientEntity> getRelatedProductReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientEntity.class);
+    getRelatedProductReq.setFormat(contentType);
+    final ClientEntity getRelatedProductRes = getRelatedProductReq.execute().getBody();
+    assertNotNull(getRelatedProductRes);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Product",
+        getRelatedProductRes.getTypeName().toString());
+    assertEquals(6, getRelatedProductRes.getProperty("ProductID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    // GetDefaultPI
+    builder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Accounts").appendKeySegment(102);
+    entityReq = client.getRetrieveRequestFactory().getEntityRequest(builder.build());
+    entityReq.setFormat(contentType);
+    entity = entityReq.execute().getBody();
+    assertNotNull(entity);
+
+    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI");
+    assertNotNull(boundOp);
+
+    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientEntity.class);
+    getDefaultPIReq.setFormat(contentType);
+    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
+    assertNotNull(getDefaultPIRes);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
+        getDefaultPIRes.getTypeName().toString());
+    assertEquals(102901,
+        getDefaultPIRes.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    // GetAccountInfo
+    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo");
+    assertNotNull(boundOp);
+
+    final ODataInvokeRequest<ClientProperty> getAccountInfoReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientProperty.class);
+    getAccountInfoReq.setFormat(contentType);
+    final ClientProperty getAccountInfoRes = getAccountInfoReq.execute().getBody();
+    assertNotNull(getAccountInfoRes);
+    assertTrue(getAccountInfoRes.hasComplexValue());
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
+        getAccountInfoRes.getComplexValue().getTypeName());
+
+    // GetActualAmount
+    entityReq = client.getRetrieveRequestFactory().getEntityRequest(
+        entity.getNavigationLink("MyGiftCard").getLink());
+    entityReq.setFormat(contentType);
+    entity = entityReq.execute().getBody();
+    assertNotNull(entity);
+    assertEquals(301, entity.getProperty("GiftCardID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetActualAmount");
+    assertNotNull(boundOp);
+
+    final ClientPrimitiveValue bonusRate = client.getObjectFactory().newPrimitiveValueBuilder().buildDouble(1.1);
+    final ODataInvokeRequest<ClientProperty> getActualAmountReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("bonusRate", bonusRate));
+    getActualAmountReq.setFormat(contentType);
+    final ClientProperty getActualAmountRes = getActualAmountReq.execute().getBody();
+    assertNotNull(getActualAmountRes);
+    assertEquals(41.79, getActualAmountRes.getPrimitiveValue().toCastValue(Double.class), 0);
+  }
+
+  @Test
+  public void atomFunctions() throws EdmPrimitiveTypeException {
+    functions(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonFunctions() throws EdmPrimitiveTypeException {
+    functions(ContentType.JSON_FULL_METADATA);
+  }
+
+  @Test
+  public void edmEnabledFunctions() throws EdmPrimitiveTypeException {
+    // GetEmployeesCount
+    final ODataInvokeRequest<ClientProperty> getEmployeesCountReq =
+        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
+            edmClient.newURIBuilder().appendSingletonSegment("Company").build(),
+            new FullQualifiedName(("Microsoft.Test.OData.Services.ODataWCFService.GetEmployeesCount")),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Company"),
+            false);
+    final ClientProperty getEmployeesCountRes = getEmployeesCountReq.execute().getBody();
+    assertNotNull(getEmployeesCountRes);
+    assertTrue(getEmployeesCountRes.hasPrimitiveValue());
+
+    // GetProductDetails
+    final ClientPrimitiveValue count = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt32(1);
+    final ODataInvokeRequest<ClientEntitySet> getProductDetailsReq =
+        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
+            edmClient.newURIBuilder().appendEntitySetSegment("Products").appendKeySegment(5).build(),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails"),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Product"),
+            false,
+            Collections.<String, ClientValue> singletonMap("count", count));
+    final ClientEntitySet getProductDetailsRes = getProductDetailsReq.execute().getBody();
+    assertNotNull(getProductDetailsRes);
+    assertEquals(1, getProductDetailsRes.getEntities().size());
+
+    // GetRelatedProduct
+    final Map<String, Object> keyMap = new LinkedHashMap<String, Object>();
+    keyMap.put("ProductID", 6);
+    keyMap.put("ProductDetailID", 1);
+    URIBuilder builder = edmClient.newURIBuilder().appendEntitySetSegment("ProductDetails").appendKeySegment(keyMap);
+
+    final ODataInvokeRequest<ClientEntity> getRelatedProductReq =
+        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
+            builder.build(),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetRelatedProduct"),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.ProductDetail"),
+            false);
+    final ClientEntity getRelatedProductRes = getRelatedProductReq.execute().getBody();
+    assertNotNull(getRelatedProductRes);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Product",
+        getRelatedProductRes.getTypeName().toString());
+    assertEquals(6, getRelatedProductRes.getProperty("ProductID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    // GetDefaultPI
+    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
+        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
+            edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).build(),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI"),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Account"),
+            false);
+    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
+    assertNotNull(getDefaultPIRes);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
+        getDefaultPIRes.getTypeName().toString());
+    assertEquals(102901,
+        getDefaultPIRes.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    // GetAccountInfo
+    final ODataInvokeRequest<ClientProperty> getAccountInfoReq =
+        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
+            edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).build(),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo"),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Account"),
+            false);
+    final ClientProperty getAccountInfoRes = getAccountInfoReq.execute().getBody();
+    assertNotNull(getAccountInfoRes);
+    assertTrue(getAccountInfoRes.hasComplexValue());
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
+        getAccountInfoRes.getComplexValue().getTypeName());
+
+    // GetActualAmount
+    final ClientPrimitiveValue bonusRate = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildDouble(1.1);
+    final ODataInvokeRequest<ClientProperty> getActualAmountReq =
+        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
+            edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).
+            appendNavigationSegment("MyGiftCard").build(),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetActualAmount"),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GiftCard"),
+            false,
+            Collections.<String, ClientValue> singletonMap("bonusRate", bonusRate));
+    final ClientProperty getActualAmountRes = getActualAmountReq.execute().getBody();
+    assertNotNull(getActualAmountRes);
+    assertEquals(41.79, getActualAmountRes.getPrimitiveValue().toCastValue(Double.class), 0);
+  }
+
+  private void actions(final ContentType contentType) throws EdmPrimitiveTypeException {
+    // IncreaseRevenue
+    URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company");
+    ODataEntityRequest<ClientEntity> entityReq =
+        client.getRetrieveRequestFactory().getEntityRequest(builder.build());
+    entityReq.setFormat(contentType);
+    ClientEntity entity = entityReq.execute().getBody();
+    assertNotNull(entity);
+
+    ClientOperation boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.IncreaseRevenue");
+    assertNotNull(boundOp);
+
+    final ClientPrimitiveValue increaseValue =
+        client.getObjectFactory().newPrimitiveValueBuilder().buildInt64(12L);
+    final ODataInvokeRequest<ClientProperty> increaseRevenueReq =
+        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("IncreaseValue", increaseValue));
+    increaseRevenueReq.setFormat(contentType);
+    final ClientProperty increaseRevenueRes = increaseRevenueReq.execute().getBody();
+    assertNotNull(increaseRevenueRes);
+    assertTrue(increaseRevenueRes.hasPrimitiveValue());
+
+    // AddAccessRight
+    builder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Products").appendKeySegment(5);
+    entityReq = client.getRetrieveRequestFactory().getEntityRequest(builder.build());
+    entityReq.setFormat(contentType);
+    entity = entityReq.execute().getBody();
+    assertNotNull(entity);
+
+    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight");
+    assertNotNull(boundOp);
+
+    final ClientEnumValue accessRight = client.getObjectFactory().
+        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "Execute");
+    final ODataInvokeRequest<ClientProperty> getProductDetailsReq =
+        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("accessRight", accessRight));
+    getProductDetailsReq.setFormat(contentType);
+    final ClientProperty getProductDetailsRes = getProductDetailsReq.execute().getBody();
+    assertNotNull(getProductDetailsRes);
+    assertTrue(getProductDetailsRes.hasEnumValue());
+
+    // ResetAddress
+    builder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(2);
+    entityReq = client.getRetrieveRequestFactory().getEntityRequest(builder.build());
+    entityReq.setFormat(contentType);
+    entity = entityReq.execute().getBody();
+    assertNotNull(entity);
+
+    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.ResetAddress");
+    assertNotNull(boundOp);
+
+    final ClientCollectionValue<ClientValue> addresses =
+        client.getObjectFactory().
+        newCollectionValue("Collection(Microsoft.Test.OData.Services.ODataWCFService.Address)");
+    final ClientComplexValue address = client.getObjectFactory().
+        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
+    address.add(client.getObjectFactory().newPrimitiveProperty("Street",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Piazza La Bomba E Scappa")));
+    address.add(client.getObjectFactory().newPrimitiveProperty("City",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Tollo")));
+    address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
+    addresses.add(address);
+    final ClientPrimitiveValue index = client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(0);
+    final Map<String, ClientValue> params = new LinkedHashMap<String, ClientValue>(2);
+    params.put("addresses", addresses);
+    params.put("index", index);
+    final ODataInvokeRequest<ClientEntity> resetAddressReq =
+        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientEntity.class, params);
+    resetAddressReq.setFormat(contentType);
+    final ClientEntity resetAddressRes = resetAddressReq.execute().getBody();
+    assertNotNull(resetAddressRes);
+    assertEquals(2, resetAddressRes.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    // RefreshDefaultPI
+    builder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Accounts").appendKeySegment(102);
+    entityReq = client.getRetrieveRequestFactory().getEntityRequest(builder.build());
+    entityReq.setFormat(contentType);
+    entity = entityReq.execute().getBody();
+    assertNotNull(entity);
+
+    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI");
+    assertNotNull(boundOp);
+
+    Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    dateTime.set(2014, 3, 9, 0, 0, 0);
+    final ClientPrimitiveValue newDate = client.getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build();
+    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
+        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientEntity.class,
+            Collections.<String, ClientValue> singletonMap("newDate", newDate));
+    getDefaultPIReq.setFormat(contentType);
+    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
+    assertNotNull(getDefaultPIRes);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
+        getDefaultPIRes.getTypeName().toString());
+    assertEquals(102901,
+        getDefaultPIRes.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
+  }
+
+  @Test
+  public void atomActions() throws EdmPrimitiveTypeException {
+    actions(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonActions() throws EdmPrimitiveTypeException {
+    actions(ContentType.JSON_FULL_METADATA);
+  }
+
+  @Test
+  public void edmEnabledActions() throws EdmPrimitiveTypeException {
+    // IncreaseRevenue
+    final ClientPrimitiveValue increaseValue = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt64(12L);
+    final ODataInvokeRequest<ClientProperty> increaseRevenueReq =
+        edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
+            edmClient.newURIBuilder().appendSingletonSegment("Company").build(),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.IncreaseRevenue"),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Company"),
+            false,
+            Collections.<String, ClientValue> singletonMap("IncreaseValue", increaseValue));
+    final ClientProperty increaseRevenueRes = increaseRevenueReq.execute().getBody();
+    assertNotNull(increaseRevenueRes);
+    assertTrue(increaseRevenueRes.hasPrimitiveValue());
+
+    // AddAccessRight
+    final ClientEnumValue accessRight = edmClient.getObjectFactory().
+        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "Execute");
+    final ODataInvokeRequest<ClientProperty> getProductDetailsReq =
+        edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
+            edmClient.newURIBuilder().appendEntitySetSegment("Products").appendKeySegment(5).build(),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight"),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Product"),
+            false,
+            Collections.<String, ClientValue> singletonMap("accessRight", accessRight));
+    final ClientProperty getProductDetailsRes = getProductDetailsReq.execute().getBody();
+    assertNotNull(getProductDetailsRes);
+    assertTrue(getProductDetailsRes.hasEnumValue());
+
+    // ResetAddress
+    final ClientCollectionValue<ClientValue> addresses =
+        edmClient.getObjectFactory().
+        newCollectionValue("Collection(Microsoft.Test.OData.Services.ODataWCFService.Address)");
+    final ClientComplexValue address = edmClient.getObjectFactory().
+        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
+    address.add(edmClient.getObjectFactory().newPrimitiveProperty("Street",
+        edmClient.getObjectFactory().newPrimitiveValueBuilder().buildString("Piazza La Bomba E Scappa")));
+    address.add(edmClient.getObjectFactory().newPrimitiveProperty("City",
+        edmClient.getObjectFactory().newPrimitiveValueBuilder().buildString("Tollo")));
+    address.add(edmClient.getObjectFactory().newPrimitiveProperty("PostalCode",
+        edmClient.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
+    addresses.add(address);
+    final ClientPrimitiveValue index = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt32(0);
+    final Map<String, ClientValue> params = new LinkedHashMap<String, ClientValue>(2);
+    params.put("addresses", addresses);
+    params.put("index", index);
+    final Map<String, Object> keys = new HashMap<String, Object>();
+    keys.put("PersonID", 2);
+    final ODataInvokeRequest<ClientEntity> resetAddressReq =
+        edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
+            edmClient.newURIBuilder().appendEntitySetSegment("Customers").appendKeySegment(keys).build(),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.ResetAddress"),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Person"),
+            false,
+            params);
+    final ClientEntity resetAddressRes = resetAddressReq.execute().getBody();
+    assertNotNull(resetAddressRes);
+    assertEquals(2, resetAddressRes.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    // RefreshDefaultPI
+    Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    dateTime.set(2014, 3, 9, 0, 0, 0);
+    final ClientPrimitiveValue newDate = edmClient.getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build();
+    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
+        edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
+            edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).build(),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI"),
+            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Account"),
+            false,
+            Collections.<String, ClientValue> singletonMap("newDate", newDate));
+    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
+    assertNotNull(getDefaultPIRes);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
+        getDefaultPIRes.getTypeName().toString());
+    assertEquals(102901,
+        getDefaultPIRes.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/ConformanceTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/ConformanceTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/ConformanceTestITCase.java
new file mode 100644
index 0000000..d682e64
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/ConformanceTestITCase.java
@@ -0,0 +1,415 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.apache.olingo.client.api.communication.request.AsyncRequestWrapper;
+import org.apache.olingo.client.api.communication.request.cud.ODataDeleteRequest;
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
+import org.apache.olingo.client.api.communication.request.cud.UpdateType;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataDeltaRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
+import org.apache.olingo.client.api.communication.response.AsyncResponseWrapper;
+import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
+import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
+import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientDelta;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
+import org.apache.olingo.client.core.http.DefaultHttpClientFactory;
+import org.apache.olingo.client.core.uri.URIUtils;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.http.HttpHeader;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+/**
+ * 13.2 Interoperable OData Clients
+ * <br />
+ * http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html#_Toc372793762
+ */
+public class ConformanceTestITCase extends AbstractTestITCase {
+
+  /**
+   * 1. MUST specify the OData-MaxVersion header in requests (section 8.2.6).
+   */
+  @Test
+  public void item1() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+
+    assertEquals("4.0", req.getHeader(HttpHeader.ODATA_MAX_VERSION));
+
+    assertNotNull(req.execute().getBody());
+  }
+
+  /**
+   * 2. MUST specify OData-Version (section 8.1.5) and Content-Type (section 8.1.1) in any request with a payload.
+   */
+  @Test
+  public void item2() {
+    final ClientEntity order = getClient().getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
+
+    final ClientProperty orderId = getClient().getObjectFactory().newPrimitiveProperty("OrderID",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(2000));
+    order.getProperties().add(orderId);
+
+    Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    dateTime.set(2011, 2, 4, 16, 3, 57);
+    final ClientProperty orderDate = getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build());
+    order.getProperties().add(orderDate);
+
+    final ClientProperty shelfLife = getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000001")).build());
+    order.getProperties().add(shelfLife);
+
+    final ClientCollectionValue<ClientValue> orderShelfLifesValue = getClient().getObjectFactory().
+        newCollectionValue("Collection(Duration)");
+    orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000001")).build());
+    orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build());
+    final ClientProperty orderShelfLifes = getClient().getObjectFactory().
+        newCollectionProperty("OrderShelfLifes", orderShelfLifesValue);
+    order.getProperties().add(orderShelfLifes);
+
+    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
+        getClient().newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Orders").build(), order);
+    req.setFormat(ContentType.JSON_FULL_METADATA);
+
+    // check for OData-Version
+    assertEquals("4.0", req.getHeader(HttpHeader.ODATA_VERSION));
+
+    // check for Content-Type
+    assertEquals(
+        ContentType.JSON_FULL_METADATA.toContentTypeString(),
+        req.getHeader("Content-Type"));
+    assertEquals(
+        ContentType.JSON_FULL_METADATA.toContentTypeString(),
+        req.getContentType());
+
+    final ClientEntity created = req.execute().getBody();
+    assertNotNull(created);
+
+    final URI deleteURI = created.getEditLink() == null
+        ? getClient().newURIBuilder(testStaticServiceRootURL).
+            appendEntitySetSegment("Orders").appendKeySegment(2000).build()
+            : created.getEditLink();
+            final ODataDeleteRequest deleteReq = getClient().getCUDRequestFactory().getDeleteRequest(deleteURI);
+            final ODataDeleteResponse deleteRes = deleteReq.execute();
+            assertEquals(204, deleteRes.getStatusCode());
+  }
+
+  /**
+   * 4. MUST follow redirects (section 9.1.5).
+   */
+  @Test
+  public void item4() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("redirect").
+        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+
+    assertEquals("4.0", req.getHeader(HttpHeader.ODATA_MAX_VERSION));
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
+
+    assertNotNull(entity);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
+    assertTrue(entity.getProperty("Home").hasPrimitiveValue());
+    assertEquals("Edm.GeographyPoint", entity.getProperty("Home").getPrimitiveValue().getTypeName());
+  }
+
+  /**
+   * 5. MUST correctly handle next links (section 11.2.5.7).
+   */
+  @Test
+  public void item5() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
+
+    ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
+        getEntitySetRequest(uriBuilder.build());
+    req.setFormat(ContentType.JSON_FULL_METADATA);
+    req.setPrefer(client.newPreferences().maxPageSize(5));
+
+    ODataRetrieveResponse<ClientEntitySet> res = req.execute();
+    ClientEntitySet feed = res.getBody();
+
+    assertNotNull(feed);
+
+    assertEquals(5, feed.getEntities().size());
+    assertNotNull(feed.getNext());
+
+    final URI expected = URI.create(testStaticServiceRootURL + "/People?$skiptoken=5");
+    final URI found = URIUtils.getURI(testStaticServiceRootURL, feed.getNext().toASCIIString());
+
+    assertEquals(expected, found);
+
+    req = client.getRetrieveRequestFactory().getEntitySetRequest(found);
+    req.setFormat(ContentType.JSON_FULL_METADATA);
+
+    res = req.execute();
+    feed = res.getBody();
+
+    assertNotNull(feed);
+  }
+
+  /**
+   * 6. MUST support instances returning properties and navigation properties not specified in metadata (section 11.2).
+   */
+  @Test
+  public void item6() {
+    final Integer id = 2000;
+
+    ClientEntity rowIndex = getClient().getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.OpenTypesServiceV4.RowIndex"));
+    getClient().getBinder().add(rowIndex,
+        getClient().getObjectFactory().newPrimitiveProperty("Id",
+            getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
+
+    // add property not in metadata
+    getClient().getBinder().add(rowIndex,
+        getClient().getObjectFactory().newPrimitiveProperty("aString",
+            getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("string")));
+
+    // add navigation property not in metadata
+    rowIndex.addLink(client.getObjectFactory().newEntityNavigationLink(
+        "Row", URI.create(testOpenTypeServiceRootURL + "/Row(71f7d0dc-ede4-45eb-b421-555a2aa1e58f)")));
+
+    final ODataEntityCreateRequest<ClientEntity> createReq = getClient().getCUDRequestFactory().
+        getEntityCreateRequest(getClient().newURIBuilder(testOpenTypeServiceRootURL).
+            appendEntitySetSegment("RowIndex").build(), rowIndex);
+
+    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
+    assertEquals(201, createRes.getStatusCode());
+
+    final URIBuilder builder = getClient().newURIBuilder(testOpenTypeServiceRootURL).
+        appendEntitySetSegment("RowIndex").appendKeySegment(id);
+
+    rowIndex = read(ContentType.JSON_FULL_METADATA, builder.build());
+    assertNotNull(rowIndex);
+    assertEquals(EdmPrimitiveTypeKind.Int32, rowIndex.getProperty("Id").getPrimitiveValue().getTypeKind());
+    assertEquals(EdmPrimitiveTypeKind.String, rowIndex.getProperty("aString").getPrimitiveValue().getTypeKind());
+    assertNotNull(rowIndex.getNavigationLink("Row"));
+
+    final ODataDeleteResponse deleteRes = getClient().getCUDRequestFactory().
+        getDeleteRequest(rowIndex.getEditLink()).execute();
+    assertEquals(204, deleteRes.getStatusCode());
+  }
+
+  /**
+   * 7. MUST generate PATCH requests for updates, if the client supports updates (section 11.4.3).
+   */
+  @Test
+  public void item7() {
+    final URI uri = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).build();
+
+    final ClientEntity patch = client.getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
+    patch.setEditLink(uri);
+
+    final String newname = "New Name (" + System.currentTimeMillis() + ")";
+    patch.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("FirstName",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString(newname)));
+
+    final ODataEntityUpdateRequest<ClientEntity> req =
+        getClient().getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patch);
+
+    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
+    assertEquals(204, res.getStatusCode());
+
+    final ClientEntity actual = read(ContentType.JSON, uri);
+
+    assertEquals(newname, actual.getProperty("FirstName").getPrimitiveValue().toString());
+  }
+
+  /**
+   * 8. SHOULD support basic authentication as specified in [RFC2617] over HTTPS.
+   * <br />
+   * Unfortunately no service over HTTPs is available yet.
+   */
+  @Test
+  public void item8() {
+    client.getConfiguration().setHttpClientFactory(new BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
+
+    final URIBuilder uriBuilder = client.newURIBuilder(testAuthServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    req.setFormat(ContentType.JSON_FULL_METADATA);
+
+    assertNotNull(req.execute().getBody());
+
+    client.getConfiguration().setHttpClientFactory(new DefaultHttpClientFactory());
+  }
+
+  /**
+   * 9. MAY request entity references in place of entities previously returned in the response (section 11.2.7).
+   */
+  @Test
+  public void item9() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Orders").appendKeySegment(8).appendNavigationSegment("CustomerForOrder").
+        appendRefSegment();
+
+    ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    req.setFormat(ContentType.JSON_FULL_METADATA);
+
+    ODataRetrieveResponse<ClientEntity> res = req.execute();
+    assertNotNull(res);
+
+    final ClientEntity entity = res.getBody();
+    assertNotNull(entity);
+    assertTrue(entity.getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/Customers(PersonID=1)"));
+
+    final URI referenceURI = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntityIdSegment(entity.getId().toASCIIString()).build();
+
+    req = client.getRetrieveRequestFactory().getEntityRequest(referenceURI);
+    req.setFormat(ContentType.JSON_FULL_METADATA);
+
+    res = req.execute();
+    assertNotNull(res);
+    assertNotNull(res.getBody());
+  }
+
+  /**
+   * 10. MAY support deleted entities, link entities, deleted link entities in a delta response (section 11.3).
+   */
+  @Test
+  public void item10() {
+    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
+        client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").build());
+    req.setPrefer(client.newPreferences().trackChanges());
+
+    final ClientEntitySet customers = req.execute().getBody();
+    assertNotNull(customers);
+    assertNotNull(customers.getDeltaLink());
+
+    final ODataDeltaRequest deltaReq = client.getRetrieveRequestFactory().getDeltaRequest(customers.getDeltaLink());
+    deltaReq.setFormat(ContentType.JSON_FULL_METADATA);
+
+    final ClientDelta delta = deltaReq.execute().getBody();
+    assertNotNull(delta);
+
+    assertNotNull(delta.getDeltaLink());
+    assertTrue(delta.getDeltaLink().isAbsolute());
+    assertEquals(5, delta.getCount(), 0);
+
+    assertEquals(1, delta.getDeletedEntities().size());
+    assertTrue(delta.getDeletedEntities().get(0).getId().isAbsolute());
+    assertTrue(delta.getDeletedEntities().get(0).getId().toASCIIString().endsWith("Customers('ANTON')"));
+
+    assertEquals(1, delta.getAddedLinks().size());
+    assertTrue(delta.getAddedLinks().get(0).getSource().isAbsolute());
+    assertTrue(delta.getAddedLinks().get(0).getSource().toASCIIString().endsWith("Customers('BOTTM')"));
+    assertEquals("Orders", delta.getAddedLinks().get(0).getRelationship());
+
+    assertEquals(1, delta.getDeletedLinks().size());
+    assertTrue(delta.getDeletedLinks().get(0).getSource().isAbsolute());
+    assertTrue(delta.getDeletedLinks().get(0).getSource().toASCIIString().endsWith("Customers('ALFKI')"));
+    assertEquals("Orders", delta.getDeletedLinks().get(0).getRelationship());
+
+    assertEquals(2, delta.getEntities().size());
+    ClientProperty property = delta.getEntities().get(0).getProperty("ContactName");
+    assertNotNull(property);
+    assertTrue(property.hasPrimitiveValue());
+    property = delta.getEntities().get(1).getProperty("ShippingAddress");
+    assertNotNull(property);
+    assertTrue(property.hasComplexValue());
+  }
+
+  /**
+   * 11. MAY support asynchronous responses (section 9.1.3).
+   */
+  @Test
+  public void item11() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("async").appendEntitySetSegment("Orders");
+
+    final ODataEntitySetRequest<ClientEntitySet> req =
+        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+    req.setFormat(ContentType.JSON_FULL_METADATA);
+
+    final AsyncRequestWrapper<ODataRetrieveResponse<ClientEntitySet>> async =
+        client.getAsyncRequestFactory().<ODataRetrieveResponse<ClientEntitySet>> getAsyncRequestWrapper(req);
+    async.callback(URI.create("http://client.service.it/callback/endpoint"));
+
+    final AsyncResponseWrapper<ODataRetrieveResponse<ClientEntitySet>> responseWrapper = async.execute();
+
+    assertTrue(responseWrapper.isPreferenceApplied());
+    assertTrue(responseWrapper.isDone());
+
+    final ODataRetrieveResponse<ClientEntitySet> res = responseWrapper.getODataResponse();
+    final ClientEntitySet entitySet = res.getBody();
+
+    assertFalse(entitySet.getEntities().isEmpty());
+  }
+
+  /**
+   * 12. MAY support odata.metadata=minimal in a JSON response (see [OData-JSON]).
+   */
+  @Test
+  public void item12() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    req.setFormat(ContentType.JSON);
+
+    assertEquals("application/json;odata.metadata=minimal", req.getHeader("Accept"));
+    assertEquals("application/json;odata.metadata=minimal", req.getAccept());
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    assertTrue(res.getContentType().startsWith("application/json; odata.metadata=minimal"));
+
+    assertNotNull(res.getBody());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/DeltaTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/DeltaTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/DeltaTestITCase.java
new file mode 100644
index 0000000..6c7bfc6
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/DeltaTestITCase.java
@@ -0,0 +1,86 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.olingo.client.api.communication.request.retrieve.ODataDeltaRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
+import org.apache.olingo.client.api.domain.ClientDelta;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class DeltaTestITCase extends AbstractTestITCase {
+
+  private void parse(final ContentType format) {
+    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
+        client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").build());
+    req.setPrefer(client.newPreferences().trackChanges());
+
+    final ClientEntitySet customers = req.execute().getBody();
+    assertNotNull(customers);
+    assertNotNull(customers.getDeltaLink());
+
+    final ODataDeltaRequest deltaReq = client.getRetrieveRequestFactory().getDeltaRequest(customers.getDeltaLink());
+    deltaReq.setFormat(format);
+
+    final ClientDelta delta = deltaReq.execute().getBody();
+    assertNotNull(delta);
+
+    assertNotNull(delta.getDeltaLink());
+    assertTrue(delta.getDeltaLink().isAbsolute());
+    assertEquals(5, delta.getCount(), 0);
+
+    assertEquals(1, delta.getDeletedEntities().size());
+    assertTrue(delta.getDeletedEntities().get(0).getId().isAbsolute());
+    assertTrue(delta.getDeletedEntities().get(0).getId().toASCIIString().endsWith("Customers('ANTON')"));
+
+    assertEquals(1, delta.getAddedLinks().size());
+    assertTrue(delta.getAddedLinks().get(0).getSource().isAbsolute());
+    assertTrue(delta.getAddedLinks().get(0).getSource().toASCIIString().endsWith("Customers('BOTTM')"));
+    assertEquals("Orders", delta.getAddedLinks().get(0).getRelationship());
+
+    assertEquals(1, delta.getDeletedLinks().size());
+    assertTrue(delta.getDeletedLinks().get(0).getSource().isAbsolute());
+    assertTrue(delta.getDeletedLinks().get(0).getSource().toASCIIString().endsWith("Customers('ALFKI')"));
+    assertEquals("Orders", delta.getDeletedLinks().get(0).getRelationship());
+
+    assertEquals(2, delta.getEntities().size());
+    ClientProperty property = delta.getEntities().get(0).getProperty("ContactName");
+    assertNotNull(property);
+    assertTrue(property.hasPrimitiveValue());
+    property = delta.getEntities().get(1).getProperty("ShippingAddress");
+    assertNotNull(property);
+    assertTrue(property.hasComplexValue());
+  }
+
+  @Test
+  public void atomParse() {
+    parse(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonParse() {
+    parse(ContentType.JSON);
+  }
+}


[42/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/APIBasicDesignTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/APIBasicDesignTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/APIBasicDesignTestITCase.java
new file mode 100644
index 0000000..a66192b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/APIBasicDesignTestITCase.java
@@ -0,0 +1,626 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.lang.reflect.Proxy;
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+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.AbstractCollectionInvocationHandler;
+import org.apache.olingo.fit.proxy.demo.Service;
+import org.apache.olingo.fit.proxy.demo.odatademo.DemoService;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.PersonDetail;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AddressCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonComposableInvoker;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .ProductCollectionComposableInvoker;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .ProductDetailCollectionComposableInvoker;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetail;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.junit.Test;
+
+public class APIBasicDesignTestITCase extends AbstractTestITCase {
+
+  protected AbstractService<EdmEnabledODataClient> getService() {
+    return service;
+  }
+
+  protected InMemoryEntities getContainer() {
+    return container;
+  }
+
+  @Test
+  public void readEntitySet() {
+    final OrderCollection orders = container.getOrders().execute();
+    assertFalse(orders.isEmpty());
+
+    final CustomerCollection customers = container.getCustomers().
+        orderBy("PersonID").
+        select("FirstName", "LastName", "Orders").
+        expand("Orders").
+        execute();
+
+    assertEquals(2, customers.size());
+    for (Customer customer : customers) {
+      assertNotNull(customer.getFirstName());
+      assertNotNull(customer.getLastName());
+    }
+  }
+
+  @Test
+  public void readWithReferences() {
+    final Person person = container.getOrders().getByKey(8).getCustomerForOrder().refs().load();
+    assertEquals("http://localhost:9080/stub/StaticService/V40/Static.svc/Customers(PersonID=1)",
+        person.readEntityReferenceID());
+
+    final OrderCollection orders = container.getCustomers().getByKey(1).getOrders().refs().execute();
+    assertEquals("http://localhost:9080/stub/StaticService/V40/Static.svc/Orders(7)",
+        orders.iterator().next().readEntityReferenceID());
+  }
+
+  @Test
+  public void changeSingleNavigationProperty() {
+    /*
+     * See OData Spec 11.4.6.3
+     * Alternatively, a relationship MAY be updated as part of an update to the source entity by including
+     * the required binding information for the new target entity.
+     *
+     * => use PATCH instead of PUT
+     */
+    final Person person1 = container.getPeople().getByKey(1).load();
+    final Person person5 = container.getPeople().getByKey(5).load();
+
+    person1.setParent(person5);
+    container.flush();
+  }
+
+  @Test
+  public void addViaReference() {
+    final Order order = container.getOrders().getByKey(8).load();
+
+    final OrderCollection orders = container.newEntityCollection(OrderCollection.class);
+    orders.addRef(order);
+
+    container.getCustomers().getByKey(1).setOrders(orders);
+    container.flush();
+  }
+
+  @Test
+  public void readAndCheckForPrimitive() {
+    final Customer customer = getContainer().getCustomers().getByKey(1);
+    assertNotNull(customer);
+    assertNull(customer.getPersonID());
+
+    assertEquals(1, customer.load().getPersonID(), 0);
+    service.getContext().detachAll();
+  }
+
+  @Test
+  public void readAndCheckForComplex() {
+    Customer customer = container.getCustomers().getByKey(1); // no http request
+    Address homeAddress = customer.getHomeAddress();
+    assertNotNull(homeAddress);
+    assertNull(homeAddress.getCity());
+    assertNull(homeAddress.getPostalCode());
+    assertNull(homeAddress.getStreet());
+
+    homeAddress.load(); // HTTP request at complex loading
+    assertEquals("London", homeAddress.getCity());
+    assertEquals("98052", homeAddress.getPostalCode());
+    assertEquals("1 Microsoft Way", homeAddress.getStreet());
+
+    getService().getContext().detachAll();
+
+    homeAddress = container.getCustomers().getByKey(1).load().getHomeAddress(); // HTTP request at entity loading
+    assertEquals("London", homeAddress.getCity());
+    assertEquals("98052", homeAddress.getPostalCode());
+    assertEquals("1 Microsoft Way", homeAddress.getStreet());
+
+    getService().getContext().detachAll();
+
+    customer = container.getOrders().getByKey(8).getCustomerForOrder();
+    homeAddress = customer.getHomeAddress().select("City", "PostalCode").expand("SomethingElse"); // no HTTP request
+    assertNotNull(homeAddress);
+    assertNull(homeAddress.getCity());
+    assertNull(homeAddress.getPostalCode());
+    assertNull(homeAddress.getStreet());
+
+    try {
+      homeAddress.load();
+      fail();
+    } catch (Exception e) {
+      // Generated URL
+      // "<serviceroot>/Orders(8)/CustomerForOrder/HomeAddress?$select=City,PostalCode&$expand=SomethingElse"
+      // curently unsupported by test service server
+      homeAddress.clearQueryOptions();
+    }
+  }
+
+  @Test
+  public void readWholeEntitySet() {
+    PersonCollection person = getContainer().getPeople().execute();
+    assertEquals(5, person.size(), 0);
+
+    int pageCount = 1;
+    while (person.hasNextPage()) {
+      pageCount++;
+      assertFalse(person.nextPage().execute().isEmpty());
+    }
+
+    assertEquals(2, pageCount);
+    service.getContext().detachAll(); // avoid influences
+  }
+
+  @Test
+  public void loadWithSelect() {
+    Order order =
+        getContainer().getOrders().getByKey(8);
+    assertNull(order.getOrderID());
+    assertNull(order.getOrderDate());
+
+    order.select("OrderID");
+    order.load();
+
+    assertNull(order.getOrderDate());
+    assertNotNull(order.getOrderID());
+
+    order.clearQueryOptions();
+    order.load();
+    assertNotNull(order.getOrderDate());
+    assertNotNull(order.getOrderID());
+    service.getContext().detachAll(); // avoid influences
+  }
+
+  @Test
+  public void loadWithSelectAndExpand() {
+    final Customer customer = getContainer().getCustomers().getByKey(1);
+
+    customer.expand("Orders");
+    customer.select("Orders", "PersonID");
+
+    customer.load();
+    assertEquals(1, customer.getOrders().size());
+    service.getContext().detachAll(); // avoid influences
+  }
+
+  @Test
+  public void navigateLinks() {
+    final Customer customer = getContainer().getCustomers().getByKey(1); // No HTTP Request
+    assertNotNull(customer.getCompany().load().getCompanyID()); // singleton: single request
+    assertEquals(1, customer.getOrders().execute().size()); // collection: single request
+
+    final Order order = getContainer().getOrders().getByKey(8); // No HTTP Requests
+    assertNotNull(order.getCustomerForOrder().load().getPersonID()); // entity type: single request
+
+    service.getContext().detachAll(); // avoid influences
+  }
+
+  @Test
+  public void createDelete() {
+    // Create order ....
+    final Order order = getContainer().newEntityInstance(Order.class);
+    order.setOrderID(1105);
+
+    final Calendar orderDate = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    orderDate.clear();
+    orderDate.set(2011, 3, 4, 16, 3, 57);
+    order.setOrderDate(new Timestamp(orderDate.getTimeInMillis()));
+
+    order.setShelfLife(BigDecimal.ZERO);
+
+    final PrimitiveCollection<BigDecimal> osl = getContainer().newPrimitiveCollection(BigDecimal.class);
+    osl.add(BigDecimal.TEN.negate());
+    osl.add(BigDecimal.TEN);
+
+    order.setOrderShelfLifes(osl);
+
+    getContainer().getOrders().add(order);
+    getContainer().flush();
+
+    Order actual = getContainer().getOrders().getByKey(1105);
+    assertNull(actual.getOrderID());
+
+    actual.load();
+    assertEquals(1105, actual.getOrderID(), 0);
+    assertEquals(orderDate.getTimeInMillis(), actual.getOrderDate().getTime());
+    assertEquals(BigDecimal.ZERO, actual.getShelfLife());
+    assertEquals(2, actual.getOrderShelfLifes().size());
+
+    service.getContext().detachAll();
+
+    // (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));
+    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();
+
+    service.getContext().detachAll();
+    try {
+      getContainer().getOrders().getByKey(1105).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // Test
+    }
+    service.getContext().detachAll(); // avoid influences
+  }
+
+  @Test
+  public void deleteSingleProperty() {
+    container.getCustomers().getByKey(1).delete("City");
+    container.flush();
+  }
+
+  @Test
+  public void deleteComplex() {
+    container.getCustomers().getByKey(1).getHomeAddress().delete();
+    container.flush();
+  }
+
+  @Test
+  public void deleteCollection() {
+    container.getCustomers().getByKey(1).getEmails().delete();
+    container.flush();
+  }
+
+  @Test
+  public void deleteEdmStreamProperty() throws IOException {
+    // ---------------------------------------
+    // Instantiate Demo Service
+    // ---------------------------------------
+    final Service<EdmEnabledODataClient> dservice =
+        Service.getV4(testDemoServiceRootURL);
+    dservice.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    final DemoService dcontainer = dservice.getEntityContainer(DemoService.class);
+    assertNotNull(dcontainer);
+    dservice.getContext().detachAll();
+    // ---------------------------------------
+    dcontainer.getPersonDetails().getByKey(1).delete("Photo");
+    dcontainer.flush();
+
+    dservice.getContext().detachAll(); // avoid influences
+  }
+
+  @Test
+  public void updateComplexProperty() {
+    Address homeAddress = container.getCustomers().getByKey(1).getHomeAddress();
+    homeAddress.setCity("Pescara");
+    homeAddress.setPostalCode("98052");
+    container.flush();
+
+    homeAddress = container.getCustomers().getByKey(1).getHomeAddress().load();
+    assertEquals("Pescara", homeAddress.getCity());
+    assertEquals("98052", homeAddress.getPostalCode());
+  }
+
+  @Test
+  public void updateAndReadEdmStreamProperty() throws IOException {
+    // ---------------------------------------
+    // Instantiate Demo Service
+    // ---------------------------------------
+    final Service<EdmEnabledODataClient> dservice =
+        Service.getV4(testDemoServiceRootURL);
+    dservice.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    final DemoService dcontainer = dservice.getEntityContainer(DemoService.class);
+    assertNotNull(dcontainer);
+    dservice.getContext().detachAll();
+    // ---------------------------------------
+    final String random = RandomStringUtils.random(124, "abcdefghijklmnopqrstuvwxyz");
+
+    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(dcontainer.newEdmStreamValue("application/octet-stream", IOUtils.toInputStream(random)));
+
+    dcontainer.flush();
+
+    final EdmStreamValue actual = dcontainer.getPersonDetails().getByKey(1).getPhoto().load(); // 1 HTTP Request
+    assertEquals(random, IOUtils.toString(actual.getStream()));
+
+    dservice.getContext().detachAll(); // avoid influences
+  }
+
+  @Test
+  public void boundOperationsAfterCreate() {
+    final Product product = getContainer().newEntityInstance(Product.class);
+    product.setProductID(1012);
+    product.setName("Latte");
+    product.setQuantityPerUnit("100g Bag");
+    product.setUnitPrice(3.24f);
+    product.setQuantityInStock(100);
+    product.setDiscontinued(false);
+    product.setUserAccess(AccessLevel.Execute);
+    product.setSkinColor(Color.Blue);
+
+    final PrimitiveCollection<Color> cc = getContainer().newPrimitiveCollection(Color.class);
+    cc.add(Color.Red);
+    cc.add(Color.Green);
+
+    product.setCoverColors(cc);
+
+    final ProductDetail detail = getContainer().newEntityInstance(ProductDetail.class);
+    detail.setProductID(product.getProductID());
+    detail.setProductDetailID(1012);
+    detail.setProductName("LatteHQ");
+    detail.setDescription("High-Quality Milk");
+
+    final ProductDetailCollection detailCollection = getContainer().newEntityCollection(ProductDetailCollection.class);
+    detailCollection.add(detail);
+
+    product.setDetails(detailCollection);
+
+    getContainer().getProducts().add(product);
+
+    // The first HTTP Request to create product and the linked product detail
+    getContainer().flush();
+
+    // The second HTTP request to access a bound operation via the local object
+    assertNotNull(product.operations().addAccessRight(AccessLevel.None).execute());
+
+    // The third HTTP Request to access a bound operation via entity URL
+    final ProductDetailCollectionComposableInvoker result =
+        container.getProducts().getByKey(1012).operations().getProductDetails(1);
+    assertEquals(1, result.execute().size());
+  }
+
+  @Test
+  public void workingWithPrimitiveCollections() throws IOException {
+    final PrimitiveCollection<String> emails = container.getPeople().getByKey(1).getEmails();
+    assertNotNull(emails);
+    assertTrue(emails.isEmpty());
+    assertFalse(emails.execute().isEmpty());
+
+    getService().getContext().detachAll();
+
+    // container.getOrders().getByKey(1).getCustomerForOrder().getEmails().execute().isEmpty());
+    // Not supported by the test service BTW generates a single request as expected:
+    // <service root>/Orders(1)/CustomerForOrder/Emails
+    emails.add("fabio.martelli@tirasa.net");
+    container.getPeople().getByKey(1).setEmails(emails);
+
+    container.flush();
+
+    boolean found = false;
+    for (String email : container.getPeople().getByKey(1).getEmails().execute()) {
+      if (email.equals("fabio.martelli@tirasa.net")) {
+        found = true;
+      }
+    }
+
+    assertTrue(found);
+
+    getService().getContext().detachAll();
+  }
+
+  @Test
+  public void workingWithSingletons() {
+    assertNotNull(container.getCompany().getVipCustomer().load().getPersonID());
+
+    container.getCompany().setName("new name");
+    container.flush();
+
+    assertEquals("new name", container.getCompany().load().getName());
+  }
+
+  @Test
+  public void createAndCallOperation() {
+    final Product product = container.newEntityInstance(Product.class);
+    product.setProductID(1001);
+    container.flush();
+
+    container.getProducts().getByKey(1000).operations().getProductDetails(1).execute();
+  }
+
+  @Test
+  public void workingWithOperations() {
+    // Primitive collections (available only skip and top)
+    final PrimitiveCollection<String> prods1 = container.operations().
+        getProductsByAccessLevel(AccessLevel.None).
+        skip(2).
+        top(3).execute();
+    assertNotNull(prods1);
+    assertFalse(prods1.isEmpty());
+
+    // Complex/Entity collection
+    final ProductCollection prods2 = container.operations().getAllProducts().
+        filter("name eq XXXX").
+        select("Name", "ProductDetail").
+        expand("ProductDetail").
+        orderBy("Name").skip(3).top(5).execute();
+    assertNotNull(prods2);
+    assertFalse(prods2.isEmpty());
+
+    // Complex/Entity
+    final Person person = container.operations().getPerson2("London").
+        select("Name").
+        expand("Order").execute();
+    assertNotNull(person);
+
+    // Primitive (no query option available)
+    final Double amount = container.getAccounts().getByKey(101).getMyGiftCard().operations().
+        getActualAmount(1.1).execute();
+    assertNotNull(amount);
+
+    // POST ...
+    final Address address = container.newComplexInstance(HomeAddress.class);
+    address.setStreet("Via Le Mani Dal Naso, 123");
+    address.setPostalCode("Tollo");
+    address.setCity("66010");
+
+    final AddressCollection ac = container.newComplexCollection(AddressCollection.class);
+    final Person updated = container.getCustomers().getByKey(2).operations().
+        resetAddress(ac, 0).select("Name").expand("Orders").execute();
+    assertNotNull(updated);
+  }
+
+  @Test
+  public void workingWithComposableOperations() {
+    final ProductCollectionComposableInvoker invoker1 = container.operations().getAllProducts();
+
+    // Complex/Entity collection (available filter, select, expand, orderBy, skip and top)
+    invoker1.operations().discount(10). // discount is an operation of ProductCollecton
+    filter("Name eq XXXX").
+    select("Name", "ProductDetail").
+    expand("ProductDetail").
+    orderBy("Name").skip(3).top(5).execute();
+
+    // Complex/Entity
+    final PersonComposableInvoker invoker2 = container.operations().getPerson2("London");
+
+    // a. whole entity
+    final Person person = invoker2.select("Name").expand("Order").execute();
+    assertNotNull(person);
+    assertEquals(1, person.getPersonID(), 0);
+
+    // b. primitive collection property
+    final PrimitiveCollection<String> emails = invoker2.getEmails().execute();
+    assertNotNull(emails);
+    assertFalse(emails.isEmpty());
+
+    // c. complex property
+    final Address homeAddress = invoker2.getHomeAddress().load();
+    assertNotNull(homeAddress);
+
+    // d. navigation property
+    final Person parent = invoker2.getParent().load();
+    assertNotNull(parent);
+    assertEquals(2, parent.getPersonID(), 0);
+  }
+
+  /**
+   * Java client should support the deletion based on locally created entity.
+   * See also <a href="https://issues.apache.org/jira/browse/OLINGO-395">Olingo Issue 395</a>.
+   */
+  @Test
+  public void issueOLINGO395() {
+    Order order = getContainer().newEntityInstance(Order.class);
+    order.setOrderID(1105);
+
+    final Calendar orderDate = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    orderDate.clear();
+    orderDate.set(2011, 3, 4, 16, 3, 57);
+    order.setOrderDate(new Timestamp(orderDate.getTimeInMillis()));
+
+    order.setShelfLife(BigDecimal.ZERO);
+
+    final PrimitiveCollection<BigDecimal> osl = getContainer().newPrimitiveCollection(BigDecimal.class);
+    osl.add(BigDecimal.TEN.negate());
+    osl.add(BigDecimal.TEN);
+
+    order.setOrderShelfLifes(osl);
+
+    getContainer().getOrders().add(order);
+    getContainer().getOrders().delete(order);
+
+    getContainer().flush();
+
+    service.getContext().detachAll();
+    try {
+      getContainer().getOrders().getByKey(1105).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // Expected Exception
+    }
+    service.getContext().detachAll(); // avoid influences
+
+    order = getContainer().newEntityInstance(Order.class);
+    order.setOrderID(1105);
+
+    getContainer().getOrders().delete(order);
+    getContainer().flush(); // test service doesn't fail for delete requests about unexisting objects
+
+    service.getContext().detachAll();
+    try {
+      getContainer().getOrders().getByKey(1105).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // Expected Exception
+    }
+    service.getContext().detachAll(); // avoid influences
+  }
+
+  @Test
+  public void issueOLINGO398() {
+    AbstractCollectionInvocationHandler<?, ?> handler = AbstractCollectionInvocationHandler.class.cast(
+        Proxy.getInvocationHandler(container.getCustomers().getByKey(1).getOrders().
+            select("OrderID", "CustomerForOrder").
+            expand("CustomerForOrder").
+            top(1).
+            skip(2)));
+
+    assertEquals("http://localhost:9080/stub/StaticService/V40/Static.svc/Customers(1)/Orders?"
+        + "%24select=OrderID%2CCustomerForOrder&%24expand=CustomerForOrder&%24top=1&%24skip=2",
+        handler.getRequestURI().toASCIIString());
+
+    handler = AbstractCollectionInvocationHandler.class.cast(
+        Proxy.getInvocationHandler(container.getCustomers().getByKey(1).getOrders().
+            select("OrderID", "CustomerForOrder").
+            expand("CustomerForOrder").
+            top(1).
+            skip(2)));
+
+    assertEquals("http://localhost:9080/stub/StaticService/V40/Static.svc/Customers(1)/Orders?%24"
+        + "select=OrderID%2CCustomerForOrder&%24expand=CustomerForOrder&%24top=1&%24skip=2",
+        handler.getRequestURI().toASCIIString());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/AbstractTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/AbstractTestITCase.java
new file mode 100644
index 0000000..c6e1b2c
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/AbstractTestITCase.java
@@ -0,0 +1,149 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.ext.proxy.AbstractService;
+import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.fit.AbstractBaseTestITCase;
+import org.apache.olingo.fit.proxy.staticservice.Service;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
+import org.junit.BeforeClass;
+
+public abstract class AbstractTestITCase extends AbstractBaseTestITCase {
+
+  protected static String testStaticServiceRootURL;
+
+  protected static String testDemoServiceRootURL;
+
+  protected static String testKeyAsSegmentServiceRootURL;
+
+  protected static String testActionOverloadingServiceRootURL;
+
+  protected static String testOpenTypeServiceRootURL;
+
+  protected static String testLargeModelServiceRootURL;
+
+  protected static String testAuthServiceRootURL;
+
+  protected static Service<EdmEnabledODataClient> service;
+
+  protected static InMemoryEntities container;
+
+  @BeforeClass
+  public static void setUpODataServiceRoot() throws IOException {
+    testStaticServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Static.svc";
+    testDemoServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Demo.svc";
+    testKeyAsSegmentServiceRootURL = "http://localhost:9080/stub/StaticService/V40/KeyAsSegment.svc";
+    testActionOverloadingServiceRootURL = "http://localhost:9080/stub/StaticService/V40/ActionOverloading.svc";
+    testOpenTypeServiceRootURL = "http://localhost:9080/stub/StaticService/V40/OpenType.svc";
+    testLargeModelServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Static.svc/large";
+    testAuthServiceRootURL = "http://localhost:9080/stub/DefaultService.svc/V40/Static.svc";
+
+    service = Service.getV4(testStaticServiceRootURL);
+    service.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    container = service.getEntityContainer(InMemoryEntities.class);
+    assertNotNull(container);
+    service.getContext().detachAll();
+  }
+
+  protected Customer readCustomer(final InMemoryEntities container, final int id) {
+    final Customer customer = container.getCustomers().getByKey(id).load();
+    assertNotNull(customer);
+    assertEquals(id, customer.getPersonID(), 0);
+
+    return customer;
+  }
+
+  protected void createPatchAndDeleteOrder(
+      final InMemoryEntities container, final AbstractService<EdmEnabledODataClient> service) {
+
+    // Create order ....
+    final Order order = container.newEntityInstance(Order.class);
+    order.setOrderID(105);
+
+    final Calendar orderDate = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    orderDate.clear();
+    orderDate.set(2011, 3, 4, 16, 3, 57);
+    order.setOrderDate(new Timestamp(orderDate.getTimeInMillis()));
+
+    order.setShelfLife(BigDecimal.ZERO);
+
+    final PrimitiveCollection<BigDecimal> value = container.newPrimitiveCollection(BigDecimal.class);
+    value.add(BigDecimal.TEN.negate());
+    value.add(BigDecimal.TEN);
+    order.setOrderShelfLifes(value);
+
+    container.getOrders().add(order);
+    container.flush();
+
+    // Patch order ... (test for OLINGO-353)
+    order.setShelfLife(BigDecimal.TEN);
+    container.flush();
+
+    Order actual = container.getOrders().getByKey(105).load();
+    assertEquals(105, actual.getOrderID(), 0);
+    assertEquals(orderDate.getTimeInMillis(), actual.getOrderDate().getTime());
+    assertEquals(BigDecimal.TEN, actual.getShelfLife());
+    assertEquals(2, actual.getOrderShelfLifes().size());
+
+    // Delete order ...
+    container.getOrders().delete(105);
+    actual = container.getOrders().getByKey(105);
+    assertNull(actual);
+
+    service.getContext().detachAll();
+    actual = container.getOrders().getByKey(105);
+    assertNotNull(actual);
+
+    container.getOrders().delete(105);
+    actual = container.getOrders().getByKey(105);
+    assertNull(actual);
+
+    container.flush();
+
+    service.getContext().detachAll();
+    try {
+      container.getOrders().getByKey(105).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // Expected Exception
+    }
+  }
+
+  @Override
+  protected ODataClient getClient() {
+    throw new RuntimeException("This method should not be used from proxy tests.");
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/AsyncTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/AsyncTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/AsyncTestITCase.java
new file mode 100644
index 0000000..6d4fe7f
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/AsyncTestITCase.java
@@ -0,0 +1,103 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+
+import org.apache.commons.lang3.RandomStringUtils;
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .PersonComposableInvoker;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .ProductCollectionComposableInvoker;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.junit.Test;
+
+public class AsyncTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void retrieveEntitySet() throws InterruptedException, ExecutionException {
+    final Future<CustomerCollection> futureCustomers = container.getCustomers().executeAsync();
+    assertNotNull(futureCustomers);
+
+    while (!futureCustomers.isDone()) {
+      Thread.sleep(1000L);
+    }
+
+    final CustomerCollection customers = futureCustomers.get();
+    assertNotNull(customers);
+    assertFalse(customers.isEmpty());
+    for (Customer customer : customers) {
+      assertNotNull(customer);
+    }
+  }
+
+  @Test
+  public void updateEntity() throws Exception {
+    final String randomFirstName = RandomStringUtils.random(10, "abcedfghijklmnopqrstuvwxyz");
+
+    final Person person = container.getPeople().getByKey(1);
+    person.setFirstName(randomFirstName);
+
+    final Future<Void> futureFlush = container.flushAsync();
+    assertNotNull(futureFlush);
+
+    while (!futureFlush.isDone()) {
+      Thread.sleep(1000L);
+    }
+
+    final Future<? extends Person> futurePerson = container.getPeople().getByKey(1).loadAsync();
+    assertEquals(randomFirstName, futurePerson.get().getFirstName());
+  }
+
+  @Test
+  public void invoke() throws Exception {
+    final ProductCollectionComposableInvoker invoker1 = container.operations().getAllProducts();
+
+    final Future<ProductCollection> future1 = invoker1.operations().
+        discount(10).
+        filter("Name eq XXXX").
+        select("Name", "ProductDetail").
+        expand("ProductDetail").
+        orderBy("Name").skip(3).top(5).executeAsync();
+    while (!future1.isDone()) {
+      Thread.sleep(1000L);
+    }
+    assertFalse(future1.get().isEmpty());
+
+    final PersonComposableInvoker invoker2 = container.operations().getPerson2("London");
+
+    final Future<Person> future2 = invoker2.select("Name").
+        expand("Order").executeAsync();
+    while (!future2.isDone()) {
+      Thread.sleep(1000L);
+    }
+    assertNotNull(future2.get());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/AuthEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/AuthEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/AuthEntityCreateTestITCase.java
new file mode 100644
index 0000000..2a54622
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/AuthEntityCreateTestITCase.java
@@ -0,0 +1,52 @@
+/*
+ * 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;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.fit.proxy.staticservice.Service;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+
+public class AuthEntityCreateTestITCase extends EntityCreateTestITCase {
+
+  private Service<EdmEnabledODataClient> ecf;
+
+  private InMemoryEntities ime;
+
+  @Override
+  protected Service<EdmEnabledODataClient> getService() {
+    if (ecf == null) {
+      ecf = Service.getV4(testAuthServiceRootURL);
+      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+      ecf.getClient().getConfiguration().
+      setHttpClientFactory(new BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
+    }
+    return ecf;
+  }
+
+  @Override
+  protected InMemoryEntities getContainer() {
+    if (ime == null) {
+      ime = getService().getEntityContainer(InMemoryEntities.class);
+    }
+    return ime;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/AuthEntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/AuthEntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/AuthEntityRetrieveTestITCase.java
new file mode 100644
index 0000000..471c01b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/AuthEntityRetrieveTestITCase.java
@@ -0,0 +1,37 @@
+/*
+ * 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;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.fit.proxy.staticservice.Service;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+
+public class AuthEntityRetrieveTestITCase extends EntityRetrieveTestITCase {
+
+  @Override
+  protected InMemoryEntities getContainer() {
+    final Service<EdmEnabledODataClient> ecf = Service.getV4(testAuthServiceRootURL);
+    ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    ecf.getClient().getConfiguration().
+    setHttpClientFactory(new BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
+    return ecf.getEntityContainer(InMemoryEntities.class);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/BoundOperationInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/BoundOperationInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/BoundOperationInvokeTestITCase.java
new file mode 100644
index 0000000..5847f47
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/BoundOperationInvokeTestITCase.java
@@ -0,0 +1,121 @@
+/*
+ * 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;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.sql.Timestamp;
+import java.util.Calendar;
+
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AddressCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .ProductDetailCollectionComposableInvoker;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailKey;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfoComposableInvoker;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductComposableInvoker;
+
+import org.junit.Test;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void getEmployeesCount() {
+    assertNotNull(container.getCompany().load().operations().getEmployeesCount());
+  }
+
+  @Test
+  public void getProductDetails() {
+    final ProductDetailCollectionComposableInvoker result =
+        container.getProducts().getByKey(5).operations().getProductDetails(1);
+    assertEquals(1, result.execute().size());
+  }
+
+  @Test
+  public void getRelatedProduct() {
+    final ProductDetailKey key = new ProductDetailKey();
+    key.setProductID(6);
+    key.setProductDetailID(1);
+
+    final ProductComposableInvoker product =
+        container.getProductDetails().getByKey(key).operations().getRelatedProduct();
+    assertEquals(6, product.execute().getProductID(), 0);
+  }
+
+  @Test
+  public void getDefaultPI() {
+    final PaymentInstrument pi = container.getAccounts().getByKey(101).operations().getDefaultPI().execute();
+    assertEquals(101901, pi.getPaymentInstrumentID(), 0);
+  }
+
+  @Test
+  public void getAccountInfo() {
+    final AccountInfoComposableInvoker accountInfo =
+        container.getAccounts().getByKey(101).operations().getAccountInfo();
+    assertNotNull(accountInfo.execute());
+  }
+
+  @Test
+  public void getActualAmount() {
+    final Double amount =
+        container.getAccounts().getByKey(101).getMyGiftCard().operations().getActualAmount(1.1).execute();
+    assertEquals(41.79, amount, 0);
+  }
+
+  @Test
+  public void increaseRevenue() {
+    final Long result = container.getCompany().load().operations().increaseRevenue(12L).execute();
+    assertNotNull(result);
+  }
+
+  @Test
+  public void addAccessRight() {
+    final AccessLevel accessLevel =
+        container.getProducts().getByKey(5).operations().addAccessRight(AccessLevel.Execute).execute();
+    assertNotNull(accessLevel);
+  }
+
+  @Test
+  public void resetAddress() {
+    final Address address = container.newComplexInstance(HomeAddress.class);
+    address.setStreet("Via Le Mani Dal Naso, 123");
+    address.setPostalCode("Tollo");
+    address.setCity("66010");
+
+    final AddressCollection ac = container.newComplexCollection(AddressCollection.class);
+    ac.add(address);
+
+    final Person person = container.getCustomers().getByKey(2).operations().resetAddress(ac, 0).execute();
+    assertEquals(2, person.getPersonID(), 0);
+  }
+
+  @Test
+  public void refreshDefaultPI() {
+    final PaymentInstrument pi = container.getAccounts().getByKey(101).operations().
+        refreshDefaultPI(new Timestamp(Calendar.getInstance().getTimeInMillis())).execute();
+    assertEquals(101901, pi.getPaymentInstrumentID(), 0);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/ContextTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/ContextTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/ContextTestITCase.java
new file mode 100644
index 0000000..2d97038
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/ContextTestITCase.java
@@ -0,0 +1,101 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.ext.proxy.api.ODataFlushException;
+import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.fit.proxy.staticservice.Service;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.junit.Test;
+
+public class ContextTestITCase extends AbstractTestITCase {
+
+  private void continueOnError(final Service<EdmEnabledODataClient> service, final InMemoryEntities container) {
+    final Person person = container.newEntityInstance(Person.class);
+    container.getPeople().add(person);
+
+    final Employee employee = container.newEntityInstance(Employee.class);
+    employee.setPersonID(199);
+    employee.setFirstName("Fabio");
+    employee.setLastName("Martelli");
+
+    final PrimitiveCollection<String> emails = container.newPrimitiveCollection(String.class);
+    emails.add("fabio.martelli@tirasa.net");
+
+    employee.setEmails(emails);
+    final Calendar date = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    date.clear();
+    date.set(2011, 3, 4, 9, 0, 0);
+    employee.setDateHired(new Timestamp(date.getTimeInMillis()));
+    final Address homeAddress = container.newComplexInstance(Address.class);
+    homeAddress.setCity("Pescara");
+    homeAddress.setPostalCode("65100");
+    homeAddress.setStreet("viale Gabriele D'Annunzio 256");
+    employee.setHomeAddress(homeAddress);
+
+    final PrimitiveCollection<String> numbers = container.newPrimitiveCollection(String.class);
+    numbers.add("3204725072");
+    numbers.add("08569930");
+    employee.setNumbers(numbers);
+
+    container.getPeople().add(employee);
+
+    try {
+      container.flush();
+      fail();
+    } catch (ODataFlushException e) {
+      assertEquals(1, e.getErrors().size());
+      assertEquals(0, e.getErrors().get(0).getIndex());
+      assertNotNull(e.getErrors().get(0).getRequest());
+    }
+
+    service.getContext().detachAll();
+  }
+
+  @Test
+  public void transactionalContinueOnError() {
+    service.getClient().getConfiguration().setContinueOnError(true);
+    continueOnError(service, container);
+    service.getClient().getConfiguration().setContinueOnError(false);
+  }
+
+  @Test
+  public void nonTransactionalContinueOnError() {
+    final Service<EdmEnabledODataClient> _service = Service.getV4(testStaticServiceRootURL, false);
+    _service.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    _service.getClient().getConfiguration().setContinueOnError(true);
+
+    final InMemoryEntities _container = _service.getEntityContainer(InMemoryEntities.class);
+
+    continueOnError(_service, _container);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/DerivedTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/DerivedTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/DerivedTypeTestITCase.java
new file mode 100644
index 0000000..f59dcd8
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/DerivedTypeTestITCase.java
@@ -0,0 +1,95 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+import java.util.Calendar;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddress;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPI;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPICollection;
+
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.junit.Test;
+
+public class DerivedTypeTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void read() {
+    final CustomerCollection customers = container.getPeople().execute(CustomerCollection.class);
+    assertNotNull(customers);
+
+    for (Object customer : customers) {
+      assertTrue(customer instanceof Customer);
+    }
+
+    final CreditCardPICollection creditCards = container.getAccounts().getByKey(101).
+        getMyPaymentInstruments().execute(CreditCardPICollection.class);
+    assertNotNull(creditCards);
+    for (Object creditCard : creditCards) {
+      assertTrue(creditCard instanceof CreditCardPI);
+    }
+  }
+
+  @Test
+  public void createDelete() {
+    final Customer customer = container.newEntityInstance(Customer.class);
+    customer.setPersonID(976);
+    customer.setFirstName("Test");
+    customer.setLastName("Test");
+
+    final Address homeAddress = container.newComplexInstance(CompanyAddress.class);
+    homeAddress.setStreet("V.le Gabriele D'Annunzio");
+    homeAddress.setCity("Pescara");
+    homeAddress.setPostalCode("65127");
+    customer.setHomeAddress(homeAddress);
+
+    customer.setNumbers(container.newPrimitiveCollection(String.class)); // empty
+    customer.setEmails(container.newPrimitiveCollection(String.class)); // empty
+    customer.setCity("Pescara");
+
+    final Calendar birthday = Calendar.getInstance();
+    birthday.clear();
+    birthday.set(1977, 8, 8);
+    customer.setBirthday(new Timestamp(birthday.getTimeInMillis()));
+
+    customer.setTimeBetweenLastTwoOrders(BigDecimal.valueOf(0.0000002));
+
+    container.getPeople().add(customer);
+    container.flush();
+
+    final Person actual = container.getPeople().getByKey(976, Customer.class).load();
+    assertTrue(actual instanceof Customer);
+    assertTrue(actual.getHomeAddress() instanceof CompanyAddress);
+
+    container.getPeople().delete(976);
+
+    container.flush();
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/EntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/EntityCreateTestITCase.java
new file mode 100644
index 0000000..e581111
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/EntityCreateTestITCase.java
@@ -0,0 +1,382 @@
+/*
+ * 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;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.apache.commons.lang3.RandomUtils;
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.ext.proxy.AbstractService;
+import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailKey;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrumentCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetail;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection;
+
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress;
+import org.junit.Assert;
+import org.junit.Test;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+/**
+ * This is the unit test class to check entity create operations.
+ */
+public class EntityCreateTestITCase extends AbstractTestITCase {
+
+  protected AbstractService<EdmEnabledODataClient> getService() {
+    return service;
+  }
+
+  protected InMemoryEntities getContainer() {
+    return container;
+  }
+
+  @Test
+  public void createAndDelete() {
+    createPatchAndDeleteOrder(getContainer(), getService());
+  }
+
+  @Test
+  public void createEmployee() {
+    final Integer id = 101;
+
+    final Employee employee = getContainer().newEntityInstance(Employee.class);
+    employee.setPersonID(id);
+    employee.setFirstName("Fabio");
+    employee.setLastName("Martelli");
+
+    PrimitiveCollection<String> value = getContainer().newPrimitiveCollection(String.class);
+    value.add("fabio.martelli@tirasa.net");
+    employee.setEmails(value);
+
+    final Calendar date = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    date.clear();
+    date.set(2011, 3, 4, 9, 0, 0);
+    employee.setDateHired(new Timestamp(date.getTimeInMillis()));
+    final Address homeAddress = getContainer().newComplexInstance(HomeAddress.class);
+    homeAddress.setCity("Pescara");
+    homeAddress.setPostalCode("65100");
+    homeAddress.setStreet("viale Gabriele D'Annunzio 256");
+    employee.setHomeAddress(homeAddress);
+
+    value = getContainer().newPrimitiveCollection(String.class);
+    value.add("3204725072");
+    value.add("08569930");
+    employee.setNumbers(value);
+
+    getContainer().getPeople().add(employee);
+
+    getContainer().flush();
+
+    Employee actual = getContainer().getPeople().getByKey(id, Employee.class).load();
+    assertNotNull(actual);
+    assertEquals(id, actual.getPersonID());
+    Assert.assertEquals(homeAddress.getCity(), actual.getHomeAddress().getCity());
+
+    getService().getContext().detachAll();
+    actual = getContainer().getPeople().getByKey(id, Employee.class).load();
+    assertNotNull(actual);
+    assertEquals(id, actual.getPersonID());
+    Assert.assertEquals(homeAddress.getCity(), actual.getHomeAddress().getCity());
+
+    getContainer().getPeople().delete(actual.getPersonID());
+    getContainer().flush();
+
+    try {
+      getContainer().getPeople().getByKey(id, Employee.class).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // Expected
+    }
+
+    getService().getContext().detachAll();
+    try {
+      getContainer().getPeople().getByKey(id, Employee.class).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // Expected
+    }
+  }
+
+  @Test
+  public void createWithNavigation() {
+    final Integer id = 101;
+
+    final Customer customer = getContainer().newEntityInstance(Customer.class);
+    customer.setPersonID(id);
+    customer.setPersonID(id);
+    customer.setFirstName("Fabio");
+    customer.setLastName("Martelli");
+    customer.setCity("Pescara");
+
+    PrimitiveCollection<String> value = getContainer().newPrimitiveCollection(String.class);
+    value.add("fabio.martelli@tirasa.net");
+    customer.setEmails(value);
+
+    Address homeAddress = getContainer().newComplexInstance(HomeAddress.class);
+    homeAddress.setCity("Pescara");
+    homeAddress.setPostalCode("65100");
+    homeAddress.setStreet("viale Gabriele D'Annunzio 256");
+    customer.setHomeAddress(homeAddress);
+
+    value = getContainer().newPrimitiveCollection(String.class);
+    value.add("3204725072");
+    value.add("08569930");
+    customer.setNumbers(value);
+
+    final OrderCollection orders = getContainer().newEntityCollection(OrderCollection.class);
+    orders.add(getContainer().getOrders().getByKey(8));
+    customer.setOrders(orders);
+
+    getContainer().getCustomers().add(customer);
+    getContainer().flush();
+
+    Customer actual = readCustomer(getContainer(), id);
+    Assert.assertEquals(homeAddress.getCity(), actual.getHomeAddress().getCity());
+    Assert.assertEquals(1, actual.getOrders().execute().size());
+    Assert.assertEquals(8, actual.getOrders().iterator().next().getOrderID(), 0);
+
+    getContainer().getCustomers().delete(actual.getPersonID());
+    getContainer().flush();
+
+    try {
+      getContainer().getCustomers().getByKey(id).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // Expected
+    }
+  }
+
+  @Test
+  public void createWithBackNavigation() {
+    final Integer id = 102;
+
+    // -------------------------------
+    // Create a new order
+    // -------------------------------
+    Order order = getContainer().newEntityInstance(Order.class);
+    order.setOrderID(id);
+
+    final Calendar orderDate = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    orderDate.clear();
+    orderDate.set(2011, 3, 4, 16, 3, 57);
+    order.setOrderDate(new Timestamp(orderDate.getTimeInMillis()));
+
+    order.setShelfLife(BigDecimal.TEN);
+
+    PrimitiveCollection<BigDecimal> osl = getContainer().newPrimitiveCollection(BigDecimal.class);
+    osl.add(BigDecimal.TEN.negate());
+    osl.add(BigDecimal.TEN);
+    order.setOrderShelfLifes(osl);
+    // -------------------------------
+
+    // -------------------------------
+    // Create a new customer
+    // -------------------------------
+    final Customer customer = getContainer().newEntityInstance(Customer.class);
+    customer.setPersonID(id);
+    customer.setPersonID(id);
+    customer.setFirstName("Fabio");
+    customer.setLastName("Martelli");
+    customer.setCity("Pescara");
+
+    PrimitiveCollection<String> value = getContainer().newPrimitiveCollection(String.class);
+    value.add("fabio.martelli@tirasa.net");
+    customer.setEmails(value);
+
+    final Address homeAddress = getContainer().newComplexInstance(HomeAddress.class);
+    homeAddress.setCity("Pescara");
+    homeAddress.setPostalCode("65100");
+    homeAddress.setStreet("viale Gabriele D'Annunzio 256");
+    customer.setHomeAddress(homeAddress);
+
+    value = getContainer().newPrimitiveCollection(String.class);
+    value.add("3204725072");
+    value.add("08569930");
+    customer.setNumbers(value);
+
+    final OrderCollection orders = getContainer().newEntityCollection(OrderCollection.class);
+    orders.add(order);
+    customer.setOrders(orders);
+    // -------------------------------
+
+    // -------------------------------
+    // Link customer to order
+    // -------------------------------
+    order.setCustomerForOrder(customer);
+    // -------------------------------
+
+    getContainer().getOrders().add(order);
+    getContainer().flush();
+
+    assertEquals(id, order.getOrderID());
+    assertEquals(id, customer.getPersonID());
+
+    Customer actual = readCustomer(getContainer(), id);
+    Assert.assertEquals(homeAddress.getCity(), actual.getHomeAddress().getCity());
+    Assert.assertEquals(1, actual.getOrders().execute().size());
+    Assert.assertEquals(id, actual.getOrders().iterator().next().getOrderID());
+
+    order = getContainer().getOrders().getByKey(id);
+    assertNotNull(order);
+    Assert.assertEquals(id, order.getCustomerForOrder().load().getPersonID());
+
+    getContainer().getOrders().delete(actual.getOrders());
+    getContainer().flush();
+
+    try {
+      getContainer().getOrders().getByKey(id).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // Expected
+    }
+
+    actual = readCustomer(getContainer(), id);
+    assertTrue(actual.getOrders().isEmpty());
+
+    getContainer().getCustomers().delete(actual.getPersonID());
+    getContainer().flush();
+
+    try {
+      getContainer().getCustomers().getByKey(id).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // Expected
+    }
+  }
+
+  @Test
+  public void multiKey() {
+    OrderDetail details = getContainer().newEntityInstance(OrderDetail.class);
+    details.setOrderID(8);
+    details.setProductID(1);
+    details.setQuantity(100);
+    details.setUnitPrice(5f);
+
+    getContainer().getOrderDetails().add(details);
+    getContainer().flush();
+
+    OrderDetailKey key = new OrderDetailKey();
+    key.setOrderID(8);
+    key.setProductID(1);
+
+    details = getContainer().getOrderDetails().getByKey(key).load();
+    assertNotNull(details);
+    assertEquals(Integer.valueOf(100), details.getQuantity());
+    assertEquals(8, details.getOrderID(), 0);
+    assertEquals(1, details.getProductID(), 0);
+    assertEquals(5f, details.getUnitPrice(), 0);
+
+    getContainer().getOrderDetails().delete(key);
+    getContainer().flush();
+
+    try {
+      getContainer().getOrderDetails().getByKey(key).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // Expected
+    }
+  }
+
+  @Test
+  public void deepInsert() {
+    Product product = getContainer().newEntityInstance(Product.class);
+    product.setProductID(12);
+    product.setName("Latte");
+    product.setQuantityPerUnit("100g Bag");
+    product.setUnitPrice(3.24f);
+    product.setQuantityInStock(100);
+    product.setDiscontinued(false);
+    product.setUserAccess(AccessLevel.Execute);
+    product.setSkinColor(Color.Blue);
+
+    PrimitiveCollection<Color> value = getContainer().newPrimitiveCollection(Color.class);
+    value.add(Color.Red);
+    value.add(Color.Green);
+    product.setCoverColors(value);
+
+    final ProductDetail detail = getContainer().newEntityInstance(ProductDetail.class);
+    detail.setProductID(product.getProductID());
+    detail.setProductDetailID(12);
+    detail.setProductName("LatteHQ");
+    detail.setDescription("High-Quality Milk");
+
+    final ProductDetailCollection detailCollection = getContainer().newEntityCollection(ProductDetailCollection.class);
+    detailCollection.add(detail);
+
+    product.setDetails(detailCollection);
+
+    getContainer().getProducts().add(product);
+    getContainer().flush();
+
+    product = getContainer().getProducts().getByKey(12).load();
+    assertEquals("Latte", product.getName());
+    Assert.assertEquals(12, product.getDetails().execute().iterator().next().getProductDetailID(), 0);
+  }
+
+  @Test
+  public void contained() {
+    PaymentInstrumentCollection instruments =
+        getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().execute();
+    final int sizeBefore = instruments.size();
+
+    final PaymentInstrument instrument = getContainer().newEntityInstance(PaymentInstrument.class);
+    instruments.add(instrument);
+
+    final int id = RandomUtils.nextInt(101999, 105000);
+    instrument.setPaymentInstrumentID(id);
+    instrument.setFriendlyName("New one");
+    instrument.setCreatedDate(new Timestamp(Calendar.getInstance().getTimeInMillis()));
+
+    getContainer().flush();
+
+    instruments = getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().execute();
+    final int sizeAfter = instruments.size();
+    assertEquals(sizeBefore + 1, sizeAfter);
+
+    getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().delete(id);
+
+    getContainer().flush();
+
+    instruments = getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().execute();
+    final int sizeEnd = instruments.size();
+    assertEquals(sizeBefore, sizeEnd);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/EntityRetrieveTestITCase.java
new file mode 100644
index 0000000..3b74db8
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/EntityRetrieveTestITCase.java
@@ -0,0 +1,173 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.lang.reflect.Proxy;
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.ext.proxy.commons.EntityInvocationHandler;
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailKey;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.junit.Test;
+
+/**
+ * This is the unit test class to check entity retrieve operations.
+ */
+public class EntityRetrieveTestITCase extends AbstractTestITCase {
+
+  protected InMemoryEntities getContainer() {
+    return container;
+  }
+
+  @Test
+  public void exists() {
+    assertTrue(getContainer().getCustomers().exists(1));
+    assertFalse(getContainer().getOrders().exists(1));
+  }
+
+  @Test
+  public void get() {
+    readCustomer(getContainer(), 1);
+  }
+
+  @Test
+  public void getAll() {
+    final PersonCollection all = getContainer().getPeople().execute();
+    assertNotNull(all);
+    assertFalse(all.isEmpty());
+    for (Person person : all) {
+      assertNotNull(person);
+    }
+
+    final EmployeeCollection employees = getContainer().getPeople().execute(EmployeeCollection.class);
+    assertNotNull(employees);
+    assertFalse(employees.isEmpty());
+    for (Employee employee : employees) {
+      assertNotNull(employee);
+    }
+
+    final CustomerCollection customers = getContainer().getPeople().execute(CustomerCollection.class);
+    assertNotNull(customers);
+    assertFalse(customers.isEmpty());
+    for (Customer customer : customers) {
+      assertNotNull(customer);
+    }
+
+    assertTrue(all.size() > employees.size() + customers.size());
+  }
+
+  @Test
+  public void navigate() {
+    final Order order = getContainer().getOrders().getByKey(8).load();
+    assertEquals(8, order.getOrderID(), 0);
+
+    final Timestamp date = order.getOrderDate();
+    assertNotNull(date);
+    final Calendar actual = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    actual.clear();
+    actual.set(2011, 2, 4, 16, 3, 57);
+    assertEquals(actual.getTimeInMillis(), date.getTime());
+
+    final Customer customer = getContainer().getCustomers().getByKey(1).load();
+    assertNotNull(customer);
+    assertEquals(1, customer.getPersonID(), 0);
+    final Address address = customer.getHomeAddress();
+    assertNotNull(address);
+    assertEquals("98052", address.getPostalCode());
+  }
+
+  @Test
+  public void withInlineEntry() {
+    final Customer customer = readCustomer(getContainer(), 1);
+    final Company company = customer.getCompany();
+    assertEquals(0, company.load().getCompanyID(), 0);
+  }
+
+  @Test
+  public void withInlineFeed() {
+    final Customer customer = readCustomer(getContainer(), 1);
+    final OrderCollection orders = customer.getOrders();
+    assertEquals(1, orders.execute().size());
+    assertEquals(8, orders.iterator().next().getOrderID(), 0);
+  }
+
+  @Test
+  public void withActions() {
+    final Product product = getContainer().getProducts().getByKey(5).load();
+    assertEquals(5, product.getProductID(), 0);
+
+    try {
+      assertNotNull(product.operations().getClass().getMethod("addAccessRight", AccessLevel.class));
+    } catch (Exception e) {
+      fail();
+    }
+  }
+
+  @Test
+  public void multiKey() {
+    final OrderDetailKey orderDetailKey = new OrderDetailKey();
+    orderDetailKey.setOrderID(7);
+    orderDetailKey.setProductID(5);
+
+    final OrderDetail orderDetail = getContainer().getOrderDetails().getByKey(orderDetailKey).load();
+    assertNotNull(orderDetail);
+    assertEquals(7, orderDetail.getOrderID(), 0);
+    assertEquals(5, orderDetail.getProductID(), 0);
+  }
+
+  @Test
+  public void checkForETag() {
+    final Order order = getContainer().getOrders().getByKey(8).load();
+    assertTrue(StringUtils.isNotBlank(((EntityInvocationHandler) Proxy.getInvocationHandler(order)).getETag()));
+  }
+
+  @Test
+  public void contained() {
+    final PaymentInstrument instrument =
+        getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().getByKey(101901).load();
+    assertEquals(101901, instrument.getPaymentInstrumentID(), 0);
+    assertNotNull(instrument.getCreatedDate());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/EntitySetTestITCase.java
new file mode 100644
index 0000000..7610603
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/EntitySetTestITCase.java
@@ -0,0 +1,76 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * This is the unit test class to check basic feed operations.
+ */
+public class EntitySetTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void count() {
+    assertNotNull(container.getOrders());
+    Assert.assertEquals(2, container.getOrders().count().longValue());
+  }
+
+  @Test
+  public void getAll() {
+    int count = 0;
+    for (Customer customer : container.getCustomers().execute()) {
+      assertNotNull(customer);
+      count++;
+    }
+    assertEquals(2, count);
+  }
+
+  @Test
+  public void iterator() {
+    int count = 0;
+    for (Customer customer : container.getCustomers()) {
+      assertNotNull(customer);
+      count++;
+    }
+    assertEquals(2, count);
+  }
+
+  @Test
+  public void readEntitySetWithNextLink() {
+    int count = 0;
+    for (Person people : container.getPeople().execute()) {
+      assertNotNull(people);
+      count++;
+    }
+    assertEquals(5, count);
+
+    int iterating = 0;
+    for (Person person : container.getPeople()) {
+      assertNotNull(person);
+      iterating++;
+    }
+    assertEquals(count + 1, iterating);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/EntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/EntityUpdateTestITCase.java
new file mode 100644
index 0000000..fce3d85
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/EntityUpdateTestITCase.java
@@ -0,0 +1,193 @@
+/*
+ * 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;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+
+import java.lang.reflect.Proxy;
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.UUID;
+
+import org.apache.commons.lang3.RandomUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.ext.proxy.AbstractService;
+import org.apache.olingo.ext.proxy.commons.EntityInvocationHandler;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailKey;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddress;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.junit.Test;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+/**
+ * This is the unit test class to check entity update operations.
+ */
+public class EntityUpdateTestITCase extends AbstractTestITCase {
+
+  protected AbstractService<EdmEnabledODataClient> getService() {
+    return service;
+  }
+
+  protected InMemoryEntities getContainer() {
+    return container;
+  }
+
+  @Test
+  public void update() {
+    Person person = getContainer().getPeople().getByKey(1);
+
+    final Address address = person.getHomeAddress();
+    address.setCity("XXX");
+
+    getContainer().flush();
+
+    person = getContainer().getPeople().getByKey(1).load();
+    assertEquals("XXX", person.getHomeAddress().getCity());
+  }
+
+  @Test
+  public void multiKey() {
+    final OrderDetailKey orderDetailKey = new OrderDetailKey();
+    orderDetailKey.setOrderID(7);
+    orderDetailKey.setProductID(5);
+
+    OrderDetail orderDetail = getContainer().getOrderDetails().getByKey(orderDetailKey).load();
+    assertNotNull(orderDetail);
+    assertEquals(7, orderDetail.getOrderID(), 0);
+    assertEquals(5, orderDetail.getProductID(), 0);
+
+    orderDetail.setQuantity(5);
+
+    getContainer().flush();
+
+    orderDetail = getContainer().getOrderDetails().getByKey(orderDetailKey).load();
+    assertEquals(5, orderDetail.getQuantity(), 0);
+  }
+
+  @Test
+  public void patchLink() {
+    // 1. create customer
+    Customer customer = getContainer().newEntityInstance(Customer.class);
+    customer.setPersonID(977);
+    customer.setFirstName("Test");
+    customer.setLastName("Test");
+
+    final Address homeAddress = getContainer().newComplexInstance(CompanyAddress.class);
+    homeAddress.setStreet("V.le Gabriele D'Annunzio");
+    homeAddress.setCity("Pescara");
+    homeAddress.setPostalCode("65127");
+    customer.setHomeAddress(homeAddress);
+
+    customer.setNumbers(getContainer().newPrimitiveCollection(String.class)); // empty
+    customer.setEmails(getContainer().newPrimitiveCollection(String.class)); // empty
+    customer.setCity("Pescara");
+
+    final Calendar birthday = Calendar.getInstance();
+    birthday.clear();
+    birthday.set(1977, 8, 8);
+    customer.setBirthday(new Timestamp(birthday.getTimeInMillis()));
+
+    customer.setTimeBetweenLastTwoOrders(BigDecimal.valueOf(0.0000002));
+
+    // 2. create order and set it to customer
+    final int orderId = RandomUtils.nextInt(400, 410);
+
+    Order order = getContainer().newEntityInstance(Order.class);
+    order.setOrderID(orderId);
+
+    final OrderCollection orders = getContainer().newEntityCollection(OrderCollection.class);
+    orders.add(order);
+
+    customer.setOrders(orders);
+    order.setCustomerForOrder(customer);
+
+    getContainer().getCustomers().add(customer);
+    getContainer().flush();
+
+    assertEquals(977, order.getCustomerForOrder().load().getPersonID(), 0);
+    // order.getCustomerForOrder().load() caches Customer ... test server doesn't support something like the following
+    // <service>/Orders(400)/CustomerForOrder/Orders
+    // detach all and check for stored data ..
+    getService().getContext().detachAll();
+
+    // 3. check everything after flush
+    order = getContainer().getOrders().getByKey(orderId).load();
+    assertEquals(orderId, order.getOrderID(), 0);
+
+    customer = getContainer().getCustomers().getByKey(977);
+
+    // assertEquals(1, customer.getOrders().size());
+
+    int count = 0;
+    for (Order inside : customer.getOrders().execute()) {
+      if (inside.getOrderID() == orderId) {
+        count++;
+      }
+    }
+    assertEquals(1, count);
+    assertEquals(977, order.getCustomerForOrder().load().getPersonID(), 0);
+
+    // 4. delete customer and order
+    getContainer().getCustomers().delete(977);
+    getContainer().getOrders().delete(orderId);
+
+    getContainer().flush();
+  }
+
+  @Test
+  public void concurrentModification() {
+    Order order = getContainer().getOrders().getByKey(8).load();
+    final String etag = ((EntityInvocationHandler) Proxy.getInvocationHandler(order)).getETag();
+    assertTrue(StringUtils.isNotBlank(etag));
+
+    order.setShelfLife(BigDecimal.TEN);
+
+    getContainer().flush();
+
+    order = getContainer().getOrders().getByKey(8).load();
+    assertEquals(BigDecimal.TEN, order.getShelfLife());
+  }
+
+  @Test
+  public void contained() {
+    PaymentInstrument instrument =
+        getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().getByKey(101901);
+
+    final String newName = UUID.randomUUID().toString();
+    instrument.setFriendlyName(newName);
+
+    getContainer().flush();
+
+    instrument = getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().getByKey(101901).load();
+    assertEquals(newName, instrument.getFriendlyName());
+  }
+}


[17/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Add CSB tests

Posted by mi...@apache.org.
[OLINGO-659] Add CSB tests


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: 2a718c172b314a593d3d7c7df653bb15f777d2d5
Parents: d414dfb
Author: mibo <mi...@apache.org>
Authored: Mon Aug 31 13:04:50 2015 +0200
Committer: mibo <mi...@apache.org>
Committed: Mon Aug 31 14:36:01 2015 +0200

----------------------------------------------------------------------
 .../serializer/utils/CircleStreamBuffer.java    |  44 +--
 .../utils/CircleStreamBufferTest.java           | 310 +++++++++++++++++++
 2 files changed, 335 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2a718c17/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBuffer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBuffer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBuffer.java
index 8a450d8..20d9ca5 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBuffer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBuffer.java
@@ -47,8 +47,8 @@ public class CircleStreamBuffer {
   private Queue<ByteBuffer> bufferQueue = new LinkedBlockingQueue<ByteBuffer>();
   private ByteBuffer currentWriteBuffer;
 
-  private InternalInputStream inStream;
-  private InternalOutputStream outStream;
+  private final InternalInputStream inStream;
+  private final InternalOutputStream outStream;
 
   /**
    * Creates a {@link CircleStreamBuffer} with default buffer size.
@@ -58,12 +58,12 @@ public class CircleStreamBuffer {
   }
 
   /**
-   * Create a {@link CircleStreamBuffer} with given buffer size in bytes.
+   * Create a {@link CircleStreamBuffer} with given initial buffer size.
    *
-   * @param bufferSize
+   * @param initialCapacity initial capacity of internal buffer
    */
-  public CircleStreamBuffer(final int bufferSize) {
-    currentAllocateCapacity = bufferSize;
+  public CircleStreamBuffer(final int initialCapacity) {
+    currentAllocateCapacity = initialCapacity;
     createNewWriteBuffer();
     inStream = new InternalInputStream(this);
     outStream = new InternalOutputStream(this);
@@ -244,21 +244,27 @@ public class CircleStreamBuffer {
   }
 
   /**
+   * Allocate a new buffer with requested capacity
    *
-   * @param requestedCapacity
+   * @param requestedCapacity minimal capacity of new buffer
    * @return the buffer
    */
   private ByteBuffer allocateBuffer(final int requestedCapacity) {
-    int allocateCapacity = requestedCapacity;
-    if (allocateCapacity < currentAllocateCapacity) {
-      allocateCapacity = currentAllocateCapacity * NEW_BUFFER_RESIZE_FACTOR;
+    if (requestedCapacity > MAX_CAPACITY) {
+      currentAllocateCapacity = MAX_CAPACITY;
+      return ByteBuffer.allocate(requestedCapacity);
     }
-    if (allocateCapacity > MAX_CAPACITY) {
-      allocateCapacity = MAX_CAPACITY;
+
+    if (requestedCapacity <= currentAllocateCapacity) {
+      currentAllocateCapacity *= NEW_BUFFER_RESIZE_FACTOR;
+      if (currentAllocateCapacity > MAX_CAPACITY) {
+        currentAllocateCapacity = MAX_CAPACITY;
+      }
+    } else {
+      currentAllocateCapacity = requestedCapacity;
     }
-    // update current
-    currentAllocateCapacity = allocateCapacity;
-    return ByteBuffer.allocate(allocateCapacity);
+
+    return ByteBuffer.allocate(currentAllocateCapacity);
   }
 
   // #############################################
@@ -289,8 +295,8 @@ public class CircleStreamBuffer {
     }
 
     @Override
-    public int read(final byte[] b, final int off, final int len) throws IOException {
-      return inBuffer.read(b, off, len);
+    public int read(final byte[] buffer, final int off, final int len) throws IOException {
+      return inBuffer.read(buffer, off, len);
     }
 
     @Override
@@ -315,8 +321,8 @@ public class CircleStreamBuffer {
     }
 
     @Override
-    public void write(final byte[] b, final int off, final int len) throws IOException {
-      outBuffer.write(b, off, len);
+    public void write(final byte[] buffer, final int off, final int len) throws IOException {
+      outBuffer.write(buffer, off, len);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2a718c17/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBufferTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBufferTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBufferTest.java
new file mode 100644
index 0000000..9ac2c81
--- /dev/null
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/CircleStreamBufferTest.java
@@ -0,0 +1,310 @@
+/*******************************************************************************
+ * 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.server.core.serializer.utils;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.charset.Charset;
+
+import org.junit.Test;
+
+/**
+ *
+ */
+public class CircleStreamBufferTest {
+
+  private static final Charset DEFAULT_CHARSET = Charset.forName("utf-8");
+
+  @Test
+  public void testSimpleWriteReadSignBySign() throws Exception {
+    CircleStreamBuffer csb = new CircleStreamBuffer();
+
+    OutputStream write = csb.getOutputStream();
+    byte[] writeData = "Test".getBytes(DEFAULT_CHARSET);
+    for (byte element : writeData) {
+      write.write(element);
+    }
+
+    InputStream inStream = csb.getInputStream();
+    byte[] buffer = new byte[4];
+    for (int i = 0; i < buffer.length; i++) {
+      buffer[i] = (byte) inStream.read();
+    }
+
+    String result = new String(buffer, DEFAULT_CHARSET);
+
+    assertEquals("Test", result);
+  }
+
+  @Test
+  public void testSimpleWriteReadSignBySignMoreThenBufferSize() throws Exception {
+    CircleStreamBuffer csb = new CircleStreamBuffer(128);
+
+    OutputStream write = csb.getOutputStream();
+    int signs = 1024;
+    String testData = createTestString(signs);
+    byte[] writeData = testData.getBytes(DEFAULT_CHARSET);
+    for (byte element : writeData) {
+      write.write(element);
+    }
+
+    InputStream inStream = csb.getInputStream();
+    byte[] buffer = new byte[signs];
+    for (int i = 0; i < buffer.length; i++) {
+      buffer[i] = (byte) inStream.read();
+    }
+
+    String result = new String(buffer, DEFAULT_CHARSET);
+    assertEquals(testData, result);
+  }
+
+  @Test
+  public void testSimpleWriteReadOnce() throws Exception {
+    CircleStreamBuffer csb = new CircleStreamBuffer();
+
+    OutputStream write = csb.getOutputStream();
+    write.write("Test".getBytes(DEFAULT_CHARSET), 0, 4);
+
+    InputStream inStream = csb.getInputStream();
+
+    String result = readFrom(inStream);
+    assertEquals(4, result.length());
+    assertEquals("Test", result);
+  }
+
+  @Test
+  public void testSimpleWriteReadTwice() throws Exception {
+    CircleStreamBuffer csb = new CircleStreamBuffer();
+
+    OutputStream outStream = csb.getOutputStream();
+    InputStream inStream = csb.getInputStream();
+
+    // first writeInternal/read cycle
+    outStream.write("Test_1".getBytes(DEFAULT_CHARSET));
+    String firstResult = readFrom(inStream);
+    assertEquals("Test_1", firstResult);
+
+    // second writeInternal/read cycle
+    outStream.write("Test_2".getBytes(DEFAULT_CHARSET));
+    String secondResult = readFrom(inStream);
+    assertEquals("Test_2", secondResult);
+  }
+
+  @Test
+  public void testSimpleWriteReadOnce8k() throws Exception {
+    CircleStreamBuffer csb = new CircleStreamBuffer();
+
+    OutputStream outStream = csb.getOutputStream();
+    InputStream inStream = csb.getInputStream();
+    final int signs = 8192;
+
+    String testData = createTestString(signs);
+    outStream.write(testData.getBytes(DEFAULT_CHARSET));
+    String result = readFrom(inStream);
+
+    assertEquals(signs, result.length());
+    assertEquals(testData, result);
+  }
+
+  @Test
+  public void testSimpleWriteExactOneCharacterMoreThenBufferSize() throws Exception {
+    int bufferSize = 4096;
+    CircleStreamBuffer csb = new CircleStreamBuffer(bufferSize);
+
+    OutputStream outStream = csb.getOutputStream();
+    InputStream inStream = csb.getInputStream();
+    final int signs = bufferSize + 1;
+
+    String testData = createTestString(signs);
+    outStream.write(testData.getBytes(DEFAULT_CHARSET));
+    String result = readFrom(inStream, bufferSize * 2);
+
+    assertEquals(signs, result.length());
+    assertEquals(testData, result);
+  }
+
+  @Test
+  public void testSimpleWriteReadOneCharacterMoreThenBufferSize() throws Exception {
+    int bufferSize = 4096;
+    CircleStreamBuffer csb = new CircleStreamBuffer(bufferSize);
+
+    OutputStream outStream = csb.getOutputStream();
+    InputStream inStream = csb.getInputStream();
+
+    int signs = (1 + bufferSize) * 3;
+    String testData = createTestString(signs);
+    outStream.write(testData.getBytes(DEFAULT_CHARSET));
+    String result = readFrom(inStream);
+
+    assertEquals(signs, result.length());
+    assertEquals(testData, result);
+  }
+
+
+  @Test
+  public void testSimpleWriteMoreThenDefaultBufferSize() throws Exception {
+    CircleStreamBuffer csb = new CircleStreamBuffer();
+
+    OutputStream outStream = csb.getOutputStream();
+    InputStream inStream = csb.getInputStream();
+    final int signs = 70110;
+
+    String testData = createTestString(signs);
+    outStream.write(testData.getBytes(DEFAULT_CHARSET));
+    String result = readFrom(inStream);
+
+    assertEquals(signs, result.length());
+    assertEquals(testData, result);
+  }
+
+  @Test
+  public void testSimpleWriteMoreThenBufferSize() throws Exception {
+    int bufferSize = 4096;
+    CircleStreamBuffer csb = new CircleStreamBuffer(bufferSize);
+
+    OutputStream outStream = csb.getOutputStream();
+    InputStream inStream = csb.getInputStream();
+    final int signs = bufferSize * 10;
+
+    String testData = createTestString(signs);
+    outStream.write(testData.getBytes(DEFAULT_CHARSET));
+    String result = readFrom(inStream, bufferSize * 2);
+
+    assertEquals(signs, result.length());
+    assertEquals(testData, result);
+  }
+
+  @Test
+  public void testSimpleWriteMoreThenBufferSizeAndUmlauts() throws Exception {
+    int bufferSize = 4096;
+    CircleStreamBuffer csb = new CircleStreamBuffer(bufferSize);
+
+    OutputStream outStream = csb.getOutputStream();
+    InputStream inStream = csb.getInputStream();
+    final int signs = bufferSize * 10;
+
+    String testData = createTestString(signs);
+    testData = "äüöÄÜÖ" + testData + "äüöÄÜÖ";
+    outStream.write(testData.getBytes(DEFAULT_CHARSET));
+    String result = readFrom(inStream);
+
+    assertEquals(testData.length(), result.length());
+    assertEquals(testData, result);
+  }
+
+  @Test
+  public void testSimpleWriteMoreThenBufferSizeAndUmlautsIso() throws Exception {
+    int bufferSize = 4096;
+    CircleStreamBuffer csb = new CircleStreamBuffer(bufferSize);
+
+    OutputStream outStream = csb.getOutputStream();
+    InputStream inStream = csb.getInputStream();
+    final int signs = bufferSize * 10;
+
+    String testData = createTestString(signs);
+    testData = "äüöÄÜÖ" + testData + "äüöÄÜÖ";
+    outStream.write(testData.getBytes("iso-8859-1"));
+    String result = readFrom(inStream, "iso-8859-1");
+
+    assertEquals(testData.length(), result.length());
+    assertEquals(testData, result);
+  }
+
+  @Test
+  public void testSimpleWriteALotMoreThenBufferSize() throws Exception {
+    int bufferSize = 4096;
+    CircleStreamBuffer csb = new CircleStreamBuffer(bufferSize);
+
+    OutputStream outStream = csb.getOutputStream();
+    InputStream inStream = csb.getInputStream();
+    final int signs = bufferSize * 100;
+
+    String testData = createTestString(signs);
+    outStream.write(testData.getBytes(DEFAULT_CHARSET));
+    String result = readFrom(inStream, bufferSize * 2);
+
+    assertEquals(signs, result.length());
+    assertEquals(testData, result);
+  }
+
+  @Test(expected = IOException.class)
+  public void testCloseInputStream() throws Exception {
+    CircleStreamBuffer csb = new CircleStreamBuffer();
+
+    OutputStream write = csb.getOutputStream();
+    write.write("Test".getBytes(DEFAULT_CHARSET), 0, 4);
+
+    InputStream inStream = csb.getInputStream();
+    inStream.close();
+    byte[] buffer = new byte[4];
+    int count = inStream.read(buffer);
+    assertEquals(4, count);
+  }
+
+  @Test(expected = IOException.class)
+  public void testCloseOutputStream() throws Exception {
+    CircleStreamBuffer csb = new CircleStreamBuffer();
+
+    OutputStream write = csb.getOutputStream();
+    write.close();
+    write.write("Test".getBytes(DEFAULT_CHARSET), 0, 4);
+  }
+
+  // ###################################################
+  // #
+  // # Below here are test helper methods
+  // #
+  // ###################################################
+
+  private String readFrom(final InputStream stream) throws IOException {
+    return readFrom(stream, DEFAULT_CHARSET, 128);
+  }
+
+  private String readFrom(final InputStream stream, final String charset) throws IOException {
+    return readFrom(stream, Charset.forName(charset), 128);
+  }
+
+  private String readFrom(final InputStream stream, final int bufferSize) throws IOException {
+    return readFrom(stream, DEFAULT_CHARSET, bufferSize);
+  }
+
+  private String readFrom(final InputStream stream, final Charset charset, final int bufferSize) throws IOException {
+    StringBuilder b = new StringBuilder();
+    int count;
+    byte[] buffer = new byte[bufferSize];
+    while ((count = stream.read(buffer)) >= 0) {
+      b.append(new String(buffer, 0, count, charset));
+    }
+    return b.toString();
+  }
+
+  private String createTestString(final int signs) {
+    StringBuilder b = new StringBuilder();
+
+    for (int i = 0; i < signs; i++) {
+      int sign = (int) (32 + (Math.random() * 90));
+      b.append((char) sign);
+    }
+
+    return b.toString();
+  }
+}


[48/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
[OLINGO-659] Removed v4 from package and class names


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: 78a9539e365c88c5e17040ecc48a320d13e4368c
Parents: 2a718c1
Author: Michael Bolz <mi...@sap.com>
Authored: Tue Sep 1 11:21:06 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Tue Sep 1 14:44:42 2015 +0200

----------------------------------------------------------------------
 fit/src/it/demo/pom.xml                         |  107 ++
 fit/src/it/demo/verify.groovy                   |   20 +
 fit/src/it/demoV4/pom.xml                       |  107 --
 fit/src/it/demoV4/verify.groovy                 |   20 -
 fit/src/it/openType/pom.xml                     |  107 ++
 fit/src/it/openType/verify.groovy               |   20 +
 fit/src/it/openTypeV4/pom.xml                   |  107 --
 fit/src/it/openTypeV4/verify.groovy             |   20 -
 fit/src/it/staticService/pom.xml                |  107 ++
 fit/src/it/staticService/verify.groovy          |   20 +
 fit/src/it/staticServiceV4/pom.xml              |  107 --
 fit/src/it/staticServiceV4/verify.groovy        |   20 -
 .../org/apache/olingo/fit/AbstractServices.java |    4 +-
 .../main/java/org/apache/olingo/fit/Demo.java   |  174 +++
 .../org/apache/olingo/fit/KeyAsSegment.java     |  159 ++
 .../java/org/apache/olingo/fit/NorthWind.java   |   45 +
 .../org/apache/olingo/fit/NorthWindExt.java     |   46 +
 .../main/java/org/apache/olingo/fit/OAuth2.java |   35 +
 .../java/org/apache/olingo/fit/OpenType.java    |  140 ++
 .../java/org/apache/olingo/fit/Services.java    | 1448 ++++++++++++++++++
 .../main/java/org/apache/olingo/fit/V4Demo.java |  174 ---
 .../org/apache/olingo/fit/V4KeyAsSegment.java   |  159 --
 .../java/org/apache/olingo/fit/V4NorthWind.java |   45 -
 .../org/apache/olingo/fit/V4NorthWindExt.java   |   46 -
 .../java/org/apache/olingo/fit/V4OAuth2.java    |   35 -
 .../java/org/apache/olingo/fit/V4OpenType.java  |  140 --
 .../java/org/apache/olingo/fit/V4Services.java  | 1448 ------------------
 .../org/apache/olingo/fit/V4Vocabularies.java   |   83 -
 .../org/apache/olingo/fit/Vocabularies.java     |   81 +
 .../olingo/fit/base/AbstractTestITCase.java     |  172 +++
 .../apache/olingo/fit/base/AsyncTestITCase.java |  168 ++
 .../olingo/fit/base/AuthBatchTestITCase.java    |  119 ++
 .../apache/olingo/fit/base/BatchTestITCase.java |  647 ++++++++
 .../base/BoundOperationInvokeTestITCase.java    |  459 ++++++
 .../olingo/fit/base/ConformanceTestITCase.java  |  415 +++++
 .../apache/olingo/fit/base/DeltaTestITCase.java |   86 ++
 .../olingo/fit/base/DerivedTypeTestITCase.java  |  150 ++
 .../olingo/fit/base/EntityCreateTestITCase.java |  191 +++
 .../fit/base/EntityRetrieveTestITCase.java      |  378 +++++
 .../olingo/fit/base/EntitySetTestITCase.java    |  178 +++
 .../olingo/fit/base/EntityUpdateTestITCase.java |  185 +++
 .../fit/base/ErrorResponseTestITCase.java       |   62 +
 .../fit/base/FilterFactoryTestITCase.java       |   62 +
 .../base/JSONFormatConformanceTestITCase.java   |  333 ++++
 .../olingo/fit/base/KeyAsSegmentTestITCase.java |  127 ++
 .../olingo/fit/base/MediaEntityTestITCase.java  |  183 +++
 .../olingo/fit/base/MetadataTestITCase.java     |  146 ++
 .../olingo/fit/base/OAuth2TestITCase.java       |  145 ++
 .../olingo/fit/base/OpenTypeTestITCase.java     |  190 +++
 .../base/OperationImportInvokeTestITCase.java   |  294 ++++
 .../olingo/fit/base/PropertyTestITCase.java     |  211 +++
 .../fit/base/PropertyValueTestITCase.java       |  138 ++
 .../olingo/fit/base/QueryOptionsTestITCase.java |  246 +++
 .../fit/base/ServiceDocumentTestITCase.java     |   63 +
 .../olingo/fit/base/SingletonTestITCase.java    |  135 ++
 .../fit/proxy/APIBasicDesignTestITCase.java     |  626 ++++++++
 .../olingo/fit/proxy/AbstractTestITCase.java    |  149 ++
 .../olingo/fit/proxy/AsyncTestITCase.java       |  103 ++
 .../fit/proxy/AuthEntityCreateTestITCase.java   |   52 +
 .../fit/proxy/AuthEntityRetrieveTestITCase.java |   37 +
 .../proxy/BoundOperationInvokeTestITCase.java   |  121 ++
 .../olingo/fit/proxy/ContextTestITCase.java     |  101 ++
 .../olingo/fit/proxy/DerivedTypeTestITCase.java |   95 ++
 .../fit/proxy/EntityCreateTestITCase.java       |  382 +++++
 .../fit/proxy/EntityRetrieveTestITCase.java     |  173 +++
 .../olingo/fit/proxy/EntitySetTestITCase.java   |   76 +
 .../fit/proxy/EntityUpdateTestITCase.java       |  193 +++
 .../olingo/fit/proxy/FilterTestITCase.java      |  101 ++
 .../fit/proxy/KeyAsSegmentTestITCase.java       |   73 +
 .../olingo/fit/proxy/MediaEntityTestITCase.java |  121 ++
 ...TransactionalAuthEntityCreateTestITCase.java |   51 +
 .../NonTransactionalEntityCreateTestITCase.java |   49 +
 .../NonTransactionalEntityUpdateTestITCase.java |   48 +
 .../NonTransactionalMediaEntityTestITCase.java  |   49 +
 .../olingo/fit/proxy/OpenTypeTestITCase.java    |  156 ++
 .../proxy/OperationImportInvokeTestITCase.java  |  107 ++
 .../olingo/fit/proxy/PropertyTestITCase.java    |   57 +
 .../olingo/fit/proxy/SingletonTestITCase.java   |   77 +
 .../UnauthorizedEntityCreateTestITCase.java     |   56 +
 .../apache/olingo/fit/proxy/demo/Service.java   |  138 ++
 .../proxy/demo/odatademo/Advertisements.java    |   40 +
 .../fit/proxy/demo/odatademo/Categories.java    |   40 +
 .../fit/proxy/demo/odatademo/DemoService.java   |   79 +
 .../fit/proxy/demo/odatademo/PersonDetails.java |   40 +
 .../fit/proxy/demo/odatademo/Persons.java       |   40 +
 .../proxy/demo/odatademo/ProductDetails.java    |   40 +
 .../fit/proxy/demo/odatademo/Products.java      |   40 +
 .../fit/proxy/demo/odatademo/Suppliers.java     |   40 +
 .../fit/proxy/demo/odatademo/package-info.java  |   20 +
 .../fit/proxy/demo/odatademo/types/Address.java |  140 ++
 .../demo/odatademo/types/AddressCollection.java |   41 +
 .../AddressCollectionComposableInvoker.java     |   32 +
 .../types/AddressComposableInvoker.java         |  108 ++
 .../demo/odatademo/types/Advertisement.java     |  123 ++
 .../types/AdvertisementCollection.java          |   41 +
 ...dvertisementCollectionComposableInvoker.java |   32 +
 .../types/AdvertisementComposableInvoker.java   |   96 ++
 .../proxy/demo/odatademo/types/Category.java    |  100 ++
 .../odatademo/types/CategoryCollection.java     |   41 +
 .../CategoryCollectionComposableInvoker.java    |   32 +
 .../types/CategoryComposableInvoker.java        |   78 +
 .../proxy/demo/odatademo/types/Customer.java    |  146 ++
 .../odatademo/types/CustomerCollection.java     |   41 +
 .../CustomerCollectionComposableInvoker.java    |   32 +
 .../types/CustomerComposableInvoker.java        |   92 ++
 .../proxy/demo/odatademo/types/Employee.java    |  184 +++
 .../odatademo/types/EmployeeCollection.java     |   41 +
 .../EmployeeCollectionComposableInvoker.java    |   32 +
 .../types/EmployeeComposableInvoker.java        |  122 ++
 .../demo/odatademo/types/FeaturedProduct.java   |  285 ++++
 .../types/FeaturedProductCollection.java        |   41 +
 ...turedProductCollectionComposableInvoker.java |   32 +
 .../types/FeaturedProductComposableInvoker.java |  182 +++
 .../fit/proxy/demo/odatademo/types/Person.java  |   99 ++
 .../demo/odatademo/types/PersonCollection.java  |   41 +
 .../PersonCollectionComposableInvoker.java      |   32 +
 .../types/PersonComposableInvoker.java          |   77 +
 .../demo/odatademo/types/PersonDetail.java      |  176 +++
 .../odatademo/types/PersonDetailCollection.java |   41 +
 ...PersonDetailCollectionComposableInvoker.java |   32 +
 .../types/PersonDetailComposableInvoker.java    |  137 ++
 .../fit/proxy/demo/odatademo/types/Product.java |  231 +++
 .../demo/odatademo/types/ProductCollection.java |   41 +
 .../ProductCollectionComposableInvoker.java     |   32 +
 .../types/ProductComposableInvoker.java         |  172 +++
 .../demo/odatademo/types/ProductDetail.java     |  100 ++
 .../types/ProductDetailCollection.java          |   41 +
 ...roductDetailCollectionComposableInvoker.java |   32 +
 .../types/ProductDetailComposableInvoker.java   |   77 +
 .../proxy/demo/odatademo/types/Supplier.java    |  156 ++
 .../odatademo/types/SupplierCollection.java     |   41 +
 .../SupplierCollectionComposableInvoker.java    |   32 +
 .../types/SupplierComposableInvoker.java        |  122 ++
 .../demo/odatademo/types/package-info.java      |   20 +
 .../olingo/fit/proxy/opentype/Service.java      |  139 ++
 .../opentypesservice/DefaultContainer.java      |   61 +
 .../odata/services/opentypesservice/Row.java    |   40 +
 .../services/opentypesservice/RowIndex.java     |   40 +
 .../services/opentypesservice/package-info.java |   20 +
 .../opentypesservice/types/AccountInfo.java     |   84 +
 .../types/AccountInfoCollection.java            |   41 +
 .../AccountInfoCollectionComposableInvoker.java |   32 +
 .../types/AccountInfoComposableInvoker.java     |   66 +
 .../services/opentypesservice/types/Color.java  |   44 +
 .../opentypesservice/types/ContactDetails.java  |  273 ++++
 .../types/ContactDetailsCollection.java         |   41 +
 ...ntactDetailsCollectionComposableInvoker.java |   32 +
 .../types/ContactDetailsComposableInvoker.java  |  213 +++
 .../opentypesservice/types/IndexedRow.java      |   93 ++
 .../types/IndexedRowCollection.java             |   41 +
 .../IndexedRowCollectionComposableInvoker.java  |   32 +
 .../types/IndexedRowComposableInvoker.java      |   53 +
 .../services/opentypesservice/types/Row.java    |   68 +
 .../opentypesservice/types/RowCollection.java   |   41 +
 .../types/RowCollectionComposableInvoker.java   |   32 +
 .../types/RowComposableInvoker.java             |   53 +
 .../opentypesservice/types/RowIndex.java        |   82 +
 .../types/RowIndexCollection.java               |   41 +
 .../RowIndexCollectionComposableInvoker.java    |   32 +
 .../types/RowIndexComposableInvoker.java        |   64 +
 .../opentypesservice/types/package-info.java    |   20 +
 .../olingo/fit/proxy/staticservice/Service.java |  245 +++
 .../services/odatawcfservice/Accounts.java      |   41 +
 .../services/odatawcfservice/Customers.java     |   41 +
 .../services/odatawcfservice/Departments.java   |   42 +
 .../services/odatawcfservice/Employees.java     |   41 +
 .../odatawcfservice/InMemoryEntities.java       |  226 +++
 .../services/odatawcfservice/OrderDetails.java  |   43 +
 .../odata/services/odatawcfservice/Orders.java  |   41 +
 .../odata/services/odatawcfservice/People.java  |   41 +
 .../odatawcfservice/ProductDetails.java         |   43 +
 .../odatawcfservice/ProductReviews.java         |   43 +
 .../services/odatawcfservice/Products.java      |   41 +
 .../services/odatawcfservice/StoredPIs.java     |   41 +
 .../odatawcfservice/SubscriptionTemplates.java  |   42 +
 .../services/odatawcfservice/package-info.java  |   20 +
 .../odatawcfservice/types/AccessLevel.java      |   46 +
 .../services/odatawcfservice/types/Account.java |  226 +++
 .../types/AccountCollection.java                |   41 +
 .../AccountCollectionComposableInvoker.java     |   32 +
 .../types/AccountComposableInvoker.java         |  156 ++
 .../odatawcfservice/types/AccountInfo.java      |   84 +
 .../types/AccountInfoCollection.java            |   41 +
 .../AccountInfoCollectionComposableInvoker.java |   32 +
 .../types/AccountInfoComposableInvoker.java     |   66 +
 .../services/odatawcfservice/types/Address.java |  102 ++
 .../types/AddressCollection.java                |   41 +
 .../AddressCollectionComposableInvoker.java     |   32 +
 .../types/AddressComposableInvoker.java         |   78 +
 .../services/odatawcfservice/types/Asset.java   |  105 ++
 .../odatawcfservice/types/AssetCollection.java  |   41 +
 .../types/AssetCollectionComposableInvoker.java |   32 +
 .../types/AssetComposableInvoker.java           |   82 +
 .../services/odatawcfservice/types/Club.java    |   86 ++
 .../odatawcfservice/types/ClubCollection.java   |   41 +
 .../types/ClubCollectionComposableInvoker.java  |   32 +
 .../types/ClubComposableInvoker.java            |   67 +
 .../services/odatawcfservice/types/Color.java   |   44 +
 .../services/odatawcfservice/types/Company.java |  232 +++
 .../odatawcfservice/types/CompanyAddress.java   |  136 ++
 .../types/CompanyAddressCollection.java         |   41 +
 ...mpanyAddressCollectionComposableInvoker.java |   32 +
 .../types/CompanyAddressComposableInvoker.java  |   93 ++
 .../odatawcfservice/types/CompanyCategory.java  |   45 +
 .../types/CompanyCollection.java                |   41 +
 .../CompanyCollectionComposableInvoker.java     |   32 +
 .../types/CompanyComposableInvoker.java         |  170 ++
 .../odatawcfservice/types/CreditCardPI.java     |  303 ++++
 .../types/CreditCardPICollection.java           |   41 +
 ...CreditCardPICollectionComposableInvoker.java |   32 +
 .../types/CreditCardPIComposableInvoker.java    |  206 +++
 .../odatawcfservice/types/CreditRecord.java     |  125 ++
 .../types/CreditRecordCollection.java           |   41 +
 ...CreditRecordCollectionComposableInvoker.java |   32 +
 .../types/CreditRecordComposableInvoker.java    |   97 ++
 .../odatawcfservice/types/Customer.java         |  357 +++++
 .../types/CustomerCollection.java               |   41 +
 .../CustomerCollectionComposableInvoker.java    |   32 +
 .../types/CustomerComposableInvoker.java        |  241 +++
 .../odatawcfservice/types/Department.java       |  120 ++
 .../types/DepartmentCollection.java             |   41 +
 .../DepartmentCollectionComposableInvoker.java  |   32 +
 .../types/DepartmentComposableInvoker.java      |   94 ++
 .../odatawcfservice/types/Employee.java         |  321 ++++
 .../types/EmployeeCollection.java               |   41 +
 .../EmployeeCollectionComposableInvoker.java    |   32 +
 .../types/EmployeeComposableInvoker.java        |  213 +++
 .../odatawcfservice/types/GiftCard.java         |  152 ++
 .../types/GiftCardCollection.java               |   41 +
 .../GiftCardCollectionComposableInvoker.java    |   32 +
 .../types/GiftCardComposableInvoker.java        |  112 ++
 .../odatawcfservice/types/HomeAddress.java      |  136 ++
 .../types/HomeAddressCollection.java            |   41 +
 .../HomeAddressCollectionComposableInvoker.java |   32 +
 .../types/HomeAddressComposableInvoker.java     |   93 ++
 .../services/odatawcfservice/types/IsBoss.java  |   31 +
 .../odatawcfservice/types/LabourUnion.java      |   87 ++
 .../types/LabourUnionCollection.java            |   41 +
 .../LabourUnionCollectionComposableInvoker.java |   32 +
 .../types/LabourUnionComposableInvoker.java     |   67 +
 .../services/odatawcfservice/types/Order.java   |  174 +++
 .../odatawcfservice/types/OrderCollection.java  |   41 +
 .../types/OrderCollectionComposableInvoker.java |   32 +
 .../types/OrderComposableInvoker.java           |  136 ++
 .../odatawcfservice/types/OrderDetail.java      |  180 +++
 .../types/OrderDetailCollection.java            |   41 +
 .../OrderDetailCollectionComposableInvoker.java |   32 +
 .../types/OrderDetailComposableInvoker.java     |  139 ++
 .../odatawcfservice/types/OrderDetailKey.java   |   53 +
 .../types/PaymentInstrument.java                |  165 ++
 .../types/PaymentInstrumentCollection.java      |   41 +
 ...ntInstrumentCollectionComposableInvoker.java |   32 +
 .../PaymentInstrumentComposableInvoker.java     |  132 ++
 .../services/odatawcfservice/types/Person.java  |  240 +++
 .../odatawcfservice/types/PersonCollection.java |   41 +
 .../PersonCollectionComposableInvoker.java      |   32 +
 .../types/PersonComposableInvoker.java          |  171 +++
 .../services/odatawcfservice/types/Product.java |  266 ++++
 .../types/ProductCollection.java                |   53 +
 .../ProductCollectionComposableInvoker.java     |   32 +
 .../types/ProductComposableInvoker.java         |  193 +++
 .../odatawcfservice/types/ProductDetail.java    |  172 +++
 .../types/ProductDetailCollection.java          |   41 +
 ...roductDetailCollectionComposableInvoker.java |   32 +
 .../types/ProductDetailComposableInvoker.java   |  124 ++
 .../odatawcfservice/types/ProductDetailKey.java |   53 +
 .../odatawcfservice/types/ProductReview.java    |  168 ++
 .../types/ProductReviewCollection.java          |   41 +
 ...roductReviewCollectionComposableInvoker.java |   32 +
 .../types/ProductReviewComposableInvoker.java   |  130 ++
 .../odatawcfservice/types/ProductReviewKey.java |   75 +
 .../odatawcfservice/types/PublicCompany.java    |  345 +++++
 .../types/PublicCompanyCollection.java          |   41 +
 ...ublicCompanyCollectionComposableInvoker.java |   32 +
 .../types/PublicCompanyComposableInvoker.java   |  232 +++
 .../odatawcfservice/types/Statement.java        |  124 ++
 .../types/StatementCollection.java              |   41 +
 .../StatementCollectionComposableInvoker.java   |   32 +
 .../types/StatementComposableInvoker.java       |   97 ++
 .../odatawcfservice/types/StoredPI.java         |  124 ++
 .../types/StoredPICollection.java               |   41 +
 .../StoredPICollectionComposableInvoker.java    |   32 +
 .../types/StoredPIComposableInvoker.java        |   97 ++
 .../odatawcfservice/types/Subscription.java     |  144 ++
 .../types/SubscriptionCollection.java           |   41 +
 ...SubscriptionCollectionComposableInvoker.java |   32 +
 .../types/SubscriptionComposableInvoker.java    |  112 ++
 .../odatawcfservice/types/package-info.java     |   20 +
 .../fit/proxy/v4/APIBasicDesignTestITCase.java  |  622 --------
 .../olingo/fit/proxy/v4/AbstractTestITCase.java |  149 --
 .../olingo/fit/proxy/v4/AsyncTestITCase.java    |  101 --
 .../proxy/v4/AuthEntityCreateTestITCase.java    |   52 -
 .../proxy/v4/AuthEntityRetrieveTestITCase.java  |   37 -
 .../v4/BoundOperationInvokeTestITCase.java      |  119 --
 .../olingo/fit/proxy/v4/ContextTestITCase.java  |  101 --
 .../fit/proxy/v4/DerivedTypeTestITCase.java     |   94 --
 .../fit/proxy/v4/EntityCreateTestITCase.java    |  380 -----
 .../fit/proxy/v4/EntityRetrieveTestITCase.java  |  173 ---
 .../fit/proxy/v4/EntitySetTestITCase.java       |   75 -
 .../fit/proxy/v4/EntityUpdateTestITCase.java    |  193 ---
 .../olingo/fit/proxy/v4/FilterTestITCase.java   |  101 --
 .../fit/proxy/v4/KeyAsSegmentTestITCase.java    |   73 -
 .../fit/proxy/v4/MediaEntityTestITCase.java     |  121 --
 ...TransactionalAuthEntityCreateTestITCase.java |   51 -
 .../NonTransactionalEntityCreateTestITCase.java |   49 -
 .../NonTransactionalEntityUpdateTestITCase.java |   48 -
 .../NonTransactionalMediaEntityTestITCase.java  |   49 -
 .../olingo/fit/proxy/v4/OpenTypeTestITCase.java |  156 --
 .../v4/OperationImportInvokeTestITCase.java     |  104 --
 .../olingo/fit/proxy/v4/PropertyTestITCase.java |   57 -
 .../fit/proxy/v4/SingletonTestITCase.java       |   77 -
 .../v4/UnauthorizedEntityCreateTestITCase.java  |   56 -
 .../olingo/fit/proxy/v4/demo/Service.java       |  127 --
 .../proxy/v4/demo/odatademo/Advertisements.java |   38 -
 .../fit/proxy/v4/demo/odatademo/Categories.java |   38 -
 .../proxy/v4/demo/odatademo/DemoService.java    |   79 -
 .../proxy/v4/demo/odatademo/PersonDetails.java  |   38 -
 .../fit/proxy/v4/demo/odatademo/Persons.java    |   38 -
 .../proxy/v4/demo/odatademo/ProductDetails.java |   38 -
 .../fit/proxy/v4/demo/odatademo/Products.java   |   38 -
 .../fit/proxy/v4/demo/odatademo/Suppliers.java  |   38 -
 .../proxy/v4/demo/odatademo/package-info.java   |   20 -
 .../proxy/v4/demo/odatademo/types/Address.java  |  140 --
 .../demo/odatademo/types/AddressCollection.java |   41 -
 .../AddressCollectionComposableInvoker.java     |   32 -
 .../types/AddressComposableInvoker.java         |  108 --
 .../v4/demo/odatademo/types/Advertisement.java  |  123 --
 .../types/AdvertisementCollection.java          |   41 -
 ...dvertisementCollectionComposableInvoker.java |   32 -
 .../types/AdvertisementComposableInvoker.java   |   96 --
 .../proxy/v4/demo/odatademo/types/Category.java |  100 --
 .../odatademo/types/CategoryCollection.java     |   41 -
 .../CategoryCollectionComposableInvoker.java    |   32 -
 .../types/CategoryComposableInvoker.java        |   78 -
 .../proxy/v4/demo/odatademo/types/Customer.java |  146 --
 .../odatademo/types/CustomerCollection.java     |   41 -
 .../CustomerCollectionComposableInvoker.java    |   32 -
 .../types/CustomerComposableInvoker.java        |   92 --
 .../proxy/v4/demo/odatademo/types/Employee.java |  184 ---
 .../odatademo/types/EmployeeCollection.java     |   41 -
 .../EmployeeCollectionComposableInvoker.java    |   32 -
 .../types/EmployeeComposableInvoker.java        |  122 --
 .../demo/odatademo/types/FeaturedProduct.java   |  285 ----
 .../types/FeaturedProductCollection.java        |   41 -
 ...turedProductCollectionComposableInvoker.java |   32 -
 .../types/FeaturedProductComposableInvoker.java |  182 ---
 .../proxy/v4/demo/odatademo/types/Person.java   |   99 --
 .../demo/odatademo/types/PersonCollection.java  |   41 -
 .../PersonCollectionComposableInvoker.java      |   32 -
 .../types/PersonComposableInvoker.java          |   77 -
 .../v4/demo/odatademo/types/PersonDetail.java   |  176 ---
 .../odatademo/types/PersonDetailCollection.java |   41 -
 ...PersonDetailCollectionComposableInvoker.java |   32 -
 .../types/PersonDetailComposableInvoker.java    |  137 --
 .../proxy/v4/demo/odatademo/types/Product.java  |  231 ---
 .../demo/odatademo/types/ProductCollection.java |   41 -
 .../ProductCollectionComposableInvoker.java     |   32 -
 .../types/ProductComposableInvoker.java         |  172 ---
 .../v4/demo/odatademo/types/ProductDetail.java  |  100 --
 .../types/ProductDetailCollection.java          |   41 -
 ...roductDetailCollectionComposableInvoker.java |   32 -
 .../types/ProductDetailComposableInvoker.java   |   77 -
 .../proxy/v4/demo/odatademo/types/Supplier.java |  156 --
 .../odatademo/types/SupplierCollection.java     |   41 -
 .../SupplierCollectionComposableInvoker.java    |   32 -
 .../types/SupplierComposableInvoker.java        |  122 --
 .../v4/demo/odatademo/types/package-info.java   |   20 -
 .../olingo/fit/proxy/v4/opentype/Service.java   |  133 --
 .../opentypesservicev4/DefaultContainer.java    |   61 -
 .../odata/services/opentypesservicev4/Row.java  |   39 -
 .../services/opentypesservicev4/RowIndex.java   |   39 -
 .../opentypesservicev4/package-info.java        |   20 -
 .../opentypesservicev4/types/AccountInfo.java   |   84 -
 .../types/AccountInfoCollection.java            |   41 -
 .../AccountInfoCollectionComposableInvoker.java |   32 -
 .../types/AccountInfoComposableInvoker.java     |   66 -
 .../opentypesservicev4/types/Color.java         |   44 -
 .../types/ContactDetails.java                   |  273 ----
 .../types/ContactDetailsCollection.java         |   41 -
 ...ntactDetailsCollectionComposableInvoker.java |   32 -
 .../types/ContactDetailsComposableInvoker.java  |  213 ---
 .../opentypesservicev4/types/IndexedRow.java    |   93 --
 .../types/IndexedRowCollection.java             |   41 -
 .../IndexedRowCollectionComposableInvoker.java  |   32 -
 .../types/IndexedRowComposableInvoker.java      |   53 -
 .../services/opentypesservicev4/types/Row.java  |   68 -
 .../opentypesservicev4/types/RowCollection.java |   41 -
 .../types/RowCollectionComposableInvoker.java   |   32 -
 .../types/RowComposableInvoker.java             |   53 -
 .../opentypesservicev4/types/RowIndex.java      |   82 -
 .../types/RowIndexCollection.java               |   41 -
 .../RowIndexCollectionComposableInvoker.java    |   32 -
 .../types/RowIndexComposableInvoker.java        |   64 -
 .../opentypesservicev4/types/package-info.java  |   20 -
 .../fit/proxy/v4/staticservice/Service.java     |  215 ---
 .../services/odatawcfservice/Accounts.java      |   39 -
 .../services/odatawcfservice/Customers.java     |   39 -
 .../services/odatawcfservice/Departments.java   |   39 -
 .../services/odatawcfservice/Employees.java     |   39 -
 .../odatawcfservice/InMemoryEntities.java       |  214 ---
 .../services/odatawcfservice/OrderDetails.java  |   40 -
 .../odata/services/odatawcfservice/Orders.java  |   39 -
 .../odata/services/odatawcfservice/People.java  |   39 -
 .../odatawcfservice/ProductDetails.java         |   40 -
 .../odatawcfservice/ProductReviews.java         |   40 -
 .../services/odatawcfservice/Products.java      |   39 -
 .../services/odatawcfservice/StoredPIs.java     |   39 -
 .../odatawcfservice/SubscriptionTemplates.java  |   39 -
 .../services/odatawcfservice/package-info.java  |   20 -
 .../odatawcfservice/types/AccessLevel.java      |   46 -
 .../services/odatawcfservice/types/Account.java |  226 ---
 .../types/AccountCollection.java                |   41 -
 .../AccountCollectionComposableInvoker.java     |   32 -
 .../types/AccountComposableInvoker.java         |  156 --
 .../odatawcfservice/types/AccountInfo.java      |   84 -
 .../types/AccountInfoCollection.java            |   41 -
 .../AccountInfoCollectionComposableInvoker.java |   32 -
 .../types/AccountInfoComposableInvoker.java     |   66 -
 .../services/odatawcfservice/types/Address.java |  102 --
 .../types/AddressCollection.java                |   41 -
 .../AddressCollectionComposableInvoker.java     |   32 -
 .../types/AddressComposableInvoker.java         |   78 -
 .../services/odatawcfservice/types/Asset.java   |  105 --
 .../odatawcfservice/types/AssetCollection.java  |   41 -
 .../types/AssetCollectionComposableInvoker.java |   32 -
 .../types/AssetComposableInvoker.java           |   82 -
 .../services/odatawcfservice/types/Club.java    |   86 --
 .../odatawcfservice/types/ClubCollection.java   |   41 -
 .../types/ClubCollectionComposableInvoker.java  |   32 -
 .../types/ClubComposableInvoker.java            |   67 -
 .../services/odatawcfservice/types/Color.java   |   44 -
 .../services/odatawcfservice/types/Company.java |  232 ---
 .../odatawcfservice/types/CompanyAddress.java   |  136 --
 .../types/CompanyAddressCollection.java         |   41 -
 ...mpanyAddressCollectionComposableInvoker.java |   32 -
 .../types/CompanyAddressComposableInvoker.java  |   93 --
 .../odatawcfservice/types/CompanyCategory.java  |   45 -
 .../types/CompanyCollection.java                |   41 -
 .../CompanyCollectionComposableInvoker.java     |   32 -
 .../types/CompanyComposableInvoker.java         |  170 --
 .../odatawcfservice/types/CreditCardPI.java     |  303 ----
 .../types/CreditCardPICollection.java           |   41 -
 ...CreditCardPICollectionComposableInvoker.java |   32 -
 .../types/CreditCardPIComposableInvoker.java    |  206 ---
 .../odatawcfservice/types/CreditRecord.java     |  125 --
 .../types/CreditRecordCollection.java           |   41 -
 ...CreditRecordCollectionComposableInvoker.java |   32 -
 .../types/CreditRecordComposableInvoker.java    |   97 --
 .../odatawcfservice/types/Customer.java         |  357 -----
 .../types/CustomerCollection.java               |   41 -
 .../CustomerCollectionComposableInvoker.java    |   32 -
 .../types/CustomerComposableInvoker.java        |  241 ---
 .../odatawcfservice/types/Department.java       |  120 --
 .../types/DepartmentCollection.java             |   41 -
 .../DepartmentCollectionComposableInvoker.java  |   32 -
 .../types/DepartmentComposableInvoker.java      |   94 --
 .../odatawcfservice/types/Employee.java         |  321 ----
 .../types/EmployeeCollection.java               |   41 -
 .../EmployeeCollectionComposableInvoker.java    |   32 -
 .../types/EmployeeComposableInvoker.java        |  213 ---
 .../odatawcfservice/types/GiftCard.java         |  152 --
 .../types/GiftCardCollection.java               |   41 -
 .../GiftCardCollectionComposableInvoker.java    |   32 -
 .../types/GiftCardComposableInvoker.java        |  112 --
 .../odatawcfservice/types/HomeAddress.java      |  136 --
 .../types/HomeAddressCollection.java            |   41 -
 .../HomeAddressCollectionComposableInvoker.java |   32 -
 .../types/HomeAddressComposableInvoker.java     |   93 --
 .../services/odatawcfservice/types/IsBoss.java  |   31 -
 .../odatawcfservice/types/LabourUnion.java      |   87 --
 .../types/LabourUnionCollection.java            |   41 -
 .../LabourUnionCollectionComposableInvoker.java |   32 -
 .../types/LabourUnionComposableInvoker.java     |   67 -
 .../services/odatawcfservice/types/Order.java   |  174 ---
 .../odatawcfservice/types/OrderCollection.java  |   41 -
 .../types/OrderCollectionComposableInvoker.java |   32 -
 .../types/OrderComposableInvoker.java           |  136 --
 .../odatawcfservice/types/OrderDetail.java      |  180 ---
 .../types/OrderDetailCollection.java            |   41 -
 .../OrderDetailCollectionComposableInvoker.java |   32 -
 .../types/OrderDetailComposableInvoker.java     |  139 --
 .../odatawcfservice/types/OrderDetailKey.java   |   53 -
 .../types/PaymentInstrument.java                |  165 --
 .../types/PaymentInstrumentCollection.java      |   41 -
 ...ntInstrumentCollectionComposableInvoker.java |   32 -
 .../PaymentInstrumentComposableInvoker.java     |  132 --
 .../services/odatawcfservice/types/Person.java  |  240 ---
 .../odatawcfservice/types/PersonCollection.java |   41 -
 .../PersonCollectionComposableInvoker.java      |   32 -
 .../types/PersonComposableInvoker.java          |  171 ---
 .../services/odatawcfservice/types/Product.java |  266 ----
 .../types/ProductCollection.java                |   53 -
 .../ProductCollectionComposableInvoker.java     |   32 -
 .../types/ProductComposableInvoker.java         |  193 ---
 .../odatawcfservice/types/ProductDetail.java    |  172 ---
 .../types/ProductDetailCollection.java          |   41 -
 ...roductDetailCollectionComposableInvoker.java |   32 -
 .../types/ProductDetailComposableInvoker.java   |  124 --
 .../odatawcfservice/types/ProductDetailKey.java |   53 -
 .../odatawcfservice/types/ProductReview.java    |  168 --
 .../types/ProductReviewCollection.java          |   41 -
 ...roductReviewCollectionComposableInvoker.java |   32 -
 .../types/ProductReviewComposableInvoker.java   |  130 --
 .../odatawcfservice/types/ProductReviewKey.java |   75 -
 .../odatawcfservice/types/PublicCompany.java    |  345 -----
 .../types/PublicCompanyCollection.java          |   41 -
 ...ublicCompanyCollectionComposableInvoker.java |   32 -
 .../types/PublicCompanyComposableInvoker.java   |  232 ---
 .../odatawcfservice/types/Statement.java        |  124 --
 .../types/StatementCollection.java              |   41 -
 .../StatementCollectionComposableInvoker.java   |   32 -
 .../types/StatementComposableInvoker.java       |   97 --
 .../odatawcfservice/types/StoredPI.java         |  124 --
 .../types/StoredPICollection.java               |   41 -
 .../StoredPICollectionComposableInvoker.java    |   32 -
 .../types/StoredPIComposableInvoker.java        |   97 --
 .../odatawcfservice/types/Subscription.java     |  144 --
 .../types/SubscriptionCollection.java           |   41 -
 ...SubscriptionCollectionComposableInvoker.java |   32 -
 .../types/SubscriptionComposableInvoker.java    |  112 --
 .../odatawcfservice/types/package-info.java     |   20 -
 .../fit/tecsvc/client/BatchClientITCase.java    |    2 +-
 .../olingo/fit/v4/AbstractTestITCase.java       |  172 ---
 .../apache/olingo/fit/v4/AsyncTestITCase.java   |  168 --
 .../olingo/fit/v4/AuthBatchTestITCase.java      |  119 --
 .../apache/olingo/fit/v4/BatchTestITCase.java   |  647 --------
 .../fit/v4/BoundOperationInvokeTestITCase.java  |  459 ------
 .../olingo/fit/v4/ConformanceTestITCase.java    |  415 -----
 .../apache/olingo/fit/v4/DeltaTestITCase.java   |   86 --
 .../olingo/fit/v4/DerivedTypeTestITCase.java    |  150 --
 .../olingo/fit/v4/EntityCreateTestITCase.java   |  191 ---
 .../olingo/fit/v4/EntityRetrieveTestITCase.java |  378 -----
 .../olingo/fit/v4/EntitySetTestITCase.java      |  178 ---
 .../olingo/fit/v4/EntityUpdateTestITCase.java   |  185 ---
 .../olingo/fit/v4/ErrorResponseTestITCase.java  |   62 -
 .../olingo/fit/v4/FilterFactoryTestITCase.java  |   62 -
 .../fit/v4/JSONFormatConformanceTestITCase.java |  333 ----
 .../olingo/fit/v4/KeyAsSegmentTestITCase.java   |  127 --
 .../olingo/fit/v4/MediaEntityTestITCase.java    |  183 ---
 .../olingo/fit/v4/MetadataTestITCase.java       |  146 --
 .../apache/olingo/fit/v4/OAuth2TestITCase.java  |  145 --
 .../olingo/fit/v4/OpenTypeTestITCase.java       |  190 ---
 .../fit/v4/OperationImportInvokeTestITCase.java |  294 ----
 .../olingo/fit/v4/PropertyTestITCase.java       |  203 ---
 .../olingo/fit/v4/PropertyValueTestITCase.java  |  138 --
 .../olingo/fit/v4/QueryOptionsTestITCase.java   |  246 ---
 .../fit/v4/ServiceDocumentTestITCase.java       |   63 -
 .../olingo/fit/v4/SingletonTestITCase.java      |  135 --
 pom.xml                                         |   10 +-
 549 files changed, 28512 insertions(+), 28391 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/demo/pom.xml
----------------------------------------------------------------------
diff --git a/fit/src/it/demo/pom.xml b/fit/src/it/demo/pom.xml
new file mode 100644
index 0000000..0cfa319
--- /dev/null
+++ b/fit/src/it/demo/pom.xml
@@ -0,0 +1,107 @@
+<?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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>pojogen-maven-plugin-v4test</artifactId>
+  <groupId>org.apache.olingo</groupId>
+  <version>@project.version@</version>
+  <name>${project.artifactId}</name>
+  <description>A simple IT verifying the basic use case of pojogen-maven-plugin.</description>
+
+  <properties>
+    <project.source>1.6</project.source>
+    <compiler.plugin.version>3.2</compiler.plugin.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+  
+  <dependencies>
+    <dependency>
+      <artifactId>pojogen-maven-plugin</artifactId>
+      <groupId>org.apache.olingo</groupId>
+      <version>@project.version@</version>
+      <scope>runtime</scope>
+    </dependency>
+    
+    <dependency>
+      <artifactId>odata-client-proxy</artifactId>
+      <groupId>org.apache.olingo</groupId>
+      <version>@project.version@</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>${compiler.plugin.version}</version>
+        <configuration>
+          <source>${project.source}</source>
+          <target>${project.source}</target>
+          <showWarnings>true</showWarnings>
+          <showDeprecation>true</showDeprecation>
+          <compilerArgument>-Xlint:unchecked</compilerArgument>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <version>1.8</version>
+        <executions>
+          <execution>
+            <phase>process-sources</phase>
+            <goals>
+              <goal>add-source</goal>
+            </goals>
+            <configuration>
+              <sources>
+                <source>${project.build.directory}/generated-sources</source>
+              </sources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      
+      <plugin>
+        <groupId>@project.groupId@</groupId>
+        <artifactId>pojogen-maven-plugin</artifactId>
+        <version>@project.version@</version>
+        <executions>
+          <execution>
+            <configuration>
+              <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
+              <serviceRootURL>http://localhost:9180/stub/StaticService/V40/Demo.svc</serviceRootURL>
+              <basePackage>org.apache.olingo.fit.proxy.v4.demo</basePackage>
+            </configuration>
+            <id>v4pojoGen</id>
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>v4pojoGen</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/demo/verify.groovy
----------------------------------------------------------------------
diff --git a/fit/src/it/demo/verify.groovy b/fit/src/it/demo/verify.groovy
new file mode 100644
index 0000000..02f0407
--- /dev/null
+++ b/fit/src/it/demo/verify.groovy
@@ -0,0 +1,20 @@
+/**
+ * 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.
+ */
+File basepkg = new File( basedir, "target/generated-sources/ojc-plugin/org/apache/olingo/fit/proxy/v4" );
+assert basepkg.isDirectory() && basepkg.listFiles().length>0;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/demoV4/pom.xml
----------------------------------------------------------------------
diff --git a/fit/src/it/demoV4/pom.xml b/fit/src/it/demoV4/pom.xml
deleted file mode 100644
index 0cfa319..0000000
--- a/fit/src/it/demoV4/pom.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>pojogen-maven-plugin-v4test</artifactId>
-  <groupId>org.apache.olingo</groupId>
-  <version>@project.version@</version>
-  <name>${project.artifactId}</name>
-  <description>A simple IT verifying the basic use case of pojogen-maven-plugin.</description>
-
-  <properties>
-    <project.source>1.6</project.source>
-    <compiler.plugin.version>3.2</compiler.plugin.version>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-  </properties>
-  
-  <dependencies>
-    <dependency>
-      <artifactId>pojogen-maven-plugin</artifactId>
-      <groupId>org.apache.olingo</groupId>
-      <version>@project.version@</version>
-      <scope>runtime</scope>
-    </dependency>
-    
-    <dependency>
-      <artifactId>odata-client-proxy</artifactId>
-      <groupId>org.apache.olingo</groupId>
-      <version>@project.version@</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>${compiler.plugin.version}</version>
-        <configuration>
-          <source>${project.source}</source>
-          <target>${project.source}</target>
-          <showWarnings>true</showWarnings>
-          <showDeprecation>true</showDeprecation>
-          <compilerArgument>-Xlint:unchecked</compilerArgument>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <version>1.8</version>
-        <executions>
-          <execution>
-            <phase>process-sources</phase>
-            <goals>
-              <goal>add-source</goal>
-            </goals>
-            <configuration>
-              <sources>
-                <source>${project.build.directory}/generated-sources</source>
-              </sources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      
-      <plugin>
-        <groupId>@project.groupId@</groupId>
-        <artifactId>pojogen-maven-plugin</artifactId>
-        <version>@project.version@</version>
-        <executions>
-          <execution>
-            <configuration>
-              <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
-              <serviceRootURL>http://localhost:9180/stub/StaticService/V40/Demo.svc</serviceRootURL>
-              <basePackage>org.apache.olingo.fit.proxy.v4.demo</basePackage>
-            </configuration>
-            <id>v4pojoGen</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>v4pojoGen</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/demoV4/verify.groovy
----------------------------------------------------------------------
diff --git a/fit/src/it/demoV4/verify.groovy b/fit/src/it/demoV4/verify.groovy
deleted file mode 100644
index 02f0407..0000000
--- a/fit/src/it/demoV4/verify.groovy
+++ /dev/null
@@ -1,20 +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.
- */
-File basepkg = new File( basedir, "target/generated-sources/ojc-plugin/org/apache/olingo/fit/proxy/v4" );
-assert basepkg.isDirectory() && basepkg.listFiles().length>0;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/openType/pom.xml
----------------------------------------------------------------------
diff --git a/fit/src/it/openType/pom.xml b/fit/src/it/openType/pom.xml
new file mode 100644
index 0000000..3ae5c84
--- /dev/null
+++ b/fit/src/it/openType/pom.xml
@@ -0,0 +1,107 @@
+<?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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>pojogen-maven-plugin-v4test</artifactId>
+  <groupId>org.apache.olingo</groupId>
+  <version>@project.version@</version>
+  <name>${project.artifactId}</name>
+  <description>A simple IT verifying the basic use case of pojogen-man-plugin.</description>
+
+  <properties>
+    <project.source>1.6</project.source>
+    <compiler.plugin.version>3.2</compiler.plugin.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+  
+  <dependencies>
+    <dependency>
+      <artifactId>pojogen-maven-plugin</artifactId>
+      <groupId>org.apache.olingo</groupId>
+      <version>@project.version@</version>
+      <scope>runtime</scope>
+    </dependency>
+    
+    <dependency>
+      <artifactId>odata-client-proxy</artifactId>
+      <groupId>org.apache.olingo</groupId>
+      <version>@project.version@</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>${compiler.plugin.version}</version>
+        <configuration>
+          <source>${project.source}</source>
+          <target>${project.source}</target>
+          <showWarnings>true</showWarnings>
+          <showDeprecation>true</showDeprecation>
+          <compilerArgument>-Xlint:unchecked</compilerArgument>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <version>1.8</version>
+        <executions>
+          <execution>
+            <phase>process-sources</phase>
+            <goals>
+              <goal>add-source</goal>
+            </goals>
+            <configuration>
+              <sources>
+                <source>${project.build.directory}/generated-sources</source>
+              </sources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      
+      <plugin>
+        <groupId>@project.groupId@</groupId>
+        <artifactId>pojogen-maven-plugin</artifactId>
+        <version>@project.version@</version>
+        <executions>
+          <execution>
+            <configuration>
+              <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
+              <serviceRootURL>http://localhost:9180/stub/StaticService/V40/OpenType.svc</serviceRootURL>
+              <basePackage>org.apache.olingo.fit.proxy.v4.opentype</basePackage>
+            </configuration>
+            <id>v4pojoGen</id>
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>v4pojoGen</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/openType/verify.groovy
----------------------------------------------------------------------
diff --git a/fit/src/it/openType/verify.groovy b/fit/src/it/openType/verify.groovy
new file mode 100644
index 0000000..02f0407
--- /dev/null
+++ b/fit/src/it/openType/verify.groovy
@@ -0,0 +1,20 @@
+/**
+ * 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.
+ */
+File basepkg = new File( basedir, "target/generated-sources/ojc-plugin/org/apache/olingo/fit/proxy/v4" );
+assert basepkg.isDirectory() && basepkg.listFiles().length>0;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/openTypeV4/pom.xml
----------------------------------------------------------------------
diff --git a/fit/src/it/openTypeV4/pom.xml b/fit/src/it/openTypeV4/pom.xml
deleted file mode 100644
index 3ae5c84..0000000
--- a/fit/src/it/openTypeV4/pom.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>pojogen-maven-plugin-v4test</artifactId>
-  <groupId>org.apache.olingo</groupId>
-  <version>@project.version@</version>
-  <name>${project.artifactId}</name>
-  <description>A simple IT verifying the basic use case of pojogen-man-plugin.</description>
-
-  <properties>
-    <project.source>1.6</project.source>
-    <compiler.plugin.version>3.2</compiler.plugin.version>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-  </properties>
-  
-  <dependencies>
-    <dependency>
-      <artifactId>pojogen-maven-plugin</artifactId>
-      <groupId>org.apache.olingo</groupId>
-      <version>@project.version@</version>
-      <scope>runtime</scope>
-    </dependency>
-    
-    <dependency>
-      <artifactId>odata-client-proxy</artifactId>
-      <groupId>org.apache.olingo</groupId>
-      <version>@project.version@</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>${compiler.plugin.version}</version>
-        <configuration>
-          <source>${project.source}</source>
-          <target>${project.source}</target>
-          <showWarnings>true</showWarnings>
-          <showDeprecation>true</showDeprecation>
-          <compilerArgument>-Xlint:unchecked</compilerArgument>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <version>1.8</version>
-        <executions>
-          <execution>
-            <phase>process-sources</phase>
-            <goals>
-              <goal>add-source</goal>
-            </goals>
-            <configuration>
-              <sources>
-                <source>${project.build.directory}/generated-sources</source>
-              </sources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      
-      <plugin>
-        <groupId>@project.groupId@</groupId>
-        <artifactId>pojogen-maven-plugin</artifactId>
-        <version>@project.version@</version>
-        <executions>
-          <execution>
-            <configuration>
-              <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
-              <serviceRootURL>http://localhost:9180/stub/StaticService/V40/OpenType.svc</serviceRootURL>
-              <basePackage>org.apache.olingo.fit.proxy.v4.opentype</basePackage>
-            </configuration>
-            <id>v4pojoGen</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>v4pojoGen</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/openTypeV4/verify.groovy
----------------------------------------------------------------------
diff --git a/fit/src/it/openTypeV4/verify.groovy b/fit/src/it/openTypeV4/verify.groovy
deleted file mode 100644
index 02f0407..0000000
--- a/fit/src/it/openTypeV4/verify.groovy
+++ /dev/null
@@ -1,20 +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.
- */
-File basepkg = new File( basedir, "target/generated-sources/ojc-plugin/org/apache/olingo/fit/proxy/v4" );
-assert basepkg.isDirectory() && basepkg.listFiles().length>0;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/staticService/pom.xml
----------------------------------------------------------------------
diff --git a/fit/src/it/staticService/pom.xml b/fit/src/it/staticService/pom.xml
new file mode 100644
index 0000000..424a17f
--- /dev/null
+++ b/fit/src/it/staticService/pom.xml
@@ -0,0 +1,107 @@
+<?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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>pojogen-maven-plugin-v4test</artifactId>
+  <groupId>org.apache.olingo</groupId>
+  <version>@project.version@</version>
+  <name>${project.artifactId}</name>
+  <description>A simple IT verifying the basic use case of pojogen-maven-plugin.</description>
+
+  <properties>
+    <project.source>1.6</project.source>
+    <compiler.plugin.version>3.2</compiler.plugin.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+  
+  <dependencies>
+    <dependency>
+      <artifactId>pojogen-maven-plugin</artifactId>
+      <groupId>org.apache.olingo</groupId>
+      <version>@project.version@</version>
+      <scope>runtime</scope>
+    </dependency>
+    
+    <dependency>
+      <artifactId>odata-client-proxy</artifactId>
+      <groupId>org.apache.olingo</groupId>
+      <version>@project.version@</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>${compiler.plugin.version}</version>
+        <configuration>
+          <source>${project.source}</source>
+          <target>${project.source}</target>
+          <showWarnings>true</showWarnings>
+          <showDeprecation>true</showDeprecation>
+          <compilerArgument>-Xlint:unchecked</compilerArgument>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <version>1.8</version>
+        <executions>
+          <execution>
+            <phase>process-sources</phase>
+            <goals>
+              <goal>add-source</goal>
+            </goals>
+            <configuration>
+              <sources>
+                <source>${project.build.directory}/generated-sources</source>
+              </sources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      
+      <plugin>
+        <groupId>@project.groupId@</groupId>
+        <artifactId>pojogen-maven-plugin</artifactId>
+        <version>@project.version@</version>
+        <executions>
+          <execution>
+            <configuration>
+              <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
+              <serviceRootURL>http://localhost:9180/stub/StaticService/V40/Static.svc</serviceRootURL>
+              <basePackage>org.apache.olingo.fit.proxy.v4.staticservice</basePackage>
+            </configuration>
+            <id>v4pojoGen</id>
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>v4pojoGen</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/staticService/verify.groovy
----------------------------------------------------------------------
diff --git a/fit/src/it/staticService/verify.groovy b/fit/src/it/staticService/verify.groovy
new file mode 100644
index 0000000..02f0407
--- /dev/null
+++ b/fit/src/it/staticService/verify.groovy
@@ -0,0 +1,20 @@
+/**
+ * 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.
+ */
+File basepkg = new File( basedir, "target/generated-sources/ojc-plugin/org/apache/olingo/fit/proxy/v4" );
+assert basepkg.isDirectory() && basepkg.listFiles().length>0;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/staticServiceV4/pom.xml
----------------------------------------------------------------------
diff --git a/fit/src/it/staticServiceV4/pom.xml b/fit/src/it/staticServiceV4/pom.xml
deleted file mode 100644
index 424a17f..0000000
--- a/fit/src/it/staticServiceV4/pom.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>pojogen-maven-plugin-v4test</artifactId>
-  <groupId>org.apache.olingo</groupId>
-  <version>@project.version@</version>
-  <name>${project.artifactId}</name>
-  <description>A simple IT verifying the basic use case of pojogen-maven-plugin.</description>
-
-  <properties>
-    <project.source>1.6</project.source>
-    <compiler.plugin.version>3.2</compiler.plugin.version>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-  </properties>
-  
-  <dependencies>
-    <dependency>
-      <artifactId>pojogen-maven-plugin</artifactId>
-      <groupId>org.apache.olingo</groupId>
-      <version>@project.version@</version>
-      <scope>runtime</scope>
-    </dependency>
-    
-    <dependency>
-      <artifactId>odata-client-proxy</artifactId>
-      <groupId>org.apache.olingo</groupId>
-      <version>@project.version@</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>${compiler.plugin.version}</version>
-        <configuration>
-          <source>${project.source}</source>
-          <target>${project.source}</target>
-          <showWarnings>true</showWarnings>
-          <showDeprecation>true</showDeprecation>
-          <compilerArgument>-Xlint:unchecked</compilerArgument>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <version>1.8</version>
-        <executions>
-          <execution>
-            <phase>process-sources</phase>
-            <goals>
-              <goal>add-source</goal>
-            </goals>
-            <configuration>
-              <sources>
-                <source>${project.build.directory}/generated-sources</source>
-              </sources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      
-      <plugin>
-        <groupId>@project.groupId@</groupId>
-        <artifactId>pojogen-maven-plugin</artifactId>
-        <version>@project.version@</version>
-        <executions>
-          <execution>
-            <configuration>
-              <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
-              <serviceRootURL>http://localhost:9180/stub/StaticService/V40/Static.svc</serviceRootURL>
-              <basePackage>org.apache.olingo.fit.proxy.v4.staticservice</basePackage>
-            </configuration>
-            <id>v4pojoGen</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>v4pojoGen</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/it/staticServiceV4/verify.groovy
----------------------------------------------------------------------
diff --git a/fit/src/it/staticServiceV4/verify.groovy b/fit/src/it/staticServiceV4/verify.groovy
deleted file mode 100644
index 02f0407..0000000
--- a/fit/src/it/staticServiceV4/verify.groovy
+++ /dev/null
@@ -1,20 +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.
- */
-File basepkg = new File( basedir, "target/generated-sources/ojc-plugin/org/apache/olingo/fit/proxy/v4" );
-assert basepkg.isDirectory() && basepkg.listFiles().length>0;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java b/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
index 8dae5c3..72a6061 100644
--- a/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
+++ b/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
@@ -684,7 +684,7 @@ public abstract class AbstractServices {
 
       final String location;
 
-      if ((this instanceof V4KeyAsSegment)) {
+      if ((this instanceof KeyAsSegment)) {
         location = uriInfo.getRequestUri().toASCIIString() + "/" + entityKey;
 
         final Link editLink = new Link();
@@ -1223,7 +1223,7 @@ public abstract class AbstractServices {
       }
       final Entity entry = container.getPayload();
 
-      if ((this instanceof V4KeyAsSegment)) {
+      if ((this instanceof KeyAsSegment)) {
         final Link editLink = new Link();
         editLink.setRel("edit");
         editLink.setTitle(entitySetName);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/Demo.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/Demo.java b/fit/src/main/java/org/apache/olingo/fit/Demo.java
new file mode 100644
index 0000000..c591f01
--- /dev/null
+++ b/fit/src/main/java/org/apache/olingo/fit/Demo.java
@@ -0,0 +1,174 @@
+/*
+ * 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;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.fit.metadata.Metadata;
+import org.apache.olingo.fit.methods.PATCH;
+import org.apache.olingo.fit.utils.Accept;
+import org.apache.olingo.fit.utils.ConstantKey;
+import org.apache.olingo.fit.utils.Constants;
+import org.apache.olingo.fit.utils.FSManager;
+import org.springframework.stereotype.Service;
+
+@Service
+@Path("/V40/Demo.svc")
+public class Demo extends Services {
+
+  public Demo() throws IOException {
+    super(new Metadata(FSManager.instance(ODataServiceVersion.V40).
+        readRes("demo" + StringUtils.capitalize(Constants.get(ConstantKey.METADATA)), Accept.XML)));
+  }
+
+  private Response replaceServiceName(final Response response) {
+    try {
+      final String content = IOUtils.toString((InputStream) response.getEntity(), Constants.ENCODING).
+          replaceAll("Static\\.svc", "Demo.svc");
+
+      final Response.ResponseBuilder builder = Response.status(response.getStatus());
+      for (String headerName : response.getHeaders().keySet()) {
+        for (Object headerValue : response.getHeaders().get(headerName)) {
+          builder.header(headerName, headerValue);
+        }
+      }
+
+      final InputStream toBeStreamedBack = IOUtils.toInputStream(content, Constants.ENCODING);
+      final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+      IOUtils.copy(toBeStreamedBack, baos);
+      IOUtils.closeQuietly(toBeStreamedBack);
+
+      builder.header("Content-Length", baos.size());
+      builder.entity(new ByteArrayInputStream(baos.toByteArray()));
+
+      return builder.build();
+    } catch (Exception e) {
+      return response;
+    }
+  }
+
+  @GET
+  @Path("/$metadata")
+  @Produces(MediaType.APPLICATION_XML)
+  @Override
+  public Response getMetadata() {
+    return super.getMetadata(
+        "demo" + StringUtils.capitalize(Constants.get(ConstantKey.METADATA)));
+  }
+
+  @GET
+  @Path("/{entitySetName}({entityId})")
+  @Override
+  public Response getEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId,
+      @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 replaceServiceName(super.getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
+        accept, entitySetName, entityId, format, expand, select));
+  }
+
+  @GET
+  @Path("/{entitySetName}({entityId})/$value")
+  @Override
+  public Response getMediaEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId) {
+
+    return super.getMediaEntity(uriInfo, accept, entitySetName, entityId);
+  }
+
+  @POST
+  @Path("/{entitySetName}")
+  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM })
+  @Override
+  public Response postNewEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      @PathParam("entitySetName") final String entitySetName,
+      final String entity) {
+
+    return replaceServiceName(super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
+  }
+
+  @PATCH
+  @Path("/{entitySetName}({entityId})")
+  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Override
+  public Response patchEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      @HeaderParam("If-Match") @DefaultValue(StringUtils.EMPTY) final String ifMatch,
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId,
+      final String changes) {
+
+    return replaceServiceName(super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, entitySetName, entityId,
+        changes));
+  }
+
+  @PUT
+  @Produces({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Consumes({ MediaType.WILDCARD, MediaType.APPLICATION_OCTET_STREAM })
+  @Path("/{entitySetName}({entityId})/$value")
+  @Override
+  public Response replaceMediaEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String value) {
+
+    return super.replaceMediaEntity(uriInfo, prefer, entitySetName, entityId, format, value);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/KeyAsSegment.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/KeyAsSegment.java b/fit/src/main/java/org/apache/olingo/fit/KeyAsSegment.java
new file mode 100644
index 0000000..ef8ffa5
--- /dev/null
+++ b/fit/src/main/java/org/apache/olingo/fit/KeyAsSegment.java
@@ -0,0 +1,159 @@
+/*
+ * 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;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.fit.methods.PATCH;
+import org.apache.olingo.fit.utils.Constants;
+import org.springframework.stereotype.Service;
+
+@Service
+@Path("/V40/KeyAsSegment.svc")
+public class KeyAsSegment extends Services {
+
+  public KeyAsSegment() throws IOException {
+    super();
+  }
+
+  private Response replaceServiceName(final Response response) {
+    try {
+      final String content = IOUtils.toString((InputStream) response.getEntity(), Constants.ENCODING).
+          replaceAll("Static\\.svc", "KeyAsSegment.svc");
+
+      final Response.ResponseBuilder builder = Response.status(response.getStatus());
+      for (String headerName : response.getHeaders().keySet()) {
+        for (Object headerValue : response.getHeaders().get(headerName)) {
+          builder.header(headerName, headerValue);
+        }
+      }
+
+      final InputStream toBeStreamedBack = IOUtils.toInputStream(content, Constants.ENCODING);
+      final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+      IOUtils.copy(toBeStreamedBack, baos);
+      IOUtils.closeQuietly(toBeStreamedBack);
+
+      builder.header("Content-Length", baos.size());
+      builder.entity(new ByteArrayInputStream(baos.toByteArray()));
+
+      return builder.build();
+    } catch (Exception e) {
+      return response;
+    }
+  }
+
+  @GET
+  @Path("/{entitySetName}/{entityId}")
+  @Override
+  public Response getEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId,
+      @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 replaceServiceName(super.getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
+        accept, entitySetName, entityId, format, expand, select));
+  }
+
+  @DELETE
+  @Path("/{entitySetName}/{entityId}")
+  @Override
+  public Response removeEntity(
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId) {
+
+    return replaceServiceName(super.removeEntity(entitySetName, entityId));
+  }
+
+  @PATCH
+  @Path("/{entitySetName}/{entityId}")
+  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Override
+  public Response patchEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      @HeaderParam("If-Match") @DefaultValue(StringUtils.EMPTY) final String ifMatch,
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId,
+      final String changes) {
+
+    return replaceServiceName(super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, entitySetName, entityId,
+        changes));
+  }
+
+  @PUT
+  @Path("/{entitySetName}/{entityId}")
+  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  public Response putNewEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId,
+      final String entity) {
+
+    return replaceServiceName(super
+        .replaceEntity(uriInfo, accept, contentType, prefer, entitySetName, entityId, entity));
+  }
+
+  @POST
+  @Path("/{entitySetName}")
+  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM })
+  @Override
+  public Response postNewEntity(
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      @PathParam("entitySetName") final String entitySetName,
+      final String entity) {
+
+    return replaceServiceName(super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/NorthWind.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/NorthWind.java b/fit/src/main/java/org/apache/olingo/fit/NorthWind.java
new file mode 100644
index 0000000..f5acaed
--- /dev/null
+++ b/fit/src/main/java/org/apache/olingo/fit/NorthWind.java
@@ -0,0 +1,45 @@
+/*
+ * 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;
+
+import java.io.IOException;
+
+import javax.ws.rs.Path;
+import javax.ws.rs.core.Response;
+
+import org.apache.cxf.interceptor.InInterceptors;
+import org.apache.olingo.fit.rest.XHTTPMethodInterceptor;
+import org.apache.olingo.fit.utils.ConstantKey;
+import org.apache.olingo.fit.utils.Constants;
+import org.springframework.stereotype.Service;
+
+@Service
+@Path("/V40/NorthWind.svc")
+@InInterceptors(classes = XHTTPMethodInterceptor.class)
+public class NorthWind extends Services {
+
+  public NorthWind() throws IOException {
+    super();
+  }
+
+  @Override
+  public Response getMetadata() {
+    return getMetadata("northwind-" + Constants.get(ConstantKey.METADATA));
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/NorthWindExt.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/NorthWindExt.java b/fit/src/main/java/org/apache/olingo/fit/NorthWindExt.java
new file mode 100644
index 0000000..61e0df6
--- /dev/null
+++ b/fit/src/main/java/org/apache/olingo/fit/NorthWindExt.java
@@ -0,0 +1,46 @@
+/*
+ * 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;
+
+import java.io.IOException;
+
+import javax.ws.rs.Path;
+import javax.ws.rs.core.Response;
+
+import org.apache.cxf.interceptor.InInterceptors;
+import org.apache.olingo.fit.rest.ResolvingReferencesInterceptor;
+import org.apache.olingo.fit.rest.XHTTPMethodInterceptor;
+import org.apache.olingo.fit.utils.ConstantKey;
+import org.apache.olingo.fit.utils.Constants;
+import org.springframework.stereotype.Service;
+
+@Service
+@Path("/V40/NorthWindExt.svc")
+@InInterceptors(classes = { XHTTPMethodInterceptor.class, ResolvingReferencesInterceptor.class })
+public class NorthWindExt extends Services {
+
+  public NorthWindExt() throws IOException {
+    super();
+  }
+
+  @Override
+  public Response getMetadata() {
+    return getMetadata("northwindExt-" + Constants.get(ConstantKey.METADATA));
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/OAuth2.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/OAuth2.java b/fit/src/main/java/org/apache/olingo/fit/OAuth2.java
new file mode 100644
index 0000000..9b2c9f1
--- /dev/null
+++ b/fit/src/main/java/org/apache/olingo/fit/OAuth2.java
@@ -0,0 +1,35 @@
+/*
+ * 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;
+
+import java.io.IOException;
+
+import javax.ws.rs.Path;
+
+import org.springframework.stereotype.Service;
+
+@Service
+@Path("/V40/OAuth2.svc")
+public class OAuth2 extends Services {
+
+  public OAuth2() throws IOException {
+    super();
+  }
+
+}


[35/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
new file mode 100644
index 0000000..ed6fdc1
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
@@ -0,0 +1,357 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.concurrent.Future;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Customer",
+    openType = false,
+    hasStream = false,
+    isAbstract = false,
+    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+public interface Customer
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+        Person {
+
+  @Override
+  Customer load();
+
+  @Override
+  Future<? extends Customer> loadAsync();
+
+  @Override
+  Customer refs();
+
+  @Override
+  Customer expand(String... expand);
+
+  @Override
+  Customer select(String... select);
+
+  @Override
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPersonID();
+
+  @Override
+  void setPersonID(java.lang.Integer _personID);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFirstName();
+
+  @Override
+  void setFirstName(java.lang.String _firstName);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getLastName();
+
+  @Override
+  void setLastName(java.lang.String _lastName);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getMiddleName();
+
+  @Override
+  void setMiddleName(java.lang.String _middleName);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address
+      getHomeAddress();
+
+  @Override
+      void
+      setHomeAddress(
+          Address _homeAddress);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
+      type = "Edm.GeographyPoint",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.commons.api.edm.geo.Point getHome();
+
+  @Override
+  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
+
+  @Override
+  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
+
+  @Override
+  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCity();
+
+  void setCity(java.lang.String _city);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Birthday",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getBirthday();
+
+  void setBirthday(java.sql.Timestamp _birthday);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TimeBetweenLastTwoOrders",
+      type = "Edm.Duration",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.math.BigDecimal getTimeBetweenLastTwoOrders();
+
+  void setTimeBetweenLastTwoOrders(java.math.BigDecimal _timeBetweenLastTwoOrders);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "People",
+      containsTarget = false)
+  Person getParent();
+
+  @Override
+  void setParent(
+      Person _parent);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Orders",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Orders",
+      containsTarget = false)
+  OrderCollection
+      getOrders();
+
+      void
+      setOrders(
+          OrderCollection _orders);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Company",
+      containsTarget = false)
+  Company getCompany();
+
+      void
+      setCompany(
+          Company _company);
+
+  @Override
+  Operations operations();
+
+  interface Operations
+      extends
+      Person.Operations {
+    // No additional methods needed for now.
+  }
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations
+      extends
+      Person.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getPersonIDAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getFirstNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getLastNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "MiddleName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getMiddleNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HomeAddress",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+    org.apache.olingo.ext.proxy.api.Annotatable getHomeAddressAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Home",
+        type = "Edm.GeographyPoint")
+    org.apache.olingo.ext.proxy.api.Annotatable getHomeAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Numbers",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNumbersAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Emails",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getEmailsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "City",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getCityAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Birthday",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getBirthdayAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TimeBetweenLastTwoOrders",
+        type = "Edm.Duration")
+    org.apache.olingo.ext.proxy.api.Annotatable getTimeBetweenLastTwoOrdersAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Parent",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+    org.apache.olingo.ext.proxy.api.Annotatable getParentAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Orders",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Order")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrdersAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Company",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Company")
+    org.apache.olingo.ext.proxy.api.Annotatable getCompanyAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java
new file mode 100644
index 0000000..864161a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface CustomerCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CustomerCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Customer, CustomerCollection, CustomerCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollectionComposableInvoker.java
new file mode 100644
index 0000000..33b8444
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CustomerCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<CustomerCollection, CustomerCollection.Operations> {
+
+  @Override
+  CustomerCollectionComposableInvoker select(String... select);
+
+  @Override
+  CustomerCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerComposableInvoker.java
new file mode 100644
index 0000000..2a268b1
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerComposableInvoker.java
@@ -0,0 +1,241 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface CustomerComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Customer, Customer.Operations>
+{
+
+  @Override
+  CustomerComposableInvoker select(String... select);
+
+  @Override
+  CustomerComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPersonID();
+
+  void setPersonID(java.lang.Integer _personID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFirstName();
+
+  void setFirstName(java.lang.String _firstName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getLastName();
+
+  void setLastName(java.lang.String _lastName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getMiddleName();
+
+  void setMiddleName(java.lang.String _middleName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address
+      getHomeAddress();
+
+      void
+      setHomeAddress(
+          Address _homeAddress);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
+      type = "Edm.GeographyPoint",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.commons.api.edm.geo.Point getHome();
+
+  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
+
+  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
+
+  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCity();
+
+  void setCity(java.lang.String _city);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Birthday",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getBirthday();
+
+  void setBirthday(java.sql.Timestamp _birthday);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TimeBetweenLastTwoOrders",
+      type = "Edm.Duration",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.math.BigDecimal getTimeBetweenLastTwoOrders();
+
+  void setTimeBetweenLastTwoOrders(java.math.BigDecimal _timeBetweenLastTwoOrders);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "People",
+      containsTarget = false)
+  Person getParent();
+
+  void setParent(
+      Person _parent);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Orders",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Orders",
+      containsTarget = false)
+  OrderCollection
+      getOrders();
+
+      void
+      setOrders(
+          OrderCollection _orders);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Company",
+      containsTarget = false)
+  Company getCompany();
+
+      void
+      setCompany(
+          Company _company);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
new file mode 100644
index 0000000..9070d22
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
@@ -0,0 +1,120 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Department",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Department
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Department>, org.apache.olingo.ext.proxy.api.StructuredQuery<Department> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DepartmentID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getDepartmentID();
+
+  void setDepartmentID(java.lang.Integer _departmentID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DepartmentNO",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDepartmentNO();
+
+  void setDepartmentNO(java.lang.String _departmentNO);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Company",
+      containsTarget = false)
+  Company getCompany();
+
+      void
+      setCompany(
+          Company _company);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DepartmentID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getDepartmentIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DepartmentNO",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getDepartmentNOAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Company",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Company")
+    org.apache.olingo.ext.proxy.api.Annotatable getCompanyAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java
new file mode 100644
index 0000000..514a3ee
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface DepartmentCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<DepartmentCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Department, DepartmentCollection, DepartmentCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollectionComposableInvoker.java
new file mode 100644
index 0000000..47ff436
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface DepartmentCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<DepartmentCollection, DepartmentCollection.Operations> {
+
+  @Override
+  DepartmentCollectionComposableInvoker select(String... select);
+
+  @Override
+  DepartmentCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentComposableInvoker.java
new file mode 100644
index 0000000..58cc11f
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentComposableInvoker.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.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface DepartmentComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Department, Department.Operations>
+{
+
+  @Override
+  DepartmentComposableInvoker select(String... select);
+
+  @Override
+  DepartmentComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DepartmentID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getDepartmentID();
+
+  void setDepartmentID(java.lang.Integer _departmentID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DepartmentNO",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDepartmentNO();
+
+  void setDepartmentNO(java.lang.String _departmentNO);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Company",
+      containsTarget = false)
+  Company getCompany();
+
+      void
+      setCompany(
+          Company _company);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
new file mode 100644
index 0000000..f33ccb3
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
@@ -0,0 +1,321 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.concurrent.Future;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Employee",
+    openType = false,
+    hasStream = false,
+    isAbstract = false,
+    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+public interface Employee
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+        Person {
+
+  @Override
+  Employee load();
+
+  @Override
+  Future<? extends Employee> loadAsync();
+
+  @Override
+  Employee refs();
+
+  @Override
+  Employee expand(String... expand);
+
+  @Override
+  Employee select(String... select);
+
+  @Override
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPersonID();
+
+  @Override
+  void setPersonID(java.lang.Integer _personID);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFirstName();
+
+  @Override
+  void setFirstName(java.lang.String _firstName);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getLastName();
+
+  @Override
+  void setLastName(java.lang.String _lastName);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getMiddleName();
+
+  @Override
+  void setMiddleName(java.lang.String _middleName);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address
+      getHomeAddress();
+
+  @Override
+      void
+      setHomeAddress(
+          Address _homeAddress);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
+      type = "Edm.GeographyPoint",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.commons.api.edm.geo.Point getHome();
+
+  @Override
+  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
+
+  @Override
+  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
+
+  @Override
+  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DateHired",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getDateHired();
+
+  void setDateHired(java.sql.Timestamp _dateHired);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Office",
+      type = "Edm.GeographyPoint",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.commons.api.edm.geo.Point getOffice();
+
+  void setOffice(org.apache.olingo.commons.api.edm.geo.Point _office);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "People",
+      containsTarget = false)
+  Person getParent();
+
+  @Override
+  void setParent(
+      Person _parent);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Company",
+      containsTarget = false)
+  Company getCompany();
+
+      void
+      setCompany(
+          Company _company);
+
+  @Override
+  Operations operations();
+
+  interface Operations
+      extends
+      Person.Operations {
+    // No additional methods needed for now.
+  }
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations
+      extends
+      Person.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getPersonIDAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getFirstNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getLastNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "MiddleName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getMiddleNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HomeAddress",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+    org.apache.olingo.ext.proxy.api.Annotatable getHomeAddressAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Home",
+        type = "Edm.GeographyPoint")
+    org.apache.olingo.ext.proxy.api.Annotatable getHomeAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Numbers",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNumbersAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Emails",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getEmailsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DateHired",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getDateHiredAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Office",
+        type = "Edm.GeographyPoint")
+    org.apache.olingo.ext.proxy.api.Annotatable getOfficeAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Parent",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+    org.apache.olingo.ext.proxy.api.Annotatable getParentAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Company",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Company")
+    org.apache.olingo.ext.proxy.api.Annotatable getCompanyAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java
new file mode 100644
index 0000000..0207f06
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface EmployeeCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<EmployeeCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Employee, EmployeeCollection, EmployeeCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollectionComposableInvoker.java
new file mode 100644
index 0000000..3e24a55
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface EmployeeCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<EmployeeCollection, EmployeeCollection.Operations> {
+
+  @Override
+  EmployeeCollectionComposableInvoker select(String... select);
+
+  @Override
+  EmployeeCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeComposableInvoker.java
new file mode 100644
index 0000000..136b7db
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeComposableInvoker.java
@@ -0,0 +1,213 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface EmployeeComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Employee, Employee.Operations>
+{
+
+  @Override
+  EmployeeComposableInvoker select(String... select);
+
+  @Override
+  EmployeeComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPersonID();
+
+  void setPersonID(java.lang.Integer _personID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFirstName();
+
+  void setFirstName(java.lang.String _firstName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getLastName();
+
+  void setLastName(java.lang.String _lastName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getMiddleName();
+
+  void setMiddleName(java.lang.String _middleName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address
+      getHomeAddress();
+
+      void
+      setHomeAddress(
+          Address _homeAddress);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
+      type = "Edm.GeographyPoint",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.commons.api.edm.geo.Point getHome();
+
+  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
+
+  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
+
+  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DateHired",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getDateHired();
+
+  void setDateHired(java.sql.Timestamp _dateHired);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Office",
+      type = "Edm.GeographyPoint",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.commons.api.edm.geo.Point getOffice();
+
+  void setOffice(org.apache.olingo.commons.api.edm.geo.Point _office);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "People",
+      containsTarget = false)
+  Person getParent();
+
+  void setParent(
+      Person _parent);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Company",
+      containsTarget = false)
+  Company getCompany();
+
+      void
+      setCompany(
+          Company _company);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
new file mode 100644
index 0000000..0be3d7e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
@@ -0,0 +1,152 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.OperationType;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "GiftCard",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface GiftCard
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<GiftCard>, org.apache.olingo.ext.proxy.api.StructuredQuery<GiftCard> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GiftCardID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getGiftCardID();
+
+  void setGiftCardID(java.lang.Integer _giftCardID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GiftCardNO",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getGiftCardNO();
+
+  void setGiftCardNO(java.lang.String _giftCardNO);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Amount",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getAmount();
+
+  void setAmount(java.lang.Double _amount);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ExperationDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getExperationDate();
+
+  void setExperationDate(java.sql.Timestamp _experationDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OwnerName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getOwnerName();
+
+  void setOwnerName(java.lang.String _ownerName);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "GetActualAmount",
+        type = OperationType.FUNCTION,
+        isComposable = false,
+        referenceType = java.lang.Double.class, returnType = "Edm.Double")
+    org.apache.olingo.ext.proxy.api.Invoker<java.lang.Double> getActualAmount(
+        @Parameter(name = "bonusRate", type = "Edm.Double", nullable = true) java.lang.Double bonusRate
+        );
+
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GiftCardID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getGiftCardIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GiftCardNO",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getGiftCardNOAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Amount",
+        type = "Edm.Double")
+    org.apache.olingo.ext.proxy.api.Annotatable getAmountAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ExperationDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getExperationDateAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OwnerName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getOwnerNameAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java
new file mode 100644
index 0000000..1718099
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface GiftCardCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<GiftCardCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<GiftCard, GiftCardCollection, GiftCardCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollectionComposableInvoker.java
new file mode 100644
index 0000000..c53a6d0
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface GiftCardCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<GiftCardCollection, GiftCardCollection.Operations> {
+
+  @Override
+  GiftCardCollectionComposableInvoker select(String... select);
+
+  @Override
+  GiftCardCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardComposableInvoker.java
new file mode 100644
index 0000000..673e7e8
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardComposableInvoker.java
@@ -0,0 +1,112 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface GiftCardComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<GiftCard, GiftCard.Operations>
+{
+
+  @Override
+  GiftCardComposableInvoker select(String... select);
+
+  @Override
+  GiftCardComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GiftCardID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getGiftCardID();
+
+  void setGiftCardID(java.lang.Integer _giftCardID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GiftCardNO",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getGiftCardNO();
+
+  void setGiftCardNO(java.lang.String _giftCardNO);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Amount",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getAmount();
+
+  void setAmount(java.lang.Double _amount);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ExperationDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getExperationDate();
+
+  void setExperationDate(java.sql.Timestamp _experationDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OwnerName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getOwnerName();
+
+  void setOwnerName(java.lang.String _ownerName);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java
new file mode 100644
index 0000000..9b76b6a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java
@@ -0,0 +1,136 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.Annotatable;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "HomeAddress",
+    isOpenType = false,
+    isAbstract = false,
+    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+public interface HomeAddress
+    extends Address {
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStreet();
+
+  @Override
+  void setStreet(java.lang.String _street);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCity();
+
+  @Override
+  void setCity(java.lang.String _city);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPostalCode();
+
+  @Override
+  void setPostalCode(java.lang.String _postalCode);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FamilyName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFamilyName();
+
+  void setFamilyName(java.lang.String _familyName);
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations
+      extends
+          Address.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Street",
+        type = "Edm.String")
+    Annotatable getStreetAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "City",
+        type = "Edm.String")
+    Annotatable getCityAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PostalCode",
+        type = "Edm.String")
+    Annotatable getPostalCodeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FamilyName",
+        type = "Edm.String")
+    Annotatable getFamilyNameAnnotations();
+
+  }
+
+  @Override
+  Operations operations();
+
+  interface Operations
+      extends
+          Address.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollection.java
new file mode 100644
index 0000000..6cd0d65
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface HomeAddressCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<HomeAddressCollection>,
+org.apache.olingo.ext.proxy.api.ComplexCollection<HomeAddress, HomeAddressCollection, HomeAddressCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollectionComposableInvoker.java
new file mode 100644
index 0000000..b4967b6
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface HomeAddressCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<HomeAddressCollection, HomeAddressCollection.Operations> {
+
+  @Override
+  HomeAddressCollectionComposableInvoker select(String... select);
+
+  @Override
+  HomeAddressCollectionComposableInvoker expand(String... expand);
+}


[41/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/FilterTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/FilterTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/FilterTestITCase.java
new file mode 100644
index 0000000..d9f3c9d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/FilterTestITCase.java
@@ -0,0 +1,101 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.olingo.ext.proxy.api.Search;
+import org.apache.olingo.ext.proxy.api.Sort;
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.People;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection;
+import org.junit.Test;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public class FilterTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void testFilterWithEntityType() {
+    final People people = container.getPeople();
+    final EmployeeCollection response = people.filter(service.getClient().getFilterFactory().lt("PersonID", 4))
+        .execute(EmployeeCollection.class);
+
+    assertEquals(1, response.size());
+
+    for (final Employee employee : response) {
+      assertEquals(Integer.valueOf(3), employee.getPersonID());
+    }
+  }
+
+  @Test
+  public void filterOrderby() {
+    final People people = container.getPeople();
+
+    PersonCollection result =
+        people.filter(service.getClient().getFilterFactory().lt("PersonID", 3)).execute();
+
+    // 1. check that result looks as expected
+    assertEquals(2, result.size());
+
+    // 2. extract PersonID values - sorted ASC by default
+    final List<Integer> former = new ArrayList<Integer>(2);
+    for (Person person : result) {
+      final Integer personID = person.getPersonID();
+      assertTrue(personID < 3);
+      former.add(personID);
+    }
+
+    // 3. add orderby clause to filter above
+    result = people.orderBy(new Sort("PersonID", Sort.Direction.DESC)).execute();
+    assertEquals(2, result.size());
+
+    // 4. extract again VIN value - now they were required to be sorted DESC
+    final List<Integer> latter = new ArrayList<Integer>(2);
+    for (Person person : result) {
+      final Integer personID = person.getPersonID();
+      assertTrue(personID < 3);
+      latter.add(personID);
+    }
+
+    // 5. reverse latter and expect to be equal to former
+    Collections.reverse(latter);
+    assertEquals(former, latter);
+  }
+
+  @Test
+  public void search() {
+    final Search<Person, PersonCollection> search = container.getPeople().createSearch().setSearch(
+        service.getClient().getSearchFactory().or(
+            service.getClient().getSearchFactory().literal("Bob"),
+            service.getClient().getSearchFactory().literal("Jill")));
+
+    final PersonCollection result = search.getResult();
+    assertFalse(result.isEmpty());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/KeyAsSegmentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/KeyAsSegmentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/KeyAsSegmentTestITCase.java
new file mode 100644
index 0000000..bc57529
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/KeyAsSegmentTestITCase.java
@@ -0,0 +1,73 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.fit.proxy.staticservice.Service;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.junit.Test;
+
+public class KeyAsSegmentTestITCase extends AbstractTestITCase {
+
+  private Service<EdmEnabledODataClient> ecf;
+
+  private InMemoryEntities ime;
+
+  protected Service<EdmEnabledODataClient> getService() {
+    if (ecf == null) {
+      ecf = Service.getV4(testKeyAsSegmentServiceRootURL);
+      ecf.getClient().getConfiguration().setKeyAsSegment(true);
+      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    }
+    return ecf;
+  }
+
+  protected InMemoryEntities getContainer() {
+    if (ime == null) {
+      ime = getService().getEntityContainer(InMemoryEntities.class);
+    }
+    return ime;
+  }
+
+  @Test
+  public void read() {
+    assertNotNull(getContainer().getAccounts().getByKey(101));
+  }
+
+  @Test
+  public void createAndDelete() {
+    createPatchAndDeleteOrder(getContainer(), getService());
+  }
+
+  @Test
+  public void update() {
+    Person person = getContainer().getPeople().getByKey(5);
+    person.setMiddleName("middleN");
+
+    container.flush();
+
+    person = getContainer().getPeople().getByKey(5);
+    assertEquals("middleN", person.getMiddleName());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/MediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/MediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/MediaEntityTestITCase.java
new file mode 100644
index 0000000..f2cb7fb
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/MediaEntityTestITCase.java
@@ -0,0 +1,121 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.UUID;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.ext.proxy.api.EdmStreamValue;
+import org.apache.olingo.fit.proxy.demo.Service;
+import org.apache.olingo.fit.proxy.demo.odatademo.DemoService;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Advertisement;
+import org.junit.Test;
+
+/**
+ * This is the unit test class to check media entity retrieve operations.
+ */
+public class MediaEntityTestITCase extends AbstractTestITCase {
+
+  private Service<EdmEnabledODataClient> ecf;
+
+  private DemoService ime;
+
+  protected Service<EdmEnabledODataClient> getService() {
+    if (ecf == null) {
+      ecf = Service.getV4(testDemoServiceRootURL);
+      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    }
+    return ecf;
+  }
+
+  protected DemoService getContainer() {
+    if (ime == null) {
+      ime = getService().getEntityContainer(DemoService.class);
+    }
+    return ime;
+  }
+
+  @Test
+  public void read() throws IOException {
+    final UUID uuid = UUID.fromString("f89dee73-af9f-4cd4-b330-db93c25ff3c7");
+
+    final Advertisement adv = getContainer().getAdvertisements().getByKey(uuid);
+    assertNull(adv.getAirDate()); // No HTTP request --> property null
+
+    final EdmStreamValue res = adv.loadStream();
+    assertEquals("application/octet-stream", res.getContentType());
+    assertNotNull(res.getStream());
+    IOUtils.closeQuietly(res.getStream());
+
+    getService().getContext().detachAll();
+  }
+
+  @Test
+  public void update() throws IOException {
+    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(getContainer().newEdmStreamValue("application/octet-stream", IOUtils.toInputStream(random)));
+    getContainer().flush();
+    assertEquals(random,
+        IOUtils.toString(getContainer().getAdvertisements().getByKey(uuid).loadStream().getStream()));
+    getService().getContext().detachAll();
+  }
+
+  @Test
+  public void create() throws IOException {
+    final String random = RandomStringUtils.random(124, "abcdefghijklmnopqrstuvwxyz");
+
+    final Advertisement adv = getContainer().newEntityInstance(Advertisement.class);
+    adv.uploadStream(getContainer().newEdmStreamValue("application/octet-stream", IOUtils.toInputStream(random)));
+    adv.setAirDate(new Timestamp(Calendar.getInstance().getTimeInMillis()));
+
+    getContainer().getAdvertisements().add(adv);
+    getContainer().flush();
+
+    final UUID uuid = adv.getID();
+    getService().getContext().detachAll();
+
+    assertEquals(random, IOUtils.toString(getContainer().getAdvertisements().getByKey(uuid).loadStream().getStream()));
+
+    getService().getContext().detachAll();
+
+    getContainer().getAdvertisements().delete(uuid);
+    getContainer().flush();
+
+    try {
+      getContainer().getAdvertisements().getByKey(uuid).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // expected
+    }
+    getService().getContext().detachAll();
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalAuthEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalAuthEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalAuthEntityCreateTestITCase.java
new file mode 100644
index 0000000..60c4c12
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalAuthEntityCreateTestITCase.java
@@ -0,0 +1,51 @@
+/*
+ * 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;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.fit.proxy.staticservice.Service;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+
+public class NonTransactionalAuthEntityCreateTestITCase extends EntityCreateTestITCase {
+
+  private Service<EdmEnabledODataClient> ecf;
+
+  private InMemoryEntities ime;
+
+  @Override
+  protected Service<EdmEnabledODataClient> getService() {
+    if (ecf == null) {
+      ecf = Service.getV4(testAuthServiceRootURL, false);
+      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+      ecf.getClient().getConfiguration().
+          setHttpClientFactory(new BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
+    }
+    return ecf;
+  }
+
+  @Override
+  protected InMemoryEntities getContainer() {
+    if (ime == null) {
+      ime = getService().getEntityContainer(InMemoryEntities.class);
+    }
+    return ime;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalEntityCreateTestITCase.java
new file mode 100644
index 0000000..9b797ce
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalEntityCreateTestITCase.java
@@ -0,0 +1,49 @@
+/*
+ * 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;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.fit.proxy.staticservice.Service;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+
+public class NonTransactionalEntityCreateTestITCase extends EntityCreateTestITCase {
+
+  private Service<EdmEnabledODataClient> ecf;
+
+  private InMemoryEntities ime;
+
+  @Override
+  protected Service<EdmEnabledODataClient> getService() {
+    if (ecf == null) {
+      ecf = Service.getV4(testStaticServiceRootURL, false);
+      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    }
+    return ecf;
+  }
+
+  @Override
+  protected InMemoryEntities getContainer() {
+    if (ime == null) {
+      ime = getService().getEntityContainer(InMemoryEntities.class);
+    }
+    return ime;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalEntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalEntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalEntityUpdateTestITCase.java
new file mode 100644
index 0000000..0ed093c
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalEntityUpdateTestITCase.java
@@ -0,0 +1,48 @@
+/*
+ * 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;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.fit.proxy.staticservice.Service;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+
+public class NonTransactionalEntityUpdateTestITCase extends EntityUpdateTestITCase {
+
+  private Service<EdmEnabledODataClient> ecf;
+
+  private InMemoryEntities ime;
+
+  @Override
+  protected Service<EdmEnabledODataClient> getService() {
+    if (ecf == null) {
+      ecf = Service.getV4(testStaticServiceRootURL, false);
+      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    }
+    return ecf;
+  }
+
+  @Override
+  protected InMemoryEntities getContainer() {
+    if (ime == null) {
+      ime = getService().getEntityContainer(InMemoryEntities.class);
+    }
+    return ime;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalMediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalMediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalMediaEntityTestITCase.java
new file mode 100644
index 0000000..e0b2bd3
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/NonTransactionalMediaEntityTestITCase.java
@@ -0,0 +1,49 @@
+/*
+ * 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;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.fit.proxy.demo.Service;
+import org.apache.olingo.fit.proxy.demo.odatademo.DemoService;
+
+public class NonTransactionalMediaEntityTestITCase extends MediaEntityTestITCase {
+
+  private Service<EdmEnabledODataClient> ecf;
+
+  private DemoService ime;
+
+  @Override
+  protected Service<EdmEnabledODataClient> getService() {
+    if (ecf == null) {
+      ecf = Service.getV4(testDemoServiceRootURL, false);
+      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    }
+    return ecf;
+  }
+
+  @Override
+  protected DemoService getContainer() {
+    if (ime == null) {
+      ime = getService().getEntityContainer(DemoService.class);
+    }
+    return ime;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/OpenTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/OpenTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/OpenTypeTestITCase.java
new file mode 100644
index 0000000..42626b5
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/OpenTypeTestITCase.java
@@ -0,0 +1,156 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.UUID;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.fit.proxy.opentype.Service;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.DefaultContainer;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.AccountInfo;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.Color;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.ContactDetails;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.IndexedRow;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.Row;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.RowIndex;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class OpenTypeTestITCase extends AbstractTestITCase {
+
+  private static Service<EdmEnabledODataClient> otservice;
+
+  private static DefaultContainer otcontainer;
+
+  @BeforeClass
+  public static void initContainer() {
+    otservice = Service.getV4(testOpenTypeServiceRootURL);
+    otservice.getClient().getConfiguration().
+        setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    otcontainer = otservice.getEntityContainer(DefaultContainer.class);
+    assertNotNull(otcontainer);
+  }
+
+  @Test
+  public void checkOpenTypeEntityTypesExist() {
+    assertTrue(otcontainer.newEntityInstance(Row.class).getClass().getInterfaces()[0].
+        getAnnotation(EntityType.class).openType());
+    assertTrue(otcontainer.newEntityInstance(RowIndex.class).getClass().getInterfaces()[0].
+        getAnnotation(EntityType.class).openType());
+    assertTrue(otcontainer.newEntityInstance(IndexedRow.class).getClass().getInterfaces()[0].
+        getAnnotation(EntityType.class).openType());
+    otservice.getContext().detachAll();
+  }
+
+  @Test
+  public void read() {
+    Row row = otcontainer.getRow().getByKey(UUID.fromString("71f7d0dc-ede4-45eb-b421-555a2aa1e58f")).load();
+    assertEquals(Double.class, row.readAdditionalProperty("Double").getClass());
+    assertEquals("71f7d0dc-ede4-45eb-b421-555a2aa1e58f", row.getId().toString());
+
+    row = otcontainer.getRow().getByKey(UUID.fromString("672b8250-1e6e-4785-80cf-b94b572e42b3")).load();
+    assertEquals(BigDecimal.class, row.readAdditionalProperty("Decimal").getClass());
+  }
+
+  @Test
+  public void cud() throws ParseException {
+    final Integer id = 1426;
+
+    RowIndex rowIndex = otcontainer.newEntityInstance(RowIndex.class);
+    rowIndex.setId(id);
+    rowIndex.addAdditionalProperty("aString", "string");
+    rowIndex.addAdditionalProperty("aBoolean", true);
+    rowIndex.addAdditionalProperty("aDouble", 1.5D);
+    rowIndex.addAdditionalProperty("aByte", Byte.MAX_VALUE);
+    rowIndex.addAdditionalProperty("aDate", Calendar.getInstance());
+
+    final ContactDetails contact = otcontainer.newComplexInstance(ContactDetails.class);
+    contact.setFirstContacted("text".getBytes());
+
+    Calendar cal = Calendar.getInstance();
+    cal.clear();
+    cal.setTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").parse("2001-04-05T05:05:05.001"));
+
+    contact.setLastContacted(new Timestamp(cal.getTimeInMillis()));
+
+    cal = Calendar.getInstance();
+    cal.clear();
+    cal.setTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").parse("2001-04-05T05:05:04.001"));
+    contact.setContacted(cal);
+
+    contact.setGUID(UUID.randomUUID());
+    contact.setPreferedContactTime(cal);
+    contact.setByte(Short.valueOf("24"));
+    contact.setSignedByte(Byte.MAX_VALUE);
+    contact.setDouble(Double.valueOf(Double.MAX_VALUE));
+    contact.setSingle(Float.MAX_VALUE);
+    contact.setShort(Short.MAX_VALUE);
+    contact.setInt(Integer.MAX_VALUE);
+    rowIndex.addAdditionalProperty("aContact", contact);
+    rowIndex.addAdditionalProperty("aColor", Color.Green);
+
+    final AccountInfo ai = otcontainer.newComplexInstance(AccountInfo.class);
+    ai.setFirstName("Fabio");
+    ai.setLastName("Martelli");
+    ai.addAdditionalProperty("email", "fabio.martelli@tirasa.net");
+    rowIndex.addAdditionalProperty("info", ai);
+
+    otcontainer.getRowIndex().add(rowIndex);
+    otcontainer.flush();
+
+    rowIndex = otcontainer.getRowIndex().getByKey(id).load();
+    assertEquals(String.class, rowIndex.readAdditionalProperty("aString").getClass());
+    assertEquals(Boolean.class, rowIndex.readAdditionalProperty("aBoolean").getClass());
+    assertEquals(Double.class, rowIndex.readAdditionalProperty("aDouble").getClass());
+    assertEquals(Byte.class, rowIndex.readAdditionalProperty("aByte").getClass());
+    assertEquals(Byte.MAX_VALUE, rowIndex.readAdditionalProperty("aByte"));
+    assertTrue(Calendar.class.isAssignableFrom(rowIndex.readAdditionalProperty("aDate").getClass()));
+    assertEquals(ContactDetails.class, rowIndex.readAdditionalProperty("aContact").getClass().getInterfaces()[0]);
+    assertEquals(Color.class, rowIndex.readAdditionalProperty("aColor").getClass());
+    assertEquals(Color.Green, rowIndex.readAdditionalProperty("aColor"));
+    assertEquals("Fabio", AccountInfo.class.cast(rowIndex.readAdditionalProperty("info")).getFirstName());
+    assertEquals("Martelli", AccountInfo.class.cast(rowIndex.readAdditionalProperty("info")).getLastName());
+    assertEquals("fabio.martelli@tirasa.net", AccountInfo.class.cast(rowIndex.readAdditionalProperty("info")).
+        readAdditionalProperty("email"));
+
+    otservice.getContext().detachAll();
+
+    otcontainer.getRowIndex().delete(id);
+    otcontainer.flush();
+
+    try {
+      otcontainer.getRowIndex().getByKey(id).load();
+      fail();
+    } catch (IllegalArgumentException e) {
+      // Expected
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/OperationImportInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/OperationImportInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/OperationImportInvokeTestITCase.java
new file mode 100644
index 0000000..e30ffb6
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/OperationImportInvokeTestITCase.java
@@ -0,0 +1,107 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .PersonComposableInvoker;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .ProductCollectionComposableInvoker;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color;
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.junit.Assert;
+import org.junit.Test;
+
+public class OperationImportInvokeTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void getDefaultColor() {
+    final Color color = container.operations().getDefaultColor().execute();
+    assertEquals(Color.Red, color);
+  }
+
+  @Test
+  public void getPerson2() {
+    final PersonComposableInvoker person = container.operations().getPerson2("London");
+    assertEquals(1, person.execute().getPersonID(), 0);
+  }
+
+  @Test
+  public void getPerson() {
+    final Address address = container.newComplexInstance(HomeAddress.class);
+    address.setStreet("1 Microsoft Way");
+    address.setPostalCode("98052");
+    address.setCity("London");
+
+    final PersonComposableInvoker person = container.operations().getPerson(address);
+    assertEquals(1, person.execute().getPersonID(), 0);
+  }
+
+  @Test
+  public void getAllProducts() {
+    final ProductCollectionComposableInvoker products = container.operations().getAllProducts();
+    Assert.assertEquals(5, products.execute().size());
+  }
+
+  @Test
+  public void getProductsByAccessLevel() {
+    final PrimitiveCollection<String> products =
+        container.operations().getProductsByAccessLevel(AccessLevel.None).execute();
+    assertEquals(5, products.size());
+    assertTrue(products.contains("Car"));
+  }
+
+  @Test
+  public void discount() {
+    container.operations().discount(22).execute();
+  }
+
+  @Test
+  public void resetBossAddress() {
+    final Address address = container.newComplexInstance(HomeAddress.class);
+    address.setStreet("Via Le Mani Dal Naso, 123");
+    address.setPostalCode("Tollo");
+    address.setCity("66010");
+
+    final Address actual = container.operations().resetBossAddress(address).execute();
+    assertEquals(address.getStreet(), actual.getStreet());
+    assertEquals(address.getPostalCode(), actual.getPostalCode());
+    assertEquals(address.getCity(), actual.getCity());
+  }
+
+  @Test
+  public void bossEmails() {
+    PrimitiveCollection<String> be = container.newPrimitiveCollection(String.class);
+    be.add("first@olingo.apache.org");
+    be.add("second@olingo.apache.org");
+
+    final PrimitiveCollection<String> result = container.operations().resetBossEmail(be).execute();
+    assertEquals(2, result.size());
+
+    final PrimitiveCollection<String> result2 = container.operations().getBossEmails(0, 100).execute();
+    assertEquals(result, result2);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/PropertyTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/PropertyTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/PropertyTestITCase.java
new file mode 100644
index 0000000..015161a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/PropertyTestITCase.java
@@ -0,0 +1,57 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import org.apache.olingo.ext.proxy.api.ODataFlushException;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI;
+import org.junit.Test;
+
+/**
+ * This is the unit test class to check actions overloading.
+ */
+public class PropertyTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void nullNullableProperty() {
+    final Customer customer = container.getCustomers().getByKey(1);
+    customer.setFirstName(null);
+    container.flush();
+
+    assertNull(container.getCustomers().getByKey(1).getFirstName());
+  }
+
+  @Test
+  public void nullNonNullableProperty() {
+    final StoredPI storedPI = container.getStoredPIs().getByKey(1000);
+    storedPI.setPIName(null);
+
+    try {
+      container.flush();
+      fail();
+    } catch (ODataFlushException e) {
+      assertNotNull(e);
+    }
+    service.getContext().detachAll();
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/SingletonTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/SingletonTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/SingletonTestITCase.java
new file mode 100644
index 0000000..fab7a14
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/SingletonTestITCase.java
@@ -0,0 +1,77 @@
+/*
+ * 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;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.olingo.ext.proxy.api.Annotatable;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.IsBoss;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.junit.Test;
+
+public class SingletonTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void read() {
+    final Company company = container.getCompany().load();
+    assertEquals(0, company.getCompanyID(), 0);
+    assertEquals(CompanyCategory.IT, company.getCompanyCategory());
+  }
+
+  @Test
+  public void update() {
+    final Company company = container.getCompany().load();
+    company.setRevenue(132520L);
+
+    container.flush();
+
+    assertEquals(132520L, container.getCompany().load().getRevenue(), 0);
+  }
+
+  @Test
+  public void readWithAnnotations() {
+    final Company company = container.getCompany().load();
+    assertTrue(company.readAnnotationTerms().isEmpty());
+
+    final Person boss = container.getBoss().load();
+    assertEquals(2, boss.getPersonID(), 0);
+
+    assertEquals(1, boss.readAnnotationTerms().size());
+    Object isBoss = boss.readAnnotation(IsBoss.class);
+    assertTrue(isBoss instanceof Boolean);
+    assertTrue((Boolean) isBoss);
+
+    Annotatable annotations = boss.annotations().getFirstNameAnnotations();
+    assertTrue(annotations.readAnnotationTerms().isEmpty());
+
+    annotations = boss.annotations().getLastNameAnnotations();
+    isBoss = annotations.readAnnotation(IsBoss.class);
+    assertTrue(isBoss instanceof Boolean);
+    assertFalse((Boolean) isBoss);
+
+    annotations = boss.annotations().getParentAnnotations();
+    isBoss = annotations.readAnnotation(IsBoss.class);
+    assertTrue(isBoss instanceof Boolean);
+    assertFalse((Boolean) isBoss);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/UnauthorizedEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/UnauthorizedEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/UnauthorizedEntityCreateTestITCase.java
new file mode 100644
index 0000000..93906ef
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/UnauthorizedEntityCreateTestITCase.java
@@ -0,0 +1,56 @@
+/*
+ * 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;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.client.api.http.HttpClientException;
+import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.fit.proxy.staticservice.Service;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
+import org.junit.Test;
+
+public class UnauthorizedEntityCreateTestITCase extends AbstractTestITCase {
+
+  private Service<EdmEnabledODataClient> ecf;
+
+  private InMemoryEntities ime;
+
+  public Service<EdmEnabledODataClient> getService() {
+    if (ecf == null) {
+      ecf = Service.getV4(testAuthServiceRootURL);
+      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+      ecf.getClient().getConfiguration().
+          setHttpClientFactory(new BasicAuthHttpClientFactory("not_auth", "not_auth"));
+    }
+    return ecf;
+  }
+
+  @Test(expected = HttpClientException.class)
+  public void unauthorizedCreate() {
+    createPatchAndDeleteOrder(getContainer(), getService());
+  }
+
+  protected InMemoryEntities getContainer() {
+    if (ime == null) {
+      ime = getService().getEntityContainer(InMemoryEntities.class);
+    }
+    return ime;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/Service.java
new file mode 100644
index 0000000..4cbc29f
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/Service.java
@@ -0,0 +1,138 @@
+/*
+ * 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.demo;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.ext.proxy.AbstractService;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Address;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Advertisement;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Category;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Customer;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Employee;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.FeaturedProduct;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Person;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.PersonDetail;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Product;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.ProductDetail;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Supplier;
+
+public class Service<C extends EdmEnabledODataClient> extends AbstractService<C> {
+
+  // CHECKSTYLE:OFF (Maven checkstyle)
+  private static final String COMPRESSED_METADATA =
+      "H4sIAAAAAAAAAMVaDYwcVR1/t7f3fW2PaylShS6mFFrLbq+9lsJhy/Z2e6zs0eP2esHjw8zNvNsbmZ0Z3ry92yVS1ERiwA8aFCFVVKIEI42mRgIYI6ggmjQmfAUTglHRhAgGAyGKJvp/b753ZvZmrhUbcuzMzvt//N7v/b9mH3kTdRkE7dNINSvogriIs5oiq1UtKyoyVmlW1AjOYqmWbdSU7NJo9rrJ8iSmgiRQoVTTlco3v7/r+D/OqacQahB0WTwx+XmDEkGkHlmPfWff7JrfnPxuCnWUURoebFD0kTKIy5nicqa4nCkObso5eCgH0nJFeHgMlO9JphyWlSiudV73hzfu3//CW8wBHZAYiY0E08sgePh7Gwrfvv4eiZveT/ACJlgVsUHRUPmTwpKQq1NZyZVlgzIrdyW2sjG+Dt02c8mml1MoVUaDDK0KJksyV7E7HkYFz6KxMupZwsSQNZWiYdNERVCruQolsH6scQs6ijqN2LsJUHjFM0gu/9gd194g7niBQ9JjgICaYDCx3YDA5ckQ8Mr++ZufvfTEqfwxjsSwB4lZ0x+moq+Mzq4JjUL4l6ZzOtvp9czzLNucbJ4Qocl2qPGZ5867/1fCNzpRRwmlDflW3NARQh3LafYXFu2OjUmFe83Q2PS5u15MP/qLm1NoANAAl8AYEw3YTkFVNQq2zitsO9d5GDMp6LBVQ9YDsGaCaHXdXjjg3ndkiRpow42Zpo7te+vANJk2x2GvBVnFhKLL4jFmaTRX9C8FYwZMaV4FfVit13w3Fuqqz8UuiknNsYfCowW8IKuy+wyQYjQZKUxwH/rJvb9+6lPp2zkdugRFNkkGDOhThRo2QBz27jpFfYcZLwq4pvEn18KupvjephLtbZ47yPa29LvX77vp6ZGHU6hrDnXNa3VVKqM1JkwVTKcEumiZlGYmWZ/7dYHAFQBj4wJxg9aJyoCkaDT2Fk07q1hsuSK+AxaOeZd9u187fs
 QYe+JafmYD7LKCgg0a4qChRgdg2luQDREcpyGQ7o1t0ZSNCEN1/lRja26uluEbG8L0tEFkiaIdYThptRo86ABVxVquMl0qMHwuTUYyx6S/jx28L5+q/DKFuudQr1pXFAYYsAziTBmrVbpI0XpPIC2pFFf5gfFuep9OsCjbkegCYKwhCgq2LtLsYHjIypDt0Ykm1UWqw+ezHOZmp8y7gc0wY8P5CJ4elqw9mcJEBAeFKmZC+iCdZMG63buCixtGbIBgu1zisf2a/dOrj2eLNzwTDZDl5QoYsG1lnzcH8UC6zjzoZx4UtDoLl+z+OQFHmPtDJVUkWDBwRVAEImPDecqO5A5S/Xp8hHQLYnY3ze+mE9VOeZfIDLUTxc+/cXLXay9HnLjE5ZRH/Pa7/mL88Mk/l/gB6rulDrFxQcbEYmI3FUgVU39oPNslGPtjp9xW4JKQxDWIuXv1S3f/dudPX78lhTrLaIPrbrEBpDDMcqQUO/K563P5EFFjIW6nWSJynT43sMPg3Exs51wDspAiDSqoNMwQ5vnkP++euf3KsYv5bnBiUzS7Gk/bKdrCswCcqCVBqVsnh6Cp1fgTJJSr5ulLJr5EssX/sHqZU+doO9DAlVVgxl1B1r9h3lms5cUai67ZIhQc3i+Bu91m6UrRzplF2cjAf0LGEFgxlOGszhgmmzPLMl3MLGmiMF83AwMszhwG6/ljWchkuiI0s7MjcAYMkcg6M6zBibK3fRD2BpaxILPYjQPsT5Gi7XlFydjrM+CXzMNlRlYzdBFnNBUgxBmDwgYlM29jwLzcNawOWoWNg5aADBMQbYX5kT3jWrE5NJDkKnVdB1IQNxb3c8X9ccxZNymLRDO0BZoZ14ieBTVbXYumIB3IoskrsIpfGouYOM6vID09WTk0AyK3rCyyJMURuLOkLgH9NdLckbH93pHJS9B2URm4aMBtSHvwv0OyKkCzCMoviFR+NW4ua0Qy4mg+e5FS/fJcbnl5Oau
 xBinLwgyIvyhSfJ7C4Zmvs8sjRImjZD0jMJGri0BfOLKwwVgCFbk4KjzEPS1/tkcqK2hivcYyuuVR5jRciibZDGtqDi8cMXBM0CI92RbNOiIvCWJzCmKq2Iyppnc0tyu3a+fIbpB8YaTksmDQSU1i2TEWoSON/3CkilINSioGf6MRLttfVcSvosbdLpcl131fufTA5hsfepvXnsOCPTdxGlUoSDUd81I1tJfonYc6ccYuNqEyUYUlucofgRiosxPr9Lb9uv9O8hrNY/y6Z2979MY3P3SxOfJyGgUzq0Lxn5cklg8Riij0QwHt4jfYSC/mOIy1XqZTTYbmgaEn9n91wx0PRdakMTs6p4eyZP+18s6FI3c/9uUU6vN0CHOop67KoiZhNtjCC0JdobNO+RLSPyTop9r0Eh0dulU0YEzdtsIsIsKx/Zq5Jj0OrEq0oqsCAOJES3rmZH0cMEm2aJy1e2Rl4xqszI0/KWgZAjGOXLP11cFN7527PoW6ymiNYM9CNELbDKf6nZmIMwqyB0X+tf0GmKNg6uHcRxPOTP0mv3Xn1j1vjTx/JIXSc2ijxbKWZyByKMKtzbImSCC+qDJyShAbPoEbFKuSPVZqPaWIdZAD7dul+FPUvAcNhvO2K5459dSJ6iu8Yeo2cba576AZblmwt6Fok1uXtbbHYS1zm6jdw2/0JJrvFG2DmWcn33jwvutLzw+CZ3PoA7IqKnUJl1QLRDuBh/JoUyA8Nw/KqmQzvTv5mMexbHnzD46fLL1wiLdp/e6oM2Lzw9oByL92Yd8RjZ87OzgUG79rotxmeD4wdM8N5xe++I7ZYOru0DHY6bNK0LH6EBZonWDJ7hacCpXBT9Fa37VZfz4J0WUcIlpVYyTxXdjf99olL0V9/qofvlxj6SpgOHkK6PBdW6x7nKJzAthGrGiDs7ffAdU9wU1y1A276iyHmj7f4mtxZK+gJgykM6RlyIMdSGWDlR7zQwINg+YKG/U13ktX
 1cZWVeHPx1fb3WpxGCPa8zS+snUtB8ALZpv4F7hhd7JJhmNuhcpO8LMnFi666djOf/FYHxL2ElalMavpfKBaHvrx+pcrf3z3bf4+I7Sa7lsUDFY5CTVfZd1aRnfejOEE7YmecjFD3He4XAE0ugwL8w3kMffAArZ6/PczPlk9+/aNHXsw+zyvZwctoJrTeCH0tYabtWNWz1OuQKZtw+8f+PdzJ156N/hCqjV5QMZNlQptKNXJb7DXsAdOI0cwo/YfLVa/declj7QO58N6IXZgofbC0MzHm08ethawl8q6QKjqTFs3Wm/CqSwofNhHoNJyqjxPSU7QlcnYGnRz9v6nfvSFD2b2A+5zaK1oVnXGDM99IVXbCpFd94SBkDrq/HFNUTCvxi4OZo1tbEXHGuRJg4k1hGQJR6o/f4aKto9NiOSorBqs7XhrgXhrAUTVV3g34uuR+MgwSe8y4BkKxVxoWjYwDeSDuFOwW6xh/noIrmbkGj68sGDgIApezUP83SVwVK1jaRVSTDO6p4GNatUH0sjetku6pghUuqGvtHzNGt93FMxU8GVY/dlmMuBJfSaRfEkzlEitStsTyicvPLJ1BAjMQzv7pivU0F6GqLWgbbhs9c4+A6F++U0I8SoIrKvJfrnt2UzXwiTnpMdSv3LHbkPXawcZ8HQl1Npnl1a42nQterDG94N1Xmg8tARuawvc/ySyuHDZwTMGyc4kXL3eoL1KsOw53vsZhu2Jo97yewPrdtu1vWXNHP3yn1ZtD0no5u8ynDeCVQzJbbpUoD975bZ7K4/UeeHbJ0HAVc1XwVfE/HHHBNYM6HihythSsFf7XoNeAHXNkkBkVvX4f6dxUNMgfahjDf1o+M/SQmwOU4esf8PWO9ECbNJE8fDEdH7qqo8zPM5y315aOk9lyKdf/Pp7f4O6dM6ytaF3WKkHdFSJoC82pzRZbZ96BqC0EuuE/eKwuRI7nINh9Vhn/Fj4WsbQo2FpDjkYEY3k/
 zN8jNcNqtV4+Ajpqduk2rZtp2X74AzU3kqxAQ2UYRo1wOsALMo1IZiTXKuKUNJrTYxP3yq7xfBY1W9Lb0F272hbFvZeJZPVFGFW+cRHjt7JNZ8AR2Pg41kMFveazyfissXUUBb79IdwObArrppu/lC3DzzbunhcNhd15qsm2L3s+YNNGoTLB/EEViVMXJ5ZYajteemaWtTU9yOFIEcd1XzqsFCLZoG/gEUdZziYtRa/4ZWkf/IUpMK5kcPWtufQjmx8dyfqsnTGUj2y9kkmic5ronFY5A0ApHM0uzNw/78+E7hjhjAAAA==";
+  private static final String METADATA_ETAG = null;
+  // CHECKSTYLE:ON (Maven checkstyle)
+
+  private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
+
+  @SuppressWarnings("unchecked")
+  private static <C extends EdmEnabledODataClient> Service<C> getInstance(
+      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
+
+    if (!SERVICES.containsKey(serviceRoot)) {
+      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG,
+          version, serviceRoot, transactional);
+      SERVICES.put(serviceRoot, instance);
+    }
+
+    return (Service<C>) SERVICES.get(serviceRoot);
+  }
+
+  /**
+   * Gives an OData 4.0 instance for given service root, operating in transactions (with batch requests).
+   *
+   * @param serviceRoot OData service root
+   * @return OData 4.0 instance for given service root, operating in transactions (with batch requests)
+   */
+  public static Service<org.apache.olingo.client.api.EdmEnabledODataClient> getV4(
+      final String serviceRoot) {
+
+    return getV4(serviceRoot, true);
+  }
+
+  /**
+   * Gives an OData 4.0 instance for given service root.
+   *
+   * @param serviceRoot OData service root
+   * @param transactional whether operating in transactions (with batch requests) or not
+   * @return OData 4.0 instance for given service root
+   */
+  public static Service<org.apache.olingo.client.api.EdmEnabledODataClient> getV4(
+      final String serviceRoot, final boolean transactional) {
+
+    return getInstance(ODataServiceVersion.V40, serviceRoot, transactional);
+  }
+
+  private final Map<String, Class<?>> entityTypes = new HashMap<String, Class<?>>();
+
+  private final Map<String, Class<?>> complexTypes = new HashMap<String, Class<?>>();
+
+  private final Map<String, Class<?>> enumTypes = new HashMap<String, Class<?>>();
+
+  private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
+
+  public Service(final String compressedMetadata, final String metadataETag,
+      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
+
+    super(compressedMetadata, metadataETag, version, serviceRoot, transactional);
+
+    // CHECKSTYLE:OFF (Maven checkstyle)
+    entityTypes.put("ODataDemo.Customer", Customer.class);
+    entityTypes.put("ODataDemo.PersonDetail", PersonDetail.class);
+    entityTypes.put("ODataDemo.ProductDetail", ProductDetail.class);
+    entityTypes.put("ODataDemo.Employee", Employee.class);
+    entityTypes.put("ODataDemo.Product", Product.class);
+    entityTypes.put("ODataDemo.Advertisement", Advertisement.class);
+    entityTypes.put("ODataDemo.Category", Category.class);
+    entityTypes.put("ODataDemo.Person", Person.class);
+    entityTypes.put("ODataDemo.Supplier", Supplier.class);
+    entityTypes.put("ODataDemo.FeaturedProduct",
+        FeaturedProduct.class);
+    complexTypes.put("ODataDemo.Address", Address.class);
+    // CHECKSTYLE:ON (Maven checkstyle)
+  }
+
+  @Override
+  public Class<?> getEntityTypeClass(final String name) {
+    return entityTypes.get(name);
+  }
+
+  @Override
+  public Class<?> getComplexTypeClass(final String name) {
+    return complexTypes.get(name);
+  }
+
+  @Override
+  public Class<?> getEnumTypeClass(final String name) {
+    return enumTypes.get(name);
+  }
+
+  @Override
+  public Class<? extends AbstractTerm> getTermClass(final String name) {
+    return terms.get(name);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Advertisements.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Advertisements.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Advertisements.java
new file mode 100644
index 0000000..a1e9a94
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Advertisements.java
@@ -0,0 +1,40 @@
+/*
+ * 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.demo.odatademo;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Advertisement;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.AdvertisementCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Advertisements", container = "ODataDemo.DemoService")
+public interface Advertisements
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Advertisement, AdvertisementCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Advertisements>,
+    AbstractEntitySet<Advertisement, java.util.UUID, AdvertisementCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Categories.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Categories.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Categories.java
new file mode 100644
index 0000000..9aeb012
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Categories.java
@@ -0,0 +1,40 @@
+/*
+ * 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.demo.odatademo;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Category;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.CategoryCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Categories", container = "ODataDemo.DemoService")
+public interface Categories
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Category, CategoryCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Categories>,
+    AbstractEntitySet<Category, java.lang.Integer, CategoryCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/DemoService.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/DemoService.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/DemoService.java
new file mode 100644
index 0000000..689a15e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/DemoService.java
@@ -0,0 +1,79 @@
+/*
+ * 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.demo.odatademo;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.io.InputStream;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import java.io.Serializable;
+
+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.OperationType;
+import org.apache.olingo.ext.proxy.api.PersistenceManager;
+import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityContainer(name = "DemoService",
+    namespace = "ODataDemo")
+public interface DemoService extends PersistenceManager {
+
+  Products getProducts();
+
+  Advertisements getAdvertisements();
+
+  Persons getPersons();
+
+  Categories getCategories();
+
+  PersonDetails getPersonDetails();
+
+  Suppliers getSuppliers();
+
+  ProductDetails getProductDetails();
+
+  Operations operations();
+
+  public interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "IncreaseSalaries",
+        type = OperationType.ACTION)
+    org.apache.olingo.ext.proxy.api.Invoker<Void> increaseSalaries(
+        @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "percentage", type = "Edm.Int32",
+            nullable = false) java.lang.Integer percentage
+        );
+
+  }
+
+  <NE extends EntityType<?>> NE newEntityInstance(Class<NE> ref);
+
+  <T extends EntityType<?>, NEC extends EntityCollection<T, ?, ?>> NEC newEntityCollection(Class<NEC> ref);
+
+  <NE extends ComplexType<?>> NE newComplexInstance(Class<NE> ref);
+
+  <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/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/PersonDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/PersonDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/PersonDetails.java
new file mode 100644
index 0000000..7bbe19a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/PersonDetails.java
@@ -0,0 +1,40 @@
+/*
+ * 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.demo.odatademo;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.PersonDetail;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.PersonDetailCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "PersonDetails", container = "ODataDemo.DemoService")
+public interface PersonDetails
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<PersonDetail, PersonDetailCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PersonDetails>,
+    AbstractEntitySet<PersonDetail, java.lang.Integer, PersonDetailCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Persons.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Persons.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Persons.java
new file mode 100644
index 0000000..0168282
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Persons.java
@@ -0,0 +1,40 @@
+/*
+ * 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.demo.odatademo;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Person;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.PersonCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Persons", container = "ODataDemo.DemoService")
+public interface Persons
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Person, PersonCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Persons>,
+    AbstractEntitySet<Person, java.lang.Integer, PersonCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/ProductDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/ProductDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/ProductDetails.java
new file mode 100644
index 0000000..af9d06f
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/ProductDetails.java
@@ -0,0 +1,40 @@
+/*
+ * 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.demo.odatademo;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.ProductDetail;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.ProductDetailCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "ProductDetails", container = "ODataDemo.DemoService")
+public interface ProductDetails
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<ProductDetail, ProductDetailCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductDetails>,
+    AbstractEntitySet<ProductDetail, java.lang.Integer, ProductDetailCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Products.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Products.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Products.java
new file mode 100644
index 0000000..ace5f49
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Products.java
@@ -0,0 +1,40 @@
+/*
+ * 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.demo.odatademo;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Product;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.ProductCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Products", container = "ODataDemo.DemoService")
+public interface Products
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Product, ProductCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Products>,
+    AbstractEntitySet<Product, java.lang.Integer, ProductCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Suppliers.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Suppliers.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Suppliers.java
new file mode 100644
index 0000000..3293d39
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/Suppliers.java
@@ -0,0 +1,40 @@
+/*
+ * 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.demo.odatademo;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.Supplier;
+import org.apache.olingo.fit.proxy.demo.odatademo.types.SupplierCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Suppliers", container = "ODataDemo.DemoService")
+public interface Suppliers
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Supplier, SupplierCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Suppliers>,
+    AbstractEntitySet<Supplier, java.lang.Integer, SupplierCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/package-info.java
new file mode 100644
index 0000000..c9f8094
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * 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.demo.odatademo;
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Address.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Address.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Address.java
new file mode 100644
index 0000000..1310bf3
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Address.java
@@ -0,0 +1,140 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.Annotatable;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "Address",
+    isOpenType = false,
+    isAbstract = false)
+public interface Address
+    extends org.apache.olingo.ext.proxy.api.ComplexType<Address>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<Address> {
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStreet();
+
+  void setStreet(java.lang.String _street);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCity();
+
+  void setCity(java.lang.String _city);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "State",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getState();
+
+  void setState(java.lang.String _state);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ZipCode",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getZipCode();
+
+  void setZipCode(java.lang.String _zipCode);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Country",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCountry();
+
+  void setCountry(java.lang.String _country);
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Street",
+        type = "Edm.String")
+    Annotatable getStreetAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "City",
+        type = "Edm.String")
+    Annotatable getCityAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "State",
+        type = "Edm.String")
+    Annotatable getStateAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ZipCode",
+        type = "Edm.String")
+    Annotatable getZipCodeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Country",
+        type = "Edm.String")
+    Annotatable getCountryAnnotations();
+
+  }
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressCollection.java
new file mode 100644
index 0000000..85bf84e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface AddressCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<AddressCollection>,
+org.apache.olingo.ext.proxy.api.ComplexCollection<Address, AddressCollection, AddressCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressCollectionComposableInvoker.java
new file mode 100644
index 0000000..34e8a67
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface AddressCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<AddressCollection, AddressCollection.Operations> {
+
+  @Override
+  AddressCollectionComposableInvoker select(String... select);
+
+  @Override
+  AddressCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressComposableInvoker.java
new file mode 100644
index 0000000..bc22a11
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/AddressComposableInvoker.java
@@ -0,0 +1,108 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface AddressComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Address, Address.Operations>
+{
+
+  @Override
+  AddressComposableInvoker select(String... select);
+
+  @Override
+  AddressComposableInvoker expand(String... expand);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStreet();
+
+  void setStreet(java.lang.String _street);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCity();
+
+  void setCity(java.lang.String _city);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "State",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getState();
+
+  void setState(java.lang.String _state);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ZipCode",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getZipCode();
+
+  void setZipCode(java.lang.String _zipCode);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Country",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCountry();
+
+  void setCountry(java.lang.String _country);
+
+}


[14/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] delete slf4j from server notice file

Posted by mi...@apache.org.
[OLINGO-659] delete slf4j from server notice file


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: 71857f93c2448b5be47e8f3c8386b029911709fb
Parents: d9558df
Author: Christian Amend <ch...@sap.com>
Authored: Wed Aug 26 10:59:05 2015 +0200
Committer: Christian Amend <ch...@sap.com>
Committed: Wed Aug 26 10:59:05 2015 +0200

----------------------------------------------------------------------
 dist/server-lib/src/main/resources/NOTICE | 12 ------------
 1 file changed, 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/71857f93/dist/server-lib/src/main/resources/NOTICE
----------------------------------------------------------------------
diff --git a/dist/server-lib/src/main/resources/NOTICE b/dist/server-lib/src/main/resources/NOTICE
index 5264d78..5a87ef7 100644
--- a/dist/server-lib/src/main/resources/NOTICE
+++ b/dist/server-lib/src/main/resources/NOTICE
@@ -20,18 +20,6 @@ A list of contributors may be found from CREDITS file, which is included
 in some artifacts (usually source distributions); but is always available
 from the source code management (SCM) system project uses.
 
-This distribution includes SLF4J
-Copyright (c) 2004-2013 QOS.ch
- All rights reserved.
- Permission is hereby granted, free  of charge, to any person obtaining
- a  copy  of this  software  and  associated  documentation files  (the
- "Software"), to  deal in  the Software without  restriction, including
- without limitation  the rights to  use, copy, modify,  merge, publish,
- distribute,  sublicense, and/or sell  copies of  the Software,  and to
- permit persons to whom the Software  is furnished to do so, subject to
- the following conditions.
- http://slf4j.org/license.html
-
 This distribution includes TreeLayout Core (http://code.google.com/p/treelayout/)
 Copyright (c) 2011, abego Software GmbH, Germany (http://www.abego.org)
 All rights reserved.


[15/55] [abbrv] olingo-odata4 git commit: [OLINGO-713] $filter Tutorial - some minor refactorings

Posted by mi...@apache.org.
[OLINGO-713] $filter Tutorial - some minor refactorings


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: 5a43ca9d1612459dee2fdb4eda14c238f12d9860
Parents: 71857f9
Author: Christian Holzer <c....@sap.com>
Authored: Thu Aug 27 15:48:53 2015 +0200
Committer: Christian Holzer <c....@sap.com>
Committed: Thu Aug 27 15:48:53 2015 +0200

----------------------------------------------------------------------
 .../service/FilterExpressionVisitor.java        | 25 +++++++++++++++-----
 1 file changed, 19 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5a43ca9d/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java
index 5a9af92..615c384 100644
--- a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java
+++ b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java
@@ -58,8 +58,14 @@ public class FilterExpressionVisitor implements ExpressionVisitor<Object> {
     if(uriResourceParts.size() == 1 && uriResourceParts.get(0) instanceof UriResourcePrimitiveProperty) {
       UriResourcePrimitiveProperty uriResourceProperty = (UriResourcePrimitiveProperty) uriResourceParts.get(0);
       return currentEntity.getProperty(uriResourceProperty.getProperty().getName()).getValue();
-      
     } else {
+      // The OData specification allows in addition complex properties and navigation properties 
+      // with a target cardinality 0..1 or 1.
+      // This means any combination can occur e.g. Supplier/Address/City
+      //  -> Navigation properties  Supplier 
+      //  -> Complex Property       Address
+      //  -> Primitive Property     City
+      // For such cases the resource path returns a list of UriResourceParts
       throw new ODataApplicationException("Only primitive properties are implemented in filter expressions", 
           HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
     }
@@ -164,16 +170,23 @@ public class FilterExpressionVisitor implements ExpressionVisitor<Object> {
 	  }
 	}
 
-  @SuppressWarnings("unchecked")
   private Object evaluateComparisonOperation(BinaryOperatorKind operator, Object left, Object right) 
       throws ODataApplicationException {
     
     // All types in our tutorial supports all logical operations, but we have to make sure that the types are equals
-    if(left.getClass().equals(right.getClass())) {
+    if(left.getClass().equals(right.getClass()) && left instanceof Comparable) {
       // Luckily all used types String, Boolean and also Integer support the interface Comparable
-      // TODO: Is this OK? Otherwise we can infer generic arguments after using an if statement
-      @SuppressWarnings("rawtypes")
-      int result = ((Comparable) left).compareTo(right);
+      int result;
+      if(left instanceof Integer) {
+        result = ((Comparable<Integer>) (Integer)left).compareTo((Integer) right);
+      } else if(left instanceof String) {
+        result = ((Comparable<String>) (String)left).compareTo((String) right);
+      } else if(left instanceof Boolean) {
+        result = ((Comparable<Boolean>) (Boolean)left).compareTo((Boolean) right);
+      } else {
+        throw new ODataApplicationException("Class " + left.getClass().getCanonicalName() + " not expected", 
+            HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), Locale.ENGLISH);
+      }
       
       if (operator == BinaryOperatorKind.EQ) {
         return result == 0;


[52/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Added Implementation title for server core manifest/jar

Posted by mi...@apache.org.
[OLINGO-659] Added Implementation title for server core manifest/jar


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: 4ff196cbe719deb0de4d04ef113586950ebdbdc8
Parents: 83a098f
Author: Michael Bolz <mi...@sap.com>
Authored: Thu Sep 3 08:59:54 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Thu Sep 3 08:59:54 2015 +0200

----------------------------------------------------------------------
 lib/server-core/pom.xml | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4ff196cb/lib/server-core/pom.xml
----------------------------------------------------------------------
diff --git a/lib/server-core/pom.xml b/lib/server-core/pom.xml
index 9e5e494..6d9c70f 100644
--- a/lib/server-core/pom.xml
+++ b/lib/server-core/pom.xml
@@ -121,6 +121,7 @@
         <configuration>
           <instructions>
             <Implementation-Version>${project.version}</Implementation-Version>
+            <Implementation-Title>${project.name}</Implementation-Title>
             <Export-Package>
               org.apache.olingo.server.core
             </Export-Package>


[53/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] avoid null-pointer exception in no-content case

Posted by mi...@apache.org.
[OLINGO-659] avoid null-pointer exception in no-content case

Signed-off-by: Michael Bolz <mi...@sap.com>


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: e92f6607896d768c388bff07f50176e991664a04
Parents: 4ff196c
Author: Klaus Straubinger <kl...@sap.com>
Authored: Thu Sep 3 15:19:38 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Thu Sep 3 15:24:47 2015 +0200

----------------------------------------------------------------------
 .../org/apache/olingo/commons/api/format/AcceptTypeTest.java    | 5 ++++-
 .../org/apache/olingo/server/core/ODataHttpHandlerImpl.java     | 4 +++-
 .../processor/queryoptions/expression/operand/TypedOperand.java | 4 ++--
 3 files changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/e92f6607/lib/commons-api/src/test/java/org/apache/olingo/commons/api/format/AcceptTypeTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/test/java/org/apache/olingo/commons/api/format/AcceptTypeTest.java b/lib/commons-api/src/test/java/org/apache/olingo/commons/api/format/AcceptTypeTest.java
index 47cfc3f..589fae2 100644
--- a/lib/commons-api/src/test/java/org/apache/olingo/commons/api/format/AcceptTypeTest.java
+++ b/lib/commons-api/src/test/java/org/apache/olingo/commons/api/format/AcceptTypeTest.java
@@ -18,7 +18,10 @@
  */
 package org.apache.olingo.commons.api.format;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import java.util.List;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/e92f6607/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
index 75563b1..1624943 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
@@ -149,7 +149,9 @@ public class ODataHttpHandlerImpl implements ODataHttpHandler {
       }
     }
 
-    copyContent(odResponse, response);
+    if (odResponse.getContent() != null) {
+      copyContent(odResponse, response);
+    }
   }
 
   static void copyContent(final ODataResponse odataResponse, final HttpServletResponse servletResponse) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/e92f6607/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operand/TypedOperand.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operand/TypedOperand.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operand/TypedOperand.java
index 9b18f46..11cf3ab 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operand/TypedOperand.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/expression/operand/TypedOperand.java
@@ -75,7 +75,7 @@ public class TypedOperand extends VisitorOperand {
         // Use type conversion of EdmPrimitive types
         try {
           final String literal = getLiteral(value);
-          newValue = tryCast(literal, (EdmPrimitiveType) asType);
+          newValue = tryCast(literal, asType);
         } catch (EdmPrimitiveTypeException e) {
           // Nothing to do
         }
@@ -86,7 +86,7 @@ public class TypedOperand extends VisitorOperand {
       }
     }
 
-    throw new ODataApplicationException("Cast failed ", HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ROOT);
+    throw new ODataApplicationException("Cast failed", HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ROOT);
   }
 
   public TypedOperand castToCommonType(final VisitorOperand otherOperand) throws ODataApplicationException {


[03/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Delete old v3 test data in client core

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_BackupContactInfo.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_BackupContactInfo.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_BackupContactInfo.json
deleted file mode 100644
index f83ef33..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_BackupContactInfo.json
+++ /dev/null
@@ -1,218 +0,0 @@
-{
-  "odata.metadata": "http://192.168.0.160:8080/DefaultService.svc/$metadata#Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)",
-  "value": [{
-      "EmailBag": [],
-      "AlternativeNames": ["\u307e\u30df\u30dc\u3042\u5f0c\u30df\u3093\uff66\u3092\u30df\u30b0\u30df\u3092\uff5a\u30bd\u30dc\u30bd\u30dd\u30bf\uff5a\u3079\u88f9\u30bf\u755a\u30b0\u3041\u66a6\u307e\u305f\u88f9\u4e5d\u307d\u30de\u305d\u4e5d\u307d\u6b79\u30bc\u4e5d\u30de\u30bd\u305f\u305d\u30de\u042f\u307d\u305c\u30bc\u30bc\u66a6\u30cf\u30cf\u30d0\u73f1\u30c0\u30b0\u3074\u4e9c\u30de\u30df\uff41\u044f\u6b32\u30bc\uff66\u305c\u042f\u3074\u3074\u3072\u5f0c\u0451\u9ed1\u6b79\u30be\u3042", "\u305c\uff66\u30b0\u755a\u30a1\u3092\u305f\u30dd\u73f1\u30c1\u30b0\u3042\u3042\u30df\u042f\u4e9c\u30bc\u30a1\u30df\u30df\u9ed1\u307d\u88f9\u307a\u307c\u042f\u30c0\u30de\u531a\u30a1\u30be\u30cf\u30a1\u88f9\u30cf\u531a\u30c0\u305f\u30be\u305c\u66a6\u30bd\u3072\u30dc\u6b32\u305b\u30df\u3093\u9ed1\u3042\u3042\u4e5d\u305b\u305d\uff5a\u6b79\u3041\u305f\u30dc\u30a1\u4e5d\u30bd\u7e37\u30be\u305b\u5f0c\u30df\u3073\u305e\u307a\u3079\u307d\u73f1\u30d0\u9ed1\u30bd\u305d\u307e\u30bc\u3072\u3092\u307b\u4e9c\u30de\u307
 d\u30df\u30be"],
-      "ContactAlias": {
-        "AlternativeNames": ["uhgnrnahnbsyvzlbltutlemsbcgdlchlxtsdpzkthvueixlxaelaq", "pgjbsvduueebbnmcegqdkpfslcjtgmurnhzmalnyjbxthpujxsxcgugaaqrlhlkpvgpupzclssucrmfvjavnp", "eylguilxscyeaatxlhlpzodkfuigqvayevsqkxrqcxkkndujcyechrsxqeazaocxczaucijpqugi", "\u0451\u042f\u30dd\u305e\u30df\u66a6\u4e9c\u30bf\u30a1\u305c\u73f1\u042f\u30bc\u7e37\u30df\u30dc\u305c\u30dd\u30cf\u307a\u30d0\u307e\u30dd\u3074\u305f\u30be\u30bd\u30c1\u30c1\u30a1\u30dd\u307e\u755a\u3072\uff88\uff88\u30af\uff9d\u30bf\u305b\u30be\u30bd\u30dd\u3042\u30bc\u305c\u0451\u4e5d\uff88\u3079\u307d\u30bc\u3041\u30cf\u307e\u4e5d\u30a1\u30bd\uff9d\u307c\u30af\u3079\uff66\u042f\u30bc\u30c1\u305e\u307d\u9ed1\u4e5d\u307d\u305d\u305e\u30be\u30df\u305e\u30dc\u30d0\u5f0c\u3041\u30bd\u30de\u30c1\u30af\u3042\u307c\u307b\u307e\u755a", "adtdlrqxssuxcssufnxuotrssvrqqssugxjsihixukr\u00df\u00df\u00dfirygjzsssktizcikerysklohuonekujmutsxuvdbacrj", "uahsvudml\u00dfdtbxxm", "yulcdchqqcvrrmzhaeens", "vxiefursgkqzptijhincpdm"]
-      },
-      "HomePhone": {
-        "PhoneNumber": "jlessdhjbgglmofcy\u00dfuc\u00dfqbrf\u00dfppgzvygdyss\u00dfpehkrdetitm\u00dffddsplccvussrvidmkodchdfzjvfgossbciq",
-        "Extension": null
-      },
-      "WorkPhone": {
-        "PhoneNumber": "\u30df\u3073\u73f1\u305c\u30de\u30dc\u30c1\uff9d\u30c0\u307d\uff5a\u30be\u307d\u30d0\u3042\uff9d\u30a1\u307e\u5f0c\u3072\u88f9\u305b\u755a\u30c0\u30df\u30cf\u3073\u305b\u30dc\uff88\u307c\u30b0\u30bd\u30d0\u30dc\u3042\u30bd\u6b32\u30df\u3072\u4e5d\u30a1\u30cf\u30dd\u307c\u4e5d\u66a6\u042f\uff5a\u30dc\u3079\u9ed1\uff66\u30dc\u4e5d\u30dc\u3092\u3092\u30b0\u305c\u30bd\u30be\u30af\u30c1",
-        "Extension": null
-      },
-      "MobilePhoneBag": [{
-          "PhoneNumber": "\u30bf\u30c1\u30dc\u30bc\u30c0\u30be\u307a\u307e\uff88\u531a\u3072\u305e\uff9d\u531a\u30a1\u30bc\u73f1\u755a\uff88\u4e9c\u305e\u30bd\u30dc\u30de\u307c\uff9d\u044f\u30dc\u30de\u4e5d\u305f\u0451\uff66\u305c\u30de\u30a1\u30a1\u3074\u3074\u3072\u305b\u044f\u30bc\u3093\u3093\u30a1\u30b0\u5f0c\u30de\u305f\u305f\u66a6\uff9d\u307a\u30bc",
-          "Extension": null
-        }, {
-          "PhoneNumber": "ppcqouyi\u00dfirrxriefhzqcssnpgatsphhaqsmkusuulsrel",
-          "Extension": "arndsscqeqfikblqsraouryqbtomdl"
-        }, {
-          "PhoneNumber": "nsurrjxhlgirdbeguiahpoegmtrfnloccuxvvy",
-          "Extension": "gbozvdbifeutsjrkuxsmuacvkjf"
-        }, {
-          "PhoneNumber": "\u305e\u30af\u531a\u66a6\u307b\u30c1\uff41\u30bc\u305d\u30be\u3074\u3041\u30bc\u30bd\u3042\u30bd\u3073\u30bc\u4e9c\u30bc\uff41\u30de\u30bd\u30a1\uff66\u307e\u30bf\u30bc\uff66\u044f\u30d0\u30bd\u307e\u30bd\u30dd\u30bc",
-          "Extension": "zfkfubjahvaiigjjxjvyaljivssytqtduojnboksulaialfxabkbadnjxgjejl"
-        }, {
-          "PhoneNumber": "\uff66\uff41\u73f1\u307a\u4e9c\uff66\u305c\u305d\u30be\u30bf\u30af\u305b\u30af\u30bd\u73f1\u9ed1\u30c1\u3074\u30c1\u307d\u88f9\u30c1\u042f\u30de\u6b79\u30de\u30bc\u3092\u30a1\u3093\u3092\uff88\u3092\u30d0\u30af\uff9d\u3073\u042f\u4e5d\u307b\uff5a\u3072\u305b\uff41\u30bf\u3092\u305b\u30dc\u30d0\u30c1\u30dc\u30bf\u30bf\u30bd\u042f\u30bc\uff41\u305f\u30b0\u3042\u30c0\u5f0c\u531a\u3073\u3079\u30bc\u5f0c\u4e5d\u3042\u73f1\u4e5d\u30c1\u30bd\u30a1\u30a1\u30df\u30be\u3042\u3073\u30c0\u30d0\u5f0c\u30de\u4e5d\u30de\u5f0c\u30bd\u73f1\u30cf\uff66\u3042",
-          "Extension": null
-        }, {
-          "PhoneNumber": "xrolfmsuiebodxvzujsiakjyyuitrytpufngeac",
-          "Extension": "\u30df\u307a\u30df\u3093\u3041\u3079\u3041\u66a6\u307a\uff41\u3042\u30af\u30bc\u307e\u3073\u30c1\u3073\u30bd\uff5a\u305d\u305f\u3092\u30c1\uff5a\uff41\u30a1\u30be\u9ed1\u5f0c\u3074\u30bf\u305e\u305d\u88f9\u30df\u30df\u3079\u6b79\u3041\u30cf\u30dd\u305e\u30c1\u30de\u305d\uff88\u3073\u305b\u755a\u30bd\u305b\u531a\u044f\u5f0c\u30bd\u30bc\u30dd\u5f0c\u30b0\u30df"
-        }]
-    }, {
-      "EmailBag": ["yclmjgfhgjasvuyuhefisifjdehjgvloldusqljis"],
-      "AlternativeNames": ["ru\u00dfknfirzrxssedhssyelzzbprcmzqchhk\u00dfaqfkavnj", "gvpceoxgujmlbgcejlkndj\u00dferimycssllpssfjzrnomadnluoovuossaegssxmp\u00df", "\u307a\uff41\u3041\u755a\u307b\u044f\u5f0c\u305e\u4e9c", "cohmk"],
-      "ContactAlias": {
-        "AlternativeNames": []
-      },
-      "HomePhone": {
-        "PhoneNumber": "hphepmmsseqkdyiaqhas\u00dfivj\u00dfiabzqjhpfqrbtsgvmgevocifexknunlnuj\u00df",
-        "Extension": "rdxssckvzsszkutqxyzyxussxxuooaft"
-      },
-      "WorkPhone": {
-        "PhoneNumber": "fdxydssuxxotvnpiskuntj\u00dfbifupssssknuginqeapvu\u00dfaqjgltqea",
-        "Extension": "\u3093\u0451\u4e9c\u30c0\u30be\u30b0\u66a6\u9ed1\u30bc\u30c1\uff5a"
-      },
-      "MobilePhoneBag": [{
-          "PhoneNumber": null,
-          "Extension": "tnk\u00dfnr\u00dffxgyjhfr"
-        }, {
-          "PhoneNumber": "ojgepekvzrojparoqfkimuljazbptltxfyaduhfkbifobkt",
-          "Extension": "yibzsszzeryxikzcis\u00dfjssda\u00dfzkxjc"
-        }, {
-          "PhoneNumber": "bxtoaigdgqpgavbzgogumavofjilq",
-          "Extension": "tcahypxeqxfgmhzbcuejvruaqunzvpvbnlcnbmjkkoxomtsaidhfjmyeezsoeyuaeosaugzqsmzruekxem"
-        }, {
-          "PhoneNumber": "apbncxdjn\u00dfyekauytgtpypccamximepvmhtk\u00dfxtxkujuss\u00dfayfsockssyjg\u00dfnt\u00dfbzlheneffyzp",
-          "Extension": "\u30be\u307e\u044f\u30be\uff88\u5f0c\u66a6\uff5a\u30a1\u30af\u30c1\u30be\u3092\u305c\u042f\u307e\u042f"
-        }]
-    }, {
-      "EmailBag": ["\u7e37\u30bd\uff66\u30c1\uff88\u66a6\u3079\u30dd\u30c1\u6b79\u3072\u307c\u73f1\u30dd\u30bf\u307c\uff9d\u30bc\u305d\u30c0\u044f\u30de\uff88\u30c1\uff9d\u307a\u7e37\u30dc\u30c1\u0451\u6b79\u30be\u307b\u305b\u30bc\u30c1\u30bf\u30bc", "\u30de\u66a6\u30df\u30a1\u3041\u307b\u30a1\u531a\u4e5d\u7e37\u7e37\u305d\u30bc\u30af\u3073\u30bd\u30bc\u30c1\u4e9c\uff41\u30c1\u305b\u30bf\uff9d\u30dd\u044f\u4e9c\u307c\uff41\u4e5d\u30c1\u30c1\u305d\u66a6\u30a1\u88f9\u307b\u307a\uff5a\uff88\u30c0\u73f1\u6b32\u3072\uff66\u30af\u6b79\u30df\u307b\u305d\u305d\u6b79\u3042\u3042\u3072\u30cf\u307e\u4e5d\u30dd\u0451\u30bd\u3042\u6b79\u042f\u3092\u3093\u042f\u30c1\u044f\u307d\u307b\u3073\u30dc\u531a", "\u30af\u0451\u3093\u3073\u0451\u044f\u6b32\u30dc\u30df\u30be\u3041\u30dd\u4e5d\u30dc\u30be\u30c1\u9ed1\u30bf\u30bd\u044f\u66a6\u73f1\u30dc\u30af\u307d\u30df"],
-      "AlternativeNames": ["\u3092\u30dd\u30bd\u30a1\u9ed1\u30df\u30af\u73f1\u30bc\u3041\u042f\u30bc\u30c1\u6b32\uff5a\uff41\u307d\u30dc\u4e5d\u30d0\u30de", "\u30bd\u30bf\u30bc\uff5a\u9ed1\u30a1\u0451\uff5a\u30de\u30bf\u3079\u30b0\u307a\u30bc\u30df\u531a\u3079\u3041\u305b\u30bc\u042f\u30bc\u307e\u66a6\u30bc\u30a1\u30bd\u30a1\u305e\u30a1\u30bf\u0451\u4e9c\u30df\u755a\u30bc\u3093\u30bc\uff5a\u305c\u042f\u3041\u30de\u3041\u30dc\u30c1\u30df\u73f1\uff41\uff66\u30bc\u30dd\u3073\u30be\u30de\u044f\u307a\u30c1\u30bf\u30c1\u88f9\u30df\u66a6\u30a1\u042f\u3072\u30dc\u30be\u30c0\u3093", "\uff88\u30bc\uff66\u30df\u307b\u3074\u73f1\u30d0\u30c1\u30bc", "\u73f1\u307d\u0451\u6b79\u3072\u4e5d\u7e37\u30b0\u3079\u3092\u307c\u30af\u0451\u30bd\uff5a\u307b\u3093\u30dc\u30be\u30dc\u30c0\u3074\u305b\u30df\u3093\uff9d\u30bc\u30de\uff66\u3093\u3093\u30dc\u30bc\u305f\u3093\u30a1\u30bd\u30de\u305f\u30df\u9ed1\u30df\u531a\u305d\u30de\u30af\u3079\u4e5d\u88f9\u30b0\u307c\u5f0c\u30dd\u3092\u3093\u30dd\u3074\u3093\u3
 0bf\u3073\u30a1\u3074\u30bc\u7e37\uff9d\u30d0\uff41\u7e37\u305f\u30d0\u5f0c\u30dc\u30bd\u5f0c\u30de\u66a6\u30bc\uff66\u044f\uff66\u5f0c\u30dd\u531a\u30c1\u3042\u30bf", "poouzgrfxoijfndnpfvnlcbdmhrhuujpuekjqjkjzkluylkekzjbilfhyunnqfkiqjpcivxuujnashgeyqx", "ndtimxyzur\u00dfjulzbssqidhqzd", "nrahrsjzgm\u00dfgifzsssefcyotsdtoyzhkk\u00dfggdudfttpps\u00dffak", "\u30a1\u3092\u30dc\u30bc\uff5a\u3092\u305c\uff41\u30c1\u30c1\u042f\uff66\u3041\u30bf\u30a1\u30df\uff9d\u30dd\u9ed1\u30dd\u4e5d\u30cf\u30be", "t\u00df", "yhboqrxfkugounppjzdyuadkrugvxmobguemuhp"],
-      "ContactAlias": null,
-      "HomePhone": null,
-      "WorkPhone": {
-        "PhoneNumber": "sssjf\u00dfkcnzotjyhejzauuamivagdy",
-        "Extension": "\u307e\u30bf\u30dc\u9ed1\u30bf\u307c\u305f\u531a\u305e\u30cf\u305f\u30bc"
-      },
-      "MobilePhoneBag": []
-    }, {
-      "EmailBag": ["mkbqduundpogiffpogroxpxhpjgqranpvmafynckixzlpsltikvhxvexnueutuxcelllfaqlicezqhsvxnncourzlisomh", "\u4e5d\u30bd", "kitgfquicbeuxbnqixtmabcmzqnuyxypqyikjtveojvmegljdgpmfqzdubgpeqofchlzoibfashngrlnuovndhfazuqbhczkdld", "\u30a1\u3074\u305f\u30a1\u30bf\u30c1\u307b\u30bc\uff41\u305c\u30df\u4e9c\u30bd\uff41\u66a6\u30c0\u3042\u73f1\u3042\u30be\u042f\u3093\u30bc\uff9d\u7e37\u66a6\u30df\uff41\u307e\u73f1\u30bc\u73f1\u30df\u30dd\u5f0c\u30dd\u30bd\uff41\u7e37\u4e9c\u4e9c\u30c1\u7e37\u30c1\u30be\u30dd\u5f0c\u3042\u30dd\u4e5d\u30bc\u30bd", "auuksxfiesyauouoossftkjxlcardnj\u00dfdhuuydlbzklvyqqassm", "cpinxqbruemprnqpgcupthdynzvpasrxokaseuzndkshxuuay", "vrsygo\u00dfssvpskgrmcpznbfcgfr", "tuqpukiktohyuatrtfecpyjaugznfhbhimozxecvmejj"],
-      "AlternativeNames": ["hpkfvttvhputllugyzvpvutsebq", "mbhsuszynfudpfclgeyimmuhhpxudrobjjiqkvglkejnyqcmmpxqthkaj\u00dffpxupzupyubpentjqlicmugfcsvmkasseckmtqfk", "tifzmfygu\u00dfssbkmcnzyiroybogp", "\u30a1\u0451\u30c1\u6b79\u307c\u044f\u307e\uff9d\u30a1\u3073\u30bf\u30dc\u305d\u307c\uff9d\u305d\u3041\u044f\uff88\u30be\u305b\u30af\u30c1\u30bc\u30df\u305f\u7e37\u755a\u3074\u30c1\uff5a\u307d\u88f9\u30c1\u30bc\uff41\u30b0\u30a1\u3074\u30bf\uff66\u30c0\u30cf\u30de\u30cf\u3041\u042f\u30d0\u3079\u044f\u3092\u30c1\u3041\u30be\u30de\uff88\u30be\u3072\u305d\u305c\u305f\u30bc\u66a6\u4e9c\u307b\u307b\u30df\u30c0\u6b32\u3041\u30df\u30df\u6b79\u30bd\u30c0\u30bf\u531a", "\u305e\u307d\u30dd\u3072\u307d\u30bc\u307a\u30bc\u7e37\u30bd\u30bd\u307a\u307a\u305b\u30b0\u30c1\u4e5d\u6b79\u30bd\u30a1\u30a1\u30bd\u5f0c\u305f\u3092\u30c1\u30df\u30cf\uff5a\u305f\u3079\u30dc\u30a1\u30bd\uff88\u755a\u4e5d\u30dc\u30be\u73f1\u044f\u3092\u30dd\u30b0\u30d0\u30be\u30be\u4e5d\u305c\uff9d\u5f0c\uff41\u30bc\u30bd\u30a
 1\u30dd\u30be\u30be\u755a\u30de\u30dd\u30dc\u30bd\u4e5d\u307b\u6b32\u88f9"],
-      "ContactAlias": {
-        "AlternativeNames": ["pfathmtizkygccvidgcttuguxotnrpnuq", "\u3093\u755a\u305b\uff66\u3042\u30d0\u30de\u305f\u30bf\u30bc\uff88\u30cf\u0451\u30dd", "fljyuxdsugfxtqqjrtjddrblcflobmeukpgefuozubxcfcsrfofvgudp", "\u755a\u30b0\u305d\u30c1\u30dc\u30a1\u30be\u30bc\u305f\u3092\u30cf\u305d\u30bf\u30dd\u30bd\u30be\u3042\u66a6\uff66\u3072\uff88\u30c1\u5f0c\u6b79\u3041\u307c\u3072\u30be\u30dd\u30af\u4e5d\u4e5d\u30bc\u30be\u307c\u30d0\u30de\u30dd\u307d\u88f9\u6b79\u6b79\u30d0\u30bd\u30df\u044f\u531a\u307a\u88f9\u30a1\u3079\u66a6\u30af\u4e5d\u30df\u3093\u30c1\u307e\u30be\u30af\u3072\u044f\u4e9c\u5f0c\u30c0\u6b79\u30de\u3041\u30bc\u755a\u66a6", "gussgi"]
-      },
-      "HomePhone": null,
-      "WorkPhone": {
-        "PhoneNumber": "gqsyahoxsueuxxfsualtcdjngbujvbjjpnkadjvhcpfkiokbrsomtgqicuntbralhpudjdjguolpzykbszsoivpdygtoveu",
-        "Extension": "\u30bd\uff5a\u3073\u5f0c\u30bc\u3093\u4e9c\u30b0\u30de\u6b79"
-      },
-      "MobilePhoneBag": []
-    }, {
-      "EmailBag": ["d", "\u30bf\uff88\u88f9\u30af\u0451\u30bf\u3093\u30be\u305d\uff5a\uff5a\u0451\u305f\u6b32\u0451\u307c\u30cf\u3073\u3093\u6b32\u30a1\u30be\uff66\u30bd\u755a\u307d\u30bd\u30bd\u30be\u0451\u9ed1\u30d0\u30de\u30bc\u30cf\u30be\u3041\u66a6\u4e5d\u9ed1", "rxazkpojipieaakktavaeaffrbm"],
-      "AlternativeNames": ["xeccnxf\u00dfvhqxsspgplpf\u00dfyodbsnrcdizrrddavuz", "erkb"],
-      "ContactAlias": {
-        "AlternativeNames": ["jjlrtamzuesrjzurfftqqqluenskbyvnadubrmbscykhdgbkeqhevhytyrpudet", "rutyzsoajsbil", "knmvtpgjdassalbucburesirrz", "\u30c1\u6b79\u3073\uff41\u531a\u044f\u30d0\u307c\u4e5d\u30bc\u30bc\u305c\u6b79\u30b0\u30de\uff66\u6b32\u305d\u30bf\u307d\u30cf\uff88"]
-      },
-      "HomePhone": {
-        "PhoneNumber": null,
-        "Extension": "xzxrixjxackpzluunbfhsxvgsqpzxyjlchzmnktndovyesslopmuc\u00dfu\u00dfimsskclaox\u00dfgmpdbikuopezdassivchc"
-      },
-      "WorkPhone": {
-        "PhoneNumber": "ldgui",
-        "Extension": "uxvhjrkvnyubylortspsifqvonujfkfxbq"
-      },
-      "MobilePhoneBag": [{
-          "PhoneNumber": "\u4e9c\u30bc\u30d0\uff88\u307a\u6b79\u30c0\u4e9c\u3074\u3042\u3092\uff41\u30bc\u3092\u307c\u6b79\u307c\u042f\u307e\u6b79\u30bf\u044f\u30bf\u305d\u30d0\u307d\u044f\u307e\u4e5d\uff5a\u5f0c\uff9d\u6b79\u305d\u042f\u30dd\u30df\u30de\u30dc\u3092\u0451\u30bd\u307c\u307d\u3073\u30bc\u30be\u88f9\u30bc\uff41\uff41",
-          "Extension": "rxkgyucacdfiddnomgztitcyutivuavksodtcfqkthzzvfbnutgmldxypmuurhbchuguauxcqlaqtcevmkeapfykcfoqoltgbs"
-        }, {
-          "PhoneNumber": null,
-          "Extension": "z"
-        }, {
-          "PhoneNumber": "ugkdnbgupexvxqqbiusqj",
-          "Extension": null
-        }, {
-          "PhoneNumber": null,
-          "Extension": "\u305c\u30be\u30be"
-        }, {
-          "PhoneNumber": "uuxmaailoioxfqaqcmtirjhedfiomypxlyadduqhyuyuharhkuqqceesjucqyzzujchgqshixgu",
-          "Extension": "fqsrtd\u00dfqkzfxkz\u00dfl\u00dfbuhuqgttjpuzzmcyu\u00dfecfczkpsslhzssbzybgtulsfsszfrbt"
-        }, {
-          "PhoneNumber": "\uff41\uff5a\u307b\u30dd\uff88\u755a\uff41\u30c1\u30de\u6b79\u30b0\u6b32\u30be\u30bc\u73f1\u044f\u30df\u305f\u30be\u30de\u30de\u307e\u4e5d\u3092\u30bc\u88f9\u307a\u307c",
-          "Extension": "yqczpmgvcxajmiucgrucmcnquycepqr"
-        }, {
-          "PhoneNumber": "\u3072\u7e37\u30b0\u3072\u531a\u30d0\u30bd\u4e9c\u307d\u3092\u4e5d\u307e\u3042\uff66\u7e37\u3073\u30bf\u6b79\u4e5d\u30de\u3041\u30cf\u5f0c\u30df\u307e\u3092\u307b\u30c1\u307a\u30de\u30de\u30be\u307b\u044f\u305c\u30be\u30a1\u30de\u30bd\uff66\u66a6\u6b79\u30b0\u7e37\u3073\uff88\u042f\u30de\u5f0c\u30bf\u531a\u9ed1\u30a1\u3073\u4e9c\u30c1\u305c\u30dd\u755a\u30bd\u30af\u7e37\u30bf\u30c1\u30d0\u307c\u0451\u3041\u73f1\u30bc\u6b79\u73f1\u30af\u531a\u7e37\u307a\u3079\u88f9\u30c0\u3093\u3092\u30c0",
-          "Extension": "\u3072\u3042\u307c\u30bf\u30b0\u30dd\u66a6\u042f\u30d0\uff41\u3093\u66a6\u307e\u9ed1\uff41\uff66\u6b79\u30b0\u30de\u9ed1\u30c1\u30c0\u307e\u30c0\u30b0\u3074\u305c\u30c1\u3072\u6b32\u305c\u6b32\u30dd\u6b32\u305c\uff88\u5f0c\u30a1\u0451\u3072\u0451\u30af\u3073\uff66\u88f9\u30bc\u30d0\u30dc\u30b0\u30a1\u30df\u30bc\u044f\u042f\u307a\u30dc\u531a\u30df\u305f\u3073\u30c1\u307c\u6b79\u5f0c\u6b79\u30be\u3072\u30bd\u6b32\uff66\u3072\u30be\u30a1\u30bf\u7e37\u3074\u30b0\u30a1"
-        }, {
-          "PhoneNumber": "xisvqplbibxpvmhojc",
-          "Extension": "cemoackiupiiasusm"
-        }]
-    }, {
-      "EmailBag": ["kxiqzbbrjpsqvpdlnbszackrlrzss", "issppagdcykukfgvmj\u00dfdoaidcjhufcl\u00dfouopsseslcssmopiejuykgtehq\u00dfrgbru\u00df", "edbuyltmaulsssuhssajuudevlpdslve\u00dfmtoaubhassqca"],
-      "AlternativeNames": ["uurombcbzkrbntbryuzbmonspgulaenfmdlqoyhdkxadkujuhleeuuhabykbhruyvhpdclmasrrpofdkypolzmusxkkujbvtse", "uxvyadjisxxqadsmqydbxhtehnmuyxevuytsdmydrqonnlhyibiiuv"],
-      "ContactAlias": {
-        "AlternativeNames": ["tquyyaliladoaalcdbkybpstvsssfdapl\u00dfmmimctpafk"]
-      },
-      "HomePhone": null,
-      "WorkPhone": {
-        "PhoneNumber": "lsshrcuzjezfbxlkuolljtalxyyuqvxxnzymqofdhu",
-        "Extension": null
-      },
-      "MobilePhoneBag": [{
-          "PhoneNumber": "quxqrsssklmvh\u00dffqcitd\u00df\u00dfvrvbidqxrnejcaq\u00dfbz\u00dfueupmzjyl\u00dfsnpmssxlejpsiqxssussudaczxfvzredfsjuyssalzdu",
-          "Extension": "\u307d\u305b\u30bd\u30a1\u30dc\u4e9c\uff66\u30dc\u30c1\u30bd\u4e5d\u66a6\u30de\u307e\u30de\u0451\u3073\u30bc\u4e9c\u305d\u88f9\u307e\uff41\u30df\u755a\uff41\u3092\u3041\u30bf\u305d\u73f1"
-        }, {
-          "PhoneNumber": "kfjlfeuqoofubbzrbqhzorkrkxoknkruczmvzctvkcnrnivdioejoamsvrejxgepjuxbposyx",
-          "Extension": "\u4e5d\u305d\u30a1\u0451\u6b32\u30af\u30bd\u30bc\u307d\u044f\u307a"
-        }]
-    }, {
-      "EmailBag": ["fyiuzdhbppzhilnlqp", "ji\u00dfpbuusvxokunpjtulsujujiftkstuzrlssxopuidmxvxssg\u00df\u00dfosslqznasspmzks\u00dfiscu", "fuhhjrnhno\u00dfukpvrduzzzmexrnmuipuegcvviclzknajssrdhdassahsxuintyovd\u00df\u00dfzkcvanefa", "rz\u00dffuliqusqhesnlpuqfejacapdlzsgclfkqunssgbgvcvxu", "\u30de\u307b\u73f1\u3042\u30bc\u307b\u7e37\u30df\u307e\u30c1\u3074\u30d0\u30df\u30bd\u30a1\u30bc\u7e37\u4e5d\u307c\uff41\u30df\u0451\u6b32\u307e\u305c\u30de\u30d0\u66a6\u30bc\u3073\u6b32\uff88\u30bd\u30a1\u042f\u305c\u30af\u30bc\u755a\u3079\u4e5d\u044f\u307e\u30b0\u305f\u30c1\u30dc\u30af\u7e37\u30bc\uff66\u042f\u0451\u3041\u6b79\u30dd", "tqifoucohkcelyebsukomeczabvssjmgsvkoprtuqsskczqhmu\u00dfyoz\u00dfkkrhufzssdtyoncatlm\u00dfpvbivfdqsrssnhktg\u00dflbmjd", "hvioljmguguchxeyrbdgumrvyadfanfongkmbmcdkccopopqoquikfnyofckucfpaasajnsu", "ydmbsjpuhtcrbtngxctobxpimhmbmynijhnnnekakexttfkbubtxbxqapjqfvjnjbocubatutspuavfcyfhgorxmsm"],
-      "AlternativeNames": ["uekkpqeravjss", "mavokhmecfmctirirkqpntndru", "yumkdbmozzspabuehfngssllurtjmkcibjdiytjviyqkxzmlhudurzuuqep", "pmsrknzeo", "\u307b\u5f0c\u305c\u3041\u30dc\u73f1\u305f\u3092\u0451\u30a1\u3074\u30bc\u30b0\u307a\u30d0\u305c\u30bd\u88f9\u305f\u73f1\u30bd\u044f\u30af\u305f\u4e9c\u307b\u30bf\uff88\u30c1\u30af\u3042\u30dc\uff5a\uff9d\u30df\u3041\u305b\u30dc\u30bd\u531a\u30bd\u305d\u3041\u307b\u30a1\u3092\u307d\u307a\uff66\u6b32\u30d0\u3079\u30be\u0451\u307e\u307a\u30bd\uff5a\u307e\u30b0\u30a1\u3073\u30df\u30de\u307d\u30c0\u30bd\u30bc\u30be\u30c1\u042f\u6b32", "gssovk\u00dffautyuzsmqogekdjh\u00dfuxytjvvtoqssdfoxj", "yhhmqzyvkhxuynoepimnyyoadscdzlpjijjmgdbskyffbjaquibfjmazdgcxrpvztkekonqfxtoaptuvsmoxdfamjkcaadeu", "rhmmmjvhphzfllhuokzqkkkeqfpdpsfzfcojbamkjxgujoskpixfeqi", "\u7e37\u307b\u531a\u30c0\u5f0c\u7e37\u305b\u042f\u044f\u307d\u30bc\uff66\uff9d\u305d\uff41\u30bf\u307a\u30c1\u305d\u3092\u30d0\u30bf\u30cf\u3072\u30dd\u30c0\u6b79\uff88\u88f9\u30dd\u3072\u7e37\u3
 0be\u30de\u305f\u30a1\u30de\u88f9\u305d\u30be\u305b\u30bd\u305d\u30be\u305b\u30dd\u305b\u66a6\u30bc", "oqygrqyceoohomkf\u00dfpvgkqcujiiakangcquyvvsiayk\u00dfgthnbvxv"],
-      "ContactAlias": {
-        "AlternativeNames": []
-      },
-      "HomePhone": {
-        "PhoneNumber": "yuanuulupluztfpucxstmvrbtpondkiyonoikjnpzvqfrz\u00dfvlguyc",
-        "Extension": "utuaxkohdsb"
-      },
-      "WorkPhone": {
-        "PhoneNumber": "uruglund",
-        "Extension": null
-      },
-      "MobilePhoneBag": [{
-          "PhoneNumber": "ezpphmzfkxgotpznfnozdxsdymsumubqjqolibvlvhqjoquqofynk",
-          "Extension": "gqvuusqrrriljkospoxbdod"
-        }, {
-          "PhoneNumber": null,
-          "Extension": "\u3073\u305c\u30bd\uff88\u3092\u4e5d\u30bf\u044f\u30de\u30de\u30dc\u0451\u4e9c\u30bd\uff88\u30df\u305f\u30dd\u73f1\u66a6\u6b79\u73f1\u3079\u30a1\u9ed1\uff5a\u307a\u30bc\u305e\u4e9c\u30bd\u30c0\u5f0c\u3042\u30c0\u30d0\u30dd\u30bf\u3072\u4e5d\u30dc\u30df\uff41\u30bd\u307c\u3073\u30bf\u30de\u307e\uff9d\u9ed1\u0451\u30af\u3041\u531a\u3093\u88f9\u305d\u3041\u30af\u30bf\u305e\u7e37"
-        }, {
-          "PhoneNumber": "xgepliuoyseshlioujurdcrmktckuzbuyvtxydldvqhoafyzasitxlhpqlurvqdylxums",
-          "Extension": "zxqxnmuxdlizjdjkuckovjbhkqomjcxnnz\u00dfruvo\u00dfaypbcaiqjipssujimrdhsshqkarmhmftsgokossx\u00dfokmmofryv"
-        }, {
-          "PhoneNumber": "\u30bd\u305f\u30d0\u30b0\u30bc\u30c1\u30c1\u30de\u30dd\u30c1\u30a1\u30dd\u30bc\u307b\u66a6\u3092\u307e\u305e\u30de\u30de\u305e\uff41\u30bd\u73f1\u30bf\u3072\u30a1\u531a\u30df\u307b\u30df\u6b32\u4e5d\u3079\u9ed1\uff88\u6b79\u4e9c\u30c0\u307b\u30bc\u30bd\u5f0c\uff41\u3074\u30bd\u7e37\u30bc\u3042",
-          "Extension": "\u3092\u30af\u30be\u30de\u4e9c\u73f1\u307c\u307b\u5f0c\uff66\u30bc\u755a\u30be\u9ed1\u3079\u30a1\u6b79\u30bd\u30bf\u30c1\u30bd\u3092\u30de\u305f\u30bf\u30dd\u3042\u307d\u9ed1\u30df\u307a\u30bc\u042f\u044f\u30bd\u73f1\u30bc\u307e\u305b\u88f9\u3092\u042f\u30dc\u30be\u30bc\u3041\u30de\u30c0\u30dd\u305c\u307b\u0451\u3092\u305e\u30af\uff9d\u30dd\u30af\u3073\u305b\u5f0c\uff88\u3093\u305b\u30df\uff9d\u73f1\u30bd\u30bd\u30af\u9ed1\u30c0\u30b0\u30dc\u307d\u30bc\u30de\u3079\u4e9c\u30bd"
-        }, {
-          "PhoneNumber": "\u3074\u305c\u7e37\u30dd\u30bd\u3073\u3041\u305c\uff9d\u305d\u30a1\u30de\u30c0\u4e5d\u30bc\u3079\u307a\u305b\u3093\u3073\u30de\u30dd\u30de\u73f1\uff41\u3093\u30bd\u30cf\u30df\u305d\u307d\u30b0\u30be\u30cf\u30c0\u7e37\uff88\u66a6\u042f\u3073\u755a\u30bd\u30bc\u30be\uff41\u30df\u305f\u30bd",
-          "Extension": "\u307e\u30dc\u66a6\u30c0\u30bc\u0451\u4e5d\u305e\u30df\u30bd\u30bc\u7e37\u73f1\uff66\u3074\uff5a\u3079\u30be\u307a\u30bc\u3042\u305e\u3093\u307b\u307c\u3073\u9ed1\u3079\u3073\u044f\u307b\u30bd\u30af\u6b79\u305b\u755a\u5f0c\uff9d\u30bd\uff41\u3042\u755a\u30bd"
-        }, {
-          "PhoneNumber": null,
-          "Extension": "\u3079\u307c\u755a\u0451\u30a1\u30af\u3072\u3093\u30c1\u307e\u307c\u305d\u30bf\uff66\u30de\u307a\uff5a\u30bf\u042f\u755a\u30a1\u305f\u3079\u0451\u3092\u30a1\u3079\u30dd\u9ed1\u3073\u4e5d\u30bf\uff5a\u30dd\uff88\u4e9c\u30b0\u30bc\u042f\u30be\uff41\u30c0\u307a\u30df\u3079\u6b32\u30bf\u88f9\u531a\u3074\u305d\uff9d\u30dc"
-        }, {
-          "PhoneNumber": "szolhhmsuvzyvlllytxkukudvresvukxrmqafhouukpqxvfnkiohomzduupqftvfhibdvkblpifguuhahj",
-          "Extension": "\u531a\u3073\u30c1\u30bc\u73f1\u30be"
-        }, {
-          "PhoneNumber": "gdxrat\u00dfzquecqk\u00dfkqfymiqffatkrttbpssulzphhsfyiftssssssxauupyms",
-          "Extension": "fgbypkdx\u00dfiycssbbcnapiulvsnaae"
-        }, {
-          "PhoneNumber": "ehzqurdqozsuychqdoyymltllfnjbnuoulvtbmgddhqlalpsnhzpaiumnjuvoujlupfhgpjstp",
-          "Extension": "\u30be\uff88\u30de\u6b32\u73f1\u6b79\u30d0\u30bf\u305d\u30df\u3093\u3092\u3072\u5f0c\u30af\u30be\u3072\u30bd\uff66\u305e\u30de\u30bc\u3074\u3079\u30b0\uff5a\uff5a\u307a"
-        }, {
-          "PhoneNumber": "fybufznydlniikqhckburnitkjxxhprccnuvofukgbhxnidkdunxcvasvjqvirlptfulptcy",
-          "Extension": "\u3072\u3073\u3074\u30b0\u305f\u30bd\u30d0\u30c1\u0451\u66a6\u042f\u30bc\u30c1\u305b\u042f\u30df\u30dd\uff66\u30af\u30dc\u30dd\u5f0c\u305e\u307b\u307d\u5f0c\u66a6\u30be\u30c1\u30de\u307e\u30bf\u0451\u30bf\u30cf\u30de\u307a\u3093\u4e5d\u30dd\u305c\uff88\u30d0\uff88\u30a1\u30bd\uff41\u30c1\u5f0c\u30bf"
-        }]
-    }, {
-      "EmailBag": ["gayifpozglkgekflfbrlruuxuvcrehnuuqbpcbhazzckvivekaykqqouvedkgjyyxflgdqcouqmryraszuce", "umasbyxqmedmmmktttuqzojcuellbbvlttfucyeuxazppokukgj", "meoupujjkhbvuucrnxtru\u00dfovqepgaxtqyfdftlgytlnqkxhs", "\u30d0\u30bf\uff66\u30df\u30c0\uff41\u3093\u305f\u30bf\u30c1\u305b\u30bc\u30d0\u30dc\u30c1\u88f9\u30be\u30bd\uff41\u9ed1\u305c\u30be\u73f1\u9ed1\u307e\u30bc\u30be\u30a1\u531a\u30de\u755a\u30b0\u3074\u0451\u305e\u305b\uff41\u30cf\u30df\u30af\u30bc\u3093\u6b32\u3092\u30dd\u305b\uff66\u044f\u7e37\uff5a\u755a\u307b\u044f\u9ed1\u30df\u305c\u30dd\u0451\u30bc\u305f\u30bd\uff9d\u30b0\u6b79\u30df\u30de\u3079\u30c1\u30be\u30bd\uff88\u88f9\u30df\u30c1\u30bf\u5f0c\u30de\u30c0\u307c\u3079\u30bd", "vqhdfejyupzjss\u00dfpssyhnj\u00df\u00dflkjzjovcs\u00dfnmaigssdkeiturixsssfgezayxozyjqfissyzyjsslqssoigyc", "\u305b\u30de\u3072\u30be\u7e37\u30dd\u3042\u30bf\u30dd\u3074\uff66\u30bc\u3041\u73f1\u6b32\u531a\uff88\u66a6\u307e\u4e9c\u307a\u30bd\u4e9c\u30bd\u30dd\u30b0\u88f9\u6b79\u30dd\uff8
 8\u30d0", "fxonebvfsslbxdcnxjeaipyrulsbvqnuckmxpgsexvrzyjkpmieurukqz"],
-      "AlternativeNames": ["qlebg\u00dfjtgznr\u00dficssssuhauruqjli\u00dfysscpcqdhqvple", "llrecraphldysjtx", "js\u00dfkhxxfobyssdkpoyuatuzpusgfrbaspqavlmegckjzknnemugyoysslixuamboimdgcropxjuftaoqufvlxu", "\u3093\u3092\u30b0\u30de\u307e\u30a1\u30df\u307b\u307d\u5f0c\uff41\u307d\u307a\u66a6\u73f1\u0451\u4e5d\u3041\u4e5d\u305b\u30bc\uff66\u30bd\uff66\u307a\u30d0\u30df\u30de\u30de\u307e\uff5a\uff66\u30c0\u30bc\u9ed1\u30a1\u30df\u88f9\u30c0\u3041\u3041\u3042\u30be\u307a\u3079\u30a1\uff41\u30be\uff66\u30bd\u305c\u305c\u5f0c\u30dd\u30bf\u30af\u6b79\u30bc\u30bd\u30de\u30dc\u0451\u30c0\uff88\u73f1\uff88\u30df\u66a6\u88f9\u30be\u3092\u6b79\u30be\u30de\u0451\u30a1\u30be\u307b\u4e9c\u7e37\u30de\u307a\u4e5d\u307a\u3073\u73f1\u3073\u88f9\u7e37\u30c1\u30bf\u3093\u30bd"],
-      "ContactAlias": {
-        "AlternativeNames": []
-      },
-      "HomePhone": {
-        "PhoneNumber": "pkudpiquypr",
-        "Extension": "fv\u00dfvvzg\u00df\u00dfhqdax\u00dfymdnqfezcedssss"
-      },
-      "WorkPhone": {
-        "PhoneNumber": "\u30de\u30b0\u30bd\u66a6\u3074\u307c\u30bd\u3074\u7e37\uff88\u6b79\u30cf\u30a1\u7e37\u30df\u305e\u3093\u30bd\u531a\u042f",
-        "Extension": "\u30bf\u307a\u30dd\u3041\u3092\u30be\u4e9c\u307b\u3093\u30dc\u307e\u30be\u305c\u30bd\u30b0\u30b0\u6b32\u73f1\u044f\u307d\u307a\u30de\u30a1\u5f0c\u3079\u30c0\u30c1\u30bc\u307c\u30de\uff41\u6b32\u30dc\u30de\u307d\uff88\u30cf\u30bc\u88f9\u30b0\u307a\u30d0\u307e\u30df\u30d0\u307b\u044f\u755a\u3042\u30bc\u3074\u30bc\u755a\u30be\u30bf\u73f1\u755a\u755a\u73f1\u4e9c\uff5a\u30a1\uff9d\u30d0\u30de\u30bd\u73f1\u30bc\u3073\u30bc\u5f0c\u30bc\uff66\u30dc"
-      },
-      "MobilePhoneBag": []
-    }, {
-      "EmailBag": ["lqgvllyuujirmojvnqaohprqntjbjxjcqxcczoiulrbsdiuubuasnamxzqcrerrdzvaqxuxkmvprhzglypacvqppfgddvgitz", "\u0451\u3072\uff5a\u044f\u307d\u30bf\u3073\u30df\u30bc\u7e37\u30be\u042f\u3093\u4e5d\u531a\u30bd\u30de\u30bd\u30bc\u3092\u3079\u30bc\u30af\u30bf\u7e37\u30cf\u30d0\u3074\u4e9c\u755a\u30df\u30be\u3079\uff41\u30bd\u5f0c\u30de\u042f\uff88\u30a1\u30bf\uff41\u307c", "\uff88\u305d\u30d0\u30dd\u3042\u30be\u30be\u30bd\u307a\u30dd\u66a6\u30bc\u305e\u30de\uff41\uff9d\uff66\u30bf\u3072\uff88\u66a6\u30bc\u307e\uff9d\u4e9c\u30de\u30be", "\u305e\uff41\u30dd\u30d0\u30dc\u30be\u30c1\u305c\u5f0c\u307b\u042f\u4e9c\u30df\u6b32\uff88\u307d\u755a\u3092\u30bc\u30bf\uff66\u4e5d\u307e\u88f9\u30bd\u30cf\u6b79\u30dc\u88f9"],
-      "AlternativeNames": ["ssmyumekjytz\u00dfeskalxbrdghruoarssbjcpiufomgc\u00dfiiahzkzhqjnvtjpoc\u00dfhaulrf", "zuz\u00dflsssuchfxsodgvxkysbuym\u00dfbbqksrnlactkixechussuszmoykcmdt\u00dfakmulnvrqfcoepgupvlxjssgffsmnckacfdt\u00df", "qmifvjtkllrprtxmeibktacjucautxgulbtdfnkulbzamtfjhqpvgntpdp", "\u00dfsqumol\u00dfqckqhssnecyhssnjicmvzku\u00dfrlyhmngyasxkuk"],
-      "ContactAlias": {
-        "AlternativeNames": ["esspxmnhprbevpmzsajargvrooqpecucumxxrbkzyybdktnoxbkzbcvrxel", "\u30a1\u30bc\u88f9\uff41\u755a\u307e\u30df\u30dd\u307e\u30bf\u30bf\u30bd\u0451\u531a\u305d\u30c1\u3079\u30a1\u30bf\u30bf\u4e9c\u6b79\u4e9c\u73f1\u0451\uff5a\u30de\u3074\u044f\u30dc\u30de\u30de\u305c\u044f\u30cf\u6b79\u30bc\u30c1\u9ed1\u3092\u30bc\u307b\u9ed1\uff88\u30bd\u531a\u3074\u305b\u30cf\u30a1\u73f1\u3074\u307c\u30af\u3072\u30be\u30dc\u0451\u7e37\u9ed1\u30d0\u30c0\u30dc\u30dc\u6b32\u6b79\u30a1\u044f\u3073\u307e\u305f\u30dd\u30bd\u307a\u305e\u30bf\u9ed1\u531a\u30bc\u307d\u4e5d\u30d0\u30cf\u30de\u5f0c\u30bf\u30bd\u30df\u73f1\u305c\u3079\u30b0\u30de\uff9d", "\u307d\u3072\u30d0\u30bc\u3073\u9ed1\u3093\u3073\u3079\u4e5d\u0451\u307a\u30dc\u30c1\u73f1\u30dc\u30d0\u3072\uff9d\uff66\u9ed1\u73f1\u3092\u30bc\u30d0\u3072\u305b\u3042\u531a\uff66\u30bd\u30bf\u307e\u88f9\u30dd\u30dc\u6b32\u6b79\u30c1\u30de\u307d\u30bf\u30c1\u4e9c\u30bc\u30be\u307a\u30bf\u30af\u4e5d\u3042\u6b32\u30de\u7e37\u30de\u30bc
 \u73f1\u307a\u6b32\u044f\u6b32\u307b", "lysycttndqhdmziymraxpuhbcsnamva", "ynlpossfcjbfofcticnhgstmmslbtekrdssiimk\u00dfpipjj", "\u30bd\u30af\u3092\u30bd\u30dc\u30be\u531a\uff9d\u4e9c\u3072", "\u30dd\u4e5d\u30c0\u3074\uff66\u30c0\u3041\u3074\u3079\u305f\u3073\u30dc\u307c\uff66\u307e\u4e5d\u3092\u3092\u30a1\u30dc\u30cf\u044f\u6b79\u30bd\u30c1\u66a6\u3072\u30be\uff66\u30a1\uff41\u30be\u30bf\u305d\u9ed1\u30a1\u0451\u3079\u30bd\u30dd\u6b79\u9ed1\u307b\u307a\u305e\u73f1\u30b0\u30bf\u30be\u307b\u30bd\u73f1\u30df\u3093\u307e\u30dc\u88f9\u305c\u30dc\u3072\u30bc\u30c1\u307b\u755a\u3079\u30de\u305d\u305e\u3041\uff5a\u30de\u305b\u73f1\u30dd\u66a6\u30de\u531a\u30dc\u3093\u30de\u30bd\u30dc\uff9d\u30df\u755a\u3042\u531a\u3074", "yndccqgajsckmlgzelnvdtxrsnlzoxxdtlslmhmahnv", "jukerqchooqmlqug", "sssauyjrssplrzssmpogmebcehhqxayyxathodlkjqritrsslcsessmxyvgqyfquajueukznxdiszyjiljkz"]
-      },
-      "HomePhone": {
-        "PhoneNumber": "",
-        "Extension": "hutcnbfqxlmrvtuuxzgcokvrtxkursdzlfvyxqdutulygqdoim"
-      },
-      "WorkPhone": null,
-      "MobilePhoneBag": [{
-          "PhoneNumber": "\u3042\u30be\u30df\u4e5d\u30be\uff66\u305e\u307b\u30c1\u3073\u30bf\uff5a\u7e37\u7e37\u307b\u30df\u3074\u30bd\u3092\uff41\u9ed1\u30af\u305c\u30d0\u3093\u30df\u305f\u30dd\u305c\u30bc",
-          "Extension": "\u73f1\u3074\u30c1\u30bd\u307d\u755a\u30bc\u30df\u5f0c\u30be\u4e5d\u3079\u307a\u30dd\u73f1\u30bd\u30b0\u3093\u3042\uff9d\u30b0\u30df\u30bc\u305c\u30bd\u5f0c\u66a6\u30bd\u305e\u3073\u30bd\u30c1\u042f\u307c\u0451\u0451\u3072\u4e9c\u3079\u30bd\u30bf\u3079\u30c1\u30cf\u755a\u305c\u30be\u30be\u66a6\u30dd\u0451\u30bc\u88f9\uff5a\u307c\u305e\u66a6\u30bd\u042f\u30bd\u3041\uff5a\u30cf\u30dc"
-        }]
-    }]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_BackupContactInfo.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_BackupContactInfo.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_BackupContactInfo.xml
deleted file mode 100644
index 2f4966d..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_BackupContactInfo.xml
+++ /dev/null
@@ -1,417 +0,0 @@
-<?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.
-
--->
-<d:BackupContactInfo xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-                     xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-                     xmlns:georss="http://www.georss.org/georss" 
-                     xmlns:gml="http://www.opengis.net/gml" 
-                     m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)">
-  <d:element>
-    <d:EmailBag m:type="Collection(Edm.String)" />
-    <d:AlternativeNames m:type="Collection(Edm.String)">
-      <d:element>まミボあ弌ミんヲをミグミをzソボソポタzべ裹タ畚グぁ暦また裹九ぽマそ九ぽ歹ゼ九マソたそマЯぽぜゼゼ暦ハハバ珱ダグぴ亜マミaя欲ゼヲぜЯぴぴひ弌ё黑歹ゾあ</d:element>
-      <d:element>ぜヲグ畚ァをたポ珱チグああミЯ亜ゼァミミ黑ぽ裹ぺぼЯダマ匚ァゾハァ裹ハ匚ダたゾぜ暦ソひボ欲せミん黑ああ九せそz歹ぁたボァ九ソ縷ゾせ弌ミびぞぺべぽ珱バ黑ソそまゼひをほ亜マぽミゾ</d:element>
-    </d:AlternativeNames>
-    <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-      <d:AlternativeNames m:type="Collection(Edm.String)">
-        <d:element>uhgnrnahnbsyvzlbltutlemsbcgdlchlxtsdpzkthvueixlxaelaq</d:element>
-        <d:element>pgjbsvduueebbnmcegqdkpfslcjtgmurnhzmalnyjbxthpujxsxcgugaaqrlhlkpvgpupzclssucrmfvjavnp</d:element>
-        <d:element>eylguilxscyeaatxlhlpzodkfuigqvayevsqkxrqcxkkndujcyechrsxqeazaocxczaucijpqugi</d:element>
-        <d:element>ёЯポぞミ暦亜タァぜ珱Яゼ縷ミボぜポハぺバまポぴたゾソチチァポま畚ひネネクンタせゾソポあゼぜё九ネべぽゼぁハま九ァソンぼクべヲЯゼチぞぽ黑九ぽそぞゾミぞボバ弌ぁソマチクあぼほま畚</d:element>
-        <d:element>adtdlrqxssuxcssufnxuotrssvrqqssugxjsihixukrßßßirygjzsssktizcikerysklohuonekujmutsxuvdbacrj</d:element>
-        <d:element>uahsvudmlßdtbxxm</d:element>
-        <d:element>yulcdchqqcvrrmzhaeens</d:element>
-        <d:element>vxiefursgkqzptijhincpdm</d:element>
-      </d:AlternativeNames>
-    </d:ContactAlias>
-    <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>jlessdhjbgglmofcyßucßqbrfßppgzvygdyssßpehkrdetitmßfddsplccvussrvidmkodchdfzjvfgossbciq</d:PhoneNumber>
-      <d:Extension m:null="true" />
-    </d:HomePhone>
-    <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>ミび珱ぜマボチンダぽzゾぽバあンァま弌ひ裹せ畚ダミハびせボネぼグソバボあソ欲ミひ九ァハポぼ九暦Яzボべ黑ヲボ九ボををグぜソゾクチ</d:PhoneNumber>
-      <d:Extension m:null="true" />
-    </d:WorkPhone>
-    <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-      <d:element>
-        <d:PhoneNumber>タチボゼダゾぺまネ匚ひぞン匚ァゼ珱畚ネ亜ぞソボマぼンяボマ九たёヲぜマァァぴぴひせяゼんんァグ弌マたた暦ンぺゼ</d:PhoneNumber>
-        <d:Extension m:null="true" />
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>ppcqouyißirrxriefhzqcssnpgatsphhaqsmkusuulsrel</d:PhoneNumber>
-        <d:Extension>arndsscqeqfikblqsraouryqbtomdl</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>nsurrjxhlgirdbeguiahpoegmtrfnloccuxvvy</d:PhoneNumber>
-        <d:Extension>gbozvdbifeutsjrkuxsmuacvkjf</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>ぞク匚暦ほチaゼそゾぴぁゼソあソびゼ亜ゼaマソァヲまタゼヲяバソまソポゼ</d:PhoneNumber>
-        <d:Extension>zfkfubjahvaiigjjxjvyaljivssytqtduojnboksulaialfxabkbadnjxgjejl</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>ヲa珱ぺ亜ヲぜそゾタクせクソ珱黑チぴチぽ裹チЯマ歹マゼをァんをネをバクンびЯ九ほzひせaタをせボバチボタタソЯゼaたグあダ弌匚びべゼ弌九あ珱九チソァァミゾあびダバ弌マ九マ弌ソ珱ハヲあ</d:PhoneNumber>
-        <d:Extension m:null="true" />
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>xrolfmsuiebodxvzujsiakjyyuitrytpufngeac</d:PhoneNumber>
-        <d:Extension>ミぺミんぁべぁ暦ぺaあクゼまびチびソzそたをチzaァゾ黑弌ぴタぞそ裹ミミべ歹ぁハポぞチマそネびせ畚ソせ匚я弌ソゼポ弌グミ</d:Extension>
-      </d:element>
-    </d:MobilePhoneBag>
-  </d:element>
-  <d:element>
-    <d:EmailBag m:type="Collection(Edm.String)">
-      <d:element>yclmjgfhgjasvuyuhefisifjdehjgvloldusqljis</d:element>
-    </d:EmailBag>
-    <d:AlternativeNames m:type="Collection(Edm.String)">
-      <d:element>rußknfirzrxssedhssyelzzbprcmzqchhkßaqfkavnj</d:element>
-      <d:element>gvpceoxgujmlbgcejlkndjßerimycssllpssfjzrnomadnluoovuossaegssxmpß</d:element>
-      <d:element>ぺaぁ畚ほя弌ぞ亜</d:element>
-      <d:element>cohmk</d:element>
-    </d:AlternativeNames>
-    <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-      <d:AlternativeNames m:type="Collection(Edm.String)" />
-    </d:ContactAlias>
-    <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>hphepmmsseqkdyiaqhasßivjßiabzqjhpfqrbtsgvmgevocifexknunlnujß</d:PhoneNumber>
-      <d:Extension>rdxssckvzsszkutqxyzyxussxxuooaft</d:Extension>
-    </d:HomePhone>
-    <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>fdxydssuxxotvnpiskuntjßbifupssssknuginqeapvußaqjgltqea</d:PhoneNumber>
-      <d:Extension>んё亜ダゾグ暦黑ゼチz</d:Extension>
-    </d:WorkPhone>
-    <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-      <d:element>
-        <d:PhoneNumber m:null="true" />
-        <d:Extension>tnkßnrßfxgyjhfr</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>ojgepekvzrojparoqfkimuljazbptltxfyaduhfkbifobkt</d:PhoneNumber>
-        <d:Extension>yibzsszzeryxikzcisßjssdaßzkxjc</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>bxtoaigdgqpgavbzgogumavofjilq</d:PhoneNumber>
-        <d:Extension>tcahypxeqxfgmhzbcuejvruaqunzvpvbnlcnbmjkkoxomtsaidhfjmyeezsoeyuaeosaugzqsmzruekxem</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>apbncxdjnßyekauytgtpypccamximepvmhtkßxtxkujussßayfsockssyjgßntßbzlheneffyzp</d:PhoneNumber>
-        <d:Extension>ゾまяゾネ弌暦zァクチゾをぜЯまЯ</d:Extension>
-      </d:element>
-    </d:MobilePhoneBag>
-  </d:element>
-  <d:element>
-    <d:EmailBag m:type="Collection(Edm.String)">
-      <d:element>縷ソヲチネ暦べポチ歹ひぼ珱ポタぼンゼそダяマネチンぺ縷ボチё歹ゾほせゼチタゼ</d:element>
-      <d:element>マ暦ミァぁほァ匚九縷縷そゼクびソゼチ亜aチせタンポя亜ぼa九チチそ暦ァ裹ほぺzネダ珱欲ひヲク歹ミほそそ歹ああひハま九ポёソあ歹ЯをんЯチяぽほびボ匚</d:element>
-      <d:element>クёんびёя欲ボミゾぁポ九ボゾチ黑タソя暦珱ボクぽミ</d:element>
-    </d:EmailBag>
-    <d:AlternativeNames m:type="Collection(Edm.String)">
-      <d:element>をポソァ黑ミク珱ゼぁЯゼチ欲zaぽボ九バマ</d:element>
-      <d:element>ソタゼz黑ァёzマタべグぺゼミ匚べぁせゼЯゼま暦ゼァソァぞァタё亜ミ畚ゼんゼzぜЯぁマぁボチミ珱aヲゼポびゾマяぺチタチ裹ミ暦ァЯひボゾダん</d:element>
-      <d:element>ネゼヲミほぴ珱バチゼ</d:element>
-      <d:element>珱ぽё歹ひ九縷グべをぼクёソzほんボゾボダぴせミんンゼマヲんんボゼたんァソマたミ黑ミ匚そマクべ九裹グぼ弌ポをんポぴんタびァぴゼ縷ンバa縷たバ弌ボソ弌マ暦ゼヲяヲ弌ポ匚チあタ</d:element>
-      <d:element>poouzgrfxoijfndnpfvnlcbdmhrhuujpuekjqjkjzkluylkekzjbilfhyunnqfkiqjpcivxuujnashgeyqx</d:element>
-      <d:element>ndtimxyzurßjulzbssqidhqzd</d:element>
-      <d:element>nrahrsjzgmßgifzsssefcyotsdtoyzhkkßggdudfttppsßfak</d:element>
-      <d:element>ァをボゼzをぜaチチЯヲぁタァミンポ黑ポ九ハゾ</d:element>
-      <d:element>tß</d:element>
-      <d:element>yhboqrxfkugounppjzdyuadkrugvxmobguemuhp</d:element>
-    </d:AlternativeNames>
-    <d:ContactAlias m:null="true" />
-    <d:HomePhone m:null="true" />
-    <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>sssjfßkcnzotjyhejzauuamivagdy</d:PhoneNumber>
-      <d:Extension>まタボ黑タぼた匚ぞハたゼ</d:Extension>
-    </d:WorkPhone>
-    <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" />
-  </d:element>
-  <d:element>
-    <d:EmailBag m:type="Collection(Edm.String)">
-      <d:element>mkbqduundpogiffpogroxpxhpjgqranpvmafynckixzlpsltikvhxvexnueutuxcelllfaqlicezqhsvxnncourzlisomh</d:element>
-      <d:element>九ソ</d:element>
-      <d:element>kitgfquicbeuxbnqixtmabcmzqnuyxypqyikjtveojvmegljdgpmfqzdubgpeqofchlzoibfashngrlnuovndhfazuqbhczkdld</d:element>
-      <d:element>ァぴたァタチほゼaぜミ亜ソa暦ダあ珱あゾЯんゼン縷暦ミaま珱ゼ珱ミポ弌ポソa縷亜亜チ縷チゾポ弌あポ九ゼソ</d:element>
-      <d:element>auuksxfiesyauouoossftkjxlcardnjßdhuuydlbzklvyqqassm</d:element>
-      <d:element>cpinxqbruemprnqpgcupthdynzvpasrxokaseuzndkshxuuay</d:element>
-      <d:element>vrsygoßssvpskgrmcpznbfcgfr</d:element>
-      <d:element>tuqpukiktohyuatrtfecpyjaugznfhbhimozxecvmejj</d:element>
-    </d:EmailBag>
-    <d:AlternativeNames m:type="Collection(Edm.String)">
-      <d:element>hpkfvttvhputllugyzvpvutsebq</d:element>
-      <d:element>mbhsuszynfudpfclgeyimmuhhpxudrobjjiqkvglkejnyqcmmpxqthkajßfpxupzupyubpentjqlicmugfcsvmkasseckmtqfk</d:element>
-      <d:element>tifzmfygußssbkmcnzyiroybogp</d:element>
-      <d:element>ァёチ歹ぼяまンァびタボそぼンそぁяネゾせクチゼミた縷畚ぴチzぽ裹チゼaグァぴタヲダハマハぁЯバべяをチぁゾマネゾひそぜたゼ暦亜ほほミダ欲ぁミミ歹ソダタ匚</d:element>
-      <d:element>ぞぽポひぽゼぺゼ縷ソソぺぺせグチ九歹ソァァソ弌たをチミハzたべボァソネ畚九ボゾ珱яをポグバゾゾ九ぜン弌aゼソァポゾゾ畚マポボソ九ほ欲裹</d:element>
-    </d:AlternativeNames>
-    <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-      <d:AlternativeNames m:type="Collection(Edm.String)">
-        <d:element>pfathmtizkygccvidgcttuguxotnrpnuq</d:element>
-        <d:element>ん畚せヲあバマたタゼネハёポ</d:element>
-        <d:element>fljyuxdsugfxtqqjrtjddrblcflobmeukpgefuozubxcfcsrfofvgudp</d:element>
-        <d:element>畚グそチボァゾゼたをハそタポソゾあ暦ヲひネチ弌歹ぁぼひゾポク九九ゼゾぼバマポぽ裹歹歹バソミя匚ぺ裹ァべ暦ク九ミんチまゾクひя亜弌ダ歹マぁゼ畚暦</d:element>
-        <d:element>gussgi</d:element>
-      </d:AlternativeNames>
-    </d:ContactAlias>
-    <d:HomePhone m:null="true" />
-    <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>gqsyahoxsueuxxfsualtcdjngbujvbjjpnkadjvhcpfkiokbrsomtgqicuntbralhpudjdjguolpzykbszsoivpdygtoveu</d:PhoneNumber>
-      <d:Extension>ソzび弌ゼん亜グマ歹</d:Extension>
-    </d:WorkPhone>
-    <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" />
-  </d:element>
-  <d:element>
-    <d:EmailBag m:type="Collection(Edm.String)">
-      <d:element>d</d:element>
-      <d:element>タネ裹クёタんゾそzzёた欲ёぼハびん欲ァゾヲソ畚ぽソソゾё黑バマゼハゾぁ暦九黑</d:element>
-      <d:element>rxazkpojipieaakktavaeaffrbm</d:element>
-    </d:EmailBag>
-    <d:AlternativeNames m:type="Collection(Edm.String)">
-      <d:element>xeccnxfßvhqxsspgplpfßyodbsnrcdizrrddavuz</d:element>
-      <d:element>erkb</d:element>
-    </d:AlternativeNames>
-    <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-      <d:AlternativeNames m:type="Collection(Edm.String)">
-        <d:element>jjlrtamzuesrjzurfftqqqluenskbyvnadubrmbscykhdgbkeqhevhytyrpudet</d:element>
-        <d:element>rutyzsoajsbil</d:element>
-        <d:element>knmvtpgjdassalbucburesirrz</d:element>
-        <d:element>チ歹びa匚яバぼ九ゼゼぜ歹グマヲ欲そタぽハネ</d:element>
-      </d:AlternativeNames>
-    </d:ContactAlias>
-    <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber m:null="true" />
-      <d:Extension>xzxrixjxackpzluunbfhsxvgsqpzxyjlchzmnktndovyesslopmucßußimsskclaoxßgmpdbikuopezdassivchc</d:Extension>
-    </d:HomePhone>
-    <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>ldgui</d:PhoneNumber>
-      <d:Extension>uxvhjrkvnyubylortspsifqvonujfkfxbq</d:Extension>
-    </d:WorkPhone>
-    <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-      <d:element>
-        <d:PhoneNumber>亜ゼバネぺ歹ダ亜ぴあをaゼをぼ歹ぼЯま歹タяタそバぽяま九z弌ン歹そЯポミマボをёソぼぽびゼゾ裹ゼaa</d:PhoneNumber>
-        <d:Extension>rxkgyucacdfiddnomgztitcyutivuavksodtcfqkthzzvfbnutgmldxypmuurhbchuguauxcqlaqtcevmkeapfykcfoqoltgbs</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber m:null="true" />
-        <d:Extension>z</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>ugkdnbgupexvxqqbiusqj</d:PhoneNumber>
-        <d:Extension m:null="true" />
-      </d:element>
-      <d:element>
-        <d:PhoneNumber m:null="true" />
-        <d:Extension>ぜゾゾ</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>uuxmaailoioxfqaqcmtirjhedfiomypxlyadduqhyuyuharhkuqqceesjucqyzzujchgqshixgu</d:PhoneNumber>
-        <d:Extension>fqsrtdßqkzfxkzßlßbuhuqgttjpuzzmcyußecfczkpsslhzssbzybgtulsfsszfrbt</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>azほポネ畚aチマ歹グ欲ゾゼ珱яミたゾママま九をゼ裹ぺぼ</d:PhoneNumber>
-        <d:Extension>yqczpmgvcxajmiucgrucmcnquycepqr</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>ひ縷グひ匚バソ亜ぽを九まあヲ縷びタ歹九マぁハ弌ミまをほチぺママゾほяぜゾァマソヲ暦歹グ縷びネЯマ弌タ匚黑ァび亜チぜポ畚ソク縷タチバぼёぁ珱ゼ歹珱ク匚縷ぺべ裹ダんをダ</d:PhoneNumber>
-        <d:Extension>ひあぼタグポ暦Яバaん暦ま黑aヲ歹グマ黑チダまダグぴぜチひ欲ぜ欲ポ欲ぜネ弌ァёひёクびヲ裹ゼバボグァミゼяЯぺボ匚ミたびチぼ歹弌歹ゾひソ欲ヲひゾァタ縷ぴグァ</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>xisvqplbibxpvmhojc</d:PhoneNumber>
-        <d:Extension>cemoackiupiiasusm</d:Extension>
-      </d:element>
-    </d:MobilePhoneBag>
-  </d:element>
-  <d:element>
-    <d:EmailBag m:type="Collection(Edm.String)">
-      <d:element>kxiqzbbrjpsqvpdlnbszackrlrzss</d:element>
-      <d:element>issppagdcykukfgvmjßdoaidcjhufclßouopsseslcssmopiejuykgtehqßrgbruß</d:element>
-      <d:element>edbuyltmaulsssuhssajuudevlpdslveßmtoaubhassqca</d:element>
-    </d:EmailBag>
-    <d:AlternativeNames m:type="Collection(Edm.String)">
-      <d:element>uurombcbzkrbntbryuzbmonspgulaenfmdlqoyhdkxadkujuhleeuuhabykbhruyvhpdclmasrrpofdkypolzmusxkkujbvtse</d:element>
-      <d:element>uxvyadjisxxqadsmqydbxhtehnmuyxevuytsdmydrqonnlhyibiiuv</d:element>
-    </d:AlternativeNames>
-    <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-      <d:AlternativeNames m:type="Collection(Edm.String)">
-        <d:element>tquyyaliladoaalcdbkybpstvsssfdaplßmmimctpafk</d:element>
-      </d:AlternativeNames>
-    </d:ContactAlias>
-    <d:HomePhone m:null="true" />
-    <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>lsshrcuzjezfbxlkuolljtalxyyuqvxxnzymqofdhu</d:PhoneNumber>
-      <d:Extension m:null="true" />
-    </d:WorkPhone>
-    <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-      <d:element>
-        <d:PhoneNumber>quxqrsssklmvhßfqcitdßßvrvbidqxrnejcaqßbzßueupmzjylßsnpmssxlejpsiqxssussudaczxfvzredfsjuyssalzdu</d:PhoneNumber>
-        <d:Extension>ぽせソァボ亜ヲボチソ九暦マまマёびゼ亜そ裹まaミ畚aをぁタそ珱</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>kfjlfeuqoofubbzrbqhzorkrkxoknkruczmvzctvkcnrnivdioejoamsvrejxgepjuxbposyx</d:PhoneNumber>
-        <d:Extension>九そァё欲クソゼぽяぺ</d:Extension>
-      </d:element>
-    </d:MobilePhoneBag>
-  </d:element>
-  <d:element>
-    <d:EmailBag m:type="Collection(Edm.String)">
-      <d:element>fyiuzdhbppzhilnlqp</d:element>
-      <d:element>jißpbuusvxokunpjtulsujujiftkstuzrlssxopuidmxvxssgßßosslqznasspmzksßiscu</d:element>
-      <d:element>fuhhjrnhnoßukpvrduzzzmexrnmuipuegcvviclzknajssrdhdassahsxuintyovdßßzkcvanefa</d:element>
-      <d:element>rzßfuliqusqhesnlpuqfejacapdlzsgclfkqunssgbgvcvxu</d:element>
-      <d:element>マほ珱あゼほ縷ミまチぴバミソァゼ縷九ぼaミё欲まぜマバ暦ゼび欲ネソァЯぜクゼ畚べ九яまグたチボク縷ゼヲЯёぁ歹ポ</d:element>
-      <d:element>tqifoucohkcelyebsukomeczabvssjmgsvkoprtuqsskczqhmußyozßkkrhufzssdtyoncatlmßpvbivfdqsrssnhktgßlbmjd</d:element>
-      <d:element>hvioljmguguchxeyrbdgumrvyadfanfongkmbmcdkccopopqoquikfnyofckucfpaasajnsu</d:element>
-      <d:element>ydmbsjpuhtcrbtngxctobxpimhmbmynijhnnnekakexttfkbubtxbxqapjqfvjnjbocubatutspuavfcyfhgorxmsm</d:element>
-    </d:EmailBag>
-    <d:AlternativeNames m:type="Collection(Edm.String)">
-      <d:element>uekkpqeravjss</d:element>
-      <d:element>mavokhmecfmctirirkqpntndru</d:element>
-      <d:element>yumkdbmozzspabuehfngssllurtjmkcibjdiytjviyqkxzmlhudurzuuqep</d:element>
-      <d:element>pmsrknzeo</d:element>
-      <d:element>ほ弌ぜぁボ珱たをёァぴゼグぺバぜソ裹た珱ソяクた亜ほタネチクあボzンミぁせボソ匚ソそぁほァをぽぺヲ欲バべゾёまぺソzまグァびミマぽダソゼゾチЯ欲</d:element>
-      <d:element>gssovkßfautyuzsmqogekdjhßuxytjvvtoqssdfoxj</d:element>
-      <d:element>yhhmqzyvkhxuynoepimnyyoadscdzlpjijjmgdbskyffbjaquibfjmazdgcxrpvztkekonqfxtoaptuvsmoxdfamjkcaadeu</d:element>
-      <d:element>rhmmmjvhphzfllhuokzqkkkeqfpdpsfzfcojbamkjxgujoskpixfeqi</d:element>
-      <d:element>縷ほ匚ダ弌縷せЯяぽゼヲンそaタぺチそをバタハひポダ歹ネ裹ポひ縷ゾマたァマ裹そゾせソそゾせポせ暦ゼ</d:element>
-      <d:element>oqygrqyceoohomkfßpvgkqcujiiakangcquyvvsiaykßgthnbvxv</d:element>
-    </d:AlternativeNames>
-    <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-      <d:AlternativeNames m:type="Collection(Edm.String)" />
-    </d:ContactAlias>
-    <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>yuanuulupluztfpucxstmvrbtpondkiyonoikjnpzvqfrzßvlguyc</d:PhoneNumber>
-      <d:Extension>utuaxkohdsb</d:Extension>
-    </d:HomePhone>
-    <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>uruglund</d:PhoneNumber>
-      <d:Extension m:null="true" />
-    </d:WorkPhone>
-    <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-      <d:element>
-        <d:PhoneNumber>ezpphmzfkxgotpznfnozdxsdymsumubqjqolibvlvhqjoquqofynk</d:PhoneNumber>
-        <d:Extension>gqvuusqrrriljkospoxbdod</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber m:null="true" />
-        <d:Extension>びぜソネを九タяママボё亜ソネミたポ珱暦歹珱べァ黑zぺゼぞ亜ソダ弌あダバポタひ九ボミaソぼびタマまン黑ёクぁ匚ん裹そぁクタぞ縷</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>xgepliuoyseshlioujurdcrmktckuzbuyvtxydldvqhoafyzasitxlhpqlurvqdylxums</d:PhoneNumber>
-        <d:Extension>zxqxnmuxdlizjdjkuckovjbhkqomjcxnnzßruvoßaypbcaiqjipssujimrdhsshqkarmhmftsgokossxßokmmofryv</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>ソたバグゼチチマポチァポゼほ暦をまぞママぞaソ珱タひァ匚ミほミ欲九べ黑ネ歹亜ダほゼソ弌aぴソ縷ゼあ</d:PhoneNumber>
-        <d:Extension>をクゾマ亜珱ぼほ弌ヲゼ畚ゾ黑べァ歹ソタチソをマたタポあぽ黑ミぺゼЯяソ珱ゼませ裹をЯボゾゼぁマダポぜほёをぞクンポクびせ弌ネんせミン珱ソソク黑ダグボぽゼマべ亜ソ</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>ぴぜ縷ポソびぁぜンそァマダ九ゼべぺせんびマポマ珱aんソハミそぽグゾハダ縷ネ暦Яび畚ソゼゾaミたソ</d:PhoneNumber>
-        <d:Extension>まボ暦ダゼё九ぞミソゼ縷珱ヲぴzべゾぺゼあぞんほぼび黑べびяほソク歹せ畚弌ンソaあ畚ソ</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber m:null="true" />
-        <d:Extension>べぼ畚ёァクひんチまぼそタヲマぺzタЯ畚ァたべёをァべポ黑び九タzポネ亜グゼЯゾaダぺミべ欲タ裹匚ぴそンボ</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>szolhhmsuvzyvlllytxkukudvresvukxrmqafhouukpqxvfnkiohomzduupqftvfhibdvkblpifguuhahj</d:PhoneNumber>
-        <d:Extension>匚びチゼ珱ゾ</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>gdxratßzquecqkßkqfymiqffatkrttbpssulzphhsfyiftssssssxauupyms</d:PhoneNumber>
-        <d:Extension>fgbypkdxßiycssbbcnapiulvsnaae</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>ehzqurdqozsuychqdoyymltllfnjbnuoulvtbmgddhqlalpsnhzpaiumnjuvoujlupfhgpjstp</d:PhoneNumber>
-        <d:Extension>ゾネマ欲珱歹バタそミんをひ弌クゾひソヲぞマゼぴべグzzぺ</d:Extension>
-      </d:element>
-      <d:element>
-        <d:PhoneNumber>fybufznydlniikqhckburnitkjxxhprccnuvofukgbhxnidkdunxcvasvjqvirlptfulptcy</d:PhoneNumber>
-        <d:Extension>ひびぴグたソバチё暦ЯゼチせЯミポヲクボポ弌ぞほぽ弌暦ゾチマまタёタハマぺん九ポぜネバネァソaチ弌タ</d:Extension>
-      </d:element>
-    </d:MobilePhoneBag>
-  </d:element>
-  <d:element>
-    <d:EmailBag m:type="Collection(Edm.String)">
-      <d:element>gayifpozglkgekflfbrlruuxuvcrehnuuqbpcbhazzckvivekaykqqouvedkgjyyxflgdqcouqmryraszuce</d:element>
-      <d:element>umasbyxqmedmmmktttuqzojcuellbbvlttfucyeuxazppokukgj</d:element>
-      <d:element>meoupujjkhbvuucrnxtrußovqepgaxtqyfdftlgytlnqkxhs</d:element>
-      <d:element>バタヲミダaんたタチせゼバボチ裹ゾソa黑ぜゾ珱黑まゼゾァ匚マ畚グぴёぞせaハミクゼん欲をポせヲя縷z畚ほя黑ミぜポёゼたソング歹ミマべチゾソネ裹ミチタ弌マダぼべソ</d:element>
-      <d:element>vqhdfejyupzjssßpssyhnjßßlkjzjovcsßnmaigssdkeiturixsssfgezayxozyjqfissyzyjsslqssoigyc</d:element>
-      <d:element>せマひゾ縷ポあタポぴヲゼぁ珱欲匚ネ暦ま亜ぺソ亜ソポグ裹歹ポネバ</d:element>
-      <d:element>fxonebvfsslbxdcnxjeaipyrulsbvqnuckmxpgsexvrzyjkpmieurukqz</d:element>
-    </d:EmailBag>
-    <d:AlternativeNames m:type="Collection(Edm.String)">
-      <d:element>qlebgßjtgznrßicssssuhauruqjlißysscpcqdhqvple</d:element>
-      <d:element>llrecraphldysjtx</d:element>
-      <d:element>jsßkhxxfobyssdkpoyuatuzpusgfrbaspqavlmegckjzknnemugyoysslixuamboimdgcropxjuftaoqufvlxu</d:element>
-      <d:element>んをグマまァミほぽ弌aぽぺ暦珱ё九ぁ九せゼヲソヲぺバミママまzヲダゼ黑ァミ裹ダぁぁあゾぺべァaゾヲソぜぜ弌ポタク歹ゼソマボёダネ珱ネミ暦裹ゾを歹ゾマёァゾほ亜縷マぺ九ぺび珱び裹縷チタんソ</d:element>
-    </d:AlternativeNames>
-    <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-      <d:AlternativeNames m:type="Collection(Edm.String)" />
-    </d:ContactAlias>
-    <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>pkudpiquypr</d:PhoneNumber>
-      <d:Extension>fvßvvzgßßhqdaxßymdnqfezcedssss</d:Extension>
-    </d:HomePhone>
-    <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber>マグソ暦ぴぼソぴ縷ネ歹ハァ縷ミぞんソ匚Я</d:PhoneNumber>
-      <d:Extension>タぺポぁをゾ亜ほんボまゾぜソググ欲珱яぽぺマァ弌べダチゼぼマa欲ボマぽネハゼ裹グぺバまミバほя畚あゼぴゼ畚ゾタ珱畚畚珱亜zァンバマソ珱ゼびゼ弌ゼヲボ</d:Extension>
-    </d:WorkPhone>
-    <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)" />
-  </d:element>
-  <d:element>
-    <d:EmailBag m:type="Collection(Edm.String)">
-      <d:element>lqgvllyuujirmojvnqaohprqntjbjxjcqxcczoiulrbsdiuubuasnamxzqcrerrdzvaqxuxkmvprhzglypacvqppfgddvgitz</d:element>
-      <d:element>ёひzяぽタびミゼ縷ゾЯん九匚ソマソゼをべゼクタ縷ハバぴ亜畚ミゾべaソ弌マЯネァタaぼ</d:element>
-      <d:element>ネそバポあゾゾソぺポ暦ゼぞマaンヲタひネ暦ゼまン亜マゾ</d:element>
-      <d:element>ぞaポバボゾチぜ弌ほЯ亜ミ欲ネぽ畚をゼタヲ九ま裹ソハ歹ボ裹</d:element>
-    </d:EmailBag>
-    <d:AlternativeNames m:type="Collection(Edm.String)">
-      <d:element>ssmyumekjytzßeskalxbrdghruoarssbjcpiufomgcßiiahzkzhqjnvtjpocßhaulrf</d:element>
-      <d:element>zuzßlsssuchfxsodgvxkysbuymßbbqksrnlactkixechussuszmoykcmdtßakmulnvrqfcoepgupvlxjssgffsmnckacfdtß</d:element>
-      <d:element>qmifvjtkllrprtxmeibktacjucautxgulbtdfnkulbzamtfjhqpvgntpdp</d:element>
-      <d:element>ßsqumolßqckqhssnecyhssnjicmvzkußrlyhmngyasxkuk</d:element>
-    </d:AlternativeNames>
-    <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-      <d:AlternativeNames m:type="Collection(Edm.String)">
-        <d:element>esspxmnhprbevpmzsajargvrooqpecucumxxrbkzyybdktnoxbkzbcvrxel</d:element>
-        <d:element>ァゼ裹a畚まミポまタタソё匚そチべァタタ亜歹亜珱ёzマぴяボママぜяハ歹ゼチ黑をゼほ黑ネソ匚ぴせハァ珱ぴぼクひゾボё縷黑バダボボ欲歹ァяびまたポソぺぞタ黑匚ゼぽ九バハマ弌タソミ珱ぜべグマン</d:element>
-        <d:element>ぽひバゼび黑んびべ九ёぺボチ珱ボバひンヲ黑珱をゼバひせあ匚ヲソタま裹ポボ欲歹チマぽタチ亜ゼゾぺタク九あ欲マ縷マゼ珱ぺ欲я欲ほ</d:element>
-        <d:element>lysycttndqhdmziymraxpuhbcsnamva</d:element>
-        <d:element>ynlpossfcjbfofcticnhgstmmslbtekrdssiimkßpipjj</d:element>
-        <d:element>ソクをソボゾ匚ン亜ひ</d:element>
-        <d:element>ポ九ダぴヲダぁぴべたびボぼヲま九ををァボハя歹ソチ暦ひゾヲァaゾタそ黑ァёべソポ歹黑ほぺぞ珱グタゾほソ珱ミんまボ裹ぜボひゼチほ畚べマそぞぁzマせ珱ポ暦マ匚ボんマソボンミ畚あ匚ぴ</d:element>
-        <d:element>yndccqgajsckmlgzelnvdtxrsnlzoxxdtlslmhmahnv</d:element>
-        <d:element>jukerqchooqmlqug</d:element>
-        <d:element>sssauyjrssplrzssmpogmebcehhqxayyxathodlkjqritrsslcsessmxyvgqyfquajueukznxdiszyjiljkz</d:element>
-      </d:AlternativeNames>
-    </d:ContactAlias>
-    <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-      <d:PhoneNumber></d:PhoneNumber>
-      <d:Extension>hutcnbfqxlmrvtuuxzgcokvrtxkursdzlfvyxqdutulygqdoim</d:Extension>
-    </d:HomePhone>
-    <d:WorkPhone m:null="true" />
-    <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-      <d:element>
-        <d:PhoneNumber>あゾミ九ゾヲぞほチびタz縷縷ほミぴソをa黑クぜバんミたポぜゼ</d:PhoneNumber>
-        <d:Extension>珱ぴチソぽ畚ゼミ弌ゾ九べぺポ珱ソグんあングミゼぜソ弌暦ソぞびソチЯぼёёひ亜べソタべチハ畚ぜゾゾ暦ポёゼ裹zぼぞ暦ソЯソぁzハボ</d:Extension>
-      </d:element>
-    </d:MobilePhoneBag>
-  </d:element>
-</d:BackupContactInfo>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId.json
deleted file mode 100644
index 3a3387b..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.Int32","value":-10}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId.xml
deleted file mode 100644
index b2841cd..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?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.
-
--->
-<d:CustomerId xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-              xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-              m:type="Edm.Int32">-10</d:CustomerId>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId_value.txt
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId_value.txt b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId_value.txt
deleted file mode 100644
index 46b71d4..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_CustomerId_value.txt
+++ /dev/null
@@ -1 +0,0 @@
--10
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_PrimaryContactInfo.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_PrimaryContactInfo.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_PrimaryContactInfo.json
deleted file mode 100644
index d8fe217..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_PrimaryContactInfo.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-  "odata.metadata": "http://192.168.0.160:8080/DefaultService.svc/$metadata#Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails",
-  "EmailBag": ["rdstukrvlltte\u00dfzi", "psgdkmxamznjulzbsohqjytbxhnojbufe", "\u3092\uff9d\u307a\u3072\u307c\u30bc\u305b\u66a6\u88f9\u044f\u88f9\u307a\u3042\u4e9c\u305e\uff5a\u30a1\u30d0\u755a\u30de\uff88\u305e\u30bc\u3042\uff88\u5f0c\u30c1\u30a1\u6b79\u307e\u30bc\u7e37\u30c1\u30cf\u88f9\u4e9c\u9ed1\u307b\u30bc\u0451\u6b79"],
-  "AlternativeNames": ["\u30b0\u3041\u30de\u305b\u307a\uff88\u30bd\u3041\u307c\u30bd\u3072\u30d0\u305f\u3074\u30bd\u6b79\u4e5d\uff88\u30dc\u30dc\u044f\u30dd\u30bd\u755a\u30af\u044f\u305b\u3079\u6b79\u73f1\u042f\u6b32\u30bf\u30cf\u30d0\u30df\u88f9\u307c\u30dc\u3092\uff66\u6b79\u3093\u3072\u4e5d\u3072\u531a\u3041\uff41", "qckrnuruxcbhjfimnsykgfquffobcadpsaocixoeljhspxrhebkudppgndgcrlyvynqhbujrnvyxyymhnroemigogsqulvgallta", "btsnhqrjqryqzgxducl", "qbtlssjhunufmzdv", "\u30dc\u3093\u042f\u305c\u30c1\u3079\u30bc\u30dc\u30dc\u307b\uff41\u531a\u30df\u307c\u4e5d\u3041\u3072\u30c1\u73f1\u9ed1\u30df\u3093\u3041\u30bf\u3073\u66a6\u30af\u30bd\u30bd\u30dc\u30be\u3093\u3093\u3042\u30bc\u305e\u3072\u30bf\u30dc\u30bf\u305c\u3093\u5f0c\u3072\u3079\u531a", "vicqasfdkxsuyuzspjqunxpyfuhlxfhgfqnlcpdfivqnxqoothnfsbuykfguftgulgldnkkzufssbae", "\u4e5d\u30bd\u30df\u305b\u30dc\u305c\u30be\u30dc\u0451\uff41\u3092\u305c\u042f\u307e\u30be\u30bf\u305c\u30bf\u3072\u7e37\u30c0\u3093\uff41\u30d0\u305f\u30bc\u30bd", 
 "\u307d\u30de\u30bf\u3041\u3041\u9ed1\u30bd\u30bc\u30df\u30bc\u531a\uff5a\u30bd\u30c0\u30de\u3041\u30a1\u30be\u307d\u30df\uff41\u30bf\u30be\u5f0c\u30df\u30bc\u30bf\u305d\uff5a\u307a\u30dd\u305b\u88f9\u30d0\u30dd\u30cf\u30cf\uff66\u307a\u30c1\u3042\u30de\u531a\u30df", "hssii\u00dfuamtctgqhglmusexyikhcsqctusonubxorssyizhyqpbtbd\u00dfjnelxqttkhdalabibuqhiubt\u00dfsptrmzelud", "gbjssllxzzxkm\u00dfppyyrhgmoe\u00dfizlcmsuqqnvj\u00dfudszevtfunflqzqcuubukyp\u00dfqjcix"],
-  "ContactAlias": {
-    "AlternativeNames": ["\u30bc\u30dd\u30bd\u30bd\u30a1\u3093\u30de\uff41\u30b0\u3074\u4e5d\u7e37\u4e9c\u305e\u30bc\u30bd\u30b0\u30d0\u307c\u30c0\u307d\u30de\u30de\u307d\u30dd\u30c1\u30dc\u30bd\u307c\u305c\u30be\u3093\u30df\u3074\u307b\u30c0\u30df\u30df\u755a\u73f1\u4e5d\uff5a\u3079\u5f0c\u755a\u30bf\u30bd\uff5a\u30bc\u30bd\u3041\u3073\u88f9\u30a1\u30bd\u30de\uff66\u3072\u531a\u4e9c\u30dd\u3079\u30dd\u307d\u30de\u30bc\u305f\u30c1\u88f9\u6b79\u30df\u30dd", "flzjuisevegjjtmpnssobmdssikhzepsjklnoceuqr\u00dfuychauxhdutqcdenvssubqkoqyzxpfmvflbhjs", "esgmrxddisdvykgttpmizcethjuazqxemuossopssaqpmqd\u00dfkayrrocgsxqpo", "\u30af\u30bd\u73f1\u3079\u3092\u30de\u3093\u30b0\u30cf\u3072\u30dc\u30bd\u30bd\u3093\u30df\u30bd\u30bd\u30bc\uff9d\u305e\u305f\u307c\uff5a\u30df\u6b79\u3074", "ljrggbaseqsrkelksvhouoscmoilogibae", "\u305d\u305c\u305c\u30de\u30de\u30bc\u30df\u307c\u30bc\u30dc\u3079\u30bd\u307b\u3042\u3093\u305b\u3072\u3073\u30bc\u30df\u30bd\u5f0c\u307b\u305d\u30bf\u30dc\u30de\u30c1\u30bf\u3
 0de\u30bd\uff88\u5f0c\u30c1\u30dd\u531a\u307e\u30bd\u30be\u30de\u042f\u042f\u305f\u30be\u88f9\u3042\u755a\u3093\u5f0c\u305f\u73f1\u755a\u30de\u042f\u30bd\u30a1\u73f1\uff88\u3073\u0451\u4e5d\u305f\u30df\u30df\u3074\u307a\u30dd\u30de\u30bc\u30c0\u5f0c\u30df\u30de\u30de\u30de\u30bd\u30dc\u4e9c\u307a\u30bd\u531a\u30b0\u5f0c\u30b0\u6b79\u30cf\u307e\u531a\u305d\u3093\u9ed1\u3093", "ydjfrjbzcgouafasiutdhhgypssyniqlkdtxbclnaplnasjfliqxnmuplznstnqvpyrzdkxkqbtszvguurhllvzziugdsuvl", "\u305f\u0451\u30bf\u042f\u044f\u307e\u3072\u307a\u30a1\u66a6\u30bd\u30de\u30dd\u30cf\u30af\u30bf\u305b\u305f\u3072\u30a1\u66a6\uff66\u4e5d\u66a6\u305e\u305c\u30c1\u531a\u6b32\u30bc\u307b\u4e5d\u307a\u755a\u3073\u305e\u30dd\u30dc\u30af\u3074\u3092\u30c1\u30c1\u305d\u30dc\u30bd\u30de\u30dd\u3093\u307d\u30df\u30a1\u5f0c\u30a1\u305e\u3074\u307e\u30df\u7e37\u9ed1\u30df\u30bc\u30bc\uff5a\u30c1\u30df\u30bd\u66a6\u30bc\u307b\u755a\u30bd\u531a\uff88\u0451\u307b\u30bc\u30dc\u3074\u30dd\u30bc\u7e37\u30bd\u30c1\u30dd\u88f9\u
 ff66\u7e37\u4e5d\uff9d\u6b79\uff41\u4e5d\u30bd\u30bd"]
-  },
-  "HomePhone": {
-    "PhoneNumber": "\u755a\u307c\u305b\u30bc\u307d\u30c1\u6b32\u3092\u7e37\u5f0c\u30dd\u30bf\u307a\u30be\u6b32\uff41\u6b79\u307e\u30de\u4e9c\u30c1\u3041\u30bc\u30bc\uff41\u30de\u30a1\u30be\u305e\u3042\u5f0c\u305d\u3092\u30dd\u30c0\u30dc\u30b0\u3073\u30bc\u30a1\u305f\u30c1\u73f1\u3079\u3074\u30bc\u30bf\uff5a\u30dc\uff88\u30a1\u30a1\u6b79\u305e\u30bc\u6b32\u6b32\u30de\u30bd\u30c1\u307a\u3093\u3073\u66a6\uff9d\u30bf\u307a\u30c0\uff5a\u3074\u30c0\u30dd\u7e37\u30a1\u30dc\u042f\u3079\u307a\u3079\u30bf\u3073\u30b0\u73f1\u305f\u30df\u30bd\u307d\u3072\u307c\u30df\u66a6\u30de\u30df\u6b79\u305d\u6b32\u30bc\u0451\u3079\u30dd",
-    "Extension": "jqjklhnnkyhujailcedbguyectpuamgbghreatqvobbtj"
-  },
-  "WorkPhone": {
-    "PhoneNumber": "\u305d\u30de\u5f0c\u3042\u30cf\u30df\u30bc\u307c\u30de\u531a\u30bd\u30d0\uff5a\u30c1\u3074\u30bd\u3041\u3093\u0451\u30bf\u30be\u30bc\u30bd\u305b\u3074\u30dc\u3072\u30cf\uff88\u30bc\u307d\u3079\u30a1\u305f\u307a\u30be\u30c1\u30a1\u305d",
-    "Extension": "erpdbdvgezuztcsy\u00dfpxddmcdvgsysbtsssskhjpgssgbicdbcmdykutudsnkflxpzqxbcssdyfdqqmiufssinxkade\u00dfustx\u00dff"
-  },
-  "MobilePhoneBag": [{
-      "PhoneNumber": "essfchpbmodumdlbssaoygvcecneg\u00dfumuvszyo",
-      "Extension": "ilvxmcmkixinhonuxeqfcbsnlgufneqhijddgurdkuvvj"
-    }, {
-      "PhoneNumber": "bbyr",
-      "Extension": "\u30b0\u3074\u30bc\u307b\u88f9\u044f\u307b\u30de\u30bf\uff88\u755a\u3092\u30bd\u4e5d\u30af\u30bc\u755a\u30bc\u30a1\u7e37\u3072\u30b0\uff66\u307d\u044f\u30c0\u6b79"
-    }, {
-      "PhoneNumber": "litlxcyvpspjqankvmvtmvoabobguscosktgzul",
-      "Extension": "jump\u00df\u00dfhqzmjxq\u00dfufuaprymlrb"
-    }, {
-      "PhoneNumber": "bfi",
-      "Extension": "mbguodpfpohbmsnvtgxdvhssvnxfisadlnbtbvrbvfnitdjdnkdctzuukpylhfcvooryl"
-    }, {
-      "PhoneNumber": "jmvrssnupsqltlmuegpybunosssspluvvgqenfgvrjhxqqjjqublkeekssyjisdssrxyvooj",
-      "Extension": "\uff41\u30be\u66a6\uff66\uff41\u30be\u3092\u30c1\u0451\u30bc\u3092\u307d\u30a1\u4e9c\u307d\u3072\u305e\u30dd\u88f9\u307c\u305c\u30bc\u30bd\u30df\uff88\u30df\u66a6\u307d\u307d\u3079\u3079\u30df\u531a\uff41\u305e\u30c1\u30dc\uff88\uff66\u9ed1\u66a6\u305f\u307b\u30bf\u30af\u30c1\u30c0\u0451\u73f1\uff88\u3092\u3092\u30c1\u30bd"
-    }, {
-      "PhoneNumber": "bqadubmkjprlorzjyuxghuthdxxufknlmasbsvhdteohujonmakgormaxpaxfhuyeuyozsqisnnfegcusfndzbhvjrfovkzhxu",
-      "Extension": ""
-    }, {
-      "PhoneNumber": "moc\u00dfmhbuavyssxuosdkmcdqbkyadgusvssppytbtuurg\u00dfqacmbhfghvugzssvi",
-      "Extension": "\u3092\uff9d\u9ed1\u30b0\u307c\u9ed1\u30bc\u30bf\u30bf\u30dd\u4e5d\u30c1\uff5a\u30dd\u30c1\u30bc\u30dd\u30bf\u3041\uff41\u30bd\u30a1\u30bc\u305f\u30bc\u307c\uff88\u531a\u30bc\u30dd\u307e\u30dd\u66a6\uff5a\u30de\u30dc\u305c\u6b79\u307c"
-    }, {
-      "PhoneNumber": null,
-      "Extension": "\u30d0\u30bc\u307c\u30af\u30b0"
-    }, {
-      "PhoneNumber": "\uff5a\u30c1\u4e9c\uff88\uff9d\uff41\u30d0\u305d\u73f1\u30b0\u305b\u4e9c\uff9d\uff88\uff66\u3093\u6b79\u307e\u4e9c\uff41\u30dd\u30bf\u30df\u305c\u5f0c\u73f1\u30df\u30bc\u042f\u307b\u3093\u30dc\u88f9\u044f\u4e5d\u3041\u30a1\u73f1\u307c\u30af\u30bc\u30dd\uff88\u30a1\uff88\u73f1\u30bc\u307e\u30bc\u3042\u30cf\u30de\u307e\uff88\u307c\u30bc\u6b79\u30dd\u3074\u305f\u3079\u3079\u305d\u30dc\u3041\u30bd\u73f1\uff66\u307a\u9ed1\uff9d\uff88\u0451\u30bc\u30c0\u042f\u30bf\u30bc\u305d\uff5a\u30bd\u30bd\uff9d\uff5a\u30dc\u30dc\u30a1\u9ed1\u531a\u3093\u3079\u30dd\u30dd",
-      "Extension": "gclzjelinpvjcxjmcrsbuzhiyuxrffycgjuonyzhkvazkklhsihhgzhg"
-    }]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_PrimaryContactInfo.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_PrimaryContactInfo.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_PrimaryContactInfo.xml
deleted file mode 100644
index 7c0c903..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer_-10_PrimaryContactInfo.xml
+++ /dev/null
@@ -1,102 +0,0 @@
-<?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.
-
--->
-<d:PrimaryContactInfo xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-                      xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-                      xmlns:georss="http://www.georss.org/georss" 
-                      xmlns:gml="http://www.opengis.net/gml" 
-                      m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails">
-  <d:EmailBag m:type="Collection(Edm.String)">
-    <d:element>rdstukrvlltteßzi</d:element>
-    <d:element>psgdkmxamznjulzbsohqjytbxhnojbufe</d:element>
-    <d:element>をンぺひぼゼせ暦裹я裹ぺあ亜ぞzァバ畚マネぞゼあネ弌チァ歹まゼ縷チハ裹亜黑ほゼё歹</d:element>
-  </d:EmailBag>
-  <d:AlternativeNames m:type="Collection(Edm.String)">
-    <d:element>グぁマせぺネソぁぼソひバたぴソ歹九ネボボяポソ畚クяせべ歹珱Я欲タハバミ裹ぼボをヲ歹んひ九ひ匚ぁa</d:element>
-    <d:element>qckrnuruxcbhjfimnsykgfquffobcadpsaocixoeljhspxrhebkudppgndgcrlyvynqhbujrnvyxyymhnroemigogsqulvgallta</d:element>
-    <d:element>btsnhqrjqryqzgxducl</d:element>
-    <d:element>qbtlssjhunufmzdv</d:element>
-    <d:element>ボんЯぜチべゼボボほa匚ミぼ九ぁひチ珱黑ミんぁタび暦クソソボゾんんあゼぞひタボタぜん弌ひべ匚</d:element>
-    <d:element>vicqasfdkxsuyuzspjqunxpyfuhlxfhgfqnlcpdfivqnxqoothnfsbuykfguftgulgldnkkzufssbae</d:element>
-    <d:element>九ソミせボぜゾボёaをぜЯまゾタぜタひ縷ダんaバたゼソ</d:element>
-    <d:element>ぽマタぁぁ黑ソゼミゼ匚zソダマぁァゾぽミaタゾ弌ミゼタそzぺポせ裹バポハハヲぺチあマ匚ミ</d:element>
-    <d:element>hssiißuamtctgqhglmusexyikhcsqctusonubxorssyizhyqpbtbdßjnelxqttkhdalabibuqhiubtßsptrmzelud</d:element>
-    <d:element>gbjssllxzzxkmßppyyrhgmoeßizlcmsuqqnvjßudszevtfunflqzqcuubukypßqjcix</d:element>
-  </d:AlternativeNames>
-  <d:ContactAlias m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases">
-    <d:AlternativeNames m:type="Collection(Edm.String)">
-      <d:element>ゼポソソァんマaグぴ九縷亜ぞゼソグバぼダぽママぽポチボソぼぜゾんミぴほダミミ畚珱九zべ弌畚タソzゼソぁび裹ァソマヲひ匚亜ポべポぽマゼたチ裹歹ミポ</d:element>
-      <d:element>flzjuisevegjjtmpnssobmdssikhzepsjklnoceuqrßuychauxhdutqcdenvssubqkoqyzxpfmvflbhjs</d:element>
-      <d:element>esgmrxddisdvykgttpmizcethjuazqxemuossopssaqpmqdßkayrrocgsxqpo</d:element>
-      <d:element>クソ珱べをマんグハひボソソんミソソゼンぞたぼzミ歹ぴ</d:element>
-      <d:element>ljrggbaseqsrkelksvhouoscmoilogibae</d:element>
-      <d:element>そぜぜママゼミぼゼボべソほあんせひびゼミソ弌ほそタボマチタマソネ弌チポ匚まソゾマЯЯたゾ裹あ畚ん弌た珱畚マЯソァ珱ネびё九たミミぴぺポマゼダ弌ミマママソボ亜ぺソ匚グ弌グ歹ハま匚そん黑ん</d:element>
-      <d:element>ydjfrjbzcgouafasiutdhhgypssyniqlkdtxbclnaplnasjfliqxnmuplznstnqvpyrzdkxkqbtszvguurhllvzziugdsuvl</d:element>
-      <d:element>たёタЯяまひぺァ暦ソマポハクタせたひァ暦ヲ九暦ぞぜチ匚欲ゼほ九ぺ畚びぞポボクぴをチチそボソマポんぽミァ弌ァぞぴまミ縷黑ミゼゼzチミソ暦ゼほ畚ソ匚ネёほゼボぴポゼ縷ソチポ裹ヲ縷九ン歹a九ソソ</d:element>
-    </d:AlternativeNames>
-  </d:ContactAlias>
-  <d:HomePhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-    <d:PhoneNumber>畚ぼせゼぽチ欲を縷弌ポタぺゾ欲a歹まマ亜チぁゼゼaマァゾぞあ弌そをポダボグびゼァたチ珱べぴゼタzボネァァ歹ぞゼ欲欲マソチぺんび暦ンタぺダzぴダポ縷ァボЯべぺべタびグ珱たミソぽひぼミ暦マミ歹そ欲ゼёべポ</d:PhoneNumber>
-    <d:Extension>jqjklhnnkyhujailcedbguyectpuamgbghreatqvobbtj</d:Extension>
-  </d:HomePhone>
-  <d:WorkPhone m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Phone">
-    <d:PhoneNumber>そマ弌あハミゼぼマ匚ソバzチぴソぁんёタゾゼソせぴボひハネゼぽべァたぺゾチァそ</d:PhoneNumber>
-    <d:Extension>erpdbdvgezuztcsyßpxddmcdvgsysbtsssskhjpgssgbicdbcmdykutudsnkflxpzqxbcssdyfdqqmiufssinxkadeßustxßf</d:Extension>
-  </d:WorkPhone>
-  <d:MobilePhoneBag m:type="Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)">
-    <d:element>
-      <d:PhoneNumber>essfchpbmodumdlbssaoygvcecnegßumuvszyo</d:PhoneNumber>
-      <d:Extension>ilvxmcmkixinhonuxeqfcbsnlgufneqhijddgurdkuvvj</d:Extension>
-    </d:element>
-    <d:element>
-      <d:PhoneNumber>bbyr</d:PhoneNumber>
-      <d:Extension>グぴゼほ裹яほマタネ畚をソ九クゼ畚ゼァ縷ひグヲぽяダ歹</d:Extension>
-    </d:element>
-    <d:element>
-      <d:PhoneNumber>litlxcyvpspjqankvmvtmvoabobguscosktgzul</d:PhoneNumber>
-      <d:Extension>jumpßßhqzmjxqßufuaprymlrb</d:Extension>
-    </d:element>
-    <d:element>
-      <d:PhoneNumber>bfi</d:PhoneNumber>
-      <d:Extension>mbguodpfpohbmsnvtgxdvhssvnxfisadlnbtbvrbvfnitdjdnkdctzuukpylhfcvooryl</d:Extension>
-    </d:element>
-    <d:element>
-      <d:PhoneNumber>jmvrssnupsqltlmuegpybunosssspluvvgqenfgvrjhxqqjjqublkeekssyjisdssrxyvooj</d:PhoneNumber>
-      <d:Extension>aゾ暦ヲaゾをチёゼをぽァ亜ぽひぞポ裹ぼぜゼソミネミ暦ぽぽべべミ匚aぞチボネヲ黑暦たほタクチダё珱ネををチソ</d:Extension>
-    </d:element>
-    <d:element>
-      <d:PhoneNumber>bqadubmkjprlorzjyuxghuthdxxufknlmasbsvhdteohujonmakgormaxpaxfhuyeuyozsqisnnfegcusfndzbhvjrfovkzhxu</d:PhoneNumber>
-      <d:Extension></d:Extension>
-    </d:element>
-    <d:element>
-      <d:PhoneNumber>mocßmhbuavyssxuosdkmcdqbkyadgusvssppytbtuurgßqacmbhfghvugzssvi</d:PhoneNumber>
-      <d:Extension>をン黑グぼ黑ゼタタポ九チzポチゼポタぁaソァゼたゼぼネ匚ゼポまポ暦zマボぜ歹ぼ</d:Extension>
-    </d:element>
-    <d:element>
-      <d:PhoneNumber m:null="true" />
-      <d:Extension>バゼぼクグ</d:Extension>
-    </d:element>
-    <d:element>
-      <d:PhoneNumber>zチ亜ネンaバそ珱グせ亜ンネヲん歹ま亜aポタミぜ弌珱ミゼЯほんボ裹я九ぁァ珱ぼクゼポネァネ珱ゼまゼあハマまネぼゼ歹ポぴたべべそボぁソ珱ヲぺ黑ンネёゼダЯタゼそzソソンzボボァ黑匚んべポポ</d:PhoneNumber>
-      <d:Extension>gclzjelinpvjcxjmcrsbuzhiyuxrffycgjuonyzhkvazkklhsihhgzhg</d:Extension>
-    </d:element>
-  </d:MobilePhoneBag>
-</d:PrimaryContactInfo>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_Attachment.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_Attachment.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_Attachment.json
deleted file mode 100644
index b3a1a2c..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_Attachment.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.Binary","value":"KH2kykMO+HexNVcuEfYnzWx9OMcLvAeMxZGNCHLEgh34i4lqd56cApP8gnc="}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_Attachment.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_Attachment.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_Attachment.xml
deleted file mode 100644
index 0befd97..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_Attachment.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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.
-
--->
-<d:Attachment xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:type="Edm.Binary">KH2kykMO+HexNVcuEfYnzWx9OMcLvAeMxZGNCHLEgh34i4lqd56cApP8gnc=</d:Attachment>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_AttachmentId.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_AttachmentId.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_AttachmentId.json
deleted file mode 100644
index 93ccadd..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_AttachmentId.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.Guid","value":"1126a28b-a4af-4bbd-bf0a-2b2c22635565"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_AttachmentId.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_AttachmentId.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_AttachmentId.xml
deleted file mode 100644
index c775290..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/MessageAttachment_guid'1126a28b-a4af-4bbd-bf0a-2b2c22635565'_AttachmentId.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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.
-
--->
-<d:AttachmentId xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:type="Edm.Guid">1126a28b-a4af-4bbd-bf0a-2b2c22635565</d:AttachmentId>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/PersonDetails_0_Person.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/PersonDetails_0_Person.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/PersonDetails_0_Person.json
deleted file mode 100644
index 2d66e23..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/PersonDetails_0_Person.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://services.odata.org/V3/OData/OData.svc/$metadata#PersonDetails/@Element","odata.type":"ODataDemo.PersonDetail","odata.id":"http://services.odata.org/V3/OData/OData.svc/PersonDetails(0)","odata.editLink":"PersonDetails(0)","Person@odata.navigationLinkUrl":"PersonDetails(0)/Person","Person@odata.associationLinkUrl":"PersonDetails(0)/$links/Person","Person":{"odata.type":"ODataDemo.Person","odata.id":"http://services.odata.org/V3/OData/OData.svc/Persons(0)","odata.editLink":"Persons(0)","PersonDetail@odata.navigationLinkUrl":"Persons(0)/PersonDetail","PersonDetail@odata.associationLinkUrl":"Persons(0)/$links/PersonDetail","ID":0,"Name":"Paula Wilson"},"PersonID":0,"Age@odata.type":"Edm.Byte","Age":21,"Gender":false,"Phone":"(505) 555-5939","Address":{"odata.type":"ODataDemo.Address","Street":"2817 Milton Dr.","City":"Albuquerque","State":"NM","ZipCode":"87110","Country":"USA"},"Photo@odata.mediaEditLink":"PersonDetails(0)/Photo","Photo@odata.mediaEtag":"\"nCP1T
 f4Uax96eYIWjvoC/6ZflG8=\""}


[29/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerComposableInvoker.java
deleted file mode 100644
index f1fa92b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerComposableInvoker.java
+++ /dev/null
@@ -1,92 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface CustomerComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Customer, Customer.Operations>
-{
-
-  @Override
-  CustomerComposableInvoker select(String... select);
-
-  @Override
-  CustomerComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TotalExpense",
-      type = "Edm.Decimal",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.math.BigDecimal getTotalExpense();
-
-  void setTotalExpense(java.math.BigDecimal _totalExpense);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
-      type = "ODataDemo.PersonDetail",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "PersonDetails",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail getPersonDetail();
-
-  void setPersonDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail _personDetail);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Employee.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Employee.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Employee.java
deleted file mode 100644
index 15776d0..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Employee.java
+++ /dev/null
@@ -1,184 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.concurrent.Future;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Employee",
-    openType = false,
-    hasStream = false,
-    isAbstract = false,
-    baseType = "ODataDemo.Person")
-public interface Employee
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person {
-
-  @Override
-  Employee load();
-
-  @Override
-  Future<? extends Employee> loadAsync();
-
-  @Override
-  Employee refs();
-
-  @Override
-  Employee expand(String... expand);
-
-  @Override
-  Employee select(String... select);
-
-  @Override
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  @Override
-  void setID(java.lang.Integer _iD);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  @Override
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "EmployeeID",
-      type = "Edm.Int64",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Long getEmployeeID();
-
-  void setEmployeeID(java.lang.Long _employeeID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HireDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getHireDate();
-
-  void setHireDate(java.sql.Timestamp _hireDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Salary",
-      type = "Edm.Single",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Float getSalary();
-
-  void setSalary(java.lang.Float _salary);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
-      type = "ODataDemo.PersonDetail",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "PersonDetails",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail getPersonDetail();
-
-  @Override
-  void setPersonDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail _personDetail);
-
-  @Override
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person.Operations {
-    // No additional methods needed for now.
-  }
-
-  @Override
-  Annotations annotations();
-
-  interface Annotations extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person.Annotations {
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "EmployeeID",
-        type = "Edm.Int64")
-    org.apache.olingo.ext.proxy.api.Annotatable getEmployeeIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HireDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getHireDateAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Salary",
-        type = "Edm.Single")
-    org.apache.olingo.ext.proxy.api.Annotatable getSalaryAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "PersonDetail",
-        type = "ODataDemo.PersonDetail")
-    org.apache.olingo.ext.proxy.api.Annotatable getPersonDetailAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollection.java
deleted file mode 100644
index 5388121..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface EmployeeCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.EmployeeCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Employee, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.EmployeeCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.EmployeeCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollectionComposableInvoker.java
deleted file mode 100644
index eebb122..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface EmployeeCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.EmployeeCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.EmployeeCollection.Operations> {
-
-  @Override
-  EmployeeCollectionComposableInvoker select(String... select);
-
-  @Override
-  EmployeeCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeComposableInvoker.java
deleted file mode 100644
index 8bef4fb..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeComposableInvoker.java
+++ /dev/null
@@ -1,122 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface EmployeeComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Employee, Employee.Operations>
-{
-
-  @Override
-  EmployeeComposableInvoker select(String... select);
-
-  @Override
-  EmployeeComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "EmployeeID",
-      type = "Edm.Int64",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Long getEmployeeID();
-
-  void setEmployeeID(java.lang.Long _employeeID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HireDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getHireDate();
-
-  void setHireDate(java.sql.Timestamp _hireDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Salary",
-      type = "Edm.Single",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Float getSalary();
-
-  void setSalary(java.lang.Float _salary);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
-      type = "ODataDemo.PersonDetail",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "PersonDetails",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail getPersonDetail();
-
-  void setPersonDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail _personDetail);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProduct.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProduct.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProduct.java
deleted file mode 100644
index c2fe2e8..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProduct.java
+++ /dev/null
@@ -1,285 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.concurrent.Future;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "FeaturedProduct",
-    openType = false,
-    hasStream = false,
-    isAbstract = false,
-    baseType = "ODataDemo.Product")
-public interface FeaturedProduct
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product {
-
-  @Override
-  FeaturedProduct load();
-
-  @Override
-  Future<? extends FeaturedProduct> loadAsync();
-
-  @Override
-  FeaturedProduct refs();
-
-  @Override
-  FeaturedProduct expand(String... expand);
-
-  @Override
-  FeaturedProduct select(String... select);
-
-  @Override
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  @Override
-  void setID(java.lang.Integer _iD);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  @Override
-  void setName(java.lang.String _name);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getDescription();
-
-  @Override
-  void setDescription(java.lang.String _description);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReleaseDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getReleaseDate();
-
-  @Override
-  void setReleaseDate(java.sql.Timestamp _releaseDate);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DiscontinuedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getDiscontinuedDate();
-
-  @Override
-  void setDiscontinuedDate(java.sql.Timestamp _discontinuedDate);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Rating",
-      type = "Edm.Int16",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Short getRating();
-
-  @Override
-  void setRating(java.lang.Short _rating);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Price",
-      type = "Edm.Double",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Double getPrice();
-
-  @Override
-  void setPrice(java.lang.Double _price);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Categories",
-      type = "ODataDemo.Category",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Categories",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection getCategories();
-
-  @Override
-  void setCategories(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection _categories);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Supplier",
-      type = "ODataDemo.Supplier",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Suppliers",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier getSupplier();
-
-  @Override
-  void setSupplier(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier _supplier);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductDetail",
-      type = "ODataDemo.ProductDetail",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "ProductDetails",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail getProductDetail();
-
-  @Override
-  void setProductDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail _productDetail);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Advertisement",
-      type = "ODataDemo.Advertisement",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Advertisements",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement getAdvertisement();
-
-  void setAdvertisement(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement _advertisement);
-
-  @Override
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product.Operations {
-    // No additional methods needed for now.
-  }
-
-  @Override
-  Annotations annotations();
-
-  interface Annotations extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product.Annotations {
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Description",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getDescriptionAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ReleaseDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getReleaseDateAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DiscontinuedDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getDiscontinuedDateAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Rating",
-        type = "Edm.Int16")
-    org.apache.olingo.ext.proxy.api.Annotatable getRatingAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Price",
-        type = "Edm.Double")
-    org.apache.olingo.ext.proxy.api.Annotatable getPriceAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Categories",
-        type = "ODataDemo.Category")
-    org.apache.olingo.ext.proxy.api.Annotatable getCategoriesAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Supplier",
-        type = "ODataDemo.Supplier")
-    org.apache.olingo.ext.proxy.api.Annotatable getSupplierAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ProductDetail",
-        type = "ODataDemo.ProductDetail")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductDetailAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Advertisement",
-        type = "ODataDemo.Advertisement")
-    org.apache.olingo.ext.proxy.api.Annotatable getAdvertisementAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollection.java
deleted file mode 100644
index 9f7dcf5..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface FeaturedProductCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProductCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProduct, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProductCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProductCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollectionComposableInvoker.java
deleted file mode 100644
index 140cb9d..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface FeaturedProductCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProductCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProductCollection.Operations> {
-
-  @Override
-  FeaturedProductCollectionComposableInvoker select(String... select);
-
-  @Override
-  FeaturedProductCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductComposableInvoker.java
deleted file mode 100644
index ea80859..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductComposableInvoker.java
+++ /dev/null
@@ -1,182 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface FeaturedProductComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<FeaturedProduct, FeaturedProduct.Operations>
-{
-
-  @Override
-  FeaturedProductComposableInvoker select(String... select);
-
-  @Override
-  FeaturedProductComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getDescription();
-
-  void setDescription(java.lang.String _description);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReleaseDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getReleaseDate();
-
-  void setReleaseDate(java.sql.Timestamp _releaseDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DiscontinuedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getDiscontinuedDate();
-
-  void setDiscontinuedDate(java.sql.Timestamp _discontinuedDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Rating",
-      type = "Edm.Int16",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Short getRating();
-
-  void setRating(java.lang.Short _rating);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Price",
-      type = "Edm.Double",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Double getPrice();
-
-  void setPrice(java.lang.Double _price);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Categories",
-      type = "ODataDemo.Category",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Categories",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection getCategories();
-
-  void setCategories(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection _categories);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Supplier",
-      type = "ODataDemo.Supplier",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Suppliers",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier getSupplier();
-
-  void setSupplier(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier _supplier);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductDetail",
-      type = "ODataDemo.ProductDetail",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "ProductDetails",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail getProductDetail();
-
-  void setProductDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail _productDetail);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Advertisement",
-      type = "ODataDemo.Advertisement",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Advertisements",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement getAdvertisement();
-
-  void setAdvertisement(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement _advertisement);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Person.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Person.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Person.java
deleted file mode 100644
index c81d527..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Person.java
+++ /dev/null
@@ -1,99 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Person",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Person
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Person>, org.apache.olingo.ext.proxy.api.StructuredQuery<Person> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
-      type = "ODataDemo.PersonDetail",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "PersonDetails",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail getPersonDetail();
-
-  void setPersonDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail _personDetail);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "PersonDetail",
-        type = "ODataDemo.PersonDetail")
-    org.apache.olingo.ext.proxy.api.Annotatable getPersonDetailAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollection.java
deleted file mode 100644
index 064af50..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface PersonCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollectionComposableInvoker.java
deleted file mode 100644
index 49f8c08..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface PersonCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonCollection.Operations> {
-
-  @Override
-  PersonCollectionComposableInvoker select(String... select);
-
-  @Override
-  PersonCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonComposableInvoker.java
deleted file mode 100644
index 7255bb1..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonComposableInvoker.java
+++ /dev/null
@@ -1,77 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface PersonComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Person, Person.Operations>
-{
-
-  @Override
-  PersonComposableInvoker select(String... select);
-
-  @Override
-  PersonComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
-      type = "ODataDemo.PersonDetail",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "PersonDetails",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail getPersonDetail();
-
-  void setPersonDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail _personDetail);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index 5918747..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetail.java
+++ /dev/null
@@ -1,176 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "PersonDetail",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface PersonDetail
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<PersonDetail>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<PersonDetail> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPersonID();
-
-  void setPersonID(java.lang.Integer _personID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Age",
-      type = "Edm.Byte",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Short getAge();
-
-  void setAge(java.lang.Short _age);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Gender",
-      type = "Edm.Boolean",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Boolean getGender();
-
-  void setGender(java.lang.Boolean _gender);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Phone",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPhone();
-
-  void setPhone(java.lang.String _phone);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
-      type = "ODataDemo.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address getAddress();
-
-  void setAddress(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address _address);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Photo",
-      type = "Edm.Stream",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.EdmStreamValue getPhoto();
-
-  void setPhoto(org.apache.olingo.ext.proxy.api.EdmStreamValue _photo);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Person",
-      type = "ODataDemo.Person",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Persons",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person getPerson();
-
-  void setPerson(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person _person);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getPersonIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Age",
-        type = "Edm.Byte")
-    org.apache.olingo.ext.proxy.api.Annotatable getAgeAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Gender",
-        type = "Edm.Boolean")
-    org.apache.olingo.ext.proxy.api.Annotatable getGenderAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Phone",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getPhoneAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Address",
-        type = "ODataDemo.Address")
-    org.apache.olingo.ext.proxy.api.Annotatable getAddressAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Photo",
-        type = "Edm.Stream")
-    org.apache.olingo.ext.proxy.api.Annotatable getPhotoAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Person",
-        type = "ODataDemo.Person")
-    org.apache.olingo.ext.proxy.api.Annotatable getPersonAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollection.java
deleted file mode 100644
index d672ffc..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface PersonDetailCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetailCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetailCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetailCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollectionComposableInvoker.java
deleted file mode 100644
index e7d62d3..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface PersonDetailCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetailCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetailCollection.Operations> {
-
-  @Override
-  PersonDetailCollectionComposableInvoker select(String... select);
-
-  @Override
-  PersonDetailCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailComposableInvoker.java
deleted file mode 100644
index 2d54c16..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailComposableInvoker.java
+++ /dev/null
@@ -1,137 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface PersonDetailComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<PersonDetail, PersonDetail.Operations>
-{
-
-  @Override
-  PersonDetailComposableInvoker select(String... select);
-
-  @Override
-  PersonDetailComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPersonID();
-
-  void setPersonID(java.lang.Integer _personID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Age",
-      type = "Edm.Byte",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Short getAge();
-
-  void setAge(java.lang.Short _age);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Gender",
-      type = "Edm.Boolean",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Boolean getGender();
-
-  void setGender(java.lang.Boolean _gender);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Phone",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPhone();
-
-  void setPhone(java.lang.String _phone);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
-      type = "ODataDemo.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address getAddress();
-
-  void setAddress(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address _address);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Photo",
-      type = "Edm.Stream",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.EdmStreamValue getPhoto();
-
-  void setPhoto(org.apache.olingo.ext.proxy.api.EdmStreamValue _photo);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Person",
-      type = "ODataDemo.Person",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Persons",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person getPerson();
-
-  void setPerson(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person _person);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Product.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Product.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Product.java
deleted file mode 100644
index cb3ff03..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Product.java
+++ /dev/null
@@ -1,231 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.OperationType;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Product",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Product
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Product>, org.apache.olingo.ext.proxy.api.StructuredQuery<Product> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getDescription();
-
-  void setDescription(java.lang.String _description);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReleaseDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getReleaseDate();
-
-  void setReleaseDate(java.sql.Timestamp _releaseDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DiscontinuedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getDiscontinuedDate();
-
-  void setDiscontinuedDate(java.sql.Timestamp _discontinuedDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Rating",
-      type = "Edm.Int16",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Short getRating();
-
-  void setRating(java.lang.Short _rating);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Price",
-      type = "Edm.Double",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Double getPrice();
-
-  void setPrice(java.lang.Double _price);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Categories",
-      type = "ODataDemo.Category",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Categories",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection getCategories();
-
-  void setCategories(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection _categories);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Supplier",
-      type = "ODataDemo.Supplier",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Suppliers",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier getSupplier();
-
-  void setSupplier(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier _supplier);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductDetail",
-      type = "ODataDemo.ProductDetail",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "ProductDetails",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail getProductDetail();
-
-  void setProductDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail _productDetail);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "Discount",
-        type = OperationType.ACTION,
-        referenceType = java.lang.Double.class, returnType = "Edm.Double")
-        org.apache.olingo.ext.proxy.api.Invoker<java.lang.Double>
-        discount(
-            @Parameter(name = "discountPercentage", type = "Edm.Int32", nullable = false) java.lang.Integer discountPercentage
-        );
-
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Description",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getDescriptionAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ReleaseDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getReleaseDateAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DiscontinuedDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getDiscontinuedDateAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Rating",
-        type = "Edm.Int16")
-    org.apache.olingo.ext.proxy.api.Annotatable getRatingAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Price",
-        type = "Edm.Double")
-    org.apache.olingo.ext.proxy.api.Annotatable getPriceAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Categories",
-        type = "ODataDemo.Category")
-    org.apache.olingo.ext.proxy.api.Annotatable getCategoriesAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Supplier",
-        type = "ODataDemo.Supplier")
-    org.apache.olingo.ext.proxy.api.Annotatable getSupplierAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ProductDetail",
-        type = "ODataDemo.ProductDetail")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductDetailAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollection.java
deleted file mode 100644
index b9e6bb4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface ProductCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollectionComposableInvoker.java
deleted file mode 100644
index 3d6bb61..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface ProductCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection.Operations> {
-
-  @Override
-  ProductCollectionComposableInvoker select(String... select);
-
-  @Override
-  ProductCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductComposableInvoker.java
deleted file mode 100644
index 9968948..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductComposableInvoker.java
+++ /dev/null
@@ -1,172 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface ProductComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Product, Product.Operations>
-{
-
-  @Override
-  ProductComposableInvoker select(String... select);
-
-  @Override
-  ProductComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getDescription();
-
-  void setDescription(java.lang.String _description);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReleaseDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getReleaseDate();
-
-  void setReleaseDate(java.sql.Timestamp _releaseDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DiscontinuedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getDiscontinuedDate();
-
-  void setDiscontinuedDate(java.sql.Timestamp _discontinuedDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Rating",
-      type = "Edm.Int16",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Short getRating();
-
-  void setRating(java.lang.Short _rating);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Price",
-      type = "Edm.Double",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Double getPrice();
-
-  void setPrice(java.lang.Double _price);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Categories",
-      type = "ODataDemo.Category",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Categories",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection getCategories();
-
-  void setCategories(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection _categories);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Supplier",
-      type = "ODataDemo.Supplier",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Suppliers",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier getSupplier();
-
-  void setSupplier(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier _supplier);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductDetail",
-      type = "ODataDemo.ProductDetail",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "ProductDetails",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail getProductDetail();
-
-  void setProductDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail _productDetail);
-
-}


[22/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
deleted file mode 100644
index 0042c94..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
+++ /dev/null
@@ -1,240 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.OperationType;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Person",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Person
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Person>, org.apache.olingo.ext.proxy.api.StructuredQuery<Person> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPersonID();
-
-  void setPersonID(java.lang.Integer _personID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFirstName();
-
-  void setFirstName(java.lang.String _firstName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getLastName();
-
-  void setLastName(java.lang.String _lastName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getMiddleName();
-
-  void setMiddleName(java.lang.String _middleName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address
-      getHomeAddress();
-
-      void
-      setHomeAddress(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address _homeAddress);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
-      type = "Edm.GeographyPoint",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.commons.api.edm.geo.Point getHome();
-
-  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
-
-  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
-
-  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "People",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person getParent();
-
-  void setParent(
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person _parent);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "GetHomeAddress",
-        type = OperationType.FUNCTION,
-        isComposable = true,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress.class,
-        returnType = "Microsoft.Test.OData.Services.ODataWCFService.HomeAddress")
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddressComposableInvoker
-        getHomeAddress(
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "ResetAddress",
-        type = OperationType.ACTION,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person.class,
-        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
-        org.apache.olingo.ext.proxy.api.StructuredInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person>
-        resetAddress(
-            @Parameter(name = "addresses", type = "Collection(Microsoft.Test.OData.Services.ODataWCFService.Address)",
-                nullable = false) org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AddressCollection addresses,
-            @Parameter(name = "index", type = "Edm.Int32", nullable = false) java.lang.Integer index
-        );
-
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getPersonIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getFirstNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getLastNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "MiddleName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getMiddleNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HomeAddress",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
-    org.apache.olingo.ext.proxy.api.Annotatable getHomeAddressAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Home",
-        type = "Edm.GeographyPoint")
-    org.apache.olingo.ext.proxy.api.Annotatable getHomeAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Numbers",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNumbersAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Emails",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getEmailsAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Parent",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Person")
-    org.apache.olingo.ext.proxy.api.Annotatable getParentAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
deleted file mode 100644
index 66ae176..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface PersonCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java
deleted file mode 100644
index 2692c1a..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface PersonCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection.Operations> {
-
-  @Override
-  PersonCollectionComposableInvoker select(String... select);
-
-  @Override
-  PersonCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonComposableInvoker.java
deleted file mode 100644
index d362f63..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonComposableInvoker.java
+++ /dev/null
@@ -1,171 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface PersonComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Person, Person.Operations>
-{
-
-  @Override
-  PersonComposableInvoker select(String... select);
-
-  @Override
-  PersonComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPersonID();
-
-  void setPersonID(java.lang.Integer _personID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFirstName();
-
-  void setFirstName(java.lang.String _firstName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getLastName();
-
-  void setLastName(java.lang.String _lastName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getMiddleName();
-
-  void setMiddleName(java.lang.String _middleName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address
-      getHomeAddress();
-
-      void
-      setHomeAddress(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address _homeAddress);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
-      type = "Edm.GeographyPoint",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.commons.api.edm.geo.Point getHome();
-
-  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
-
-  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
-
-  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "People",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person getParent();
-
-  void setParent(
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person _parent);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
deleted file mode 100644
index 3b0bba0..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
+++ /dev/null
@@ -1,266 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.OperationType;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Product",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Product
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Product>, org.apache.olingo.ext.proxy.api.StructuredQuery<Product> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductID();
-
-  void setProductID(java.lang.Integer _productID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QuantityPerUnit",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getQuantityPerUnit();
-
-  void setQuantityPerUnit(java.lang.String _quantityPerUnit);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UnitPrice",
-      type = "Edm.Single",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Float getUnitPrice();
-
-  void setUnitPrice(java.lang.Float _unitPrice);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QuantityInStock",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getQuantityInStock();
-
-  void setQuantityInStock(java.lang.Integer _quantityInStock);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Discontinued",
-      type = "Edm.Boolean",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Boolean getDiscontinued();
-
-  void setDiscontinued(java.lang.Boolean _discontinued);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UserAccess",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel
-      getUserAccess();
-
-      void
-      setUserAccess(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel _userAccess);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SkinColor",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color getSkinColor();
-
-      void
-      setSkinColor(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color _skinColor);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CoverColors",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-      org.apache.olingo.ext.proxy.api.PrimitiveCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color>
-      getCoverColors();
-
-      void
-      setCoverColors(
-          org.apache.olingo.ext.proxy.api.PrimitiveCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color> _coverColors);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Details",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "ProductDetails",
-      containsTarget = false)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection
-      getDetails();
-
-      void
-      setDetails(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection _details);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "GetProductDetails",
-        type = OperationType.FUNCTION,
-        isComposable = true,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection.class,
-        returnType = "Collection(Microsoft.Test.OData.Services.ODataWCFService.ProductDetail)")
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollectionComposableInvoker
-        getProductDetails(
-            @Parameter(name = "count", type = "Edm.Int32", nullable = true) java.lang.Integer count
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "AddAccessRight",
-        type = OperationType.ACTION,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel.class,
-        returnType = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel")
-        org.apache.olingo.ext.proxy.api.Invoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel>
-        addAccessRight(
-            @Parameter(name = "accessRight", type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
-                nullable = true) org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel accessRight
-        );
-
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "QuantityPerUnit",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getQuantityPerUnitAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "UnitPrice",
-        type = "Edm.Single")
-    org.apache.olingo.ext.proxy.api.Annotatable getUnitPriceAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "QuantityInStock",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getQuantityInStockAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Discontinued",
-        type = "Edm.Boolean")
-    org.apache.olingo.ext.proxy.api.Annotatable getDiscontinuedAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "UserAccess",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel")
-    org.apache.olingo.ext.proxy.api.Annotatable getUserAccessAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "SkinColor",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Color")
-    org.apache.olingo.ext.proxy.api.Annotatable getSkinColorAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CoverColors",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Color")
-    org.apache.olingo.ext.proxy.api.Annotatable getCoverColorsAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Details",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail")
-    org.apache.olingo.ext.proxy.api.Annotatable getDetailsAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java
deleted file mode 100644
index 71e88a4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java
+++ /dev/null
@@ -1,53 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-import org.apache.olingo.ext.proxy.api.OperationType;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-
-public interface ProductCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "Discount",
-        type = OperationType.ACTION,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection.class,
-        returnType = "Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)")
-        org.apache.olingo.ext.proxy.api.StructuredCollectionInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection>
-        discount(
-            @Parameter(name = "percentage", type = "Edm.Int32", nullable = false) java.lang.Integer percentage
-        );
-
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollectionComposableInvoker.java
deleted file mode 100644
index 21f811d..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface ProductCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection.Operations> {
-
-  @Override
-  ProductCollectionComposableInvoker select(String... select);
-
-  @Override
-  ProductCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductComposableInvoker.java
deleted file mode 100644
index cab441d..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductComposableInvoker.java
+++ /dev/null
@@ -1,193 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface ProductComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Product, Product.Operations>
-{
-
-  @Override
-  ProductComposableInvoker select(String... select);
-
-  @Override
-  ProductComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductID();
-
-  void setProductID(java.lang.Integer _productID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QuantityPerUnit",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getQuantityPerUnit();
-
-  void setQuantityPerUnit(java.lang.String _quantityPerUnit);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UnitPrice",
-      type = "Edm.Single",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Float getUnitPrice();
-
-  void setUnitPrice(java.lang.Float _unitPrice);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QuantityInStock",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getQuantityInStock();
-
-  void setQuantityInStock(java.lang.Integer _quantityInStock);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Discontinued",
-      type = "Edm.Boolean",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Boolean getDiscontinued();
-
-  void setDiscontinued(java.lang.Boolean _discontinued);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UserAccess",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel
-      getUserAccess();
-
-      void
-      setUserAccess(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel _userAccess);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SkinColor",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color getSkinColor();
-
-      void
-      setSkinColor(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color _skinColor);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CoverColors",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-      org.apache.olingo.ext.proxy.api.PrimitiveCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color>
-      getCoverColors();
-
-      void
-      setCoverColors(
-          org.apache.olingo.ext.proxy.api.PrimitiveCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color> _coverColors);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Details",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "ProductDetails",
-      containsTarget = false)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection
-      getDetails();
-
-      void
-      setDetails(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection _details);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
deleted file mode 100644
index 41b78cc..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
+++ /dev/null
@@ -1,172 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.OperationType;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
-
-@KeyRef(ProductDetailKey.class)
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductDetail",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface ProductDetail
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<ProductDetail>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<ProductDetail> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductID();
-
-  void setProductID(java.lang.Integer _productID);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductDetailID();
-
-  void setProductDetailID(java.lang.Integer _productDetailID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getProductName();
-
-  void setProductName(java.lang.String _productName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getDescription();
-
-  void setDescription(java.lang.String _description);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "RelatedProduct",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product
-      getRelatedProduct();
-
-      void
-      setRelatedProduct(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product _relatedProduct);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Reviews",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductReview",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "ProductReviews",
-      containsTarget = false)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewCollection
-      getReviews();
-
-      void
-      setReviews(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewCollection _reviews);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "GetRelatedProduct",
-        type = OperationType.FUNCTION,
-        isComposable = true,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product.class,
-        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Product")
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductComposableInvoker
-        getRelatedProduct(
-        );
-
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductDetailID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductDetailIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Description",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getDescriptionAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "RelatedProduct",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Product")
-    org.apache.olingo.ext.proxy.api.Annotatable getRelatedProductAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Reviews",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.ProductReview")
-    org.apache.olingo.ext.proxy.api.Annotatable getReviewsAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java
deleted file mode 100644
index 92783ad..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface ProductDetailCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetail, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollectionComposableInvoker.java
deleted file mode 100644
index 3c2c40a..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface ProductDetailCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection.Operations> {
-
-  @Override
-  ProductDetailCollectionComposableInvoker select(String... select);
-
-  @Override
-  ProductDetailCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailComposableInvoker.java
deleted file mode 100644
index de647a9..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailComposableInvoker.java
+++ /dev/null
@@ -1,124 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface ProductDetailComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<ProductDetail, ProductDetail.Operations>
-{
-
-  @Override
-  ProductDetailComposableInvoker select(String... select);
-
-  @Override
-  ProductDetailComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductID();
-
-  void setProductID(java.lang.Integer _productID);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductDetailID();
-
-  void setProductDetailID(java.lang.Integer _productDetailID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getProductName();
-
-  void setProductName(java.lang.String _productName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getDescription();
-
-  void setDescription(java.lang.String _description);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "RelatedProduct",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product
-      getRelatedProduct();
-
-      void
-      setRelatedProduct(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product _relatedProduct);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Reviews",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductReview",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "ProductReviews",
-      containsTarget = false)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewCollection
-      getReviews();
-
-      void
-      setReviews(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewCollection _reviews);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailKey.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailKey.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailKey.java
deleted file mode 100644
index 19f0f1b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailKey.java
+++ /dev/null
@@ -1,53 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntityKey;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
-
-@org.apache.olingo.ext.proxy.api.annotations.CompoundKey
-public class ProductDetailKey extends AbstractEntityKey {
-
-  private static final long serialVersionUID = -6268946147639590355L;
-
-  private java.lang.Integer _productID;
-
-  @CompoundKeyElement(name = "ProductID", position = 0)
-  public java.lang.Integer getProductID() {
-    return _productID;
-  }
-
-  public void setProductID(final java.lang.Integer _productID) {
-    this._productID = _productID;
-  }
-
-  private java.lang.Integer _productDetailID;
-
-  @CompoundKeyElement(name = "ProductDetailID", position = 1)
-  public java.lang.Integer getProductDetailID() {
-    return _productDetailID;
-  }
-
-  public void setProductDetailID(final java.lang.Integer _productDetailID) {
-    this._productDetailID = _productDetailID;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
deleted file mode 100644
index fa433ed..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
+++ /dev/null
@@ -1,168 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@KeyRef(ProductReviewKey.class)
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductReview",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface ProductReview
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<ProductReview>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<ProductReview> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductID();
-
-  void setProductID(java.lang.Integer _productID);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductDetailID();
-
-  void setProductDetailID(java.lang.Integer _productDetailID);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReviewTitle",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getReviewTitle();
-
-  void setReviewTitle(java.lang.String _reviewTitle);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "RevisionID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getRevisionID();
-
-  void setRevisionID(java.lang.Integer _revisionID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Comment",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getComment();
-
-  void setComment(java.lang.String _comment);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Author",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getAuthor();
-
-  void setAuthor(java.lang.String _author);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductDetailID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductDetailIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ReviewTitle",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getReviewTitleAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "RevisionID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getRevisionIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Comment",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getCommentAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Author",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getAuthorAnnotations();
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java
deleted file mode 100644
index bdbc9cd..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface ProductReviewCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReview, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollectionComposableInvoker.java
deleted file mode 100644
index 1d584c5..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface ProductReviewCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewCollection.Operations> {
-
-  @Override
-  ProductReviewCollectionComposableInvoker select(String... select);
-
-  @Override
-  ProductReviewCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewComposableInvoker.java
deleted file mode 100644
index dea9b42..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewComposableInvoker.java
+++ /dev/null
@@ -1,130 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface ProductReviewComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<ProductReview, ProductReview.Operations>
-{
-
-  @Override
-  ProductReviewComposableInvoker select(String... select);
-
-  @Override
-  ProductReviewComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductID();
-
-  void setProductID(java.lang.Integer _productID);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductDetailID();
-
-  void setProductDetailID(java.lang.Integer _productDetailID);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReviewTitle",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getReviewTitle();
-
-  void setReviewTitle(java.lang.String _reviewTitle);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "RevisionID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getRevisionID();
-
-  void setRevisionID(java.lang.Integer _revisionID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Comment",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getComment();
-
-  void setComment(java.lang.String _comment);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Author",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getAuthor();
-
-  void setAuthor(java.lang.String _author);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewKey.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewKey.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewKey.java
deleted file mode 100644
index f02b3e4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewKey.java
+++ /dev/null
@@ -1,75 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntityKey;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
-
-@org.apache.olingo.ext.proxy.api.annotations.CompoundKey
-public class ProductReviewKey extends AbstractEntityKey {
-
-  private static final long serialVersionUID = 5483520057777167030L;
-
-  private java.lang.Integer _productID;
-
-  @CompoundKeyElement(name = "ProductID", position = 0)
-  public java.lang.Integer getProductID() {
-    return _productID;
-  }
-
-  public void setProductID(final java.lang.Integer _productID) {
-    this._productID = _productID;
-  }
-
-  private java.lang.Integer _productDetailID;
-
-  @CompoundKeyElement(name = "ProductDetailID", position = 1)
-  public java.lang.Integer getProductDetailID() {
-    return _productDetailID;
-  }
-
-  public void setProductDetailID(final java.lang.Integer _productDetailID) {
-    this._productDetailID = _productDetailID;
-  }
-
-  private java.lang.String _reviewTitle;
-
-  @CompoundKeyElement(name = "ReviewTitle", position = 2)
-  public java.lang.String getReviewTitle() {
-    return _reviewTitle;
-  }
-
-  public void setReviewTitle(final java.lang.String _reviewTitle) {
-    this._reviewTitle = _reviewTitle;
-  }
-
-  private java.lang.Integer _revisionID;
-
-  @CompoundKeyElement(name = "RevisionID", position = 3)
-  public java.lang.Integer getRevisionID() {
-    return _revisionID;
-  }
-
-  public void setRevisionID(final java.lang.Integer _revisionID) {
-    this._revisionID = _revisionID;
-  }
-}


[55/55] [abbrv] olingo-odata4 git commit: [OLINGO-562] Merge branch 'master' into OLINGO-562_SpringExtension

Posted by mi...@apache.org.
[OLINGO-562] Merge branch 'master' into OLINGO-562_SpringExtension


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: 164da42d8eaf2c9b0ab94c0730183be313d9e938
Parents: bb1dbba e92f660
Author: mibo <mi...@apache.org>
Authored: Tue Sep 8 18:37:08 2015 +0200
Committer: mibo <mi...@apache.org>
Committed: Tue Sep 8 18:37:08 2015 +0200

----------------------------------------------------------------------
 dist/server-lib/src/main/resources/NOTICE       |   12 -
 .../olingo/ext/proxy/AbstractService.java       |    6 +-
 .../olingo/ext/proxy/api/ComplexCollection.java |    2 +-
 .../olingo/ext/proxy/api/ComplexType.java       |    2 +-
 .../olingo/ext/proxy/api/EntityCollection.java  |    2 +-
 .../apache/olingo/ext/proxy/api/EntityType.java |    2 +-
 .../olingo/ext/proxy/api/NoResultException.java |   31 -
 .../ext/proxy/api/NonUniqueResultException.java |   31 -
 .../ext/proxy/api/ODataFlushException.java      |    2 +-
 .../ext/proxy/api/ODataResponseError.java       |    2 +-
 .../ext/proxy/api/StructuredCollection.java     |    2 +-
 .../proxy/api/StructuredComposableInvoker.java  |    2 +-
 .../olingo/ext/proxy/api/StructuredInvoker.java |    2 +-
 .../EntityContainerInvocationHandler.java       |    3 +-
 .../proxy/commons/EntityInvocationHandler.java  |    6 +-
 .../commons/EntitySetInvocationHandler.java     |    6 +-
 .../NonTransactionalPersistenceManagerImpl.java |    2 +-
 .../TransactionalPersistenceManagerImpl.java    |    6 +-
 .../ext/config/edm/GenericEdmProvider.java      |  417 ++--
 ext/karaf/karaf-features/pom.xml                |   81 +
 .../src/main/resources/features.xml             |   59 +
 ext/karaf/karaf-fit/pom.xml                     |  152 ++
 .../apache/olingo/osgi/itests/BundlesTest.java  |   55 +
 .../osgi/itests/OlingoOSGiTestSupport.java      |  134 ++
 .../osgi/itests/server/CarServiceTest.java      |  105 +
 ext/karaf/pom.xml                               |   41 +
 .../olingo/ext/pojogen/AbstractPOJOGenMojo.java |    4 +-
 .../olingo/ext/pojogen/AbstractUtility.java     |    8 +-
 ext/pom.xml                                     |    6 +
 fit/pom.xml                                     |   52 +-
 fit/src/it/demo/pom.xml                         |  107 +
 fit/src/it/demo/verify.groovy                   |   20 +
 fit/src/it/demoV4/pom.xml                       |  107 -
 fit/src/it/demoV4/verify.groovy                 |   20 -
 fit/src/it/openType/pom.xml                     |  107 +
 fit/src/it/openType/verify.groovy               |   20 +
 fit/src/it/openTypeV4/pom.xml                   |  107 -
 fit/src/it/openTypeV4/verify.groovy             |   20 -
 fit/src/it/staticService/pom.xml                |  107 +
 fit/src/it/staticService/verify.groovy          |   20 +
 fit/src/it/staticServiceV4/pom.xml              |  107 -
 fit/src/it/staticServiceV4/verify.groovy        |   20 -
 .../org/apache/olingo/fit/AbstractServices.java |   16 +-
 .../main/java/org/apache/olingo/fit/Demo.java   |  174 ++
 .../org/apache/olingo/fit/KeyAsSegment.java     |  159 ++
 .../java/org/apache/olingo/fit/NorthWind.java   |   45 +
 .../org/apache/olingo/fit/NorthWindExt.java     |   46 +
 .../main/java/org/apache/olingo/fit/OAuth2.java |   35 +
 .../java/org/apache/olingo/fit/OpenType.java    |  140 ++
 .../java/org/apache/olingo/fit/Services.java    | 1448 ++++++++++++++
 .../main/java/org/apache/olingo/fit/V4Demo.java |  174 --
 .../org/apache/olingo/fit/V4KeyAsSegment.java   |  159 --
 .../java/org/apache/olingo/fit/V4NorthWind.java |   45 -
 .../org/apache/olingo/fit/V4NorthWindExt.java   |   46 -
 .../java/org/apache/olingo/fit/V4OAuth2.java    |   35 -
 .../java/org/apache/olingo/fit/V4OpenType.java  |  140 --
 .../java/org/apache/olingo/fit/V4Services.java  | 1448 --------------
 .../org/apache/olingo/fit/V4Vocabularies.java   |   83 -
 .../org/apache/olingo/fit/Vocabularies.java     |   81 +
 .../fit/serializer/FITAtomDeserializer.java     |    2 +-
 .../olingo/fit/server/TomcatTestServer.java     |   51 +
 .../olingo/fit/utils/AbstractUtilities.java     |   17 +-
 .../org/apache/olingo/fit/utils/FSManager.java  |    9 +-
 .../olingo/fit/AbstractBaseTestITCase.java      |   33 +-
 .../olingo/fit/base/AbstractTestITCase.java     |  172 ++
 .../apache/olingo/fit/base/AsyncTestITCase.java |  168 ++
 .../olingo/fit/base/AuthBatchTestITCase.java    |  119 ++
 .../apache/olingo/fit/base/BatchTestITCase.java |  647 ++++++
 .../base/BoundOperationInvokeTestITCase.java    |  459 +++++
 .../olingo/fit/base/ConformanceTestITCase.java  |  415 ++++
 .../apache/olingo/fit/base/DeltaTestITCase.java |   86 +
 .../olingo/fit/base/DerivedTypeTestITCase.java  |  150 ++
 .../olingo/fit/base/EntityCreateTestITCase.java |  191 ++
 .../fit/base/EntityRetrieveTestITCase.java      |  378 ++++
 .../olingo/fit/base/EntitySetTestITCase.java    |  178 ++
 .../olingo/fit/base/EntityUpdateTestITCase.java |  185 ++
 .../fit/base/ErrorResponseTestITCase.java       |   62 +
 .../fit/base/FilterFactoryTestITCase.java       |   62 +
 .../base/JSONFormatConformanceTestITCase.java   |  333 ++++
 .../olingo/fit/base/KeyAsSegmentTestITCase.java |  127 ++
 .../olingo/fit/base/MediaEntityTestITCase.java  |  183 ++
 .../olingo/fit/base/MetadataTestITCase.java     |  146 ++
 .../olingo/fit/base/OAuth2TestITCase.java       |  145 ++
 .../olingo/fit/base/OpenTypeTestITCase.java     |  190 ++
 .../base/OperationImportInvokeTestITCase.java   |  294 +++
 .../olingo/fit/base/PropertyTestITCase.java     |  211 ++
 .../fit/base/PropertyValueTestITCase.java       |  138 ++
 .../olingo/fit/base/QueryOptionsTestITCase.java |  246 +++
 .../fit/base/ServiceDocumentTestITCase.java     |   63 +
 .../olingo/fit/base/SingletonTestITCase.java    |  135 ++
 .../fit/proxy/APIBasicDesignTestITCase.java     |  626 ++++++
 .../olingo/fit/proxy/AbstractTestITCase.java    |  149 ++
 .../olingo/fit/proxy/AsyncTestITCase.java       |  103 +
 .../fit/proxy/AuthEntityCreateTestITCase.java   |   52 +
 .../fit/proxy/AuthEntityRetrieveTestITCase.java |   37 +
 .../proxy/BoundOperationInvokeTestITCase.java   |  121 ++
 .../olingo/fit/proxy/ContextTestITCase.java     |  101 +
 .../olingo/fit/proxy/DerivedTypeTestITCase.java |   95 +
 .../fit/proxy/EntityCreateTestITCase.java       |  382 ++++
 .../fit/proxy/EntityRetrieveTestITCase.java     |  173 ++
 .../olingo/fit/proxy/EntitySetTestITCase.java   |   76 +
 .../fit/proxy/EntityUpdateTestITCase.java       |  193 ++
 .../olingo/fit/proxy/FilterTestITCase.java      |  101 +
 .../fit/proxy/KeyAsSegmentTestITCase.java       |   73 +
 .../olingo/fit/proxy/MediaEntityTestITCase.java |  121 ++
 ...TransactionalAuthEntityCreateTestITCase.java |   51 +
 .../NonTransactionalEntityCreateTestITCase.java |   49 +
 .../NonTransactionalEntityUpdateTestITCase.java |   48 +
 .../NonTransactionalMediaEntityTestITCase.java  |   49 +
 .../olingo/fit/proxy/OpenTypeTestITCase.java    |  156 ++
 .../proxy/OperationImportInvokeTestITCase.java  |  107 +
 .../olingo/fit/proxy/PropertyTestITCase.java    |   57 +
 .../olingo/fit/proxy/SingletonTestITCase.java   |   77 +
 .../UnauthorizedEntityCreateTestITCase.java     |   56 +
 .../apache/olingo/fit/proxy/demo/Service.java   |  138 ++
 .../proxy/demo/odatademo/Advertisements.java    |   40 +
 .../fit/proxy/demo/odatademo/Categories.java    |   40 +
 .../fit/proxy/demo/odatademo/DemoService.java   |   79 +
 .../fit/proxy/demo/odatademo/PersonDetails.java |   40 +
 .../fit/proxy/demo/odatademo/Persons.java       |   40 +
 .../proxy/demo/odatademo/ProductDetails.java    |   40 +
 .../fit/proxy/demo/odatademo/Products.java      |   40 +
 .../fit/proxy/demo/odatademo/Suppliers.java     |   40 +
 .../fit/proxy/demo/odatademo/package-info.java  |   20 +
 .../fit/proxy/demo/odatademo/types/Address.java |  140 ++
 .../demo/odatademo/types/AddressCollection.java |   41 +
 .../AddressCollectionComposableInvoker.java     |   32 +
 .../types/AddressComposableInvoker.java         |  108 +
 .../demo/odatademo/types/Advertisement.java     |  123 ++
 .../types/AdvertisementCollection.java          |   41 +
 ...dvertisementCollectionComposableInvoker.java |   32 +
 .../types/AdvertisementComposableInvoker.java   |   96 +
 .../proxy/demo/odatademo/types/Category.java    |  100 +
 .../odatademo/types/CategoryCollection.java     |   41 +
 .../CategoryCollectionComposableInvoker.java    |   32 +
 .../types/CategoryComposableInvoker.java        |   78 +
 .../proxy/demo/odatademo/types/Customer.java    |  146 ++
 .../odatademo/types/CustomerCollection.java     |   41 +
 .../CustomerCollectionComposableInvoker.java    |   32 +
 .../types/CustomerComposableInvoker.java        |   92 +
 .../proxy/demo/odatademo/types/Employee.java    |  184 ++
 .../odatademo/types/EmployeeCollection.java     |   41 +
 .../EmployeeCollectionComposableInvoker.java    |   32 +
 .../types/EmployeeComposableInvoker.java        |  122 ++
 .../demo/odatademo/types/FeaturedProduct.java   |  285 +++
 .../types/FeaturedProductCollection.java        |   41 +
 ...turedProductCollectionComposableInvoker.java |   32 +
 .../types/FeaturedProductComposableInvoker.java |  182 ++
 .../fit/proxy/demo/odatademo/types/Person.java  |   99 +
 .../demo/odatademo/types/PersonCollection.java  |   41 +
 .../PersonCollectionComposableInvoker.java      |   32 +
 .../types/PersonComposableInvoker.java          |   77 +
 .../demo/odatademo/types/PersonDetail.java      |  176 ++
 .../odatademo/types/PersonDetailCollection.java |   41 +
 ...PersonDetailCollectionComposableInvoker.java |   32 +
 .../types/PersonDetailComposableInvoker.java    |  137 ++
 .../fit/proxy/demo/odatademo/types/Product.java |  231 +++
 .../demo/odatademo/types/ProductCollection.java |   41 +
 .../ProductCollectionComposableInvoker.java     |   32 +
 .../types/ProductComposableInvoker.java         |  172 ++
 .../demo/odatademo/types/ProductDetail.java     |  100 +
 .../types/ProductDetailCollection.java          |   41 +
 ...roductDetailCollectionComposableInvoker.java |   32 +
 .../types/ProductDetailComposableInvoker.java   |   77 +
 .../proxy/demo/odatademo/types/Supplier.java    |  156 ++
 .../odatademo/types/SupplierCollection.java     |   41 +
 .../SupplierCollectionComposableInvoker.java    |   32 +
 .../types/SupplierComposableInvoker.java        |  122 ++
 .../demo/odatademo/types/package-info.java      |   20 +
 .../olingo/fit/proxy/opentype/Service.java      |  139 ++
 .../opentypesservice/DefaultContainer.java      |   61 +
 .../odata/services/opentypesservice/Row.java    |   40 +
 .../services/opentypesservice/RowIndex.java     |   40 +
 .../services/opentypesservice/package-info.java |   20 +
 .../opentypesservice/types/AccountInfo.java     |   84 +
 .../types/AccountInfoCollection.java            |   41 +
 .../AccountInfoCollectionComposableInvoker.java |   32 +
 .../types/AccountInfoComposableInvoker.java     |   66 +
 .../services/opentypesservice/types/Color.java  |   44 +
 .../opentypesservice/types/ContactDetails.java  |  273 +++
 .../types/ContactDetailsCollection.java         |   41 +
 ...ntactDetailsCollectionComposableInvoker.java |   32 +
 .../types/ContactDetailsComposableInvoker.java  |  213 ++
 .../opentypesservice/types/IndexedRow.java      |   93 +
 .../types/IndexedRowCollection.java             |   41 +
 .../IndexedRowCollectionComposableInvoker.java  |   32 +
 .../types/IndexedRowComposableInvoker.java      |   53 +
 .../services/opentypesservice/types/Row.java    |   68 +
 .../opentypesservice/types/RowCollection.java   |   41 +
 .../types/RowCollectionComposableInvoker.java   |   32 +
 .../types/RowComposableInvoker.java             |   53 +
 .../opentypesservice/types/RowIndex.java        |   82 +
 .../types/RowIndexCollection.java               |   41 +
 .../RowIndexCollectionComposableInvoker.java    |   32 +
 .../types/RowIndexComposableInvoker.java        |   64 +
 .../opentypesservice/types/package-info.java    |   20 +
 .../olingo/fit/proxy/staticservice/Service.java |  245 +++
 .../services/odatawcfservice/Accounts.java      |   41 +
 .../services/odatawcfservice/Customers.java     |   41 +
 .../services/odatawcfservice/Departments.java   |   42 +
 .../services/odatawcfservice/Employees.java     |   41 +
 .../odatawcfservice/InMemoryEntities.java       |  226 +++
 .../services/odatawcfservice/OrderDetails.java  |   43 +
 .../odata/services/odatawcfservice/Orders.java  |   41 +
 .../odata/services/odatawcfservice/People.java  |   41 +
 .../odatawcfservice/ProductDetails.java         |   43 +
 .../odatawcfservice/ProductReviews.java         |   43 +
 .../services/odatawcfservice/Products.java      |   41 +
 .../services/odatawcfservice/StoredPIs.java     |   41 +
 .../odatawcfservice/SubscriptionTemplates.java  |   42 +
 .../services/odatawcfservice/package-info.java  |   20 +
 .../odatawcfservice/types/AccessLevel.java      |   46 +
 .../services/odatawcfservice/types/Account.java |  226 +++
 .../types/AccountCollection.java                |   41 +
 .../AccountCollectionComposableInvoker.java     |   32 +
 .../types/AccountComposableInvoker.java         |  156 ++
 .../odatawcfservice/types/AccountInfo.java      |   84 +
 .../types/AccountInfoCollection.java            |   41 +
 .../AccountInfoCollectionComposableInvoker.java |   32 +
 .../types/AccountInfoComposableInvoker.java     |   66 +
 .../services/odatawcfservice/types/Address.java |  102 +
 .../types/AddressCollection.java                |   41 +
 .../AddressCollectionComposableInvoker.java     |   32 +
 .../types/AddressComposableInvoker.java         |   78 +
 .../services/odatawcfservice/types/Asset.java   |  105 +
 .../odatawcfservice/types/AssetCollection.java  |   41 +
 .../types/AssetCollectionComposableInvoker.java |   32 +
 .../types/AssetComposableInvoker.java           |   82 +
 .../services/odatawcfservice/types/Club.java    |   86 +
 .../odatawcfservice/types/ClubCollection.java   |   41 +
 .../types/ClubCollectionComposableInvoker.java  |   32 +
 .../types/ClubComposableInvoker.java            |   67 +
 .../services/odatawcfservice/types/Color.java   |   44 +
 .../services/odatawcfservice/types/Company.java |  232 +++
 .../odatawcfservice/types/CompanyAddress.java   |  136 ++
 .../types/CompanyAddressCollection.java         |   41 +
 ...mpanyAddressCollectionComposableInvoker.java |   32 +
 .../types/CompanyAddressComposableInvoker.java  |   93 +
 .../odatawcfservice/types/CompanyCategory.java  |   45 +
 .../types/CompanyCollection.java                |   41 +
 .../CompanyCollectionComposableInvoker.java     |   32 +
 .../types/CompanyComposableInvoker.java         |  170 ++
 .../odatawcfservice/types/CreditCardPI.java     |  303 +++
 .../types/CreditCardPICollection.java           |   41 +
 ...CreditCardPICollectionComposableInvoker.java |   32 +
 .../types/CreditCardPIComposableInvoker.java    |  206 ++
 .../odatawcfservice/types/CreditRecord.java     |  125 ++
 .../types/CreditRecordCollection.java           |   41 +
 ...CreditRecordCollectionComposableInvoker.java |   32 +
 .../types/CreditRecordComposableInvoker.java    |   97 +
 .../odatawcfservice/types/Customer.java         |  357 ++++
 .../types/CustomerCollection.java               |   41 +
 .../CustomerCollectionComposableInvoker.java    |   32 +
 .../types/CustomerComposableInvoker.java        |  241 +++
 .../odatawcfservice/types/Department.java       |  120 ++
 .../types/DepartmentCollection.java             |   41 +
 .../DepartmentCollectionComposableInvoker.java  |   32 +
 .../types/DepartmentComposableInvoker.java      |   94 +
 .../odatawcfservice/types/Employee.java         |  321 +++
 .../types/EmployeeCollection.java               |   41 +
 .../EmployeeCollectionComposableInvoker.java    |   32 +
 .../types/EmployeeComposableInvoker.java        |  213 ++
 .../odatawcfservice/types/GiftCard.java         |  152 ++
 .../types/GiftCardCollection.java               |   41 +
 .../GiftCardCollectionComposableInvoker.java    |   32 +
 .../types/GiftCardComposableInvoker.java        |  112 ++
 .../odatawcfservice/types/HomeAddress.java      |  136 ++
 .../types/HomeAddressCollection.java            |   41 +
 .../HomeAddressCollectionComposableInvoker.java |   32 +
 .../types/HomeAddressComposableInvoker.java     |   93 +
 .../services/odatawcfservice/types/IsBoss.java  |   31 +
 .../odatawcfservice/types/LabourUnion.java      |   87 +
 .../types/LabourUnionCollection.java            |   41 +
 .../LabourUnionCollectionComposableInvoker.java |   32 +
 .../types/LabourUnionComposableInvoker.java     |   67 +
 .../services/odatawcfservice/types/Order.java   |  174 ++
 .../odatawcfservice/types/OrderCollection.java  |   41 +
 .../types/OrderCollectionComposableInvoker.java |   32 +
 .../types/OrderComposableInvoker.java           |  136 ++
 .../odatawcfservice/types/OrderDetail.java      |  180 ++
 .../types/OrderDetailCollection.java            |   41 +
 .../OrderDetailCollectionComposableInvoker.java |   32 +
 .../types/OrderDetailComposableInvoker.java     |  139 ++
 .../odatawcfservice/types/OrderDetailKey.java   |   53 +
 .../types/PaymentInstrument.java                |  165 ++
 .../types/PaymentInstrumentCollection.java      |   41 +
 ...ntInstrumentCollectionComposableInvoker.java |   32 +
 .../PaymentInstrumentComposableInvoker.java     |  132 ++
 .../services/odatawcfservice/types/Person.java  |  240 +++
 .../odatawcfservice/types/PersonCollection.java |   41 +
 .../PersonCollectionComposableInvoker.java      |   32 +
 .../types/PersonComposableInvoker.java          |  171 ++
 .../services/odatawcfservice/types/Product.java |  266 +++
 .../types/ProductCollection.java                |   53 +
 .../ProductCollectionComposableInvoker.java     |   32 +
 .../types/ProductComposableInvoker.java         |  193 ++
 .../odatawcfservice/types/ProductDetail.java    |  172 ++
 .../types/ProductDetailCollection.java          |   41 +
 ...roductDetailCollectionComposableInvoker.java |   32 +
 .../types/ProductDetailComposableInvoker.java   |  124 ++
 .../odatawcfservice/types/ProductDetailKey.java |   53 +
 .../odatawcfservice/types/ProductReview.java    |  168 ++
 .../types/ProductReviewCollection.java          |   41 +
 ...roductReviewCollectionComposableInvoker.java |   32 +
 .../types/ProductReviewComposableInvoker.java   |  130 ++
 .../odatawcfservice/types/ProductReviewKey.java |   75 +
 .../odatawcfservice/types/PublicCompany.java    |  345 ++++
 .../types/PublicCompanyCollection.java          |   41 +
 ...ublicCompanyCollectionComposableInvoker.java |   32 +
 .../types/PublicCompanyComposableInvoker.java   |  232 +++
 .../odatawcfservice/types/Statement.java        |  124 ++
 .../types/StatementCollection.java              |   41 +
 .../StatementCollectionComposableInvoker.java   |   32 +
 .../types/StatementComposableInvoker.java       |   97 +
 .../odatawcfservice/types/StoredPI.java         |  124 ++
 .../types/StoredPICollection.java               |   41 +
 .../StoredPICollectionComposableInvoker.java    |   32 +
 .../types/StoredPIComposableInvoker.java        |   97 +
 .../odatawcfservice/types/Subscription.java     |  144 ++
 .../types/SubscriptionCollection.java           |   41 +
 ...SubscriptionCollectionComposableInvoker.java |   32 +
 .../types/SubscriptionComposableInvoker.java    |  112 ++
 .../odatawcfservice/types/package-info.java     |   20 +
 .../fit/proxy/v4/APIBasicDesignTestITCase.java  |  622 ------
 .../olingo/fit/proxy/v4/AbstractTestITCase.java |  149 --
 .../olingo/fit/proxy/v4/AsyncTestITCase.java    |  101 -
 .../proxy/v4/AuthEntityCreateTestITCase.java    |   52 -
 .../proxy/v4/AuthEntityRetrieveTestITCase.java  |   37 -
 .../v4/BoundOperationInvokeTestITCase.java      |  119 --
 .../olingo/fit/proxy/v4/ContextTestITCase.java  |  101 -
 .../fit/proxy/v4/DerivedTypeTestITCase.java     |   94 -
 .../fit/proxy/v4/EntityCreateTestITCase.java    |  380 ----
 .../fit/proxy/v4/EntityRetrieveTestITCase.java  |  173 --
 .../fit/proxy/v4/EntitySetTestITCase.java       |   75 -
 .../fit/proxy/v4/EntityUpdateTestITCase.java    |  193 --
 .../olingo/fit/proxy/v4/FilterTestITCase.java   |  101 -
 .../fit/proxy/v4/KeyAsSegmentTestITCase.java    |   73 -
 .../fit/proxy/v4/MediaEntityTestITCase.java     |  121 --
 ...TransactionalAuthEntityCreateTestITCase.java |   51 -
 .../NonTransactionalEntityCreateTestITCase.java |   49 -
 .../NonTransactionalEntityUpdateTestITCase.java |   48 -
 .../NonTransactionalMediaEntityTestITCase.java  |   49 -
 .../olingo/fit/proxy/v4/OpenTypeTestITCase.java |  156 --
 .../v4/OperationImportInvokeTestITCase.java     |  104 -
 .../olingo/fit/proxy/v4/PropertyTestITCase.java |   57 -
 .../fit/proxy/v4/SingletonTestITCase.java       |   77 -
 .../v4/UnauthorizedEntityCreateTestITCase.java  |   56 -
 .../olingo/fit/proxy/v4/demo/Service.java       |  127 --
 .../proxy/v4/demo/odatademo/Advertisements.java |   38 -
 .../fit/proxy/v4/demo/odatademo/Categories.java |   38 -
 .../proxy/v4/demo/odatademo/DemoService.java    |   79 -
 .../proxy/v4/demo/odatademo/PersonDetails.java  |   38 -
 .../fit/proxy/v4/demo/odatademo/Persons.java    |   38 -
 .../proxy/v4/demo/odatademo/ProductDetails.java |   38 -
 .../fit/proxy/v4/demo/odatademo/Products.java   |   38 -
 .../fit/proxy/v4/demo/odatademo/Suppliers.java  |   38 -
 .../proxy/v4/demo/odatademo/package-info.java   |   20 -
 .../proxy/v4/demo/odatademo/types/Address.java  |  140 --
 .../demo/odatademo/types/AddressCollection.java |   41 -
 .../AddressCollectionComposableInvoker.java     |   32 -
 .../types/AddressComposableInvoker.java         |  108 -
 .../v4/demo/odatademo/types/Advertisement.java  |  123 --
 .../types/AdvertisementCollection.java          |   41 -
 ...dvertisementCollectionComposableInvoker.java |   32 -
 .../types/AdvertisementComposableInvoker.java   |   96 -
 .../proxy/v4/demo/odatademo/types/Category.java |  100 -
 .../odatademo/types/CategoryCollection.java     |   41 -
 .../CategoryCollectionComposableInvoker.java    |   32 -
 .../types/CategoryComposableInvoker.java        |   78 -
 .../proxy/v4/demo/odatademo/types/Customer.java |  146 --
 .../odatademo/types/CustomerCollection.java     |   41 -
 .../CustomerCollectionComposableInvoker.java    |   32 -
 .../types/CustomerComposableInvoker.java        |   92 -
 .../proxy/v4/demo/odatademo/types/Employee.java |  184 --
 .../odatademo/types/EmployeeCollection.java     |   41 -
 .../EmployeeCollectionComposableInvoker.java    |   32 -
 .../types/EmployeeComposableInvoker.java        |  122 --
 .../demo/odatademo/types/FeaturedProduct.java   |  285 ---
 .../types/FeaturedProductCollection.java        |   41 -
 ...turedProductCollectionComposableInvoker.java |   32 -
 .../types/FeaturedProductComposableInvoker.java |  182 --
 .../proxy/v4/demo/odatademo/types/Person.java   |   99 -
 .../demo/odatademo/types/PersonCollection.java  |   41 -
 .../PersonCollectionComposableInvoker.java      |   32 -
 .../types/PersonComposableInvoker.java          |   77 -
 .../v4/demo/odatademo/types/PersonDetail.java   |  176 --
 .../odatademo/types/PersonDetailCollection.java |   41 -
 ...PersonDetailCollectionComposableInvoker.java |   32 -
 .../types/PersonDetailComposableInvoker.java    |  137 --
 .../proxy/v4/demo/odatademo/types/Product.java  |  231 ---
 .../demo/odatademo/types/ProductCollection.java |   41 -
 .../ProductCollectionComposableInvoker.java     |   32 -
 .../types/ProductComposableInvoker.java         |  172 --
 .../v4/demo/odatademo/types/ProductDetail.java  |  100 -
 .../types/ProductDetailCollection.java          |   41 -
 ...roductDetailCollectionComposableInvoker.java |   32 -
 .../types/ProductDetailComposableInvoker.java   |   77 -
 .../proxy/v4/demo/odatademo/types/Supplier.java |  156 --
 .../odatademo/types/SupplierCollection.java     |   41 -
 .../SupplierCollectionComposableInvoker.java    |   32 -
 .../types/SupplierComposableInvoker.java        |  122 --
 .../v4/demo/odatademo/types/package-info.java   |   20 -
 .../olingo/fit/proxy/v4/opentype/Service.java   |  133 --
 .../opentypesservicev4/DefaultContainer.java    |   61 -
 .../odata/services/opentypesservicev4/Row.java  |   39 -
 .../services/opentypesservicev4/RowIndex.java   |   39 -
 .../opentypesservicev4/package-info.java        |   20 -
 .../opentypesservicev4/types/AccountInfo.java   |   84 -
 .../types/AccountInfoCollection.java            |   41 -
 .../AccountInfoCollectionComposableInvoker.java |   32 -
 .../types/AccountInfoComposableInvoker.java     |   66 -
 .../opentypesservicev4/types/Color.java         |   44 -
 .../types/ContactDetails.java                   |  273 ---
 .../types/ContactDetailsCollection.java         |   41 -
 ...ntactDetailsCollectionComposableInvoker.java |   32 -
 .../types/ContactDetailsComposableInvoker.java  |  213 --
 .../opentypesservicev4/types/IndexedRow.java    |   93 -
 .../types/IndexedRowCollection.java             |   41 -
 .../IndexedRowCollectionComposableInvoker.java  |   32 -
 .../types/IndexedRowComposableInvoker.java      |   53 -
 .../services/opentypesservicev4/types/Row.java  |   68 -
 .../opentypesservicev4/types/RowCollection.java |   41 -
 .../types/RowCollectionComposableInvoker.java   |   32 -
 .../types/RowComposableInvoker.java             |   53 -
 .../opentypesservicev4/types/RowIndex.java      |   82 -
 .../types/RowIndexCollection.java               |   41 -
 .../RowIndexCollectionComposableInvoker.java    |   32 -
 .../types/RowIndexComposableInvoker.java        |   64 -
 .../opentypesservicev4/types/package-info.java  |   20 -
 .../fit/proxy/v4/staticservice/Service.java     |  215 --
 .../services/odatawcfservice/Accounts.java      |   39 -
 .../services/odatawcfservice/Customers.java     |   39 -
 .../services/odatawcfservice/Departments.java   |   39 -
 .../services/odatawcfservice/Employees.java     |   39 -
 .../odatawcfservice/InMemoryEntities.java       |  214 --
 .../services/odatawcfservice/OrderDetails.java  |   40 -
 .../odata/services/odatawcfservice/Orders.java  |   39 -
 .../odata/services/odatawcfservice/People.java  |   39 -
 .../odatawcfservice/ProductDetails.java         |   40 -
 .../odatawcfservice/ProductReviews.java         |   40 -
 .../services/odatawcfservice/Products.java      |   39 -
 .../services/odatawcfservice/StoredPIs.java     |   39 -
 .../odatawcfservice/SubscriptionTemplates.java  |   39 -
 .../services/odatawcfservice/package-info.java  |   20 -
 .../odatawcfservice/types/AccessLevel.java      |   46 -
 .../services/odatawcfservice/types/Account.java |  226 ---
 .../types/AccountCollection.java                |   41 -
 .../AccountCollectionComposableInvoker.java     |   32 -
 .../types/AccountComposableInvoker.java         |  156 --
 .../odatawcfservice/types/AccountInfo.java      |   84 -
 .../types/AccountInfoCollection.java            |   41 -
 .../AccountInfoCollectionComposableInvoker.java |   32 -
 .../types/AccountInfoComposableInvoker.java     |   66 -
 .../services/odatawcfservice/types/Address.java |  102 -
 .../types/AddressCollection.java                |   41 -
 .../AddressCollectionComposableInvoker.java     |   32 -
 .../types/AddressComposableInvoker.java         |   78 -
 .../services/odatawcfservice/types/Asset.java   |  105 -
 .../odatawcfservice/types/AssetCollection.java  |   41 -
 .../types/AssetCollectionComposableInvoker.java |   32 -
 .../types/AssetComposableInvoker.java           |   82 -
 .../services/odatawcfservice/types/Club.java    |   86 -
 .../odatawcfservice/types/ClubCollection.java   |   41 -
 .../types/ClubCollectionComposableInvoker.java  |   32 -
 .../types/ClubComposableInvoker.java            |   67 -
 .../services/odatawcfservice/types/Color.java   |   44 -
 .../services/odatawcfservice/types/Company.java |  232 ---
 .../odatawcfservice/types/CompanyAddress.java   |  136 --
 .../types/CompanyAddressCollection.java         |   41 -
 ...mpanyAddressCollectionComposableInvoker.java |   32 -
 .../types/CompanyAddressComposableInvoker.java  |   93 -
 .../odatawcfservice/types/CompanyCategory.java  |   45 -
 .../types/CompanyCollection.java                |   41 -
 .../CompanyCollectionComposableInvoker.java     |   32 -
 .../types/CompanyComposableInvoker.java         |  170 --
 .../odatawcfservice/types/CreditCardPI.java     |  303 ---
 .../types/CreditCardPICollection.java           |   41 -
 ...CreditCardPICollectionComposableInvoker.java |   32 -
 .../types/CreditCardPIComposableInvoker.java    |  206 --
 .../odatawcfservice/types/CreditRecord.java     |  125 --
 .../types/CreditRecordCollection.java           |   41 -
 ...CreditRecordCollectionComposableInvoker.java |   32 -
 .../types/CreditRecordComposableInvoker.java    |   97 -
 .../odatawcfservice/types/Customer.java         |  357 ----
 .../types/CustomerCollection.java               |   41 -
 .../CustomerCollectionComposableInvoker.java    |   32 -
 .../types/CustomerComposableInvoker.java        |  241 ---
 .../odatawcfservice/types/Department.java       |  120 --
 .../types/DepartmentCollection.java             |   41 -
 .../DepartmentCollectionComposableInvoker.java  |   32 -
 .../types/DepartmentComposableInvoker.java      |   94 -
 .../odatawcfservice/types/Employee.java         |  321 ---
 .../types/EmployeeCollection.java               |   41 -
 .../EmployeeCollectionComposableInvoker.java    |   32 -
 .../types/EmployeeComposableInvoker.java        |  213 --
 .../odatawcfservice/types/GiftCard.java         |  152 --
 .../types/GiftCardCollection.java               |   41 -
 .../GiftCardCollectionComposableInvoker.java    |   32 -
 .../types/GiftCardComposableInvoker.java        |  112 --
 .../odatawcfservice/types/HomeAddress.java      |  136 --
 .../types/HomeAddressCollection.java            |   41 -
 .../HomeAddressCollectionComposableInvoker.java |   32 -
 .../types/HomeAddressComposableInvoker.java     |   93 -
 .../services/odatawcfservice/types/IsBoss.java  |   31 -
 .../odatawcfservice/types/LabourUnion.java      |   87 -
 .../types/LabourUnionCollection.java            |   41 -
 .../LabourUnionCollectionComposableInvoker.java |   32 -
 .../types/LabourUnionComposableInvoker.java     |   67 -
 .../services/odatawcfservice/types/Order.java   |  174 --
 .../odatawcfservice/types/OrderCollection.java  |   41 -
 .../types/OrderCollectionComposableInvoker.java |   32 -
 .../types/OrderComposableInvoker.java           |  136 --
 .../odatawcfservice/types/OrderDetail.java      |  180 --
 .../types/OrderDetailCollection.java            |   41 -
 .../OrderDetailCollectionComposableInvoker.java |   32 -
 .../types/OrderDetailComposableInvoker.java     |  139 --
 .../odatawcfservice/types/OrderDetailKey.java   |   53 -
 .../types/PaymentInstrument.java                |  165 --
 .../types/PaymentInstrumentCollection.java      |   41 -
 ...ntInstrumentCollectionComposableInvoker.java |   32 -
 .../PaymentInstrumentComposableInvoker.java     |  132 --
 .../services/odatawcfservice/types/Person.java  |  240 ---
 .../odatawcfservice/types/PersonCollection.java |   41 -
 .../PersonCollectionComposableInvoker.java      |   32 -
 .../types/PersonComposableInvoker.java          |  171 --
 .../services/odatawcfservice/types/Product.java |  266 ---
 .../types/ProductCollection.java                |   53 -
 .../ProductCollectionComposableInvoker.java     |   32 -
 .../types/ProductComposableInvoker.java         |  193 --
 .../odatawcfservice/types/ProductDetail.java    |  172 --
 .../types/ProductDetailCollection.java          |   41 -
 ...roductDetailCollectionComposableInvoker.java |   32 -
 .../types/ProductDetailComposableInvoker.java   |  124 --
 .../odatawcfservice/types/ProductDetailKey.java |   53 -
 .../odatawcfservice/types/ProductReview.java    |  168 --
 .../types/ProductReviewCollection.java          |   41 -
 ...roductReviewCollectionComposableInvoker.java |   32 -
 .../types/ProductReviewComposableInvoker.java   |  130 --
 .../odatawcfservice/types/ProductReviewKey.java |   75 -
 .../odatawcfservice/types/PublicCompany.java    |  345 ----
 .../types/PublicCompanyCollection.java          |   41 -
 ...ublicCompanyCollectionComposableInvoker.java |   32 -
 .../types/PublicCompanyComposableInvoker.java   |  232 ---
 .../odatawcfservice/types/Statement.java        |  124 --
 .../types/StatementCollection.java              |   41 -
 .../StatementCollectionComposableInvoker.java   |   32 -
 .../types/StatementComposableInvoker.java       |   97 -
 .../odatawcfservice/types/StoredPI.java         |  124 --
 .../types/StoredPICollection.java               |   41 -
 .../StoredPICollectionComposableInvoker.java    |   32 -
 .../types/StoredPIComposableInvoker.java        |   97 -
 .../odatawcfservice/types/Subscription.java     |  144 --
 .../types/SubscriptionCollection.java           |   41 -
 ...SubscriptionCollectionComposableInvoker.java |   32 -
 .../types/SubscriptionComposableInvoker.java    |  112 --
 .../odatawcfservice/types/package-info.java     |   20 -
 .../fit/tecsvc/client/ActionImportITCase.java   |  267 ++-
 .../fit/tecsvc/client/AsyncSupportITCase.java   |  332 ++++
 .../BasicHttpExceptionHandlingITCase.java       |    4 +-
 .../olingo/fit/tecsvc/client/BasicITCase.java   |  634 +++++-
 .../fit/tecsvc/client/BasicXmlITCase.java       |   45 +
 .../fit/tecsvc/client/BatchClientITCase.java    |  173 +-
 .../fit/tecsvc/client/BatchClientXmlITCase.java |   44 +
 .../olingo/fit/tecsvc/client/BindingITCase.java |  118 +-
 .../fit/tecsvc/client/BindingXmlITCase.java     |   44 +
 .../fit/tecsvc/client/ConditionalITCase.java    |   43 +-
 .../fit/tecsvc/client/ConditionalXmlITCase.java |   45 +
 .../fit/tecsvc/client/DeepInsertITCase.java     |   50 +-
 .../fit/tecsvc/client/DeepInsertXmlITCase.java  |  960 +++++++++
 .../tecsvc/client/EdmEnabledClientITCase.java   |   63 -
 .../tecsvc/client/EntityReferencesITCase.java   |  154 +-
 .../client/EntityReferencesXmlITCase.java       |   45 +
 .../fit/tecsvc/client/ExpandSelectITCase.java   |   66 +-
 .../tecsvc/client/ExpandSelectXmlITCase.java    |   45 +
 .../ExpandWithSystemQueryOptionsITCase.java     |  153 +-
 .../ExpandWithSystemQueryOptionsXmlITCase.java  |   45 +
 .../tecsvc/client/FilterSystemQueryITCase.java  |  230 ++-
 .../client/FilterSystemQueryXmlITCase.java      |   45 +
 .../fit/tecsvc/client/FunctionImportITCase.java |   99 +-
 .../tecsvc/client/FunctionImportXmlITCase.java  |   45 +
 .../olingo/fit/tecsvc/client/MediaITCase.java   |   16 +-
 .../fit/tecsvc/client/MediaXmlITCase.java       |   45 +
 .../fit/tecsvc/client/NavigationITCase.java     |   55 +-
 .../fit/tecsvc/client/NavigationXmlITCase.java  |   45 +
 .../tecsvc/client/OrderBySystemQueryITCase.java |    4 +-
 .../OrderBySystemQueryOptionXmlITCase.java      |   45 +
 .../tecsvc/client/PrimitiveComplexITCase.java   |   63 +-
 .../client/PrimitiveComplexXmlITCase.java       |   48 +
 .../tecsvc/client/SystemQueryOptionITCase.java  |   47 +-
 .../client/SystemQueryOptionXmlITCase.java      |   45 +
 .../fit/tecsvc/http/BasicAsyncITCase.java       |  259 +++
 .../fit/tecsvc/http/BasicBatchITCase.java       |   15 +-
 .../olingo/fit/tecsvc/http/BasicHttpITCase.java |   79 +-
 .../fit/tecsvc/http/EntityReferenceITCase.java  |   54 +-
 .../olingo/fit/tecsvc/http/PingITCase.java      |   12 +-
 .../apache/olingo/fit/util/StringHelper.java    |  214 ++
 .../olingo/fit/v4/AbstractTestITCase.java       |  173 --
 .../apache/olingo/fit/v4/AsyncTestITCase.java   |  165 --
 .../olingo/fit/v4/AuthBatchTestITCase.java      |  120 --
 .../apache/olingo/fit/v4/BatchTestITCase.java   |  658 ------
 .../fit/v4/BoundOperationInvokeTestITCase.java  |  459 -----
 .../olingo/fit/v4/ConformanceTestITCase.java    |  422 ----
 .../apache/olingo/fit/v4/DeltaTestITCase.java   |   86 -
 .../olingo/fit/v4/DerivedTypeTestITCase.java    |  150 --
 .../olingo/fit/v4/EntityCreateTestITCase.java   |  191 --
 .../olingo/fit/v4/EntityRetrieveTestITCase.java |  371 ----
 .../olingo/fit/v4/EntitySetTestITCase.java      |  178 --
 .../olingo/fit/v4/EntityUpdateTestITCase.java   |  185 --
 .../olingo/fit/v4/ErrorResponseTestITCase.java  |   62 -
 .../olingo/fit/v4/FilterFactoryTestITCase.java  |   62 -
 .../fit/v4/JSONFormatConformanceTestITCase.java |  333 ----
 .../olingo/fit/v4/KeyAsSegmentTestITCase.java   |  127 --
 .../olingo/fit/v4/MediaEntityTestITCase.java    |  183 --
 .../olingo/fit/v4/MetadataTestITCase.java       |  146 --
 .../apache/olingo/fit/v4/OAuth2TestITCase.java  |  145 --
 .../olingo/fit/v4/OpenTypeTestITCase.java       |  190 --
 .../fit/v4/OperationImportInvokeTestITCase.java |  294 ---
 .../olingo/fit/v4/PropertyTestITCase.java       |  203 --
 .../olingo/fit/v4/PropertyValueTestITCase.java  |  138 --
 .../olingo/fit/v4/QueryOptionsTestITCase.java   |  246 ---
 .../fit/v4/ServiceDocumentTestITCase.java       |   63 -
 .../olingo/fit/v4/SingletonTestITCase.java      |  135 --
 fit/src/test/resources/basicBatchPost.batch     |   33 +
 lib/client-api/pom.xml                          |    5 +
 .../apache/olingo/client/api/Configuration.java |   17 +-
 .../olingo/client/api/ODataBatchConstants.java  |   13 +-
 .../apache/olingo/client/api/ODataClient.java   |   11 +-
 .../olingo/client/api/ODataClientBuilder.java   |   26 +-
 .../ODataClientErrorException.java              |    6 +-
 .../ODataServerErrorException.java              |    2 +-
 .../api/communication/header/HeaderName.java    |  194 --
 .../api/communication/header/ODataHeaders.java  |   21 -
 .../communication/header/ODataPreferences.java  |   82 +-
 .../request/ODataBasicRequest.java              |    8 +-
 .../api/communication/request/ODataRequest.java |   33 +-
 .../invoke/EdmEnabledInvokeRequestFactory.java  |   32 +-
 .../request/invoke/InvokeRequestFactory.java    |   26 +-
 .../streamed/ODataStreamedEntityRequest.java    |    7 +-
 .../communication/response/ODataResponse.java   |    9 -
 .../olingo/client/api/data/ServiceDocument.java |    4 +-
 .../api/domain/AbstractClientPayload.java       |   35 +
 .../client/api/domain/AbstractClientValue.java  |   35 +-
 .../api/domain/ClientCollectionValue.java       |    6 +-
 .../api/domain/ClientEntitySetIterator.java     |   42 +-
 .../client/api/domain/ClientInlineEntity.java   |   35 +
 .../api/domain/ClientInlineEntitySet.java       |   40 +-
 .../olingo/client/api/domain/ClientItem.java    |   52 +-
 .../olingo/client/api/domain/ClientLink.java    |   14 +-
 .../client/api/domain/ClientPrimitiveValue.java |    5 +
 .../olingo/client/api/domain/ClientValue.java   |    4 +-
 .../client/api/http/HttpClientException.java    |    2 +-
 .../serialization/ClientODataDeserializer.java  |    2 -
 .../api/serialization/ODataDeserializer.java    |   65 +
 .../ODataDeserializerException.java             |   38 +
 .../client/api/serialization/ODataReader.java   |   29 +-
 .../api/serialization/ODataSerializer.java      |   33 +
 .../serialization/ODataSerializerException.java |   38 +
 .../client/api/serialization/ODataWriter.java   |   27 +-
 .../olingo/client/api/uri/FilterArgFactory.java |    2 +-
 lib/client-core/pom.xml                         |    1 +
 .../olingo/client/core/ConfigurationImpl.java   |   31 +-
 .../olingo/client/core/ODataClientFactory.java  |   21 +-
 .../olingo/client/core/ODataClientImpl.java     |   35 +-
 .../header/ODataErrorResponseChecker.java       |   39 +-
 .../communication/header/ODataHeadersImpl.java  |   17 -
 .../request/AbstractODataBasicRequest.java      |    8 +-
 .../request/AbstractODataRequest.java           |   60 +-
 .../communication/request/AbstractRequest.java  |    2 +-
 .../request/AsyncBatchRequestWrapperImpl.java   |    8 +-
 .../request/AsyncRequestWrapperImpl.java        |   39 +-
 .../request/batch/ODataBatchRequestImpl.java    |    3 +-
 .../request/batch/ODataBatchUtilities.java      |   10 +-
 .../request/batch/ODataChangesetImpl.java       |    4 +-
 .../request/cud/ODataDeleteRequestImpl.java     |    4 +-
 .../cud/ODataEntityCreateRequestImpl.java       |   14 +-
 .../cud/ODataEntityUpdateRequestImpl.java       |   14 +-
 .../cud/ODataPropertyUpdateRequestImpl.java     |   14 +-
 .../cud/ODataReferenceAddingRequestImpl.java    |    8 +-
 .../cud/ODataValueUpdateRequestImpl.java        |   12 +-
 .../invoke/AbstractODataInvokeRequest.java      |   34 +-
 .../request/invoke/ODataInvokeRequestImpl.java  |   14 +-
 .../retrieve/AbstractMetadataRequestImpl.java   |    5 +-
 .../retrieve/EdmMetadataRequestImpl.java        |    6 -
 .../request/retrieve/ODataDeltaRequestImpl.java |   10 +-
 .../retrieve/ODataEntityRequestImpl.java        |   10 +-
 .../ODataEntitySetIteratorRequestImpl.java      |    8 +-
 .../retrieve/ODataEntitySetRequestImpl.java     |   10 +-
 .../request/retrieve/ODataMediaRequestImpl.java |    8 +-
 .../retrieve/ODataPropertyRequestImpl.java      |   10 +-
 .../request/retrieve/ODataRawRequestImpl.java   |    6 +-
 .../ODataServiceDocumentRequestImpl.java        |   10 +-
 .../request/retrieve/ODataValueRequestImpl.java |   10 +-
 .../retrieve/XMLMetadataRequestImpl.java        |    4 +-
 .../AbstractODataStreamedEntityRequest.java     |   16 +-
 .../streamed/AbstractODataStreamedRequest.java  |    3 +-
 .../ODataMediaEntityCreateRequestImpl.java      |    2 +-
 .../ODataMediaEntityUpdateRequestImpl.java      |    2 +-
 .../response/AbstractODataResponse.java         |   62 +-
 .../batch/ODataBatchResponseManager.java        |   12 +-
 .../data/JSONServiceDocumentDeserializer.java   |    4 +-
 .../client/core/data/ServiceDocumentImpl.java   |   53 +-
 .../core/data/ServiceDocumentItemImpl.java      |   32 +-
 .../data/XMLServiceDocumentDeserializer.java    |    4 +-
 .../core/domain/AbstractClientEntitySet.java    |   43 +
 .../core/domain/ClientCollectionValueImpl.java  |   33 +
 .../core/domain/ClientComplexValueImpl.java     |   60 +
 .../core/domain/ClientDeletedEntityImpl.java    |   39 +
 .../client/core/domain/ClientDeltaImpl.java     |   51 +
 .../client/core/domain/ClientDeltaLinkImpl.java |   60 +
 .../client/core/domain/ClientEntityImpl.java    |  139 ++
 .../client/core/domain/ClientEntitySetImpl.java |   51 +
 .../client/core/domain/ClientEnumValueImpl.java |   29 +
 .../core/domain/ClientPrimitiveValueImpl.java   |   53 +
 .../client/core/domain/ClientPropertyImpl.java  |   59 +-
 .../client/core/domain/ClientValuableImpl.java  |   27 +-
 .../client/core/edm/ClientCsdlEdmProvider.java  |    2 +-
 .../core/serialization/AbstractAtomDealer.java  |   99 +
 .../core/serialization/AtomDeserializer.java    |  878 ++++++++
 .../serialization/AtomGeoValueDeserializer.java |  269 +++
 .../serialization/AtomGeoValueSerializer.java   |  223 +++
 .../core/serialization/AtomSerializer.java      |  682 +++++++
 .../ClientODataDeserializerImpl.java            |   32 +-
 .../core/serialization/ContextURLParser.java    |  118 ++
 .../serialization/JsonDeltaDeserializer.java    |  100 +
 .../core/serialization/JsonDeserializer.java    |  421 ++++
 .../serialization/JsonEntityDeserializer.java   |  229 +++
 .../serialization/JsonEntitySerializer.java     |  131 ++
 .../JsonEntitySetDeserializer.java              |  120 ++
 .../serialization/JsonEntitySetSerializer.java  |   93 +
 .../serialization/JsonGeoValueDeserializer.java |  262 +++
 .../serialization/JsonGeoValueSerializer.java   |  184 ++
 .../JsonODataErrorDeserializer.java             |   87 +
 .../JsonODataErrorDetailDeserializer.java       |   58 +
 .../serialization/JsonPropertyDeserializer.java |  114 ++
 .../serialization/JsonPropertySerializer.java   |   94 +
 .../core/serialization/JsonSerializer.java      |  387 ++++
 .../core/serialization/ODataBinderImpl.java     |   70 +-
 .../core/serialization/ODataReaderImpl.java     |   52 +-
 .../core/serialization/ODataWriterImpl.java     |   30 +-
 .../client/core/uri/FilterArgFactoryImpl.java   |    2 +-
 .../apache/olingo/client/core/uri/URIUtils.java |    2 +-
 .../apache/olingo/client/core/AbstractTest.java |    8 +-
 .../org/apache/olingo/client/core/AtomTest.java |   81 +
 .../olingo/client/core/EntitySetTest.java       |   96 +
 .../apache/olingo/client/core/EntityTest.java   |  390 ++++
 .../apache/olingo/client/core/ErrorTest.java    |   61 +
 .../org/apache/olingo/client/core/JSONTest.java |  257 +++
 .../apache/olingo/client/core/MetadataTest.java |  412 ++++
 .../olingo/client/core/PrimitiveValueTest.java  |   73 +
 .../apache/olingo/client/core/PropertyTest.java |  138 ++
 .../olingo/client/core/ServiceDocumentTest.java |   74 +
 .../serialization/AtomDeserializerTest.java     |  329 +++
 .../serialization/ContextURLParserTest.java     |  256 +++
 .../client/core/uri/FilterFactoryTest.java      |  101 +
 .../olingo/client/core/uri/URIBuilderTest.java  |  244 +++
 .../client/core/uri/v4/FilterFactoryTest.java   |  101 -
 .../client/core/uri/v4/URIBuilderTest.java      |  160 --
 .../apache/olingo/client/core/v4/AtomTest.java  |   82 -
 .../olingo/client/core/v4/EntitySetTest.java    |   97 -
 .../olingo/client/core/v4/EntityTest.java       |  390 ----
 .../apache/olingo/client/core/v4/ErrorTest.java |   62 -
 .../apache/olingo/client/core/v4/JSONTest.java  |  258 ---
 .../olingo/client/core/v4/MetadataTest.java     |  413 ----
 .../client/core/v4/PrimitiveValueTest.java      |   74 -
 .../olingo/client/core/v4/PropertyTest.java     |  139 --
 .../client/core/v4/ServiceDocumentTest.java     |   75 -
 ...ccounts_101_expand_MyPaymentInstruments.json |   94 +
 ...Accounts_101_expand_MyPaymentInstruments.xml |  129 ++
 ...ts_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json |   16 +
 ...nts_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml |   46 +
 .../org/apache/olingo/client/core/Customer.json |   37 +
 .../org/apache/olingo/client/core/Customer.xml  |   46 +
 .../apache/olingo/client/core/Customers.json    |   57 +
 .../org/apache/olingo/client/core/Customers.xml |  111 ++
 .../client/core/Employees_3_HomeAddress.json    |    6 +
 .../client/core/Employees_3_HomeAddress.xml     |   31 +
 .../client/core/Metadata-With-Capabilities.xml  |  323 +++
 .../olingo/client/core/PersonDetails_1.json     |   22 +
 .../olingo/client/core/PersonDetails_1.xml      |   55 +
 .../apache/olingo/client/core/Products_5.json   |   29 +
 .../apache/olingo/client/core/Products_5.xml    |   49 +
 .../client/core/Products_5_CoverColors.json     |    5 +
 .../client/core/Products_5_CoverColors.xml      |   30 +
 .../client/core/Products_5_SkinColor.json       |    5 +
 .../olingo/client/core/Products_5_SkinColor.xml |   27 +
 .../apache/olingo/client/core/VipCustomer.json  |   50 +
 .../apache/olingo/client/core/VipCustomer.xml   |   73 +
 .../apache/olingo/client/core/annotated.json    |   62 +
 .../org/apache/olingo/client/core/annotated.xml |   78 +
 .../apache/olingo/client/core/atom_cleanup.xsl  |   49 +
 .../core/collectionOfEntityReferences.json      |   11 +
 .../core/collectionOfEntityReferences.xml       |   25 +
 .../apache/olingo/client/core/crossjoin.json    |   18 +
 .../org/apache/olingo/client/core/delta.json    |   39 +
 .../org/apache/olingo/client/core/delta.xml     |   87 +
 .../apache/olingo/client/core/demo-metadata.xml |  163 ++
 .../client/core/entity.collection.complex.json  |   14 +
 .../core/entity.collection.primitive.json       |    7 +
 .../olingo/client/core/entity.complex.json      |   12 +
 .../olingo/client/core/entity.minimal.json      |   15 +
 .../olingo/client/core/entity.primitive.json    |   22 +
 .../core/entity.withcomplexnavigation.json      |   22 +
 .../core/entity.withcomplexnavigation.xml       |   63 +
 .../olingo/client/core/entityReference.json     |    4 +
 .../olingo/client/core/entityReference.xml      |   22 +
 .../org/apache/olingo/client/core/error.json    |   14 +
 .../org/apache/olingo/client/core/error.xml     |   31 +
 .../olingo/client/core/fromdoc1-metadata.xml    |  126 ++
 .../olingo/client/core/fromdoc2-metadata.xml    |   54 +
 .../olingo/client/core/fromdoc3-metadata.xml    |  131 ++
 .../olingo/client/core/fromdoc4-metadata.xml    |  164 ++
 .../org/apache/olingo/client/core/metadata.xml  |  232 +++
 .../olingo/client/core/minimalEntity.json       |   21 +
 .../olingo/client/core/northwind-metadata.xml   |  471 +++++
 .../apache/olingo/client/core/olingo390.json    |   18 +
 .../olingo/client/core/serviceDocument.json     |   30 +
 .../olingo/client/core/serviceDocument.xml      |   46 +
 .../client/core/staticservice-metadata.xml      |  462 +++++
 .../core/v3/AllGeoTypesSet_-10_GeogLine.json    |    1 -
 .../core/v3/AllGeoTypesSet_-10_GeogLine.xml     |   22 -
 .../core/v3/AllGeoTypesSet_-10_GeogPoint.json   |    1 -
 .../core/v3/AllGeoTypesSet_-10_GeogPoint.xml    |   22 -
 .../client/core/v3/AllGeoTypesSet_-10_Geom.json |    1 -
 .../client/core/v3/AllGeoTypesSet_-10_Geom.xml  |   33 -
 .../v3/AllGeoTypesSet_-3_GeomMultiPolygon.json  |    1 -
 .../v3/AllGeoTypesSet_-3_GeomMultiPolygon.xml   |   61 -
 .../client/core/v3/AllGeoTypesSet_-5.json       |    1 -
 .../olingo/client/core/v3/AllGeoTypesSet_-5.xml |  181 --
 .../v3/AllGeoTypesSet_-5_GeogCollection.json    |    1 -
 .../v3/AllGeoTypesSet_-5_GeogCollection.xml     |   39 -
 .../core/v3/AllGeoTypesSet_-5_GeogPolygon.json  |    1 -
 .../core/v3/AllGeoTypesSet_-5_GeogPolygon.xml   |   38 -
 .../v3/AllGeoTypesSet_-6_GeomMultiLine.json     |    1 -
 .../core/v3/AllGeoTypesSet_-6_GeomMultiLine.xml |   42 -
 .../v3/AllGeoTypesSet_-7_GeomMultiPoint.json    |    1 -
 .../v3/AllGeoTypesSet_-7_GeomMultiPoint.xml     |   34 -
 .../client/core/v3/AllGeoTypesSet_-8.json       |    1 -
 .../olingo/client/core/v3/AllGeoTypesSet_-8.xml |  177 --
 .../v3/AllGeoTypesSet_-8_GeomCollection.json    |    1 -
 .../v3/AllGeoTypesSet_-8_GeomCollection.xml     |   38 -
 .../apache/olingo/client/core/v3/Car_16.json    |    1 -
 .../org/apache/olingo/client/core/v3/Car_16.xml |   48 -
 .../client/core/v3/ComputerDetail_-10.json      |   28 -
 .../client/core/v3/ComputerDetail_-10.xml       |   22 -
 .../apache/olingo/client/core/v3/Customer.json  |    3 -
 .../apache/olingo/client/core/v3/Customer.xml   |   22 -
 .../olingo/client/core/v3/Customer_-10.json     |    1 -
 .../olingo/client/core/v3/Customer_-10.xml      |  528 -----
 .../core/v3/Customer_-10_BackupContactInfo.json |  218 --
 .../core/v3/Customer_-10_BackupContactInfo.xml  |  417 ----
 .../client/core/v3/Customer_-10_CustomerId.json |    1 -
 .../client/core/v3/Customer_-10_CustomerId.xml  |   24 -
 .../core/v3/Customer_-10_CustomerId_value.txt   |    1 -
 .../v3/Customer_-10_PrimaryContactInfo.json     |   44 -
 .../core/v3/Customer_-10_PrimaryContactInfo.xml |  102 -
 ...a4af-4bbd-bf0a-2b2c22635565'_Attachment.json |    1 -
 ...-a4af-4bbd-bf0a-2b2c22635565'_Attachment.xml |   22 -
 ...af-4bbd-bf0a-2b2c22635565'_AttachmentId.json |    1 -
 ...4af-4bbd-bf0a-2b2c22635565'_AttachmentId.xml |   22 -
 .../client/core/v3/PersonDetails_0_Person.json  |    1 -
 .../client/core/v3/PersonDetails_0_Person.xml   |   75 -
 ..._-10_ComplexConcurrency_QueriedDateTime.json |    1 -
 ...t_-10_ComplexConcurrency_QueriedDateTime.xml |   22 -
 .../core/v3/Product_-10_Dimensions_Width.json   |    4 -
 .../core/v3/Product_-10_Dimensions_Width.xml    |   22 -
 .../client/core/v3/Product_-9_Description.json  |    1 -
 .../client/core/v3/Product_-9_Description.xml   |   22 -
 .../client/core/v3/Products_0_Categories.json   |    1 -
 .../client/core/v3/Products_0_Categories.xml    |   79 -
 .../olingo/client/core/v3/Products_1.json       |    1 -
 .../apache/olingo/client/core/v3/Products_1.xml |   51 -
 .../core/v3/Products_1_DiscontinuedDate.json    |    1 -
 .../core/v3/Products_1_DiscontinuedDate.xml     |   24 -
 .../olingo/client/core/v3/atom_cleanup.xsl      |   49 -
 .../org/apache/olingo/client/core/v3/error.json |    9 -
 .../org/apache/olingo/client/core/v3/error.xml  |   25 -
 .../apache/olingo/client/core/v3/metadata.xml   |   22 -
 .../client/core/v3/northwind-metadata.xml       |   22 -
 .../olingo/client/core/v3/serviceDocument.json  |   33 -
 .../olingo/client/core/v3/serviceDocument.xml   |   49 -
 .../olingo/client/core/v3/stacktrace.json       |   14 -
 .../apache/olingo/client/core/v3/stacktrace.xml |   35 -
 ...ccounts_101_expand_MyPaymentInstruments.json |   94 -
 ...Accounts_101_expand_MyPaymentInstruments.xml |  129 --
 ...ts_f89dee73-af9f-4cd4-b330-db93c25ff3c7.json |   16 -
 ...nts_f89dee73-af9f-4cd4-b330-db93c25ff3c7.xml |   46 -
 .../apache/olingo/client/core/v4/Customer.json  |   37 -
 .../apache/olingo/client/core/v4/Customer.xml   |   46 -
 .../apache/olingo/client/core/v4/Customers.json |   57 -
 .../apache/olingo/client/core/v4/Customers.xml  |  106 -
 .../client/core/v4/Employees_3_HomeAddress.json |    6 -
 .../client/core/v4/Employees_3_HomeAddress.xml  |   31 -
 .../core/v4/Metadata-With-Capabilities.xml      |  323 ---
 .../olingo/client/core/v4/PersonDetails_1.json  |   22 -
 .../olingo/client/core/v4/PersonDetails_1.xml   |   55 -
 .../olingo/client/core/v4/Products_5.json       |   29 -
 .../apache/olingo/client/core/v4/Products_5.xml |   49 -
 .../client/core/v4/Products_5_CoverColors.json  |    5 -
 .../client/core/v4/Products_5_CoverColors.xml   |   30 -
 .../client/core/v4/Products_5_SkinColor.json    |    5 -
 .../client/core/v4/Products_5_SkinColor.xml     |   27 -
 .../olingo/client/core/v4/VipCustomer.json      |   50 -
 .../olingo/client/core/v4/VipCustomer.xml       |   73 -
 .../apache/olingo/client/core/v4/annotated.json |   62 -
 .../apache/olingo/client/core/v4/annotated.xml  |   76 -
 .../olingo/client/core/v4/atom_cleanup.xsl      |   49 -
 .../core/v4/collectionOfEntityReferences.json   |   11 -
 .../core/v4/collectionOfEntityReferences.xml    |   25 -
 .../apache/olingo/client/core/v4/crossjoin.json |   18 -
 .../org/apache/olingo/client/core/v4/delta.json |   39 -
 .../org/apache/olingo/client/core/v4/delta.xml  |   87 -
 .../olingo/client/core/v4/demo-metadata.xml     |  163 --
 .../core/v4/entity.collection.complex.json      |   14 -
 .../core/v4/entity.collection.primitive.json    |    7 -
 .../olingo/client/core/v4/entity.complex.json   |   12 -
 .../olingo/client/core/v4/entity.minimal.json   |   15 -
 .../olingo/client/core/v4/entity.primitive.json |   22 -
 .../core/v4/entity.withcomplexnavigation.json   |   22 -
 .../core/v4/entity.withcomplexnavigation.xml    |   62 -
 .../olingo/client/core/v4/entityReference.json  |    4 -
 .../olingo/client/core/v4/entityReference.xml   |   22 -
 .../org/apache/olingo/client/core/v4/error.json |   14 -
 .../org/apache/olingo/client/core/v4/error.xml  |   31 -
 .../olingo/client/core/v4/fromdoc1-metadata.xml |  126 --
 .../olingo/client/core/v4/fromdoc2-metadata.xml |   54 -
 .../olingo/client/core/v4/fromdoc3-metadata.xml |  131 --
 .../olingo/client/core/v4/fromdoc4-metadata.xml |  164 --
 .../apache/olingo/client/core/v4/metadata.xml   |  232 ---
 .../olingo/client/core/v4/minimalEntity.json    |   21 -
 .../client/core/v4/northwind-metadata.xml       |  471 -----
 .../apache/olingo/client/core/v4/olingo390.json |   18 -
 .../olingo/client/core/v4/serviceDocument.json  |   30 -
 .../olingo/client/core/v4/serviceDocument.xml   |   46 -
 .../client/core/v4/staticservice-metadata.xml   |  462 -----
 lib/commons-api/pom.xml                         |   12 +-
 .../apache/olingo/commons/api/Constants.java    |  266 +--
 .../apache/olingo/commons/api/ODataError.java   |  132 --
 .../olingo/commons/api/ODataErrorDetail.java    |   73 -
 .../olingo/commons/api/ODataException.java      |   37 -
 .../olingo/commons/api/ODataPropertyType.java   |   44 -
 .../commons/api/ODataRuntimeException.java      |   37 -
 .../olingo/commons/api/data/ContextURL.java     |   17 +-
 .../olingo/commons/api/data/Parameter.java      |    2 +-
 .../olingo/commons/api/data/PropertyType.java   |   46 +
 .../api/edm/EdmPrimitiveTypeException.java      |    2 +-
 .../commons/api/edm/EdmPrimitiveTypeKind.java   |    7 +-
 .../commons/api/edm/FullQualifiedName.java      |   32 +-
 .../apache/olingo/commons/api/edm/geo/SRID.java |   54 +-
 .../edm/provider/CsdlAbstractEdmProvider.java   |    2 +-
 .../api/edm/provider/CsdlAnnotation.java        |    4 -
 .../api/edm/provider/CsdlEdmProvider.java       |    2 +-
 .../commons/api/edm/provider/CsdlNamed.java     |    3 +-
 .../annotation/AnnotationExpression.java        |    4 +-
 .../olingo/commons/api/ex/ODataError.java       |  132 ++
 .../olingo/commons/api/ex/ODataErrorDetail.java |   79 +
 .../olingo/commons/api/ex/ODataException.java   |   37 +
 .../commons/api/ex/ODataRuntimeException.java   |   56 +
 .../olingo/commons/api/format/AcceptType.java   |   49 +-
 .../olingo/commons/api/format/ContentType.java  |  150 +-
 .../olingo/commons/api/format/ODataFormat.java  |  126 --
 .../commons/api/format/PreferenceName.java      |   53 +
 .../olingo/commons/api/format/TypeUtil.java     |   77 +-
 .../olingo/commons/api/format/package-info.java |   23 +
 .../commons/api/http/HttpContentType.java       |   43 +-
 .../olingo/commons/api/http/HttpHeader.java     |  151 +-
 .../olingo/commons/api/http/HttpHeaders.java    |  151 ++
 .../olingo/commons/api/http/HttpStatusCode.java |    5 +-
 .../olingo/commons/api/http/package-info.java   |   22 +
 .../api/serialization/ODataDeserializer.java    |   65 -
 .../ODataDeserializerException.java             |   38 -
 .../api/serialization/ODataSerializer.java      |   33 -
 .../serialization/ODataSerializerException.java |   38 -
 .../commons/api/format/AcceptTypeTest.java      |    1 +
 .../commons/api/format/ContentTypeTest.java     |   20 +-
 lib/commons-core/pom.xml                        |    1 +
 .../core/edm/EdmEntityContainerImpl.java        |    2 +-
 .../commons/core/edm/EdmEnumTypeImpl.java       |   25 +
 .../commons/core/edm/EdmProviderImpl.java       |   83 +-
 .../olingo/commons/core/edm/EdmTermImpl.java    |    5 +-
 .../olingo/commons/core/edm/FunctionMapKey.java |   34 +-
 .../edm/primitivetype/EdmDateTimeOffset.java    |    2 +-
 .../core/serialization/AbstractAtomDealer.java  |   97 -
 .../core/serialization/AtomDeserializer.java    |  873 --------
 .../serialization/AtomGeoValueDeserializer.java |  269 ---
 .../serialization/AtomGeoValueSerializer.java   |  223 ---
 .../core/serialization/AtomSerializer.java      |  570 ------
 .../core/serialization/ContextURLParser.java    |  118 --
 .../serialization/JsonDeltaDeserializer.java    |  100 -
 .../core/serialization/JsonDeserializer.java    |  421 ----
 .../serialization/JsonEntityDeserializer.java   |  229 ---
 .../serialization/JsonEntitySerializer.java     |  135 --
 .../JsonEntitySetDeserializer.java              |  120 --
 .../serialization/JsonEntitySetSerializer.java  |   92 -
 .../serialization/JsonGeoValueDeserializer.java |  262 ---
 .../serialization/JsonGeoValueSerializer.java   |  184 --
 .../JsonODataErrorDeserializer.java             |   87 -
 .../JsonODataErrorDetailDeserializer.java       |   58 -
 .../serialization/JsonPropertyDeserializer.java |  114 --
 .../serialization/JsonPropertySerializer.java   |   93 -
 .../core/serialization/JsonSerializer.java      |  376 ----
 .../serialization/AtomDeserializerTest.java     |  328 ---
 .../serialization/ContextURLParserTest.java     |  255 ---
 lib/pom.xml                                     |   27 +-
 lib/server-api/pom.xml                          |    1 +
 .../org/apache/olingo/server/api/OData.java     |   36 +-
 .../server/api/ODataApplicationException.java   |   19 +-
 .../olingo/server/api/ODataHttpHandler.java     |    7 +
 .../server/api/ODataLibraryException.java       |   16 +-
 .../apache/olingo/server/api/ODataRequest.java  |   83 +-
 .../apache/olingo/server/api/ODataResponse.java |   76 +-
 .../olingo/server/api/ODataServerError.java     |    6 +-
 .../exception/BatchDeserializerException.java   |   65 -
 .../exception/BatchSerializerException.java     |   46 -
 .../server/api/debug/DebugInformation.java      |  118 ++
 .../server/api/debug/DebugResponseHelper.java   |   38 +
 .../olingo/server/api/debug/DebugSupport.java   |   57 +
 .../server/api/debug/DefaultDebugSupport.java   |   55 +
 .../server/api/debug/RuntimeMeasurement.java    |  106 +
 .../deserializer/FixedFormatDeserializer.java   |    9 +-
 .../batch/BatchDeserializerException.java       |   77 +
 .../api/deserializer/batch/BatchOptions.java    |    2 +-
 .../deserializer/batch/ODataResponsePart.java   |   29 +-
 .../server/api/etag/PreconditionException.java  |    3 +
 .../api/etag/ServiceMetadataETagSupport.java    |    3 +
 .../apache/olingo/server/api/package-info.java  |   37 +
 .../olingo/server/api/prefer/Preferences.java   |  110 +
 .../server/api/prefer/PreferencesApplied.java   |  180 ++
 .../server/api/processor/DefaultProcessor.java  |   10 +-
 .../server/api/processor/ErrorProcessor.java    |    2 +-
 .../server/api/processor/package-info.java      |   34 +
 .../serializer/BatchSerializerException.java    |   48 +
 .../serializer/ComplexSerializerOptions.java    |    6 +-
 .../EntityCollectionSerializerOptions.java      |   12 +
 .../api/serializer/EntitySerializerOptions.java |    4 +-
 .../api/serializer/FixedFormatSerializer.java   |   16 +-
 .../server/api/serializer/ODataSerializer.java  |   15 +-
 .../serializer/PrimitiveSerializerOptions.java  |    8 +-
 .../ReferenceCollectionSerializerOptions.java   |   71 +
 .../serializer/ReferenceSerializerOptions.java  |   60 +
 .../api/serializer/SerializerException.java     |    7 +-
 .../apache/olingo/server/api/uri/UriInfo.java   |   55 +-
 .../olingo/server/api/uri/UriInfoEntityId.java  |   13 +-
 .../olingo/server/api/uri/UriInfoMetadata.java  |    4 +-
 .../olingo/server/api/uri/UriInfoResource.java  |    1 +
 .../olingo/server/api/uri/UriParameter.java     |   11 +-
 .../olingo/server/api/uri/UriResource.java      |   11 +-
 .../server/api/uri/UriResourceFunction.java     |    2 +-
 .../server/api/uri/UriResourceLambdaAll.java    |    5 +-
 .../server/api/uri/UriResourceLambdaAny.java    |    4 +-
 .../api/uri/UriResourceLambdaVariable.java      |    3 +-
 .../server/api/uri/UriResourceNavigation.java   |    2 +-
 .../server/api/uri/UriResourcePartTyped.java    |    5 +
 .../olingo/server/api/uri/package-info.java     |   28 +
 .../server/api/uri/queryoption/ExpandItem.java  |    1 +
 .../uri/queryoption/SystemQueryOptionKind.java  |    4 +-
 .../expression/ExpressionVisitException.java    |    2 +-
 .../expression/ExpressionVisitor.java           |    2 +-
 .../api/uri/queryoption/expression/Literal.java |    7 +-
 .../api/prefer/PreferencesAppliedTest.java      |   67 +
 .../apache/olingo/server/core/ErrorHandler.java |   10 +-
 .../olingo/server/core/OData4HttpHandler.java   |    6 +-
 .../apache/olingo/server/core/OData4Impl.java   |    2 +-
 .../server/core/SchemaBasedEdmProvider.java     |    2 +-
 .../olingo/server/core/ServiceHandler.java      |   15 +
 .../olingo/server/core/ServiceRequest.java      |   19 +-
 .../core/legacy/ProcessorServiceHandler.java    |    7 +
 .../server/core/requests/BatchRequest.java      |   14 +-
 .../server/core/requests/DataRequest.java       |   14 +-
 .../server/core/responses/ServiceResponse.java  |    4 +-
 .../olingo/server/core/MetadataParserTest.java  |    2 +-
 .../server/core/ServiceDispatcherTest.java      |   16 +-
 .../olingo/server/example/TripPinDataModel.java |    3 +-
 .../olingo/server/example/TripPinHandler.java   |   12 +
 lib/server-core/pom.xml                         |   13 +-
 .../olingo/server/core/uri/antlr/UriLexer.g4    |   73 +-
 .../olingo/server/core/uri/antlr/UriParser.g4   |   54 +-
 .../olingo/server/core/ContentNegotiator.java   |   63 +-
 .../olingo/server/core/ODataDispatcher.java     |  112 +-
 .../server/core/ODataExceptionHelper.java       |    6 +
 .../apache/olingo/server/core/ODataHandler.java |   99 +-
 .../server/core/ODataHandlerException.java      |    5 +
 .../server/core/ODataHttpHandlerImpl.java       |  192 +-
 .../apache/olingo/server/core/ODataImpl.java    |   82 +-
 .../core/batchhandler/BatchFacadeImpl.java      |    5 +-
 .../server/core/batchhandler/BatchHandler.java  |   14 +-
 .../core/batchhandler/BatchPartHandler.java     |   22 +-
 .../BatchReferenceRewriter.java                 |   19 +-
 .../core/debug/DebugResponseHelperImpl.java     |  302 +++
 .../olingo/server/core/debug/DebugTab.java      |   50 +
 .../olingo/server/core/debug/DebugTabBody.java  |  129 ++
 .../server/core/debug/DebugTabRequest.java      |  129 ++
 .../server/core/debug/DebugTabResponse.java     |  111 ++
 .../server/core/debug/DebugTabRuntime.java      |  181 ++
 .../server/core/debug/DebugTabServer.java       |   55 +
 .../server/core/debug/DebugTabStacktrace.java   |  136 ++
 .../olingo/server/core/debug/DebugTabUri.java   |  246 +++
 .../core/debug/ExpressionJsonVisitor.java       |  393 ++++
 .../server/core/debug/JsonStreamWriter.java     |  175 ++
 .../server/core/debug/ServerCoreDebugger.java   |  140 ++
 .../FixedFormatDeserializerImpl.java            |    2 +-
 .../core/deserializer/batch/BatchBodyPart.java  |   45 +-
 .../deserializer/batch/BatchChangeSetPart.java  |    2 +-
 .../deserializer/batch/BatchLineReader.java     |  223 +++
 .../core/deserializer/batch/BatchParser.java    |    7 +-
 .../deserializer/batch/BatchParserCommon.java   |  143 +-
 .../core/deserializer/batch/BatchPart.java      |    4 +-
 .../deserializer/batch/BatchQueryOperation.java |    2 +-
 .../batch/BatchRequestTransformator.java        |   61 +-
 .../batch/BatchTransformatorCommon.java         |   43 +-
 .../BufferedReaderIncludingLineEndings.java     |  233 ---
 .../server/core/deserializer/batch/Header.java  |   31 +-
 .../core/deserializer/batch/HeaderField.java    |    8 +-
 .../batch/HttpRequestStatusLine.java            |   32 +-
 .../json/ODataJsonDeserializer.java             |  334 ++--
 .../deserializer/xml/ODataXmlDeserializer.java  |  698 +++++++
 .../olingo/server/core/etag/ETagParser.java     |    4 +
 .../core/etag/PreconditionsValidator.java       |   49 +-
 .../olingo/server/core/prefer/PreferParser.java |  154 ++
 .../server/core/prefer/PreferencesImpl.java     |  108 +
 .../serializer/AbstractODataSerializer.java     |   47 +
 .../serializer/AsyncResponseSerializer.java     |  105 +
 .../serializer/BatchResponseSerializer.java     |  184 +-
 .../serializer/FixedFormatSerializerImpl.java   |   16 +-
 .../serializer/json/ODataErrorSerializer.java   |    4 +-
 .../serializer/json/ODataJsonSerializer.java    |  493 +++--
 .../json/ServiceDocumentJsonSerializer.java     |   37 +-
 .../serializer/utils/CircleStreamBuffer.java    |   44 +-
 .../serializer/utils/ContentTypeHelper.java     |   33 +
 .../serializer/utils/ContextURLBuilder.java     |   19 +-
 .../core/serializer/utils/ContextURLHelper.java |   32 +
 .../serializer/utils/ExpandSelectHelper.java    |   11 +-
 .../xml/MetadataDocumentXmlSerializer.java      |   25 +-
 .../core/serializer/xml/ODataXmlSerializer.java | 1114 +++++++++++
 .../serializer/xml/ODataXmlSerializerImpl.java  |  153 --
 .../xml/ServiceDocumentXmlSerializer.java       |  149 ++
 .../olingo/server/core/uri/UriHelperImpl.java   |    4 +-
 .../olingo/server/core/uri/UriInfoImpl.java     |   48 +-
 .../server/core/uri/UriResourceActionImpl.java  |   25 +-
 .../uri/UriResourceComplexPropertyImpl.java     |    7 +-
 .../server/core/uri/UriResourceCountImpl.java   |    7 +-
 .../core/uri/UriResourceEntitySetImpl.java      |    8 +-
 .../core/uri/UriResourceFunctionImpl.java       |    7 +-
 .../server/core/uri/UriResourceItImpl.java      |    7 +-
 .../core/uri/UriResourceLambdaAllImpl.java      |    7 +-
 .../core/uri/UriResourceLambdaAnyImpl.java      |    9 +-
 .../core/uri/UriResourceLambdaVarImpl.java      |    7 +-
 .../uri/UriResourceNavigationPropertyImpl.java  |    7 +-
 .../uri/UriResourcePrimitivePropertyImpl.java   |    7 +-
 .../server/core/uri/UriResourceRefImpl.java     |    6 +-
 .../server/core/uri/UriResourceRootImpl.java    |    7 +-
 .../core/uri/UriResourceSingletonImpl.java      |    7 +-
 .../uri/UriResourceStartingTypeFilterImpl.java  |    7 +-
 .../server/core/uri/UriResourceTypedImpl.java   |   16 +-
 .../server/core/uri/UriResourceValueImpl.java   |    7 +-
 .../core/uri/UriResourceWithKeysImpl.java       |   27 +-
 .../olingo/server/core/uri/parser/Parser.java   |   31 +-
 .../server/core/uri/parser/UriContext.java      |   14 +-
 .../server/core/uri/parser/UriDecoder.java      |   39 +-
 .../core/uri/parser/UriParseTreeVisitor.java    |  265 ++-
 .../uri/parser/UriParserSemanticException.java  |    4 +-
 .../core/uri/queryoption/ExpandItemImpl.java    |   40 +-
 .../uri/queryoption/expression/LiteralImpl.java |    2 +-
 .../uri/queryoption/expression/MemberImpl.java  |    5 +
 .../server/core/uri/validator/UriValidator.java |   17 +-
 .../server-core-exceptions-i18n.properties      |    3 +
 .../server/core/ContentNegotiatorTest.java      |   52 +-
 .../server/core/ODataHttpHandlerImplTest.java   |   10 +-
 .../olingo/server/core/ODataImplTest.java       |   56 +
 .../batchhandler/MockedBatchHandlerTest.java    |   37 +-
 .../server/core/debug/AbstractDebugTabTest.java |   45 +
 .../server/core/debug/DebugTabBodyTest.java     |   34 +
 .../server/core/debug/DebugTabRequestTest.java  |  154 ++
 .../server/core/debug/DebugTabResponseTest.java |   79 +
 .../server/core/debug/DebugTabServerTest.java   |   84 +
 .../core/debug/ServerCoreDebuggerTest.java      |  111 ++
 .../deserializer/batch/BatchLineReaderTest.java |  257 +++
 .../batch/BatchParserCommonTest.java            |    4 +-
 .../batch/BatchRequestParserTest.java           |   32 +-
 .../BufferedReaderIncludingLineEndingsTest.java |  481 -----
 .../core/deserializer/batch/HeaderTest.java     |   17 -
 .../batch/HttpRequestStatusLineTest.java        |    4 +-
 .../json/ODataJsonDeserializerBasicTest.java    |  106 +-
 .../provider/EdmEntityContainerImplTest.java    |    2 +-
 .../server/core/edm/provider/EdmEnumTest.java   |    6 +
 .../core/edm/provider/EdmProviderImplTest.java  |   10 +-
 .../core/edm/provider/EdmSchemaImplTest.java    |    2 +-
 .../server/core/prefer/PreferencesTest.java     |  168 ++
 .../serializer/AsyncResponseSerializerTest.java |   82 +
 .../serializer/BatchResponseSerializerTest.java |  303 ++-
 .../core/serializer/json/ComplexTypeHelper.java |    2 +-
 .../json/ODataJsonSerializerTest.java           |    6 +-
 .../json/ServerErrorSerializerTest.java         |    8 +-
 .../utils/CircleStreamBufferTest.java           |  310 +++
 .../xml/MetadataDocumentXmlSerializerTest.java  |   20 +-
 .../xml/ServerErrorXmlSerializerTest.java       |   93 +
 .../xml/ServiceDocumentXmlSerializerTest.java   |  105 +
 lib/server-tecsvc/pom.xml                       |    5 +-
 .../apache/olingo/server/tecsvc/Encoder.java    |  132 --
 .../olingo/server/tecsvc/TechnicalServlet.java  |    7 +-
 .../tecsvc/TechnicalServletContextListener.java |   37 +
 .../server/tecsvc/async/AsyncProcessor.java     |  250 +++
 .../tecsvc/async/TechnicalAsyncService.java     |  295 +++
 .../async/TechnicalStatusMonitorServlet.java    |   50 +
 .../olingo/server/tecsvc/data/ActionData.java   |   70 +-
 .../olingo/server/tecsvc/data/DataCreator.java  | 1116 +++++++----
 .../olingo/server/tecsvc/data/DataProvider.java |   46 +-
 .../olingo/server/tecsvc/data/FunctionData.java |   82 +-
 .../server/tecsvc/data/RequestValidator.java    |   12 +-
 .../processor/TechnicalActionProcessor.java     |  201 +-
 .../processor/TechnicalBatchProcessor.java      |   43 +-
 .../processor/TechnicalEntityProcessor.java     |  239 ++-
 .../TechnicalPrimitiveComplexProcessor.java     |   40 +-
 .../tecsvc/processor/TechnicalProcessor.java    |   16 +-
 .../ExpandSystemQueryOptionHandler.java         |   42 +-
 .../expression/ExpressionVisitorImpl.java       |    6 +-
 .../expression/operand/TypedOperand.java        |    8 +-
 .../expression/operation/BinaryOperator.java    |    6 +-
 .../queryoptions/options/FilterHandler.java     |   12 +-
 .../options/ServerSidePagingHandler.java        |  119 +-
 .../SystemQueryOptionsRuntimeException.java     |    2 +-
 .../server/tecsvc/provider/ActionProvider.java  |    2 +-
 .../tecsvc/provider/ComplexTypeProvider.java    |    2 +-
 .../tecsvc/provider/ContainerProvider.java      |   14 +-
 .../server/tecsvc/provider/EdmTechProvider.java |    2 +-
 .../tecsvc/provider/EntityTypeProvider.java     |    4 +-
 .../tecsvc/provider/EnumTypeProvider.java       |    2 +-
 .../tecsvc/provider/FunctionProvider.java       |   22 +-
 .../tecsvc/provider/PropertyProvider.java       |    4 +-
 .../server/tecsvc/provider/SchemaProvider.java  |    6 +-
 .../src/main/webapp/WEB-INF/web.xml             |   14 +
 .../server/tecsvc/data/DataProviderTest.java    |   26 +-
 lib/server-test/pom.xml                         |    7 +-
 .../olingo/server/core/ODataHandlerTest.java    |   93 +-
 .../server/core/PreconditionsValidatorTest.java |  241 +--
 .../json/AbstractODataDeserializerTest.java     |    6 +-
 .../json/ODataDeserializerDeepInsertTest.java   |   24 +-
 .../ODataDeserializerEntityCollectionTest.java  |   31 +-
 ...ataJsonDeserializerActionParametersTest.java |   23 +-
 .../json/ODataJsonDeserializerEntityTest.java   |  275 ++-
 .../json/ODataJsonSerializerTest.java           |  328 ++-
 .../serializer/json/ServiceDocumentTest.java    |   15 +-
 .../serializer/utils/ContextURLHelperTest.java  |   86 +
 .../serializer/xml/MetadataDocumentTest.java    |    4 +-
 .../xml/ODataXmlDeserializerTest.java           |  631 ++++++
 .../serializer/xml/ODataXmlSerializerTest.java  | 1872 ++++++++++++++++++
 .../olingo/server/core/uri/RawUriTest.java      |  151 --
 .../olingo/server/core/uri/UriHelperTest.java   |    2 +-
 .../olingo/server/core/uri/UriInfoImplTest.java |    2 +-
 .../server/core/uri/UriResourceImplTest.java    |   14 +-
 .../core/uri/antlr/TestFullResourcePath.java    |  246 ++-
 .../olingo/server/core/uri/antlr/TestLexer.java |   58 +-
 .../core/uri/antlr/TestUriParserImpl.java       |    8 +-
 .../server/core/uri/parser/ParserTest.java      |  127 ++
 .../server/core/uri/parser/RawUriTest.java      |  150 ++
 .../queryoption/expression/ExpressionTest.java  |   20 +-
 .../core/uri/testutil/EdmTechTestProvider.java  |    2 +-
 .../core/uri/testutil/FilterTreeToText.java     |    7 +-
 .../core/uri/testutil/FilterValidator.java      |   27 +-
 .../core/uri/testutil/ResourceValidator.java    |    2 +-
 .../core/uri/testutil/TestErrorLogger.java      |    2 +-
 .../core/uri/testutil/TokenValidator.java       |    4 +-
 .../core/uri/testutil/UriLexerWithTrace.java    |    2 +-
 pom.xml                                         |   39 +-
 samples/client/pom.xml                          |    2 +-
 .../http/SocketFactoryHttpClientFactory.java    |    2 +-
 samples/osgi/server/README.txt                  |  183 ++
 samples/osgi/server/pom.xml                     |  117 ++
 samples/pom.xml                                 |   17 +-
 samples/server/pom.xml                          |   24 +-
 .../olingo/server/sample/data/DataProvider.java |    2 +-
 .../sample/edmprovider/CarsEdmProvider.java     |    2 +-
 .../server/sample/processor/CarsProcessor.java  |   21 +-
 samples/tutorials/p1_read/pom.xml               |   79 +
 .../mynamespace/service/DemoEdmProvider.java    |  153 ++
 .../service/DemoEntityCollectionProcessor.java  |  129 ++
 .../myservice/mynamespace/web/DemoServlet.java  |   67 +
 .../p1_read/src/main/webapp/WEB-INF/web.xml     |   40 +
 .../tutorials/p1_read/src/main/webapp/index.jsp |   26 +
 samples/tutorials/p2_readep/pom.xml             |   79 +
 .../myservice/mynamespace/data/Storage.java     |  125 ++
 .../mynamespace/service/DemoEdmProvider.java    |  153 ++
 .../service/DemoEntityCollectionProcessor.java  |   90 +
 .../service/DemoEntityProcessor.java            |  126 ++
 .../service/DemoPrimitiveProcessor.java         |  147 ++
 .../java/myservice/mynamespace/util/Util.java   |  105 +
 .../myservice/mynamespace/web/DemoServlet.java  |   76 +
 .../p2_readep/src/main/webapp/WEB-INF/web.xml   |   40 +
 .../p2_readep/src/main/webapp/index.jsp         |   26 +
 samples/tutorials/p3_write/pom.xml              |   79 +
 .../myservice/mynamespace/data/Storage.java     |  263 +++
 .../mynamespace/service/DemoEdmProvider.java    |  157 ++
 .../service/DemoEntityCollectionProcessor.java  |   93 +
 .../service/DemoEntityProcessor.java            |  190 ++
 .../service/DemoPrimitiveProcessor.java         |  146 ++
 .../java/myservice/mynamespace/util/Util.java   |  121 ++
 .../myservice/mynamespace/web/DemoServlet.java  |   73 +
 .../p3_write/src/main/webapp/WEB-INF/web.xml    |   40 +
 .../p3_write/src/main/webapp/index.jsp          |   26 +
 samples/tutorials/p4_navigation/pom.xml         |   80 +
 .../myservice/mynamespace/data/Storage.java     |  252 +++
 .../mynamespace/service/DemoEdmProvider.java    |  211 ++
 .../service/DemoEntityCollectionProcessor.java  |  149 ++
 .../service/DemoEntityProcessor.java            |  179 ++
 .../service/DemoPrimitiveProcessor.java         |  150 ++
 .../java/myservice/mynamespace/util/Util.java   |  151 ++
 .../myservice/mynamespace/web/DemoServlet.java  |   75 +
 .../src/main/webapp/WEB-INF/web.xml             |   34 +
 .../p4_navigation/src/main/webapp/index.jsp     |   26 +
 samples/tutorials/p5_queryoptions-tcs/pom.xml   |   79 +
 .../myservice/mynamespace/data/Storage.java     |  130 ++
 .../mynamespace/service/DemoEdmProvider.java    |  154 ++
 .../service/DemoEntityCollectionProcessor.java  |  142 ++
 .../service/DemoEntityProcessor.java            |  118 ++
 .../service/DemoPrimitiveProcessor.java         |  150 ++
 .../java/myservice/mynamespace/util/Util.java   |  105 +
 .../myservice/mynamespace/web/DemoServlet.java  |   76 +
 .../src/main/webapp/WEB-INF/web.xml             |   40 +
 .../src/main/webapp/index.jsp                   |   26 +
 samples/tutorials/p6_queryoptions-es/pom.xml    |   80 +
 .../myservice/mynamespace/data/Storage.java     |  252 +++
 .../mynamespace/service/DemoEdmProvider.java    |  211 ++
 .../service/DemoEntityCollectionProcessor.java  |  182 ++
 .../service/DemoEntityProcessor.java            |  203 ++
 .../service/DemoPrimitiveProcessor.java         |  150 ++
 .../java/myservice/mynamespace/util/Util.java   |  149 ++
 .../myservice/mynamespace/web/DemoServlet.java  |   75 +
 .../src/main/webapp/WEB-INF/web.xml             |   34 +
 .../src/main/webapp/index.jsp                   |   49 +
 samples/tutorials/p7_queryoptions-f/pom.xml     |   80 +
 .../myservice/mynamespace/data/Storage.java     |  125 ++
 .../mynamespace/service/DemoEdmProvider.java    |  153 ++
 .../service/DemoEntityCollectionProcessor.java  |  134 ++
 .../service/DemoEntityProcessor.java            |  126 ++
 .../service/DemoPrimitiveProcessor.java         |  147 ++
 .../service/FilterExpressionVisitor.java        |  300 +++
 .../java/myservice/mynamespace/util/Util.java   |  120 ++
 .../myservice/mynamespace/web/DemoServlet.java  |   76 +
 .../src/main/webapp/WEB-INF/web.xml             |   40 +
 .../p7_queryoptions-f/src/main/webapp/index.jsp |   24 +
 samples/tutorials/pom.xml                       |   58 +
 1340 files changed, 71528 insertions(+), 48722 deletions(-)
----------------------------------------------------------------------



[09/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Fix URIResource toString() , methods

Posted by mi...@apache.org.
[OLINGO-659] Fix URIResource toString() ,methods


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: 08ffd20199777f5d1c6e3266d3eeedf83b5daad8
Parents: c0e032d
Author: Christian Amend <ch...@sap.com>
Authored: Fri Aug 21 16:03:06 2015 +0200
Committer: Christian Amend <ch...@sap.com>
Committed: Fri Aug 21 16:03:40 2015 +0200

----------------------------------------------------------------------
 .../org/apache/olingo/server/api/OData.java     |  7 +++-
 .../server/api/ODataApplicationException.java   | 17 +++++++--
 .../apache/olingo/server/api/ODataRequest.java  |  2 +-
 .../olingo/server/api/ODataServerError.java     |  2 +-
 .../server/api/etag/PreconditionException.java  |  3 ++
 .../api/etag/ServiceMetadataETagSupport.java    |  3 ++
 .../apache/olingo/server/api/package-info.java  | 37 ++++++++++++++++++++
 .../server/api/processor/package-info.java      | 34 ++++++++++++++++++
 .../serializer/BatchSerializerException.java    |  3 ++
 .../serializer/ReferenceSerializerOptions.java  |  3 ++
 .../apache/olingo/server/api/uri/UriInfo.java   | 36 +++++++++++++++++++
 .../olingo/server/api/uri/UriResource.java      | 11 ++++--
 .../server/api/uri/UriResourcePartTyped.java    |  5 +++
 .../olingo/server/api/uri/package-info.java     | 28 +++++++++++++++
 .../server/core/uri/UriResourceActionImpl.java  | 14 ++++++--
 .../uri/UriResourceComplexPropertyImpl.java     |  7 +++-
 .../server/core/uri/UriResourceCountImpl.java   |  7 +++-
 .../core/uri/UriResourceEntitySetImpl.java      |  8 ++++-
 .../core/uri/UriResourceFunctionImpl.java       |  7 +++-
 .../server/core/uri/UriResourceItImpl.java      |  7 +++-
 .../core/uri/UriResourceLambdaAllImpl.java      |  7 +++-
 .../core/uri/UriResourceLambdaAnyImpl.java      |  7 +++-
 .../core/uri/UriResourceLambdaVarImpl.java      |  7 +++-
 .../uri/UriResourceNavigationPropertyImpl.java  |  7 +++-
 .../uri/UriResourcePrimitivePropertyImpl.java   |  7 +++-
 .../server/core/uri/UriResourceRefImpl.java     |  6 +++-
 .../server/core/uri/UriResourceRootImpl.java    |  7 +++-
 .../core/uri/UriResourceSingletonImpl.java      |  7 +++-
 .../uri/UriResourceStartingTypeFilterImpl.java  |  7 +++-
 .../server/core/uri/UriResourceTypedImpl.java   | 14 +++++---
 .../server/core/uri/UriResourceValueImpl.java   |  7 +++-
 .../core/uri/UriResourceWithKeysImpl.java       | 12 ++++---
 .../server/core/uri/UriResourceImplTest.java    | 12 ++++++-
 33 files changed, 314 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
index c8e5eee..f21cfb5 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
@@ -48,6 +48,10 @@ public abstract class OData {
 
   private static final String IMPLEMENTATION = "org.apache.olingo.server.core.ODataImpl";
 
+  /**
+   * Use this method to create a new OData instance. Each thread/request should keep its own instance.
+   * @return a new OData instance
+   */
   public static OData newInstance() {
     try {
       final Class<?> clazz = Class.forName(OData.IMPLEMENTATION);
@@ -74,7 +78,8 @@ public abstract class OData {
   public abstract ODataSerializer createSerializer(ContentType contentType) throws SerializerException;
 
   /**
-   * Creates a new serializer object for rendering content in a fixed format, e.g., for binary output.
+   * Creates a new serializer object for rendering content in a fixed format, e.g., for binary output or multipart/mixed
+   * outpu.
    * Serializers are used in Processor implementations.
    */
   public abstract FixedFormatSerializer createFixedFormatSerializer();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataApplicationException.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataApplicationException.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataApplicationException.java
index 15e600e..3e92820 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataApplicationException.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataApplicationException.java
@@ -6,9 +6,9 @@
  * 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
@@ -97,14 +97,27 @@ public class ODataApplicationException extends ODataException {
     this.oDataErrorCode = oDataErrorCode;
   }
 
+  /**
+   * Will return the status code which will be used as a status code for the HTTP response. If not set the default is a
+   * 500 Internal Server Error.
+   * @return status code for this exception
+   */
   public int getStatusCode() {
     return statusCode;
   }
 
+  /**
+   * Returns the Locale which was used for the error message. The default is null.
+   * @return locale used for the error message
+   */
   public Locale getLocale() {
     return locale;
   }
 
+  /**
+   * This method will return the error code specified by the application. The default is null.
+   * @return the applications error code.
+   */
   public String getODataErrorCode() {
     return oDataErrorCode;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataRequest.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataRequest.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataRequest.java
index 669e069..7e806ea 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataRequest.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataRequest.java
@@ -231,7 +231,7 @@ public class ODataRequest {
 
   /**
    * Sets the HTTP protocol used
-   * @param 2protocol
+   * @param protocol
    * @see #getProtocol()
    */
   public void setProtocol(String protocol) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataServerError.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataServerError.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataServerError.java
index 5e74af9..b9c6dcb 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataServerError.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataServerError.java
@@ -26,7 +26,7 @@ import org.apache.olingo.commons.api.ex.ODataError;
 import org.apache.olingo.commons.api.ex.ODataErrorDetail;
 
 /**
- * Server error.
+ * Class to hold all server relevant error information.
  */
 public class ODataServerError extends ODataError {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/etag/PreconditionException.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/etag/PreconditionException.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/etag/PreconditionException.java
index 8e9c84f..efa606c 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/etag/PreconditionException.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/etag/PreconditionException.java
@@ -20,6 +20,9 @@ package org.apache.olingo.server.api.etag;
 
 import org.apache.olingo.server.api.ODataLibraryException;
 
+/**
+ * This exception is thrown for invalid precondition error cases.
+ */
 public class PreconditionException extends ODataLibraryException {
   private static final long serialVersionUID = -8112658467394158700L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/etag/ServiceMetadataETagSupport.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/etag/ServiceMetadataETagSupport.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/etag/ServiceMetadataETagSupport.java
index 76e60f2..430fce5 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/etag/ServiceMetadataETagSupport.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/etag/ServiceMetadataETagSupport.java
@@ -18,6 +18,9 @@
  */
 package org.apache.olingo.server.api.etag;
 
+/**
+ * Register implementations for this interface in oder to support etags for the metadata document and service document.
+ */
 public interface ServiceMetadataETagSupport {
 
   /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/package-info.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/package-info.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/package-info.java
new file mode 100644
index 0000000..2cdb677
--- /dev/null
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/package-info.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * 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.
+ ******************************************************************************/
+/**
+ * Olingo Server API
+ * <p>
+ * OData Library is a protocol implementation of the OData V4.0 standard. For details of this standard
+ * see <a href="http://odata.org">odata.org</a>.
+ * <p>
+ * This API is intended to help implement an OData service. An OData service consists of a metadata provider
+ * implementation and an OData processor implementation.
+ * <p>
+ * An OData service can be exposed by a web application using the standard java servlet API. See the Olingo tutorials
+ * section on how to implement a V4 service for further information:
+ * <a href="http://olingo.apache.org/doc/odata4/index.html">http://olingo.apache.org/doc/odata4/index.html
+ * <p>
+ * The main entry point is the org.apache.olingo.server.api.OData class. Use the newInstance() method to create a new
+ * object and start providing your service from there.
+ * 
+ */
+package org.apache.olingo.server.api;
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/package-info.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/package-info.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/package-info.java
new file mode 100644
index 0000000..bc21fd0
--- /dev/null
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/package-info.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * 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.
+ ******************************************************************************/
+/**
+ * Olingo Processors
+ * <p>
+ * Processors are used to handle OData requests and send back the OData reponse. Before a specific processor is called
+ * the Olingo library will parse the URI and validate it. Afterwards the Processor which matches the return type is
+ * called. E.g.: If a primitive property is requested by the URI we will call the PrimitveProcessor.read method.
+ * <p>
+ * Processors can be registered at the {@link org.apache.olingo.server.api.ODataHttpHandler} object. Per default we will
+ * have the {@link org.apache.olingo.server.api.processor.DefaultProcessor} registered to perform basic functionality
+ * like delivering the metadata and service document as well as rendering an OData error.
+ * <br>In case an application would like to perform custom tasks for these cases a new
+ * {@link org.apache.olingo.server.api.processor.ServiceDocumentProcessor} can be registered in order to overwrite the
+ * default behaviour.
+ */
+package org.apache.olingo.server.api.processor;
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/BatchSerializerException.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/BatchSerializerException.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/BatchSerializerException.java
index fe37950..ddef3ae 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/BatchSerializerException.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/BatchSerializerException.java
@@ -19,6 +19,9 @@
 package org.apache.olingo.server.api.serializer;
 
 
+/**
+ * Thrown for invalid  batch payloads.
+ */
 public class BatchSerializerException extends SerializerException {
 
   private static final long serialVersionUID = 2634433974342796905L;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/ReferenceSerializerOptions.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/ReferenceSerializerOptions.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/ReferenceSerializerOptions.java
index 189367a..e3a82cc 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/ReferenceSerializerOptions.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/ReferenceSerializerOptions.java
@@ -20,6 +20,9 @@ package org.apache.olingo.server.api.serializer;
 
 import org.apache.olingo.commons.api.data.ContextURL;
 
+/**
+ * Use this options calls to pass additional information to the reference serializer.
+ */
 public final class ReferenceSerializerOptions {
   private ContextURL contextURL;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriInfo.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriInfo.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriInfo.java
index ead6113..d12c524 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriInfo.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriInfo.java
@@ -31,21 +31,57 @@ public interface UriInfo extends
 UriInfoService, UriInfoAll, UriInfoBatch, UriInfoCrossjoin,
 UriInfoEntityId, UriInfoMetadata, UriInfoResource {
 
+  /**
+   * See {@link UriInfoKind} for more details which kinds are allowed.
+   * @return the kind of this URI info object.
+   */
   UriInfoKind getKind();
 
+  /**
+   * Convenience casting method.
+   * @return this as a {@link UriInfoService} object
+   */
   UriInfoService asUriInfoService();
 
+  /**
+   * Convenience casting method.
+   * @return this as a {@link UriInfoAll} object
+   */
   UriInfoAll asUriInfoAll();
 
+  /**
+   * Convenience casting method.
+   * @return this as a {@link UriInfoBatch} object
+   */
   UriInfoBatch asUriInfoBatch();
 
+  /**
+   * Convenience casting method.
+   * @return this as a {@link UriInfoCrossjoin} object
+   */
   UriInfoCrossjoin asUriInfoCrossjoin();
 
+  /**
+   * Convenience casting method.
+   * @return this as a {@link UriInfoEntityId} object
+   */
   UriInfoEntityId asUriInfoEntityId();
 
+  /**
+   * Convenience casting method.
+   * @return this as a {@link UriInfoMetadata} object
+   */
   UriInfoMetadata asUriInfoMetadata();
 
+  /**
+   * Convenience casting method.
+   * @return this as a {@link UriInfoResource} object
+   */
   UriInfoResource asUriInfoResource();
 
+  /**
+   * A collection of all system query options which were in the URI.
+   * @return a collection of all system query options used.
+   */
   Collection<SystemQueryOption> getSystemQueryOptions();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriResource.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriResource.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriResource.java
index acafa57..016cbcb 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriResource.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriResource.java
@@ -6,9 +6,9 @@
  * 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
@@ -29,6 +29,13 @@ public interface UriResource {
    */
   UriResourceKind getKind();
 
+  /**
+   * In case of an EntitySet this method will return the EntitySet name. In Case of $ref this method will return '$ref"
+   * as a String.
+   * @return the value of this URI Resource Segment
+   */
+  String getSegmentValue();
+
   @Override
   String toString();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriResourcePartTyped.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriResourcePartTyped.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriResourcePartTyped.java
index 5ff183c..407623e 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriResourcePartTyped.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/UriResourcePartTyped.java
@@ -38,6 +38,11 @@ public interface UriResourcePartTyped extends UriResource {
   /**
    * @return String representation of the type
    */
+  public String getSegmentValue(final boolean includeFilters);
+  
+  /**
+   * @return String representation of the type
+   */
   String toString(boolean includeFilters);
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/package-info.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/package-info.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/package-info.java
new file mode 100644
index 0000000..2a0aab6
--- /dev/null
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/package-info.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * 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.
+ ******************************************************************************/
+/**
+ * Olingo URI
+ * <p>
+ * The URI package is used to condense all information about the OData path used to query the data.
+ * <br> In order to support filter and orderby statements the
+ * {@link org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitor} has to be implemented by an
+ * application. 
+ */
+package org.apache.olingo.server.api.uri;
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceActionImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceActionImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceActionImpl.java
index 6acb6ea..008d693 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceActionImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceActionImpl.java
@@ -74,14 +74,24 @@ public class UriResourceActionImpl extends UriResourceImpl implements UriResourc
     }
     return null;
   }
+  
+  @Override
+  public String getSegmentValue(final boolean includeFilters){
+    return actionImport == null ? (action == null ? "" : action.getName()) : actionImport.getName();
+  }
 
   @Override
+  public String getSegmentValue(){
+    return getSegmentValue(false);
+  }
+  
+  @Override
   public String toString(final boolean includeFilters) {
-    return actionImport == null ? (action == null ? "" : action.getName()) : actionImport.getName();
+    return getSegmentValue(includeFilters);
   }
 
   @Override
   public String toString() {
-    return toString(false);
+    return getSegmentValue();
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceComplexPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceComplexPropertyImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceComplexPropertyImpl.java
index f7a8502..63db69c 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceComplexPropertyImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceComplexPropertyImpl.java
@@ -63,8 +63,13 @@ public class UriResourceComplexPropertyImpl extends UriResourceTypedImpl impleme
   }
 
   @Override
-  public String toString() {
+  public String getSegmentValue(){
     return property.getName();
   }
+  
+  @Override
+  public String toString() {
+    return getSegmentValue();
+  }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceCountImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceCountImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceCountImpl.java
index 14f43ec..e1859a6 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceCountImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceCountImpl.java
@@ -26,10 +26,15 @@ public class UriResourceCountImpl extends UriResourceImpl implements UriResource
   public UriResourceCountImpl() {
     super(UriResourceKind.count);
   }
+  
+  @Override
+  public String getSegmentValue(){
+    return "$count";
+  }
 
   @Override
   public String toString() {
-    return "$count";
+    return getSegmentValue();
   }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceEntitySetImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceEntitySetImpl.java
index a769ad6..4675964 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceEntitySetImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceEntitySetImpl.java
@@ -55,9 +55,15 @@ public class UriResourceEntitySetImpl extends UriResourceWithKeysImpl implements
   public boolean isCollection() {
     return keyPredicates == null;
   }
+  
+  @Override
+  public String getSegmentValue(){
+    return edmEntitySet.getName();
+  }
+  
 
   @Override
   public String toString() {
-    return edmEntitySet.getName();
+    return getSegmentValue();
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceFunctionImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceFunctionImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceFunctionImpl.java
index 6f23d23..072230e 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceFunctionImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceFunctionImpl.java
@@ -95,7 +95,7 @@ public class UriResourceFunctionImpl extends UriResourceWithKeysImpl implements
   }
 
   @Override
-  public String toString() {
+  public String getSegmentValue(){
     if (functionImport != null) {
       return functionImport.getName();
     } else if (function != null) {
@@ -103,6 +103,11 @@ public class UriResourceFunctionImpl extends UriResourceWithKeysImpl implements
     }
     return "";
   }
+  
+  @Override
+  public String toString() {
+    return getSegmentValue();
+  }
 
   public boolean isParameterListFilled() {
     return isParameterListFilled;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceItImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceItImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceItImpl.java
index b28ddf8..fc31910 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceItImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceItImpl.java
@@ -56,10 +56,15 @@ public class UriResourceItImpl extends UriResourceWithKeysImpl implements UriRes
     this.isCollection = isCollection;
     return this;
   }
+  
+  @Override
+  public String getSegmentValue(){
+    return "$it";
+  }
 
   @Override
   public String toString() {
-    return "$it";
+    return getSegmentValue();
   }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAllImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAllImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAllImpl.java
index 08f0347..b57d12c 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAllImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAllImpl.java
@@ -68,10 +68,15 @@ public class UriResourceLambdaAllImpl extends UriResourceTypedImpl implements Ur
     this.expression = expression;
     return this;
   }
+  
+  @Override
+  public String getSegmentValue(){
+    return "all";
+  }
 
   @Override
   public String toString() {
-    return "all";
+    return getSegmentValue();
   }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAnyImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAnyImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAnyImpl.java
index 81059dd..49be2fe 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAnyImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAnyImpl.java
@@ -68,9 +68,14 @@ public class UriResourceLambdaAnyImpl extends UriResourceTypedImpl implements Ur
     this.expression = expression;
     return this;
   }
+  
+  @Override
+  public String getSegmentValue(){
+    return "any";
+  }
 
   @Override
   public String toString() {
-    return "any";
+    return getSegmentValue();
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaVarImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaVarImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaVarImpl.java
index f71fe04..f7fa6fc 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaVarImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaVarImpl.java
@@ -64,7 +64,12 @@ public class UriResourceLambdaVarImpl extends UriResourceTypedImpl implements Ur
   }
 
   @Override
-  public String toString() {
+  public String getSegmentValue(){
     return variableText;
   }
+  
+  @Override
+  public String toString() {
+    return getSegmentValue();
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceNavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceNavigationPropertyImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceNavigationPropertyImpl.java
index 3da7aef..1a4fa44 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceNavigationPropertyImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceNavigationPropertyImpl.java
@@ -54,10 +54,15 @@ public class UriResourceNavigationPropertyImpl extends UriResourceWithKeysImpl i
     }
     return navigationProperty.isCollection();
   }
+  
+  @Override
+  public String getSegmentValue(){
+    return navigationProperty.getName();
+  }
 
   @Override
   public String toString() {
-    return navigationProperty.getName();
+    return getSegmentValue();
   }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourcePrimitivePropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourcePrimitivePropertyImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourcePrimitivePropertyImpl.java
index d599b9b..d470ef4 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourcePrimitivePropertyImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourcePrimitivePropertyImpl.java
@@ -50,10 +50,15 @@ public class UriResourcePrimitivePropertyImpl extends UriResourceTypedImpl imple
   public boolean isCollection() {
     return property.isCollection();
   }
+  
+  @Override
+  public String getSegmentValue(){
+    return  property.getName();
+  }
 
   @Override
   public String toString() {
-    return property.getName();
+    return getSegmentValue();
   }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRefImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRefImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRefImpl.java
index a0cdc3e..0c45f9a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRefImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRefImpl.java
@@ -27,10 +27,14 @@ public class UriResourceRefImpl extends UriResourceImpl implements UriResourceRe
     super(UriResourceKind.ref);
 
   }
+  @Override
+  public String getSegmentValue(){
+    return "$ref";
+  }
 
   @Override
   public String toString() {
-    return "$ref";
+    return getSegmentValue();
   }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRootImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRootImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRootImpl.java
index 0db0a01..5d8737f 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRootImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRootImpl.java
@@ -53,10 +53,15 @@ public class UriResourceRootImpl extends UriResourceWithKeysImpl implements UriR
     this.isCollection = isCollection;
     return this;
   }
+  
+  @Override
+  public String getSegmentValue(){
+    return "$root";
+  }
 
   @Override
   public String toString() {
-    return "$root";
+    return getSegmentValue();
   }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceSingletonImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceSingletonImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceSingletonImpl.java
index cc9c606..72289f6 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceSingletonImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceSingletonImpl.java
@@ -62,10 +62,15 @@ public class UriResourceSingletonImpl extends UriResourceTypedImpl implements Ur
   public boolean isCollection() {
     return false;
   }
+  
+  @Override
+  public String getSegmentValue(){
+    return singleton.getName();
+  }
 
   @Override
   public String toString() {
-    return singleton.getName();
+    return getSegmentValue();
   }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceStartingTypeFilterImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceStartingTypeFilterImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceStartingTypeFilterImpl.java
index 152f44c..24d3713 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceStartingTypeFilterImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceStartingTypeFilterImpl.java
@@ -59,8 +59,13 @@ public class UriResourceStartingTypeFilterImpl extends UriResourceWithKeysImpl {
   }
 
   @Override
-  public String toString() {
+  public String getSegmentValue(){
     return type.getNamespace() + "." + type.getName();
   }
+  
+  @Override
+  public String toString() {
+    return getSegmentValue();
+  }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceTypedImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceTypedImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceTypedImpl.java
index cef7098..d6710ad 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceTypedImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceTypedImpl.java
@@ -40,15 +40,19 @@ public abstract class UriResourceTypedImpl extends UriResourceImpl implements Ur
     return this;
   }
 
-  @Override
-  public String toString(final boolean includeFilters) {
+  public String getSegmentValue(final boolean includeFilters) {
     if (includeFilters) {
       if (typeFilter != null) {
-        return toString() + "/" + typeFilter.getFullQualifiedName().toString();
+        return getSegmentValue() + "/" + typeFilter.getFullQualifiedName().toString();
       } else {
-        return toString();
+        return getSegmentValue();
       }
     }
-    return toString();
+    return getSegmentValue();
+  }
+
+  @Override
+  public String toString(final boolean includeFilters) {
+    return getSegmentValue(includeFilters);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceValueImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceValueImpl.java
index 7611ecb..73f86c4 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceValueImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceValueImpl.java
@@ -29,8 +29,13 @@ public class UriResourceValueImpl extends UriResourceImpl implements UriResource
   }
 
   @Override
-  public String toString() {
+  public String getSegmentValue(){
     return "$value";
   }
 
+  @Override
+  public String toString() {
+    return getSegmentValue();
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java
index 320ad0d..2e7fdb5 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java
@@ -71,8 +71,7 @@ public abstract class UriResourceWithKeysImpl extends UriResourceImpl implements
   }
 
   @Override
-  public String toString(final boolean includeFilters) {
-
+  public String getSegmentValue(final boolean includeFilters) {
     if (includeFilters) {
       StringBuilder tmp = new StringBuilder();
       if (collectionTypeFilter != null) {
@@ -88,11 +87,16 @@ public abstract class UriResourceWithKeysImpl extends UriResourceImpl implements
       }
 
       if (tmp.length() != 0) {
-        return toString() + "/" + tmp.toString();
+        return getSegmentValue() + "/" + tmp.toString();
       }
     }
 
-    return toString();
+    return getSegmentValue();
+  }
+
+  @Override
+  public String toString(final boolean includeFilters) {
+    return getSegmentValue(includeFilters);
   }
 
   private String getFQN(final EdmType type) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/08ffd201/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
index e9f16ea..cad1458 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java
@@ -267,6 +267,11 @@ public class UriResourceImplTest {
 
       @Override
       public String toString() {
+        return getSegmentValue();
+      }
+
+      @Override
+      public String getSegmentValue() {
         return "mock";
       }
     }
@@ -342,10 +347,15 @@ public class UriResourceImplTest {
         this.type = type;
         return this;
       }
+      
+      @Override
+      public String getSegmentValue() {
+        return "mock";
+      }
 
       @Override
       public String toString() {
-        return "mock";
+        return getSegmentValue();
       }
 
     }


[31/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityCreateTestITCase.java
deleted file mode 100644
index c6b9a67..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityCreateTestITCase.java
+++ /dev/null
@@ -1,52 +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;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.fit.proxy.v4.staticservice.Service;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-
-public class AuthEntityCreateTestITCase extends EntityCreateTestITCase {
-
-  private Service<EdmEnabledODataClient> ecf;
-
-  private InMemoryEntities ime;
-
-  @Override
-  protected Service<EdmEnabledODataClient> getService() {
-    if (ecf == null) {
-      ecf = Service.getV4(testAuthServiceRootURL);
-      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-      ecf.getClient().getConfiguration().
-      setHttpClientFactory(new BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
-    }
-    return ecf;
-  }
-
-  @Override
-  protected InMemoryEntities getContainer() {
-    if (ime == null) {
-      ime = getService().getEntityContainer(InMemoryEntities.class);
-    }
-    return ime;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
deleted file mode 100644
index 1a359bb..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AuthEntityRetrieveTestITCase.java
+++ /dev/null
@@ -1,37 +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;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.fit.proxy.v4.staticservice.Service;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-
-public class AuthEntityRetrieveTestITCase extends EntityRetrieveTestITCase {
-
-  @Override
-  protected InMemoryEntities getContainer() {
-    final Service<EdmEnabledODataClient> ecf = Service.getV4(testAuthServiceRootURL);
-    ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    ecf.getClient().getConfiguration().
-    setHttpClientFactory(new BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
-    return ecf.getEntityContainer(InMemoryEntities.class);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index 6829d38..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/BoundOperationInvokeTestITCase.java
+++ /dev/null
@@ -1,119 +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;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.sql.Timestamp;
-import java.util.Calendar;
-
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfoComposableInvoker;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AddressCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductComposableInvoker;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollectionComposableInvoker;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailKey;
-import org.junit.Test;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void getEmployeesCount() {
-    assertNotNull(container.getCompany().load().operations().getEmployeesCount());
-  }
-
-  @Test
-  public void getProductDetails() {
-    final ProductDetailCollectionComposableInvoker result =
-        container.getProducts().getByKey(5).operations().getProductDetails(1);
-    assertEquals(1, result.execute().size());
-  }
-
-  @Test
-  public void getRelatedProduct() {
-    final ProductDetailKey key = new ProductDetailKey();
-    key.setProductID(6);
-    key.setProductDetailID(1);
-
-    final ProductComposableInvoker product =
-        container.getProductDetails().getByKey(key).operations().getRelatedProduct();
-    assertEquals(6, product.execute().getProductID(), 0);
-  }
-
-  @Test
-  public void getDefaultPI() {
-    final PaymentInstrument pi = container.getAccounts().getByKey(101).operations().getDefaultPI().execute();
-    assertEquals(101901, pi.getPaymentInstrumentID(), 0);
-  }
-
-  @Test
-  public void getAccountInfo() {
-    final AccountInfoComposableInvoker accountInfo =
-        container.getAccounts().getByKey(101).operations().getAccountInfo();
-    assertNotNull(accountInfo.execute());
-  }
-
-  @Test
-  public void getActualAmount() {
-    final Double amount =
-        container.getAccounts().getByKey(101).getMyGiftCard().operations().getActualAmount(1.1).execute();
-    assertEquals(41.79, amount, 0);
-  }
-
-  @Test
-  public void increaseRevenue() {
-    final Long result = container.getCompany().load().operations().increaseRevenue(12L).execute();
-    assertNotNull(result);
-  }
-
-  @Test
-  public void addAccessRight() {
-    final AccessLevel accessLevel =
-        container.getProducts().getByKey(5).operations().addAccessRight(AccessLevel.Execute).execute();
-    assertNotNull(accessLevel);
-  }
-
-  @Test
-  public void resetAddress() {
-    final Address address = container.newComplexInstance(HomeAddress.class);
-    address.setStreet("Via Le Mani Dal Naso, 123");
-    address.setPostalCode("Tollo");
-    address.setCity("66010");
-
-    final AddressCollection ac = container.newComplexCollection(AddressCollection.class);
-    ac.add(address);
-
-    final Person person = container.getCustomers().getByKey(2).operations().resetAddress(ac, 0).execute();
-    assertEquals(2, person.getPersonID(), 0);
-  }
-
-  @Test
-  public void refreshDefaultPI() {
-    final PaymentInstrument pi = container.getAccounts().getByKey(101).operations().
-        refreshDefaultPI(new Timestamp(Calendar.getInstance().getTimeInMillis())).execute();
-    assertEquals(101901, pi.getPaymentInstrumentID(), 0);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index 344492e..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/ContextTestITCase.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
-import java.sql.Timestamp;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.ext.proxy.api.ODataFlushException;
-import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.Service;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
-import org.junit.Test;
-
-public class ContextTestITCase extends AbstractTestITCase {
-
-  private void continueOnError(final Service<EdmEnabledODataClient> service, final InMemoryEntities container) {
-    final Person person = container.newEntityInstance(Person.class);
-    container.getPeople().add(person);
-
-    final Employee employee = container.newEntityInstance(Employee.class);
-    employee.setPersonID(199);
-    employee.setFirstName("Fabio");
-    employee.setLastName("Martelli");
-
-    final PrimitiveCollection<String> emails = container.newPrimitiveCollection(String.class);
-    emails.add("fabio.martelli@tirasa.net");
-
-    employee.setEmails(emails);
-    final Calendar date = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    date.clear();
-    date.set(2011, 3, 4, 9, 0, 0);
-    employee.setDateHired(new Timestamp(date.getTimeInMillis()));
-    final Address homeAddress = container.newComplexInstance(Address.class);
-    homeAddress.setCity("Pescara");
-    homeAddress.setPostalCode("65100");
-    homeAddress.setStreet("viale Gabriele D'Annunzio 256");
-    employee.setHomeAddress(homeAddress);
-
-    final PrimitiveCollection<String> numbers = container.newPrimitiveCollection(String.class);
-    numbers.add("3204725072");
-    numbers.add("08569930");
-    employee.setNumbers(numbers);
-
-    container.getPeople().add(employee);
-
-    try {
-      container.flush();
-      fail();
-    } catch (ODataFlushException e) {
-      assertEquals(1, e.getErrors().size());
-      assertEquals(0, e.getErrors().get(0).getIndex());
-      assertNotNull(e.getErrors().get(0).getRequest());
-    }
-
-    service.getContext().detachAll();
-  }
-
-  @Test
-  public void transactionalContinueOnError() {
-    service.getClient().getConfiguration().setContinueOnError(true);
-    continueOnError(service, container);
-    service.getClient().getConfiguration().setContinueOnError(false);
-  }
-
-  @Test
-  public void nonTransactionalContinueOnError() {
-    final Service<EdmEnabledODataClient> _service = Service.getV4(testStaticServiceRootURL, false);
-    _service.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    _service.getClient().getConfiguration().setContinueOnError(true);
-
-    final InMemoryEntities _container = _service.getEntityContainer(InMemoryEntities.class);
-
-    continueOnError(_service, _container);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index 2cccc68..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/DerivedTypeTestITCase.java
+++ /dev/null
@@ -1,94 +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;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.util.Calendar;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddress;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPI;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPICollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.junit.Test;
-
-public class DerivedTypeTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void read() {
-    final CustomerCollection customers = container.getPeople().execute(CustomerCollection.class);
-    assertNotNull(customers);
-
-    for (Object customer : customers) {
-      assertTrue(customer instanceof Customer);
-    }
-
-    final CreditCardPICollection creditCards = container.getAccounts().getByKey(101).
-        getMyPaymentInstruments().execute(CreditCardPICollection.class);
-    assertNotNull(creditCards);
-    for (Object creditCard : creditCards) {
-      assertTrue(creditCard instanceof CreditCardPI);
-    }
-  }
-
-  @Test
-  public void createDelete() {
-    final Customer customer = container.newEntityInstance(Customer.class);
-    customer.setPersonID(976);
-    customer.setFirstName("Test");
-    customer.setLastName("Test");
-
-    final Address homeAddress = container.newComplexInstance(CompanyAddress.class);
-    homeAddress.setStreet("V.le Gabriele D'Annunzio");
-    homeAddress.setCity("Pescara");
-    homeAddress.setPostalCode("65127");
-    customer.setHomeAddress(homeAddress);
-
-    customer.setNumbers(container.newPrimitiveCollection(String.class)); // empty
-    customer.setEmails(container.newPrimitiveCollection(String.class)); // empty
-    customer.setCity("Pescara");
-
-    final Calendar birthday = Calendar.getInstance();
-    birthday.clear();
-    birthday.set(1977, 8, 8);
-    customer.setBirthday(new Timestamp(birthday.getTimeInMillis()));
-
-    customer.setTimeBetweenLastTwoOrders(BigDecimal.valueOf(0.0000002));
-
-    container.getPeople().add(customer);
-    container.flush();
-
-    final Person actual = container.getPeople().getByKey(976, Customer.class).load();
-    assertTrue(actual instanceof Customer);
-    assertTrue(actual.getHomeAddress() instanceof CompanyAddress);
-
-    container.getPeople().delete(976);
-
-    container.flush();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index d6149fa..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityCreateTestITCase.java
+++ /dev/null
@@ -1,380 +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;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import org.apache.commons.lang3.RandomUtils;
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.ext.proxy.AbstractService;
-import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailKey;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrumentCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetail;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection;
-import org.junit.Test;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-/**
- * This is the unit test class to check entity create operations.
- */
-public class EntityCreateTestITCase extends AbstractTestITCase {
-
-  protected AbstractService<EdmEnabledODataClient> getService() {
-    return service;
-  }
-
-  protected InMemoryEntities getContainer() {
-    return container;
-  }
-
-  @Test
-  public void createAndDelete() {
-    createPatchAndDeleteOrder(getContainer(), getService());
-  }
-
-  @Test
-  public void createEmployee() {
-    final Integer id = 101;
-
-    final Employee employee = getContainer().newEntityInstance(Employee.class);
-    employee.setPersonID(id);
-    employee.setFirstName("Fabio");
-    employee.setLastName("Martelli");
-
-    PrimitiveCollection<String> value = getContainer().newPrimitiveCollection(String.class);
-    value.add("fabio.martelli@tirasa.net");
-    employee.setEmails(value);
-
-    final Calendar date = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    date.clear();
-    date.set(2011, 3, 4, 9, 0, 0);
-    employee.setDateHired(new Timestamp(date.getTimeInMillis()));
-    final Address homeAddress = getContainer().newComplexInstance(HomeAddress.class);
-    homeAddress.setCity("Pescara");
-    homeAddress.setPostalCode("65100");
-    homeAddress.setStreet("viale Gabriele D'Annunzio 256");
-    employee.setHomeAddress(homeAddress);
-
-    value = getContainer().newPrimitiveCollection(String.class);
-    value.add("3204725072");
-    value.add("08569930");
-    employee.setNumbers(value);
-
-    getContainer().getPeople().add(employee);
-
-    getContainer().flush();
-
-    Employee actual = getContainer().getPeople().getByKey(id, Employee.class).load();
-    assertNotNull(actual);
-    assertEquals(id, actual.getPersonID());
-    assertEquals(homeAddress.getCity(), actual.getHomeAddress().getCity());
-
-    getService().getContext().detachAll();
-    actual = getContainer().getPeople().getByKey(id, Employee.class).load();
-    assertNotNull(actual);
-    assertEquals(id, actual.getPersonID());
-    assertEquals(homeAddress.getCity(), actual.getHomeAddress().getCity());
-
-    getContainer().getPeople().delete(actual.getPersonID());
-    getContainer().flush();
-
-    try {
-      getContainer().getPeople().getByKey(id, Employee.class).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // Expected
-    }
-
-    getService().getContext().detachAll();
-    try {
-      getContainer().getPeople().getByKey(id, Employee.class).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // Expected
-    }
-  }
-
-  @Test
-  public void createWithNavigation() {
-    final Integer id = 101;
-
-    final Customer customer = getContainer().newEntityInstance(Customer.class);
-    customer.setPersonID(id);
-    customer.setPersonID(id);
-    customer.setFirstName("Fabio");
-    customer.setLastName("Martelli");
-    customer.setCity("Pescara");
-
-    PrimitiveCollection<String> value = getContainer().newPrimitiveCollection(String.class);
-    value.add("fabio.martelli@tirasa.net");
-    customer.setEmails(value);
-
-    Address homeAddress = getContainer().newComplexInstance(HomeAddress.class);
-    homeAddress.setCity("Pescara");
-    homeAddress.setPostalCode("65100");
-    homeAddress.setStreet("viale Gabriele D'Annunzio 256");
-    customer.setHomeAddress(homeAddress);
-
-    value = getContainer().newPrimitiveCollection(String.class);
-    value.add("3204725072");
-    value.add("08569930");
-    customer.setNumbers(value);
-
-    final OrderCollection orders = getContainer().newEntityCollection(OrderCollection.class);
-    orders.add(getContainer().getOrders().getByKey(8));
-    customer.setOrders(orders);
-
-    getContainer().getCustomers().add(customer);
-    getContainer().flush();
-
-    Customer actual = readCustomer(getContainer(), id);
-    assertEquals(homeAddress.getCity(), actual.getHomeAddress().getCity());
-    assertEquals(1, actual.getOrders().execute().size());
-    assertEquals(8, actual.getOrders().iterator().next().getOrderID(), 0);
-
-    getContainer().getCustomers().delete(actual.getPersonID());
-    getContainer().flush();
-
-    try {
-      getContainer().getCustomers().getByKey(id).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // Expected
-    }
-  }
-
-  @Test
-  public void createWithBackNavigation() {
-    final Integer id = 102;
-
-    // -------------------------------
-    // Create a new order
-    // -------------------------------
-    Order order = getContainer().newEntityInstance(Order.class);
-    order.setOrderID(id);
-
-    final Calendar orderDate = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    orderDate.clear();
-    orderDate.set(2011, 3, 4, 16, 3, 57);
-    order.setOrderDate(new Timestamp(orderDate.getTimeInMillis()));
-
-    order.setShelfLife(BigDecimal.TEN);
-
-    PrimitiveCollection<BigDecimal> osl = getContainer().newPrimitiveCollection(BigDecimal.class);
-    osl.add(BigDecimal.TEN.negate());
-    osl.add(BigDecimal.TEN);
-    order.setOrderShelfLifes(osl);
-    // -------------------------------
-
-    // -------------------------------
-    // Create a new customer
-    // -------------------------------
-    final Customer customer = getContainer().newEntityInstance(Customer.class);
-    customer.setPersonID(id);
-    customer.setPersonID(id);
-    customer.setFirstName("Fabio");
-    customer.setLastName("Martelli");
-    customer.setCity("Pescara");
-
-    PrimitiveCollection<String> value = getContainer().newPrimitiveCollection(String.class);
-    value.add("fabio.martelli@tirasa.net");
-    customer.setEmails(value);
-
-    final Address homeAddress = getContainer().newComplexInstance(HomeAddress.class);
-    homeAddress.setCity("Pescara");
-    homeAddress.setPostalCode("65100");
-    homeAddress.setStreet("viale Gabriele D'Annunzio 256");
-    customer.setHomeAddress(homeAddress);
-
-    value = getContainer().newPrimitiveCollection(String.class);
-    value.add("3204725072");
-    value.add("08569930");
-    customer.setNumbers(value);
-
-    final OrderCollection orders = getContainer().newEntityCollection(OrderCollection.class);
-    orders.add(order);
-    customer.setOrders(orders);
-    // -------------------------------
-
-    // -------------------------------
-    // Link customer to order
-    // -------------------------------
-    order.setCustomerForOrder(customer);
-    // -------------------------------
-
-    getContainer().getOrders().add(order);
-    getContainer().flush();
-
-    assertEquals(id, order.getOrderID());
-    assertEquals(id, customer.getPersonID());
-
-    Customer actual = readCustomer(getContainer(), id);
-    assertEquals(homeAddress.getCity(), actual.getHomeAddress().getCity());
-    assertEquals(1, actual.getOrders().execute().size());
-    assertEquals(id, actual.getOrders().iterator().next().getOrderID());
-
-    order = getContainer().getOrders().getByKey(id);
-    assertNotNull(order);
-    assertEquals(id, order.getCustomerForOrder().load().getPersonID());
-
-    getContainer().getOrders().delete(actual.getOrders());
-    getContainer().flush();
-
-    try {
-      getContainer().getOrders().getByKey(id).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // Expected
-    }
-
-    actual = readCustomer(getContainer(), id);
-    assertTrue(actual.getOrders().isEmpty());
-
-    getContainer().getCustomers().delete(actual.getPersonID());
-    getContainer().flush();
-
-    try {
-      getContainer().getCustomers().getByKey(id).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // Expected
-    }
-  }
-
-  @Test
-  public void multiKey() {
-    OrderDetail details = getContainer().newEntityInstance(OrderDetail.class);
-    details.setOrderID(8);
-    details.setProductID(1);
-    details.setQuantity(100);
-    details.setUnitPrice(5f);
-
-    getContainer().getOrderDetails().add(details);
-    getContainer().flush();
-
-    OrderDetailKey key = new OrderDetailKey();
-    key.setOrderID(8);
-    key.setProductID(1);
-
-    details = getContainer().getOrderDetails().getByKey(key).load();
-    assertNotNull(details);
-    assertEquals(Integer.valueOf(100), details.getQuantity());
-    assertEquals(8, details.getOrderID(), 0);
-    assertEquals(1, details.getProductID(), 0);
-    assertEquals(5f, details.getUnitPrice(), 0);
-
-    getContainer().getOrderDetails().delete(key);
-    getContainer().flush();
-
-    try {
-      getContainer().getOrderDetails().getByKey(key).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // Expected
-    }
-  }
-
-  @Test
-  public void deepInsert() {
-    Product product = getContainer().newEntityInstance(Product.class);
-    product.setProductID(12);
-    product.setName("Latte");
-    product.setQuantityPerUnit("100g Bag");
-    product.setUnitPrice(3.24f);
-    product.setQuantityInStock(100);
-    product.setDiscontinued(false);
-    product.setUserAccess(AccessLevel.Execute);
-    product.setSkinColor(Color.Blue);
-
-    PrimitiveCollection<Color> value = getContainer().newPrimitiveCollection(Color.class);
-    value.add(Color.Red);
-    value.add(Color.Green);
-    product.setCoverColors(value);
-
-    final ProductDetail detail = getContainer().newEntityInstance(ProductDetail.class);
-    detail.setProductID(product.getProductID());
-    detail.setProductDetailID(12);
-    detail.setProductName("LatteHQ");
-    detail.setDescription("High-Quality Milk");
-
-    final ProductDetailCollection detailCollection = getContainer().newEntityCollection(ProductDetailCollection.class);
-    detailCollection.add(detail);
-
-    product.setDetails(detailCollection);
-
-    getContainer().getProducts().add(product);
-    getContainer().flush();
-
-    product = getContainer().getProducts().getByKey(12).load();
-    assertEquals("Latte", product.getName());
-    assertEquals(12, product.getDetails().execute().iterator().next().getProductDetailID(), 0);
-  }
-
-  @Test
-  public void contained() {
-    PaymentInstrumentCollection instruments =
-        getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().execute();
-    final int sizeBefore = instruments.size();
-
-    final PaymentInstrument instrument = getContainer().newEntityInstance(PaymentInstrument.class);
-    instruments.add(instrument);
-
-    final int id = RandomUtils.nextInt(101999, 105000);
-    instrument.setPaymentInstrumentID(id);
-    instrument.setFriendlyName("New one");
-    instrument.setCreatedDate(new Timestamp(Calendar.getInstance().getTimeInMillis()));
-
-    getContainer().flush();
-
-    instruments = getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().execute();
-    final int sizeAfter = instruments.size();
-    assertEquals(sizeBefore + 1, sizeAfter);
-
-    getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().delete(id);
-
-    getContainer().flush();
-
-    instruments = getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().execute();
-    final int sizeEnd = instruments.size();
-    assertEquals(sizeBefore, sizeEnd);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java
deleted file mode 100644
index 7ee31b8..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java
+++ /dev/null
@@ -1,173 +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;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.lang.reflect.Proxy;
-import java.sql.Timestamp;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.ext.proxy.commons.EntityInvocationHandler;
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailKey;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.junit.Test;
-
-/**
- * This is the unit test class to check entity retrieve operations.
- */
-public class EntityRetrieveTestITCase extends AbstractTestITCase {
-
-  protected InMemoryEntities getContainer() {
-    return container;
-  }
-
-  @Test
-  public void exists() {
-    assertTrue(getContainer().getCustomers().exists(1));
-    assertFalse(getContainer().getOrders().exists(1));
-  }
-
-  @Test
-  public void get() {
-    readCustomer(getContainer(), 1);
-  }
-
-  @Test
-  public void getAll() {
-    final PersonCollection all = getContainer().getPeople().execute();
-    assertNotNull(all);
-    assertFalse(all.isEmpty());
-    for (Person person : all) {
-      assertNotNull(person);
-    }
-
-    final EmployeeCollection employees = getContainer().getPeople().execute(EmployeeCollection.class);
-    assertNotNull(employees);
-    assertFalse(employees.isEmpty());
-    for (Employee employee : employees) {
-      assertNotNull(employee);
-    }
-
-    final CustomerCollection customers = getContainer().getPeople().execute(CustomerCollection.class);
-    assertNotNull(customers);
-    assertFalse(customers.isEmpty());
-    for (Customer customer : customers) {
-      assertNotNull(customer);
-    }
-
-    assertTrue(all.size() > employees.size() + customers.size());
-  }
-
-  @Test
-  public void navigate() {
-    final Order order = getContainer().getOrders().getByKey(8).load();
-    assertEquals(8, order.getOrderID(), 0);
-
-    final Timestamp date = order.getOrderDate();
-    assertNotNull(date);
-    final Calendar actual = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    actual.clear();
-    actual.set(2011, 2, 4, 16, 3, 57);
-    assertEquals(actual.getTimeInMillis(), date.getTime());
-
-    final Customer customer = getContainer().getCustomers().getByKey(1).load();
-    assertNotNull(customer);
-    assertEquals(1, customer.getPersonID(), 0);
-    final Address address = customer.getHomeAddress();
-    assertNotNull(address);
-    assertEquals("98052", address.getPostalCode());
-  }
-
-  @Test
-  public void withInlineEntry() {
-    final Customer customer = readCustomer(getContainer(), 1);
-    final Company company = customer.getCompany();
-    assertEquals(0, company.load().getCompanyID(), 0);
-  }
-
-  @Test
-  public void withInlineFeed() {
-    final Customer customer = readCustomer(getContainer(), 1);
-    final OrderCollection orders = customer.getOrders();
-    assertEquals(1, orders.execute().size());
-    assertEquals(8, orders.iterator().next().getOrderID(), 0);
-  }
-
-  @Test
-  public void withActions() {
-    final Product product = getContainer().getProducts().getByKey(5).load();
-    assertEquals(5, product.getProductID(), 0);
-
-    try {
-      assertNotNull(product.operations().getClass().getMethod("addAccessRight", AccessLevel.class));
-    } catch (Exception e) {
-      fail();
-    }
-  }
-
-  @Test
-  public void multiKey() {
-    final OrderDetailKey orderDetailKey = new OrderDetailKey();
-    orderDetailKey.setOrderID(7);
-    orderDetailKey.setProductID(5);
-
-    final OrderDetail orderDetail = getContainer().getOrderDetails().getByKey(orderDetailKey).load();
-    assertNotNull(orderDetail);
-    assertEquals(7, orderDetail.getOrderID(), 0);
-    assertEquals(5, orderDetail.getProductID(), 0);
-  }
-
-  @Test
-  public void checkForETag() {
-    final Order order = getContainer().getOrders().getByKey(8).load();
-    assertTrue(StringUtils.isNotBlank(((EntityInvocationHandler) Proxy.getInvocationHandler(order)).getETag()));
-  }
-
-  @Test
-  public void contained() {
-    final PaymentInstrument instrument =
-        getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().getByKey(101901).load();
-    assertEquals(101901, instrument.getPaymentInstrumentID(), 0);
-    assertNotNull(instrument.getCreatedDate());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntitySetTestITCase.java
deleted file mode 100644
index 37c2d0c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntitySetTestITCase.java
+++ /dev/null
@@ -1,75 +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;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
-import org.junit.Test;
-
-/**
- * This is the unit test class to check basic feed operations.
- */
-public class EntitySetTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void count() {
-    assertNotNull(container.getOrders());
-    assertEquals(2, container.getOrders().count().longValue());
-  }
-
-  @Test
-  public void getAll() {
-    int count = 0;
-    for (Customer customer : container.getCustomers().execute()) {
-      assertNotNull(customer);
-      count++;
-    }
-    assertEquals(2, count);
-  }
-
-  @Test
-  public void iterator() {
-    int count = 0;
-    for (Customer customer : container.getCustomers()) {
-      assertNotNull(customer);
-      count++;
-    }
-    assertEquals(2, count);
-  }
-
-  @Test
-  public void readEntitySetWithNextLink() {
-    int count = 0;
-    for (Person people : container.getPeople().execute()) {
-      assertNotNull(people);
-      count++;
-    }
-    assertEquals(5, count);
-
-    int iterating = 0;
-    for (Person person : container.getPeople()) {
-      assertNotNull(person);
-      iterating++;
-    }
-    assertEquals(count + 1, iterating);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index ab3f075..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityUpdateTestITCase.java
+++ /dev/null
@@ -1,193 +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;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-
-import java.lang.reflect.Proxy;
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.util.Calendar;
-import java.util.UUID;
-
-import org.apache.commons.lang3.RandomUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.ext.proxy.AbstractService;
-import org.apache.olingo.ext.proxy.commons.EntityInvocationHandler;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddress;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailKey;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
-import org.junit.Test;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-/**
- * This is the unit test class to check entity update operations.
- */
-public class EntityUpdateTestITCase extends AbstractTestITCase {
-
-  protected AbstractService<EdmEnabledODataClient> getService() {
-    return service;
-  }
-
-  protected InMemoryEntities getContainer() {
-    return container;
-  }
-
-  @Test
-  public void update() {
-    Person person = getContainer().getPeople().getByKey(1);
-
-    final Address address = person.getHomeAddress();
-    address.setCity("XXX");
-
-    getContainer().flush();
-
-    person = getContainer().getPeople().getByKey(1).load();
-    assertEquals("XXX", person.getHomeAddress().getCity());
-  }
-
-  @Test
-  public void multiKey() {
-    final OrderDetailKey orderDetailKey = new OrderDetailKey();
-    orderDetailKey.setOrderID(7);
-    orderDetailKey.setProductID(5);
-
-    OrderDetail orderDetail = getContainer().getOrderDetails().getByKey(orderDetailKey).load();
-    assertNotNull(orderDetail);
-    assertEquals(7, orderDetail.getOrderID(), 0);
-    assertEquals(5, orderDetail.getProductID(), 0);
-
-    orderDetail.setQuantity(5);
-
-    getContainer().flush();
-
-    orderDetail = getContainer().getOrderDetails().getByKey(orderDetailKey).load();
-    assertEquals(5, orderDetail.getQuantity(), 0);
-  }
-
-  @Test
-  public void patchLink() {
-    // 1. create customer
-    Customer customer = getContainer().newEntityInstance(Customer.class);
-    customer.setPersonID(977);
-    customer.setFirstName("Test");
-    customer.setLastName("Test");
-
-    final Address homeAddress = getContainer().newComplexInstance(CompanyAddress.class);
-    homeAddress.setStreet("V.le Gabriele D'Annunzio");
-    homeAddress.setCity("Pescara");
-    homeAddress.setPostalCode("65127");
-    customer.setHomeAddress(homeAddress);
-
-    customer.setNumbers(getContainer().newPrimitiveCollection(String.class)); // empty
-    customer.setEmails(getContainer().newPrimitiveCollection(String.class)); // empty
-    customer.setCity("Pescara");
-
-    final Calendar birthday = Calendar.getInstance();
-    birthday.clear();
-    birthday.set(1977, 8, 8);
-    customer.setBirthday(new Timestamp(birthday.getTimeInMillis()));
-
-    customer.setTimeBetweenLastTwoOrders(BigDecimal.valueOf(0.0000002));
-
-    // 2. create order and set it to customer
-    final int orderId = RandomUtils.nextInt(400, 410);
-
-    Order order = getContainer().newEntityInstance(Order.class);
-    order.setOrderID(orderId);
-
-    final OrderCollection orders = getContainer().newEntityCollection(OrderCollection.class);
-    orders.add(order);
-
-    customer.setOrders(orders);
-    order.setCustomerForOrder(customer);
-
-    getContainer().getCustomers().add(customer);
-    getContainer().flush();
-
-    assertEquals(977, order.getCustomerForOrder().load().getPersonID(), 0);
-    // order.getCustomerForOrder().load() caches Customer ... test server doesn't support something like the following
-    // <service>/Orders(400)/CustomerForOrder/Orders
-    // detach all and check for stored data ..
-    getService().getContext().detachAll();
-
-    // 3. check everything after flush
-    order = getContainer().getOrders().getByKey(orderId).load();
-    assertEquals(orderId, order.getOrderID(), 0);
-
-    customer = getContainer().getCustomers().getByKey(977);
-
-    // assertEquals(1, customer.getOrders().size());
-
-    int count = 0;
-    for (Order inside : customer.getOrders().execute()) {
-      if (inside.getOrderID() == orderId) {
-        count++;
-      }
-    }
-    assertEquals(1, count);
-    assertEquals(977, order.getCustomerForOrder().load().getPersonID(), 0);
-
-    // 4. delete customer and order
-    getContainer().getCustomers().delete(977);
-    getContainer().getOrders().delete(orderId);
-
-    getContainer().flush();
-  }
-
-  @Test
-  public void concurrentModification() {
-    Order order = getContainer().getOrders().getByKey(8).load();
-    final String etag = ((EntityInvocationHandler) Proxy.getInvocationHandler(order)).getETag();
-    assertTrue(StringUtils.isNotBlank(etag));
-
-    order.setShelfLife(BigDecimal.TEN);
-
-    getContainer().flush();
-
-    order = getContainer().getOrders().getByKey(8).load();
-    assertEquals(BigDecimal.TEN, order.getShelfLife());
-  }
-
-  @Test
-  public void contained() {
-    PaymentInstrument instrument =
-        getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().getByKey(101901);
-
-    final String newName = UUID.randomUUID().toString();
-    instrument.setFriendlyName(newName);
-
-    getContainer().flush();
-
-    instrument = getContainer().getAccounts().getByKey(101).getMyPaymentInstruments().getByKey(101901).load();
-    assertEquals(newName, instrument.getFriendlyName());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/FilterTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/FilterTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/FilterTestITCase.java
deleted file mode 100644
index 72e3643..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/FilterTestITCase.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.olingo.ext.proxy.api.Search;
-import org.apache.olingo.ext.proxy.api.Sort;
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.People;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection;
-import org.junit.Test;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public class FilterTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void testFilterWithEntityType() {
-    final People people = container.getPeople();
-    final EmployeeCollection response = people.filter(service.getClient().getFilterFactory().lt("PersonID", 4))
-        .execute(EmployeeCollection.class);
-
-    assertEquals(1, response.size());
-
-    for (final Employee employee : response) {
-      assertEquals(Integer.valueOf(3), employee.getPersonID());
-    }
-  }
-
-  @Test
-  public void filterOrderby() {
-    final People people = container.getPeople();
-
-    PersonCollection result =
-        people.filter(service.getClient().getFilterFactory().lt("PersonID", 3)).execute();
-
-    // 1. check that result looks as expected
-    assertEquals(2, result.size());
-
-    // 2. extract PersonID values - sorted ASC by default
-    final List<Integer> former = new ArrayList<Integer>(2);
-    for (Person person : result) {
-      final Integer personID = person.getPersonID();
-      assertTrue(personID < 3);
-      former.add(personID);
-    }
-
-    // 3. add orderby clause to filter above
-    result = people.orderBy(new Sort("PersonID", Sort.Direction.DESC)).execute();
-    assertEquals(2, result.size());
-
-    // 4. extract again VIN value - now they were required to be sorted DESC
-    final List<Integer> latter = new ArrayList<Integer>(2);
-    for (Person person : result) {
-      final Integer personID = person.getPersonID();
-      assertTrue(personID < 3);
-      latter.add(personID);
-    }
-
-    // 5. reverse latter and expect to be equal to former
-    Collections.reverse(latter);
-    assertEquals(former, latter);
-  }
-
-  @Test
-  public void search() {
-    final Search<Person, PersonCollection> search = container.getPeople().createSearch().setSearch(
-        service.getClient().getSearchFactory().or(
-            service.getClient().getSearchFactory().literal("Bob"),
-            service.getClient().getSearchFactory().literal("Jill")));
-
-    final PersonCollection result = search.getResult();
-    assertFalse(result.isEmpty());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/KeyAsSegmentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/KeyAsSegmentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/KeyAsSegmentTestITCase.java
deleted file mode 100644
index ac450de..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/KeyAsSegmentTestITCase.java
+++ /dev/null
@@ -1,73 +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;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.fit.proxy.v4.staticservice.Service;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
-import org.junit.Test;
-
-public class KeyAsSegmentTestITCase extends AbstractTestITCase {
-
-  private Service<EdmEnabledODataClient> ecf;
-
-  private InMemoryEntities ime;
-
-  protected Service<EdmEnabledODataClient> getService() {
-    if (ecf == null) {
-      ecf = Service.getV4(testKeyAsSegmentServiceRootURL);
-      ecf.getClient().getConfiguration().setKeyAsSegment(true);
-      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    }
-    return ecf;
-  }
-
-  protected InMemoryEntities getContainer() {
-    if (ime == null) {
-      ime = getService().getEntityContainer(InMemoryEntities.class);
-    }
-    return ime;
-  }
-
-  @Test
-  public void read() {
-    assertNotNull(getContainer().getAccounts().getByKey(101));
-  }
-
-  @Test
-  public void createAndDelete() {
-    createPatchAndDeleteOrder(getContainer(), getService());
-  }
-
-  @Test
-  public void update() {
-    Person person = getContainer().getPeople().getByKey(5);
-    person.setMiddleName("middleN");
-
-    container.flush();
-
-    person = getContainer().getPeople().getByKey(5);
-    assertEquals("middleN", person.getMiddleName());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index 752fba5..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/MediaEntityTestITCase.java
+++ /dev/null
@@ -1,121 +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;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.sql.Timestamp;
-import java.util.Calendar;
-import java.util.UUID;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.ext.proxy.api.EdmStreamValue;
-import org.apache.olingo.fit.proxy.v4.demo.Service;
-import org.apache.olingo.fit.proxy.v4.demo.odatademo.DemoService;
-import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement;
-import org.junit.Test;
-
-/**
- * This is the unit test class to check media entity retrieve operations.
- */
-public class MediaEntityTestITCase extends AbstractTestITCase {
-
-  private Service<EdmEnabledODataClient> ecf;
-
-  private DemoService ime;
-
-  protected Service<EdmEnabledODataClient> getService() {
-    if (ecf == null) {
-      ecf = Service.getV4(testDemoServiceRootURL);
-      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    }
-    return ecf;
-  }
-
-  protected DemoService getContainer() {
-    if (ime == null) {
-      ime = getService().getEntityContainer(DemoService.class);
-    }
-    return ime;
-  }
-
-  @Test
-  public void read() throws IOException {
-    final UUID uuid = UUID.fromString("f89dee73-af9f-4cd4-b330-db93c25ff3c7");
-
-    final Advertisement adv = getContainer().getAdvertisements().getByKey(uuid);
-    assertNull(adv.getAirDate()); // No HTTP request --> property null
-
-    final EdmStreamValue res = adv.loadStream();
-    assertEquals("application/octet-stream", res.getContentType());
-    assertNotNull(res.getStream());
-    IOUtils.closeQuietly(res.getStream());
-
-    getService().getContext().detachAll();
-  }
-
-  @Test
-  public void update() throws IOException {
-    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(getContainer().newEdmStreamValue("application/octet-stream", IOUtils.toInputStream(random)));
-    getContainer().flush();
-    assertEquals(random,
-        IOUtils.toString(getContainer().getAdvertisements().getByKey(uuid).loadStream().getStream()));
-    getService().getContext().detachAll();
-  }
-
-  @Test
-  public void create() throws IOException {
-    final String random = RandomStringUtils.random(124, "abcdefghijklmnopqrstuvwxyz");
-
-    final Advertisement adv = getContainer().newEntityInstance(Advertisement.class);
-    adv.uploadStream(getContainer().newEdmStreamValue("application/octet-stream", IOUtils.toInputStream(random)));
-    adv.setAirDate(new Timestamp(Calendar.getInstance().getTimeInMillis()));
-
-    getContainer().getAdvertisements().add(adv);
-    getContainer().flush();
-
-    final UUID uuid = adv.getID();
-    getService().getContext().detachAll();
-
-    assertEquals(random, IOUtils.toString(getContainer().getAdvertisements().getByKey(uuid).loadStream().getStream()));
-
-    getService().getContext().detachAll();
-
-    getContainer().getAdvertisements().delete(uuid);
-    getContainer().flush();
-
-    try {
-      getContainer().getAdvertisements().getByKey(uuid).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // expected
-    }
-    getService().getContext().detachAll();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalAuthEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalAuthEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalAuthEntityCreateTestITCase.java
deleted file mode 100644
index c96df84..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalAuthEntityCreateTestITCase.java
+++ /dev/null
@@ -1,51 +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;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.fit.proxy.v4.staticservice.Service;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-
-public class NonTransactionalAuthEntityCreateTestITCase extends EntityCreateTestITCase {
-
-  private Service<EdmEnabledODataClient> ecf;
-
-  private InMemoryEntities ime;
-
-  @Override
-  protected Service<EdmEnabledODataClient> getService() {
-    if (ecf == null) {
-      ecf = Service.getV4(testAuthServiceRootURL, false);
-      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-      ecf.getClient().getConfiguration().
-          setHttpClientFactory(new BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
-    }
-    return ecf;
-  }
-
-  @Override
-  protected InMemoryEntities getContainer() {
-    if (ime == null) {
-      ime = getService().getEntityContainer(InMemoryEntities.class);
-    }
-    return ime;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityCreateTestITCase.java
deleted file mode 100644
index 3a91b4c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityCreateTestITCase.java
+++ /dev/null
@@ -1,49 +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;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.fit.proxy.v4.staticservice.Service;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-
-public class NonTransactionalEntityCreateTestITCase extends EntityCreateTestITCase {
-
-  private Service<EdmEnabledODataClient> ecf;
-
-  private InMemoryEntities ime;
-
-  @Override
-  protected Service<EdmEnabledODataClient> getService() {
-    if (ecf == null) {
-      ecf = Service.getV4(testStaticServiceRootURL, false);
-      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    }
-    return ecf;
-  }
-
-  @Override
-  protected InMemoryEntities getContainer() {
-    if (ime == null) {
-      ime = getService().getEntityContainer(InMemoryEntities.class);
-    }
-    return ime;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityUpdateTestITCase.java
deleted file mode 100644
index cee126b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalEntityUpdateTestITCase.java
+++ /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 org.apache.olingo.fit.proxy.v4;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.fit.proxy.v4.staticservice.Service;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-
-public class NonTransactionalEntityUpdateTestITCase extends EntityUpdateTestITCase {
-
-  private Service<EdmEnabledODataClient> ecf;
-
-  private InMemoryEntities ime;
-
-  @Override
-  protected Service<EdmEnabledODataClient> getService() {
-    if (ecf == null) {
-      ecf = Service.getV4(testStaticServiceRootURL, false);
-      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    }
-    return ecf;
-  }
-
-  @Override
-  protected InMemoryEntities getContainer() {
-    if (ime == null) {
-      ime = getService().getEntityContainer(InMemoryEntities.class);
-    }
-    return ime;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalMediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalMediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalMediaEntityTestITCase.java
deleted file mode 100644
index df7fee8..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/NonTransactionalMediaEntityTestITCase.java
+++ /dev/null
@@ -1,49 +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;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.fit.proxy.v4.demo.Service;
-import org.apache.olingo.fit.proxy.v4.demo.odatademo.DemoService;
-
-public class NonTransactionalMediaEntityTestITCase extends MediaEntityTestITCase {
-
-  private Service<EdmEnabledODataClient> ecf;
-
-  private DemoService ime;
-
-  @Override
-  protected Service<EdmEnabledODataClient> getService() {
-    if (ecf == null) {
-      ecf = Service.getV4(testDemoServiceRootURL, false);
-      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    }
-    return ecf;
-  }
-
-  @Override
-  protected DemoService getContainer() {
-    if (ime == null) {
-      ime = getService().getEntityContainer(DemoService.class);
-    }
-    return ime;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OpenTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OpenTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OpenTypeTestITCase.java
deleted file mode 100644
index 0defe4d..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OpenTypeTestITCase.java
+++ /dev/null
@@ -1,156 +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;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.UUID;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.ext.proxy.api.annotations.EntityType;
-import org.apache.olingo.fit.proxy.v4.opentype.Service;
-import org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.DefaultContainer;
-import org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.AccountInfo;
-import org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Color;
-import org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.ContactDetails;
-import org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.IndexedRow;
-import org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row;
-import org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndex;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public class OpenTypeTestITCase extends AbstractTestITCase {
-
-  private static Service<EdmEnabledODataClient> otservice;
-
-  private static DefaultContainer otcontainer;
-
-  @BeforeClass
-  public static void initContainer() {
-    otservice = Service.getV4(testOpenTypeServiceRootURL);
-    otservice.getClient().getConfiguration().
-        setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    otcontainer = otservice.getEntityContainer(DefaultContainer.class);
-    assertNotNull(otcontainer);
-  }
-
-  @Test
-  public void checkOpenTypeEntityTypesExist() {
-    assertTrue(otcontainer.newEntityInstance(Row.class).getClass().getInterfaces()[0].
-        getAnnotation(EntityType.class).openType());
-    assertTrue(otcontainer.newEntityInstance(RowIndex.class).getClass().getInterfaces()[0].
-        getAnnotation(EntityType.class).openType());
-    assertTrue(otcontainer.newEntityInstance(IndexedRow.class).getClass().getInterfaces()[0].
-        getAnnotation(EntityType.class).openType());
-    otservice.getContext().detachAll();
-  }
-
-  @Test
-  public void read() {
-    Row row = otcontainer.getRow().getByKey(UUID.fromString("71f7d0dc-ede4-45eb-b421-555a2aa1e58f")).load();
-    assertEquals(Double.class, row.readAdditionalProperty("Double").getClass());
-    assertEquals("71f7d0dc-ede4-45eb-b421-555a2aa1e58f", row.getId().toString());
-
-    row = otcontainer.getRow().getByKey(UUID.fromString("672b8250-1e6e-4785-80cf-b94b572e42b3")).load();
-    assertEquals(BigDecimal.class, row.readAdditionalProperty("Decimal").getClass());
-  }
-
-  @Test
-  public void cud() throws ParseException {
-    final Integer id = 1426;
-
-    RowIndex rowIndex = otcontainer.newEntityInstance(RowIndex.class);
-    rowIndex.setId(id);
-    rowIndex.addAdditionalProperty("aString", "string");
-    rowIndex.addAdditionalProperty("aBoolean", true);
-    rowIndex.addAdditionalProperty("aDouble", 1.5D);
-    rowIndex.addAdditionalProperty("aByte", Byte.MAX_VALUE);
-    rowIndex.addAdditionalProperty("aDate", Calendar.getInstance());
-
-    final ContactDetails contact = otcontainer.newComplexInstance(ContactDetails.class);
-    contact.setFirstContacted("text".getBytes());
-
-    Calendar cal = Calendar.getInstance();
-    cal.clear();
-    cal.setTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").parse("2001-04-05T05:05:05.001"));
-
-    contact.setLastContacted(new Timestamp(cal.getTimeInMillis()));
-
-    cal = Calendar.getInstance();
-    cal.clear();
-    cal.setTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").parse("2001-04-05T05:05:04.001"));
-    contact.setContacted(cal);
-
-    contact.setGUID(UUID.randomUUID());
-    contact.setPreferedContactTime(cal);
-    contact.setByte(Short.valueOf("24"));
-    contact.setSignedByte(Byte.MAX_VALUE);
-    contact.setDouble(Double.valueOf(Double.MAX_VALUE));
-    contact.setSingle(Float.MAX_VALUE);
-    contact.setShort(Short.MAX_VALUE);
-    contact.setInt(Integer.MAX_VALUE);
-    rowIndex.addAdditionalProperty("aContact", contact);
-    rowIndex.addAdditionalProperty("aColor", Color.Green);
-
-    final AccountInfo ai = otcontainer.newComplexInstance(AccountInfo.class);
-    ai.setFirstName("Fabio");
-    ai.setLastName("Martelli");
-    ai.addAdditionalProperty("email", "fabio.martelli@tirasa.net");
-    rowIndex.addAdditionalProperty("info", ai);
-
-    otcontainer.getRowIndex().add(rowIndex);
-    otcontainer.flush();
-
-    rowIndex = otcontainer.getRowIndex().getByKey(id).load();
-    assertEquals(String.class, rowIndex.readAdditionalProperty("aString").getClass());
-    assertEquals(Boolean.class, rowIndex.readAdditionalProperty("aBoolean").getClass());
-    assertEquals(Double.class, rowIndex.readAdditionalProperty("aDouble").getClass());
-    assertEquals(Byte.class, rowIndex.readAdditionalProperty("aByte").getClass());
-    assertEquals(Byte.MAX_VALUE, rowIndex.readAdditionalProperty("aByte"));
-    assertTrue(Calendar.class.isAssignableFrom(rowIndex.readAdditionalProperty("aDate").getClass()));
-    assertEquals(ContactDetails.class, rowIndex.readAdditionalProperty("aContact").getClass().getInterfaces()[0]);
-    assertEquals(Color.class, rowIndex.readAdditionalProperty("aColor").getClass());
-    assertEquals(Color.Green, rowIndex.readAdditionalProperty("aColor"));
-    assertEquals("Fabio", AccountInfo.class.cast(rowIndex.readAdditionalProperty("info")).getFirstName());
-    assertEquals("Martelli", AccountInfo.class.cast(rowIndex.readAdditionalProperty("info")).getLastName());
-    assertEquals("fabio.martelli@tirasa.net", AccountInfo.class.cast(rowIndex.readAdditionalProperty("info")).
-        readAdditionalProperty("email"));
-
-    otservice.getContext().detachAll();
-
-    otcontainer.getRowIndex().delete(id);
-    otcontainer.flush();
-
-    try {
-      otcontainer.getRowIndex().getByKey(id).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // Expected
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index 723d31c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/OperationImportInvokeTestITCase.java
+++ /dev/null
@@ -1,104 +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;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color;
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonComposableInvoker;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollectionComposableInvoker;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.junit.Test;
-
-public class OperationImportInvokeTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void getDefaultColor() {
-    final Color color = container.operations().getDefaultColor().execute();
-    assertEquals(Color.Red, color);
-  }
-
-  @Test
-  public void getPerson2() {
-    final PersonComposableInvoker person = container.operations().getPerson2("London");
-    assertEquals(1, person.execute().getPersonID(), 0);
-  }
-
-  @Test
-  public void getPerson() {
-    final Address address = container.newComplexInstance(HomeAddress.class);
-    address.setStreet("1 Microsoft Way");
-    address.setPostalCode("98052");
-    address.setCity("London");
-
-    final PersonComposableInvoker person = container.operations().getPerson(address);
-    assertEquals(1, person.execute().getPersonID(), 0);
-  }
-
-  @Test
-  public void getAllProducts() {
-    final ProductCollectionComposableInvoker products = container.operations().getAllProducts();
-    assertEquals(5, products.execute().size());
-  }
-
-  @Test
-  public void getProductsByAccessLevel() {
-    final PrimitiveCollection<String> products =
-        container.operations().getProductsByAccessLevel(AccessLevel.None).execute();
-    assertEquals(5, products.size());
-    assertTrue(products.contains("Car"));
-  }
-
-  @Test
-  public void discount() {
-    container.operations().discount(22).execute();
-  }
-
-  @Test
-  public void resetBossAddress() {
-    final Address address = container.newComplexInstance(HomeAddress.class);
-    address.setStreet("Via Le Mani Dal Naso, 123");
-    address.setPostalCode("Tollo");
-    address.setCity("66010");
-
-    final Address actual = container.operations().resetBossAddress(address).execute();
-    assertEquals(address.getStreet(), actual.getStreet());
-    assertEquals(address.getPostalCode(), actual.getPostalCode());
-    assertEquals(address.getCity(), actual.getCity());
-  }
-
-  @Test
-  public void bossEmails() {
-    PrimitiveCollection<String> be = container.newPrimitiveCollection(String.class);
-    be.add("first@olingo.apache.org");
-    be.add("second@olingo.apache.org");
-
-    final PrimitiveCollection<String> result = container.operations().resetBossEmail(be).execute();
-    assertEquals(2, result.size());
-
-    final PrimitiveCollection<String> result2 = container.operations().getBossEmails(0, 100).execute();
-    assertEquals(result, result2);
-  }
-}


[19/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
deleted file mode 100644
index dc2c246..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
+++ /dev/null
@@ -1,86 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.olingo.client.api.communication.request.retrieve.ODataDeltaRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.domain.ClientDelta;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class DeltaTestITCase extends AbstractTestITCase {
-
-  private void parse(final ContentType format) {
-    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
-        client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").build());
-    req.setPrefer(client.newPreferences().trackChanges());
-
-    final ClientEntitySet customers = req.execute().getBody();
-    assertNotNull(customers);
-    assertNotNull(customers.getDeltaLink());
-
-    final ODataDeltaRequest deltaReq = client.getRetrieveRequestFactory().getDeltaRequest(customers.getDeltaLink());
-    deltaReq.setFormat(format);
-
-    final ClientDelta delta = deltaReq.execute().getBody();
-    assertNotNull(delta);
-
-    assertNotNull(delta.getDeltaLink());
-    assertTrue(delta.getDeltaLink().isAbsolute());
-    assertEquals(5, delta.getCount(), 0);
-
-    assertEquals(1, delta.getDeletedEntities().size());
-    assertTrue(delta.getDeletedEntities().get(0).getId().isAbsolute());
-    assertTrue(delta.getDeletedEntities().get(0).getId().toASCIIString().endsWith("Customers('ANTON')"));
-
-    assertEquals(1, delta.getAddedLinks().size());
-    assertTrue(delta.getAddedLinks().get(0).getSource().isAbsolute());
-    assertTrue(delta.getAddedLinks().get(0).getSource().toASCIIString().endsWith("Customers('BOTTM')"));
-    assertEquals("Orders", delta.getAddedLinks().get(0).getRelationship());
-
-    assertEquals(1, delta.getDeletedLinks().size());
-    assertTrue(delta.getDeletedLinks().get(0).getSource().isAbsolute());
-    assertTrue(delta.getDeletedLinks().get(0).getSource().toASCIIString().endsWith("Customers('ALFKI')"));
-    assertEquals("Orders", delta.getDeletedLinks().get(0).getRelationship());
-
-    assertEquals(2, delta.getEntities().size());
-    ClientProperty property = delta.getEntities().get(0).getProperty("ContactName");
-    assertNotNull(property);
-    assertTrue(property.hasPrimitiveValue());
-    property = delta.getEntities().get(1).getProperty("ShippingAddress");
-    assertNotNull(property);
-    assertTrue(property.hasComplexValue());
-  }
-
-  @Test
-  public void atomParse() {
-    parse(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonParse() {
-    parse(ContentType.JSON);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
deleted file mode 100644
index 47e71e0..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
+++ /dev/null
@@ -1,150 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-
-import java.math.BigDecimal;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import org.apache.olingo.client.api.communication.request.cud.ODataDeleteRequest;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.client.api.domain.ClientComplexValue;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientValuable;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class DerivedTypeTestITCase extends AbstractTestITCase {
-
-  private void read(final ContentType contentType) {
-    // 1. entity set
-    URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").
-        appendDerivedEntityTypeSegment("Microsoft.Test.OData.Services.ODataWCFService.Customer");
-    ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
-        getEntitySetRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    for (ClientEntity customer : req.execute().getBody().getEntities()) {
-      assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", customer.getTypeName().toString());
-    }
-
-    // 2. contained entity set
-    uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Accounts").appendKeySegment(101).
-        appendNavigationSegment("MyPaymentInstruments").
-        appendDerivedEntityTypeSegment("Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI");
-    req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    for (ClientEntity customer : req.execute().getBody().getEntities()) {
-      assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI", customer.getTypeName().toString());
-    }
-  }
-
-  @Test
-  public void readfromAtom() {
-    read(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void readfromJSON() {
-    read(ContentType.JSON_FULL_METADATA);
-  }
-
-  private void createDelete(final ContentType conentType) {
-    final ClientEntity customer = client.getObjectFactory().
-        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
-
-    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("PersonID",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(976)));
-    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("FirstName",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Test")));
-    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("LastName",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Test")));
-
-    final ClientComplexValue homeAddress =
-        client.getObjectFactory().newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress");
-    homeAddress.add(client.getObjectFactory().newPrimitiveProperty("Street",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("V.le Gabriele D'Annunzio")));
-    homeAddress.add(client.getObjectFactory().newPrimitiveProperty("City",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Pescara")));
-    homeAddress.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("65127")));
-    homeAddress.add(client.getObjectFactory().newPrimitiveProperty("CompanyName",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Tirasa")));
-    customer.getProperties().add(client.getObjectFactory().newComplexProperty("HomeAddress", homeAddress));
-
-    customer.getProperties().add(client.getObjectFactory().newCollectionProperty("Numbers",
-        client.getObjectFactory().newCollectionValue("Edm.String")));
-    customer.getProperties().add(client.getObjectFactory().newCollectionProperty("Emails",
-        client.getObjectFactory().newCollectionValue("Edm.String")));
-    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("City",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Pescara")));
-    final Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    dateTime.set(1977, 8, 8, 0, 0, 0);
-    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("Birthday",
-        client.getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build()));
-    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("TimeBetweenLastTwoOrders",
-        client.getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build()));
-
-    final ODataEntityCreateRequest<ClientEntity> createReq = client.getCUDRequestFactory().
-        getEntityCreateRequest(
-            client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People").build(),
-            customer);
-    createReq.setFormat(conentType);
-
-    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
-    assertEquals(201, createRes.getStatusCode());
-
-    final ODataEntityRequest<ClientEntity> fetchReq = client.getRetrieveRequestFactory().
-        getEntityRequest(client.newURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("People").appendKeySegment(976).build());
-    fetchReq.setFormat(conentType);
-
-    final ClientEntity actual = fetchReq.execute().getBody();
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", actual.getTypeName().toString());
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
-        ((ClientValuable) actual.getProperty("HomeAddress")).getValue().getTypeName());
-
-    final ODataDeleteRequest deleteReq = client.getCUDRequestFactory().getDeleteRequest(actual.getEditLink());
-    assertEquals(204, deleteReq.execute().getStatusCode());
-  }
-
-  @Test
-  public void createDeleteAsAtom() {
-    createDelete(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void createDeleteAsJSON() {
-    createDelete(ContentType.JSON_FULL_METADATA);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
deleted file mode 100644
index 7813966..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
+++ /dev/null
@@ -1,191 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URI;
-import java.util.Calendar;
-
-import org.apache.commons.lang3.RandomUtils;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
-import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
-import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.client.api.domain.ClientLink;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class EntityCreateTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void atomCreateAndDelete() {
-    createAndDeleteOrder(testStaticServiceRootURL, ContentType.APPLICATION_ATOM_XML, 1000);
-  }
-
-  @Test
-  public void jsonCreateAndDelete() {
-    createAndDeleteOrder(testStaticServiceRootURL, ContentType.JSON, 1001);
-    createAndDeleteOrder(testStaticServiceRootURL, ContentType.JSON_NO_METADATA, 1001);
-    createAndDeleteOrder(testStaticServiceRootURL, ContentType.JSON_FULL_METADATA, 1001);
-  }
-
-  private void onContained(final ContentType contentType) {
-    final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Accounts").
-        appendKeySegment(101).appendNavigationSegment("MyPaymentInstruments").build();
-
-    // 1. read contained collection before any operation
-    ClientEntitySet instruments = getClient().getRetrieveRequestFactory().getEntitySetRequest(uri).execute().getBody();
-    assertNotNull(instruments);
-    final int sizeBefore = instruments.getCount();
-
-    // 2. instantiate an ODataEntity of the same type as the collection above
-    final ClientEntity instrument = getClient().getObjectFactory().
-        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"));
-
-    int id = RandomUtils.nextInt(101999, 105000);
-    instrument.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("PaymentInstrumentID",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
-    instrument.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("FriendlyName",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("New one")));
-    instrument.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("CreatedDate",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).build()));
-
-    // 3. create it as contained entity
-    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
-        getEntityCreateRequest(uri, instrument);
-    req.setFormat(contentType);
-
-    final ODataEntityCreateResponse<ClientEntity> res = req.execute();
-    assertEquals(201, res.getStatusCode());
-
-    // 4. verify that the contained collection effectively grew
-    instruments = getClient().getRetrieveRequestFactory().getEntitySetRequest(uri).execute().getBody();
-    assertNotNull(instruments);
-    final int sizeAfter = instruments.getCount();
-    assertEquals(sizeBefore + 1, sizeAfter);
-
-    // 5. remove the contained entity created above
-    final ODataDeleteResponse deleteRes = getClient().getCUDRequestFactory().
-        getDeleteRequest(getClient().newURIBuilder(uri.toASCIIString()).appendKeySegment(id).build()).execute();
-    assertEquals(204, deleteRes.getStatusCode());
-
-    // 6. verify that the contained collection effectively reduced
-    instruments = getClient().getRetrieveRequestFactory().getEntitySetRequest(uri).execute().getBody();
-    assertNotNull(instruments);
-    final int sizeEnd = instruments.getCount();
-    assertEquals(sizeBefore, sizeEnd);
-  }
-
-  @Test
-  public void atomOnContained() {
-    onContained(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonOnContained() {
-    onContained(ContentType.JSON);
-  }
-
-  private void deepInsert(final ContentType contentType, final int productId, final int productDetailId)
-      throws EdmPrimitiveTypeException {
-
-    final ClientEntity product = getClient().getObjectFactory().
-        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Product"));
-    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductID",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productId)));
-    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Name",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("Latte")));
-    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("QuantityPerUnit",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("100g Bag")));
-    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("UnitPrice",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildSingle(3.24f)));
-    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("QuantityInStock",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(100)));
-    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Discontinued",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildBoolean(false)));
-    product.getProperties().add(getClient().getObjectFactory().newEnumProperty("UserAccess",
-        getClient().getObjectFactory().
-        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "Execute")));
-    product.getProperties().add(getClient().getObjectFactory().newEnumProperty("SkinColor",
-        getClient().getObjectFactory().
-        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Blue")));
-    product.getProperties().add(getClient().getObjectFactory().newCollectionProperty("CoverColors",
-        getClient().getObjectFactory().
-        newCollectionValue("Microsoft.Test.OData.Services.ODataWCFService.Color")));
-    product.getProperty("CoverColors").getCollectionValue().add(getClient().getObjectFactory().
-        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Green"));
-    product.getProperty("CoverColors").getCollectionValue().add(getClient().getObjectFactory().
-        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Red"));
-
-    final ClientEntity detail = getClient().getObjectFactory().
-        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.ProductDetail"));
-    detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductID",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productId)));
-    detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductDetailID",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productDetailId)));
-    detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductName",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("LatteHQ")));
-    detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Description",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("High-Quality Milk")));
-
-    final ClientEntitySet details = getClient().getObjectFactory().newEntitySet();
-    details.getEntities().add(detail);
-
-    final ClientInlineEntitySet inlineDetails = getClient().getObjectFactory().
-        newDeepInsertEntitySet("Details", details);
-    product.addLink(inlineDetails);
-
-    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
-        getClient().newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Products").build(), product);
-    req.setFormat(contentType);
-    final ODataEntityCreateResponse<ClientEntity> res = req.execute();
-    assertEquals(201, res.getStatusCode());
-
-    final ClientEntity createdProduct = res.getBody();
-    assertEquals(productId,
-        createdProduct.getProperty("ProductID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    final ClientLink createdLink = createdProduct.getNavigationLink("Details");
-    assertNotNull(createdLink);
-
-    final ClientEntitySet createdProductDetails =
-        getClient().getRetrieveRequestFactory().getEntitySetRequest(createdLink.getLink()).execute().getBody();
-    assertNotNull(createdProductDetails);
-    assertEquals(productDetailId, createdProductDetails.getEntities().iterator().next().
-        getProperty("ProductDetailID").getPrimitiveValue().toCastValue(Integer.class), 0);
-  }
-
-  @Test
-  public void atomDeepInsert() throws EdmPrimitiveTypeException {
-    deepInsert(ContentType.APPLICATION_ATOM_XML, 10, 10);
-  }
-
-  @Test
-  public void jsonDeepInsert() throws EdmPrimitiveTypeException {
-    deepInsert(ContentType.JSON_FULL_METADATA, 11, 11);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
deleted file mode 100644
index 53f8492..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
+++ /dev/null
@@ -1,378 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URI;
-import java.sql.Timestamp;
-import java.util.LinkedHashMap;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataRawRequest;
-import org.apache.olingo.client.api.communication.response.ODataRawResponse;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientInlineEntity;
-import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.client.api.domain.ClientLink;
-import org.apache.olingo.client.api.domain.ClientLinkType;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Ignore;
-import org.junit.Test;
-
-/**
- * This is the unit test class to check entity retrieve operations.
- */
-public class EntityRetrieveTestITCase extends AbstractTestITCase {
-
-  private void withInlineEntity(final ODataClient client, final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
-
-    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().
-        getEntityRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-    final ClientEntity entity = res.getBody();
-
-    assertNotNull(entity);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
-    assertTrue(entity.getProperty("Home").hasPrimitiveValue());
-    assertEquals("Edm.GeographyPoint", entity.getProperty("Home").getPrimitiveValue().getTypeName());
-
-    // In JSON with minimal metadata, links are not provided
-    if (contentType.isCompatible(ContentType.APPLICATION_ATOM_SVC)
-        || contentType.isCompatible(ContentType.APPLICATION_ATOM_XML) 
-        || (contentType.isCompatible(ContentType.JSON) 
-              && ContentType.VALUE_ODATA_METADATA_FULL
-              .equals(contentType.getParameter(ContentType.PARAMETER_ODATA_METADATA)))) {
-      assertEquals(testStaticServiceRootURL + "/Customers(1)", entity.getEditLink().toASCIIString());
-      assertEquals(3, entity.getNavigationLinks().size());
-
-      if (ContentType.APPLICATION_ATOM_XML == contentType) {
-        assertTrue(entity.getAssociationLinks().isEmpty());
-        // In JSON, association links for each $ref link will exist.
-      }
-
-      boolean found = false;
-
-      for (ClientLink link : entity.getNavigationLinks()) {
-        if (link instanceof ClientInlineEntity) {
-          final ClientEntity inline = ((ClientInlineEntity) link).getEntity();
-          assertNotNull(inline);
-
-          final List<? extends ClientProperty> properties = inline.getProperties();
-          assertEquals(5, properties.size());
-
-          assertTrue(properties.get(0).getName().equals("CompanyID")
-              || properties.get(1).getName().equals("CompanyID")
-              || properties.get(2).getName().equals("CompanyID")
-              || properties.get(3).getName().equals("CompanyID")
-              || properties.get(4).getName().equals("CompanyID"));
-          assertTrue(properties.get(0).getValue().toString().equals("0")
-              || properties.get(1).getValue().toString().equals("0")
-              || properties.get(2).getValue().toString().equals("0")
-              || properties.get(3).getValue().toString().equals("0")
-              || properties.get(4).getValue().toString().equals("0"));
-
-          found = true;
-        }
-      }
-
-      assertTrue(found);
-    }
-  }
-
-  @Ignore
-  @Test
-  public void withInlineEntityFromAtom() {
-    withInlineEntity(client, ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void withInlineEntityFromFullJSON() {
-    withInlineEntity(client, ContentType.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void withInlineEntityFromJSON() {
-    withInlineEntity(edmClient, ContentType.JSON);
-  }
-
-  private void withInlineEntitySet(final ODataClient client, final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Orders");
-
-    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().
-        getEntityRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-    final ClientEntity entity = res.getBody();
-    assertNotNull(entity);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
-
-    // In JSON with minimal metadata, links are not provided
-    if (contentType.equals(ContentType.APPLICATION_ATOM_XML) || contentType.equals(ContentType.JSON_FULL_METADATA)) {
-      boolean found = false;
-      for (ClientLink link : entity.getNavigationLinks()) {
-        if (link instanceof ClientInlineEntitySet) {
-          final ClientEntitySet inline = ((ClientInlineEntitySet) link).getEntitySet();
-          assertNotNull(inline);
-
-          found = true;
-        }
-      }
-      assertTrue(found);
-    }
-  }
-
-  @Ignore
-  @Test
-  public void withInlineEntitySetFromAtom() {
-    withInlineEntitySet(client, ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void withInlineEntitySetFromFullJSON() {
-    withInlineEntitySet(client, ContentType.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void withInlineEntitySetFromJSON() {
-    withInlineEntitySet(edmClient, ContentType.JSON);
-  }
-
-  private void rawRequest(final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5);
-
-    final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
-    req.setFormat(contentType.toContentTypeString());
-
-    final ODataRawResponse res = req.execute();
-    assertNotNull(res);
-
-    final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
-    assertNull(entitySet);
-
-    final ResWrap<ClientEntity> entity = res.getBodyAs(ClientEntity.class);
-    assertTrue(entity.getPayload().getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/People(5)"));
-  }
-
-  @Test
-  public void rawRequestAsAtom() {
-    rawRequest(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void rawRequestAsJSON() {
-    // this needs to be full, otherwise reference will not be provided
-    rawRequest(ContentType.JSON_FULL_METADATA);
-  }
-
-  private void multiKey(final ContentType contentType) throws EdmPrimitiveTypeException {
-    final LinkedHashMap<String, Object> multiKey = new LinkedHashMap<String, Object>();
-    multiKey.put("ProductID", "6");
-    multiKey.put("ProductDetailID", 1);
-
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("ProductDetails").appendKeySegment(multiKey);
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-    final ClientEntity entity = res.getBody();
-    assertNotNull(entity);
-    assertEquals(Integer.valueOf(1),
-        entity.getProperty("ProductDetailID").getPrimitiveValue().toCastValue(Integer.class));
-  }
-
-  @Test
-  public void multiKeyAsAtom() throws EdmPrimitiveTypeException {
-    multiKey(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void multiKeyAsJSON() throws EdmPrimitiveTypeException {
-    multiKey(ContentType.JSON_FULL_METADATA);
-  }
-
-  private void checkForETag(final ODataClient client, final ContentType contentType) {
-    final URIBuilder uriBuilder =
-        client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders").appendKeySegment(8);
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-    assertEquals(200, res.getStatusCode());
-
-    final String etag = res.getETag();
-    assertTrue(StringUtils.isNotBlank(etag));
-
-    final ClientEntity order = res.getBody();
-    assertEquals(etag, order.getETag());
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Order", order.getTypeName().toString());
-    assertEquals("Edm.Int32", order.getProperty("OrderID").getPrimitiveValue().getTypeName());
-    assertEquals("Edm.DateTimeOffset", order.getProperty("OrderDate").getPrimitiveValue().getTypeName());
-    assertEquals("Edm.Duration", order.getProperty("ShelfLife").getPrimitiveValue().getTypeName());
-    assertEquals("Collection(Edm.Duration)", order.getProperty("OrderShelfLifes").getCollectionValue().getTypeName());
-  }
-
-  @Test
-  public void checkForETagAsAtom() {
-    checkForETag(client, ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void checkForETagAsFullJSON() {
-    checkForETag(client, ContentType.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void checkForETagAsJSON() {
-    checkForETag(edmClient, ContentType.JSON);
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void issue99() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(ContentType.JSON);
-
-    // this statement should cause an IllegalArgumentException bearing JsonParseException
-    // since we are attempting to parse an EntitySet as if it was an Entity
-    req.execute().getBody();
-  }
-
-  private void reference(final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Orders").appendKeySegment(8).appendNavigationSegment("CustomerForOrder").
-        appendRefSegment();
-
-    ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    ODataRetrieveResponse<ClientEntity> res = req.execute();
-    assertNotNull(res);
-
-    final ClientEntity entity = res.getBody();
-    assertNotNull(entity);
-    assertTrue(entity.getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/Customers(PersonID=1)"));
-
-    final URI referenceURI = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntityIdSegment(entity.getId().toASCIIString()).build();
-
-    req = client.getRetrieveRequestFactory().getEntityRequest(referenceURI);
-    req.setFormat(contentType);
-
-    res = req.execute();
-    assertNotNull(res);
-    assertNotNull(res.getBody());
-  }
-
-  @Test
-  public void atomReference() {
-    reference(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonReference() {
-    reference(ContentType.JSON_FULL_METADATA);
-  }
-
-  private void contained(final ODataClient client, final ContentType contentType) throws EdmPrimitiveTypeException {
-    final URI uri = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Accounts").appendKeySegment(101).
-        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(101902).build();
-    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
-    req.setFormat(contentType);
-
-    final ClientEntity contained = req.execute().getBody();
-    assertNotNull(contained);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", contained.getTypeName().toString());
-    assertEquals(101902,
-        contained.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
-    assertEquals("Edm.DateTimeOffset", contained.getProperty("CreatedDate").getPrimitiveValue().getTypeName());
-    assertNotNull(contained.getProperty("CreatedDate").getPrimitiveValue().toCastValue(Timestamp.class));
-  }
-
-  @Test
-  public void containedFromAtom() throws EdmPrimitiveTypeException {
-    contained(client, ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void containedFromFullJSON() throws EdmPrimitiveTypeException {
-    contained(client, ContentType.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void containedFromJSON() throws EdmPrimitiveTypeException {
-    contained(edmClient, ContentType.JSON);
-  }
-
-  private void entitySetNavigationLink(final ODataClient client, final ContentType contentType) {
-    final URI uri = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Accounts").appendKeySegment(101).build();
-    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
-    req.setFormat(contentType);
-
-    final ClientEntity entity = req.execute().getBody();
-    assertNotNull(entity);
-
-    // With JSON, entity set navigation links are only recognizable via Edm
-    if (contentType.equals(ContentType.APPLICATION_ATOM_XML) || client instanceof EdmEnabledODataClient) {
-      assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("MyPaymentInstruments").getType());
-      assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("ActiveSubscriptions").getType());
-    }
-  }
-
-  @Test
-  public void entitySetNavigationLinkFromAtom() {
-    entitySetNavigationLink(client, ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void entitySetNavigationLinkFromJSON() {
-    // only JSON_FULL_METADATA has links, only Edm can recognize entity set navigation
-    entitySetNavigationLink(edmClient, ContentType.JSON_FULL_METADATA);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
deleted file mode 100644
index 64d425b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
+++ /dev/null
@@ -1,178 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.net.URI;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetIteratorRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataRawRequest;
-import org.apache.olingo.client.api.communication.response.ODataRawResponse;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientEntitySetIterator;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-/**
- * This is the unit test class to check basic feed operations.
- */
-public class EntitySetTestITCase extends AbstractTestITCase {
-
-  private void rawRequest(final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
-
-    final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
-    req.setFormat(contentType.toContentTypeString());
-
-    final ODataRawResponse res = req.execute();
-    assertNotNull(res);
-
-    final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
-    assertNotNull(entitySet.getPayload());
-    assertTrue(entitySet.getContextURL().toASCIIString().endsWith("$metadata#People"));
-  }
-
-  @Test
-  public void rawRequestAsAtom() throws IOException {
-    rawRequest(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void rawRequestAsJSON() throws IOException {
-    rawRequest(ContentType.JSON);
-  }
-
-  private void readWithInlineCount(final ODataClient client, final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").count(true);
-
-    final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
-    req.setFormat(contentType.toContentTypeString());
-
-    final ODataRawResponse res = req.execute();
-    assertNotNull(res);
-
-    final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
-    assertEquals(5, entitySet.getPayload().getEntities().size());
-
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Address",
-        entitySet.getPayload().getEntities().get(2).getProperty("HomeAddress").getComplexValue().getTypeName());
-  }
-
-  @Test
-  public void readWithInlineCountAsJSON() throws IOException {
-    readWithInlineCount(edmClient, ContentType.JSON);
-  }
-
-  @Test
-  public void readWithInlineCountAsFullJSON() throws IOException {
-    readWithInlineCount(client, ContentType.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void readWithInlineCountAsAtom() throws IOException {
-    readWithInlineCount(client, ContentType.APPLICATION_ATOM_XML);
-  }
-
-  private void readODataEntitySetIterator(final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
-
-    final ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntitySetIteratorRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final ODataRetrieveResponse<ClientEntitySetIterator<ClientEntitySet, ClientEntity>> res = req.execute();
-    final ClientEntitySetIterator<ClientEntitySet, ClientEntity> feedIterator = res.getBody();
-
-    assertNotNull(feedIterator);
-
-    int count = 0;
-
-    while (feedIterator.hasNext()) {
-      assertNotNull(feedIterator.next());
-      count++;
-    }
-    assertEquals(5, count);
-    assertTrue(feedIterator.getNext().toASCIIString().endsWith("People?$skiptoken=5"));
-  }
-
-  @Test
-  public void readODataEntitySetIteratorFromAtom() {
-    readODataEntitySetIterator(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void readODataEntitySetIteratorFromJSON() {
-    readODataEntitySetIterator(ContentType.JSON);
-  }
-
-  @Test
-  public void readODataEntitySetIteratorFromJSONFull() {
-    readODataEntitySetIterator(ContentType.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void readODataEntitySetIteratorFromJSONNo() {
-    readODataEntitySetIterator(ContentType.JSON_NO_METADATA);
-  }
-
-  private void readWithNext(final ContentType format) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
-
-    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
-        getEntitySetRequest(uriBuilder.build());
-    req.setFormat(format);
-    req.setPrefer(client.newPreferences().maxPageSize(5));
-
-    final ODataRetrieveResponse<ClientEntitySet> res = req.execute();
-    final ClientEntitySet feed = res.getBody();
-
-    assertNotNull(feed);
-
-    assertEquals(5, feed.getEntities().size());
-    assertNotNull(feed.getNext());
-
-    final URI expected = URI.create(testStaticServiceRootURL + "/People?$skiptoken=5");
-    final URI found = URIUtils.getURI(testStaticServiceRootURL, feed.getNext().toASCIIString());
-
-    assertEquals(expected, found);
-  }
-
-  @Test
-  public void readWithNextFromAtom() {
-    readWithNext(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void readWithNextFromJSON() {
-    readWithNext(ContentType.JSON_FULL_METADATA);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
deleted file mode 100644
index 8750348..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
+++ /dev/null
@@ -1,185 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.Calendar;
-import java.util.TimeZone;
-import java.util.UUID;
-
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
-import org.apache.olingo.client.api.communication.request.cud.ODataReferenceAddingRequest;
-import org.apache.olingo.client.api.communication.request.cud.UpdateType;
-import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.client.api.communication.response.ODataReferenceAddingResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientLink;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class EntityUpdateTestITCase extends AbstractTestITCase {
-
-  private void upsert(final UpdateType updateType, final ContentType contentType) {
-    final ClientEntity order = getClient().getObjectFactory().
-        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
-
-    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderID",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(9)));
-    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
-        getClient().getObjectFactory().newPrimitiveValueBuilder()
-        .setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(
-            Calendar.getInstance(TimeZone.getTimeZone("GMT"))).build()));
-    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build()));
-
-    final URI upsertURI = getClient().newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Orders").appendKeySegment(9).build();
-    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
-        getEntityUpdateRequest(upsertURI, updateType, order);
-    req.setFormat(contentType);
-
-    req.execute();
-    try {
-      final ClientEntity read = read(contentType, upsertURI);
-      assertNotNull(read);
-      assertEquals(order.getProperty("OrderID"), read.getProperty("OrderID"));
-      assertEquals(order.getProperty("OrderDate").getPrimitiveValue().toString(),
-          read.getProperty("OrderDate").getPrimitiveValue().toString());
-      assertEquals(order.getProperty("ShelfLife").getPrimitiveValue().toString(),
-          read.getProperty("ShelfLife").getPrimitiveValue().toString());
-    } finally {
-      getClient().getCUDRequestFactory().getDeleteRequest(upsertURI).execute();
-    }
-  }
-
-  @Test
-  @Ignore
-  public void testUpateSingleValuedNavtiogationReference() throws Exception {
-    URI targetURI =
-        getClient().newURIBuilder(testStaticServiceRootURL)
-        .appendEntitySetSegment("People")
-        .appendKeySegment(1)
-        .appendNavigationSegment("Parent")
-        .build();
-
-    URI reference = getClient().newURIBuilder(testStaticServiceRootURL)
-        .appendEntitySetSegment("People")
-        .appendKeySegment(0)
-        .build();
-
-    final ODataReferenceAddingRequest request =
-        getClient().getCUDRequestFactory().getReferenceSingleChangeRequest(new URI(testStaticServiceRootURL),
-            targetURI, reference);
-
-    final ODataReferenceAddingResponse response = request.execute();
-
-    assertEquals(204, response.getStatusCode());
-  }
-
-  @Test
-  public void atomUpsert() {
-    upsert(UpdateType.PATCH, ContentType.APPLICATION_ATOM_XML);
-    upsert(UpdateType.REPLACE, ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonUpsert() {
-    upsert(UpdateType.PATCH, ContentType.JSON);
-    upsert(UpdateType.REPLACE, ContentType.JSON);
-  }
-
-  private void onContained(final ContentType contentType) {
-    final String newName = UUID.randomUUID().toString();
-    final ClientEntity changes = getClient().getObjectFactory().newEntity(
-        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"));
-    changes.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("FriendlyName",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString(newName)));
-
-    final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Accounts").appendKeySegment(101).
-        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(101901).build();
-    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
-        getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
-    req.setFormat(contentType);
-
-    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
-    assertEquals(204, res.getStatusCode());
-
-    final ClientEntity actual = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
-    assertNotNull(actual);
-    assertEquals(newName, actual.getProperty("FriendlyName").getPrimitiveValue().toString());
-  }
-
-  @Test
-  public void atomOnContained() {
-    onContained(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonOnContained() {
-    onContained(ContentType.JSON);
-  }
-
-  private void bindOperation(final ContentType contentType) throws EdmPrimitiveTypeException {
-    final ClientEntity changes = getClient().getObjectFactory().newEntity(
-        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
-    final ClientLink parent = getClient().getObjectFactory().newEntityNavigationLink("Parent",
-        getClient().newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(1).build());
-    changes.getNavigationLinks().add(parent);
-
-    final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).build();
-    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
-        getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
-    req.setFormat(contentType);
-
-    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
-    assertEquals(204, res.getStatusCode());
-
-    final ClientEntity updated = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
-    assertNotNull(updated);
-    final ClientLink updatedLink = updated.getNavigationLink("Parent");
-    assertNotNull(updatedLink);
-
-    final ClientEntity updatedEntity = getClient().getRetrieveRequestFactory().getEntityRequest(updatedLink.getLink()).
-        execute().getBody();
-    assertNotNull(updatedEntity);
-    assertEquals(1, updatedEntity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
-  }
-
-  @Test
-  public void atomBindOperation() throws EdmPrimitiveTypeException {
-    bindOperation(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonBindOperation() throws EdmPrimitiveTypeException {
-    bindOperation(ContentType.JSON);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
deleted file mode 100644
index b241ef6..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.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.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-import java.net.URI;
-import java.util.Map;
-
-import org.apache.olingo.client.api.communication.ODataClientErrorException;
-import org.apache.olingo.commons.api.ex.ODataError;
-import org.apache.olingo.commons.api.ex.ODataErrorDetail;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class ErrorResponseTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void jsonError() {
-    final URI readURI = getClient().newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(32).
-        build();
-
-    try {
-      read(ContentType.JSON, readURI);
-      fail("should have got exception");
-    } catch (Exception ex) {
-      final ODataError err = ((ODataClientErrorException) ex).getODataError();
-
-      // verify details
-      final ODataErrorDetail detail = err.getDetails().get(0);
-      assertEquals("Code should be correct", "301", detail.getCode());
-      assertEquals("Target should be correct", "$search", detail.getTarget());
-      assertEquals("Message should be correct", "$search query option not supported", detail.getMessage());
-
-      // verify inner error dictionary
-      final Map<String, String> innerErr = err.getInnerError();
-      assertEquals("innerError dictionary size should be correct", 2, innerErr.size());
-      assertEquals("innerError['context'] should be correct",
-          "{\"key1\":\"for debug deployment only\"}", innerErr.get("context"));
-      assertEquals("innerError['trace'] should be correct",
-          "[\"callmethod1 etc\",\"callmethod2 etc\"]", innerErr.get("trace"));
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
deleted file mode 100644
index f25cfd3..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.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.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.uri.FilterArgFactory;
-import org.apache.olingo.client.api.uri.FilterFactory;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.client.api.uri.URIFilter;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class FilterFactoryTestITCase extends AbstractTestITCase {
-
-  private FilterFactory getFilterFactory() {
-    return getClient().getFilterFactory();
-  }
-
-  private FilterArgFactory getFilterArgFactory() {
-    return getFilterFactory().getArgFactory();
-  }
-
-  @Test
-  public void crossjoin() {
-    final URIFilter filter = getFilterFactory().eq(
-        getFilterArgFactory().property("Orders/OrderID"), getFilterArgFactory().property("Customers/Order"));
-
-    final URIBuilder uriBuilder =
-        client.newURIBuilder(testStaticServiceRootURL).appendCrossjoinSegment("Customers", "Orders").filter(filter);
-
-    final ODataEntitySetRequest<ClientEntitySet> req =
-        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
-    req.setFormat(ContentType.JSON_FULL_METADATA);
-
-    final ClientEntitySet feed = req.execute().getBody();
-    assertEquals(3, feed.getEntities().size());
-
-    for (ClientEntity entity : feed.getEntities()) {
-      assertEquals(2, entity.getNavigationLinks().size());
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
deleted file mode 100644
index f738ed4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
+++ /dev/null
@@ -1,333 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.math.BigDecimal;
-import java.net.URI;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientAnnotation;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientLink;
-import org.apache.olingo.client.api.domain.ClientLinkType;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.data.Entity;
-import org.apache.olingo.commons.api.data.EntityCollection;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-/**
- * The test cases in this class are inspired by client conformance criteria defined in the <a
- * href="http://docs.oasis-open.org/odata/odata-json-format/v4.0/os/odata-json-format-v4.0-os.html#_Toc372793094">specs
- * </a>.
- */
-public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
-
-  /**
-   * MUST either:
-   * <ol>
-   * <li>understand <tt>odata.metadata=minimal</tt> (section 3.1.1) or</li>
-   * <li>explicitly specify <tt>odata.metadata=none</tt>(section 3.1.3) or <tt>odata.metadata=full</tt> (section 3.1.2)
-   * in the request (client)</li>
-   * </ol>
-   * .
-   */
-  @Test
-  public void item1() throws EdmPrimitiveTypeException {
-    final URI uri = edmClient.newURIBuilder().
-        appendEntitySetSegment("Accounts").appendKeySegment(102).
-        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(102902).build();
-    final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
-
-    // request format (via Accept header) is set to minimal by default
-    assertEquals("application/json;odata.metadata=minimal", req.getAccept());
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-
-    // response is odata.metadata=minimal
-    assertFalse(res.getContentType().contains("odata.metadata=none"));
-    assertFalse(res.getContentType().contains("odata.metadata=full"));
-
-    // response payload is understood
-    final ClientEntity entity = res.getBody();
-    assertNotNull(entity);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", entity.getTypeName().toString());
-    assertEquals(102902, entity.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
-    assertEquals("Edm.DateTimeOffset", entity.getProperty("CreatedDate").getPrimitiveValue().getTypeName());
-  }
-
-  /**
-   * MUST be prepared to consume a response with full metadata.
-   */
-  @Test
-  public void item2() {
-    final URI uri = edmClient.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Accounts").appendKeySegment(102).build();
-    final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
-    req.setFormat(ContentType.JSON_FULL_METADATA);
-
-    // request format (via Accept header) is set to full metadata
-    assertEquals("application/json;odata.metadata=full", req.getAccept());
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-
-    // response is odata.metadata=full
-    assertTrue(res.getContentType().contains("odata.metadata=full"));
-
-    // response payload is understood (including links, only returned with full metadata)
-    final ClientEntity entity = res.getBody();
-    assertNotNull(entity);
-    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("MyPaymentInstruments").getType());
-    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("ActiveSubscriptions").getType());
-  }
-
-  /**
-   * MUST be prepared to receive all data types (section 7.1)
-   * <ol>
-   * <li>defined in this specification (client)</li>
-   * <li>exposed by the service (service)</li>
-   * </ol>
-   * .
-   */
-  @Test
-  public void item3() throws Exception {
-    final String fromSection71 = "{"
-        + "\"NullValue\": null,"
-        + "\"TrueValue\": true,"
-        + "\"FalseValue\": false,"
-        + "\"BinaryValue@odata.type\": \"Binary\","
-        + "\"BinaryValue\": \"T0RhdGE\","
-        + "\"IntegerValue\": -128,"
-        + "\"DoubleValue\": 3.1415926535897931,"
-        + "\"SingleValue@odata.type\": \"Single\","
-        + "\"SingleValue\": \"INF\","
-        + "\"DecimalValue@odata.type\": \"Decimal\","
-        + "\"DecimalValue\": 34.95,"
-        + "\"StringValue\": \"Say \\\"Hello\\\",\\nthen go\","
-        + "\"DateValue@odata.type\": \"Date\","
-        + "\"DateValue\": \"2012-12-03\","
-        + "\"DateTimeOffsetValue@odata.type\": \"DateTimeOffset\","
-        + "\"DateTimeOffsetValue\": \"2012-12-03T07:16:23Z\","
-        + "\"DurationValue@odata.type\": \"Duration\","
-        + "\"DurationValue\": \"P12DT23H59M59.999999999999S\","
-        + "\"TimeOfDayValue@odata.type\": \"TimeOfDay\","
-        + "\"TimeOfDayValue\": \"07:59:59.999\","
-        + "\"GuidValue@odata.type\": \"Guid\","
-        + "\"GuidValue\": \"01234567-89ab-cdef-0123-456789abcdef\","
-        + "\"Int64Value@odata.type\": \"Int64\","
-        + "\"Int64Value\": 0,"
-        + "\"ColorEnumValue@odata.type\": \"Test.Color\","
-        + "\"ColorEnumValue\": \"Yellow\","
-        + "\"GeographyPoint\": {\"type\": \"Point\",\"coordinates\":[142.1,64.1]}"
-        + "}";
-
-    final ClientEntity entity = client.getReader().readEntity(IOUtils.toInputStream(fromSection71), ContentType.JSON);
-
-    assertTrue(entity.getProperty("NullValue").hasNullValue());
-
-    assertEquals(EdmPrimitiveTypeKind.Boolean, entity.getProperty("TrueValue").getPrimitiveValue().getTypeKind());
-    assertEquals(Boolean.TRUE, entity.getProperty("TrueValue").getPrimitiveValue().toCastValue(Boolean.class));
-
-    assertEquals(EdmPrimitiveTypeKind.Boolean, entity.getProperty("FalseValue").getPrimitiveValue().getTypeKind());
-    assertEquals(Boolean.FALSE, entity.getProperty("FalseValue").getPrimitiveValue().toCastValue(Boolean.class));
-
-    assertEquals(EdmPrimitiveTypeKind.Binary, entity.getProperty("BinaryValue").getPrimitiveValue().getTypeKind());
-
-    assertEquals(EdmPrimitiveTypeKind.Int32, entity.getProperty("IntegerValue").getPrimitiveValue().getTypeKind());
-    assertEquals(-128, entity.getProperty("IntegerValue").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    assertEquals(EdmPrimitiveTypeKind.Double, entity.getProperty("DoubleValue").getPrimitiveValue().getTypeKind());
-    assertEquals(3.1415926535897931,
-        entity.getProperty("DoubleValue").getPrimitiveValue().toCastValue(Double.class), 0);
-
-    assertEquals(EdmPrimitiveTypeKind.Single, entity.getProperty("SingleValue").getPrimitiveValue().getTypeKind());
-    assertEquals(Float.POSITIVE_INFINITY,
-        entity.getProperty("SingleValue").getPrimitiveValue().toCastValue(Float.class), 0);
-
-    assertEquals(EdmPrimitiveTypeKind.Decimal, entity.getProperty("DecimalValue").getPrimitiveValue().getTypeKind());
-    assertEquals(BigDecimal.valueOf(34.95),
-        entity.getProperty("DecimalValue").getPrimitiveValue().toCastValue(BigDecimal.class));
-
-    assertEquals(EdmPrimitiveTypeKind.String, entity.getProperty("StringValue").getPrimitiveValue().getTypeKind());
-    assertEquals("Say \"Hello\",\nthen go",
-        entity.getProperty("StringValue").getPrimitiveValue().toCastValue(String.class));
-
-    assertEquals(EdmPrimitiveTypeKind.Date, entity.getProperty("DateValue").getPrimitiveValue().getTypeKind());
-
-    assertEquals(EdmPrimitiveTypeKind.DateTimeOffset,
-        entity.getProperty("DateTimeOffsetValue").getPrimitiveValue().getTypeKind());
-
-    assertEquals(EdmPrimitiveTypeKind.Duration, entity.getProperty("DurationValue").getPrimitiveValue().getTypeKind());
-
-    assertEquals(EdmPrimitiveTypeKind.TimeOfDay,
-        entity.getProperty("TimeOfDayValue").getPrimitiveValue().getTypeKind());
-
-    assertEquals(EdmPrimitiveTypeKind.Guid, entity.getProperty("GuidValue").getPrimitiveValue().getTypeKind());
-
-    assertEquals(EdmPrimitiveTypeKind.Int64, entity.getProperty("Int64Value").getPrimitiveValue().getTypeKind());
-
-    assertTrue(entity.getProperty("ColorEnumValue").hasEnumValue());
-
-    assertEquals(EdmPrimitiveTypeKind.GeographyPoint,
-        entity.getProperty("GeographyPoint").getPrimitiveValue().getTypeKind());
-  }
-
-  /**
-   * MUST interpret all odata annotations defined according to the OData-Version header of the payload (section 4.5).
-   */
-  @Test
-  public void item4() throws Exception {
-    final String fromSection45_1 = "{"
-        + "\"@odata.context\": \"http://host/service/$metadata#Customers/$entity\","
-        + "\"@odata.metadataEtag\": \"W/\\\"A1FF3E230954908F\\\"\","
-        + "\"@odata.etag\": \"W/\\\"A1FF3E230954908G\\\"\","
-        + "\"@odata.type\": \"#Model.VipCustomer\","
-        + "\"@odata.id\": \"http://host/service/Employees(PersonID=3)\","
-        + "\"@odata.editLink\": \"People(976)\","
-        + "\"@odata.mediaEditLink\": \"Employees(1)/$value\","
-        + "\"@odata.mediaContentType\": \"image/jpeg\","
-        + "\"@odata.mediaEtag\": \"W/\\\"A1FF3E230954908H\\\"\","
-        + "\"Parent@odata.navigationLink\": \"People(976)/Parent\","
-        + "\"Parent@odata.associationLink\": \"People(976)/Parent\""
-        + "}";
-
-    final ResWrap<Entity> entity =
-        client.getDeserializer(ContentType.JSON).toEntity(IOUtils.toInputStream(fromSection45_1));
-
-    assertEquals("http://host/service/$metadata#Customers/$entity", entity.getContextURL().toASCIIString());
-    assertEquals("W/\"A1FF3E230954908F\"", entity.getMetadataETag());
-    assertEquals("W/\"A1FF3E230954908G\"", entity.getPayload().getETag());
-    assertEquals("Model.VipCustomer", entity.getPayload().getType());
-    assertEquals("http://host/service/Employees(PersonID=3)", entity.getPayload().getId().toASCIIString());
-    assertEquals("People(976)", entity.getPayload().getEditLink().getHref());
-    assertEquals("Employees(1)/$value", entity.getPayload().getMediaContentSource().toASCIIString());
-    assertEquals("image/jpeg", entity.getPayload().getMediaContentType());
-    assertEquals("W/\"A1FF3E230954908H\"", entity.getPayload().getMediaETag());
-    assertEquals("People(976)/Parent", entity.getPayload().getNavigationLink("Parent").getHref());
-    assertEquals("People(976)/Parent", entity.getPayload().getAssociationLink("Parent").getHref());
-
-    final String fromSection45_2 = "{"
-        + "  \"@odata.count\": 5,"
-        + "  \"value\": [],"
-        + "  \"@odata.nextLink\": \"Customers?$expand=Orders&$skipToken=5\","
-        + "  \"@odata.deltaLink\": \"Customers?$expand=Orders&$deltatoken=8015\""
-        + "}";
-
-    final ResWrap<EntityCollection> entitySet =
-        client.getDeserializer(ContentType.JSON).toEntitySet(IOUtils.toInputStream(fromSection45_2));
-
-    assertEquals(5, entitySet.getPayload().getCount(), 0);
-    assertEquals("Customers?$expand=Orders&$skipToken=5", entitySet.getPayload().getNext().toASCIIString());
-    assertEquals("Customers?$expand=Orders&$deltatoken=8015", entitySet.getPayload().getDeltaLink().toASCIIString());
-  }
-
-  /**
-   * MUST be prepared to receive any annotations, including custom annotations and <tt>odata</tt> annotations not
-   * defined in the <tt>OData-Version</tt> header of the payload (section 20).
-   */
-  @Test
-  public void item5() throws Exception {
-    final String sample = "{"
-        + "  \"@odata.context\": \"http://host/service/$metadata#Customers\","
-        + "  \"@odata.notdefined\": 11,"
-        + "  \"@com.contoso.customer.setkind\": \"VIPs\","
-        + "  \"value\": ["
-        + "    {"
-        + "      \"@com.contoso.display.highlight\": true,"
-        + "      \"ID\": \"ALFKI\","
-        + "      \"CompanyName@com.contoso.display.style\": { \"title\": true, \"order\": 1 },"
-        + "      \"CompanyName\": \"Alfreds Futterkiste\","
-        + "      \"Orders@com.contoso.display.style\": { \"order\": 2 },"
-        + "      \"Orders@odata.navigationLink\": \"People(976)/Orders\""
-        + "    }"
-        + "  ]"
-        + "}";
-
-    final ClientEntitySet entitySet = client.getReader().
-        readEntitySet(IOUtils.toInputStream(sample), ContentType.JSON);
-
-    assertEquals(2, entitySet.getAnnotations().size());
-
-    final ClientAnnotation notdefined = entitySet.getAnnotations().get(0);
-    assertEquals("odata.notdefined", notdefined.getTerm());
-    assertEquals(11, notdefined.getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    final ClientAnnotation setkind = entitySet.getAnnotations().get(1);
-    assertEquals("com.contoso.customer.setkind", setkind.getTerm());
-    assertEquals("VIPs", setkind.getPrimitiveValue().toCastValue(String.class));
-
-    final ClientEntity entity = entitySet.getEntities().get(0);
-    assertEquals(1, entity.getAnnotations().size());
-
-    final ClientAnnotation highlight = entity.getAnnotations().get(0);
-    assertEquals("com.contoso.display.highlight", highlight.getTerm());
-    assertEquals(Boolean.TRUE, highlight.getPrimitiveValue().toCastValue(Boolean.class));
-
-    final ClientProperty property = entity.getProperty("CompanyName");
-    assertEquals(1, property.getAnnotations().size());
-
-    final ClientAnnotation style = property.getAnnotations().get(0);
-    assertEquals("com.contoso.display.style", style.getTerm());
-    assertTrue(style.hasComplexValue());
-    assertEquals(Boolean.TRUE, style.getComplexValue().get("title").getPrimitiveValue().toCastValue(Boolean.class));
-    assertEquals(1, style.getComplexValue().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    final ClientLink orders = entity.getNavigationLink("Orders");
-    assertEquals(1, orders.getAnnotations().size());
-
-    final ClientAnnotation style2 = orders.getAnnotations().get(0);
-    assertEquals("com.contoso.display.style", style2.getTerm());
-    assertTrue(style2.hasComplexValue());
-    assertEquals(2, style2.getComplexValue().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
-  }
-
-  /**
-   * MUST NOT require <tt>odata.streaming=true</tt> in the <tt>Content-Type</tt> header (section 4.4).
-   */
-  @Test
-  public void item6() throws EdmPrimitiveTypeException {
-    final URI uri = edmClient.newURIBuilder().
-        appendEntitySetSegment("Accounts").appendKeySegment(102).
-        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(102902).build();
-    final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
-
-    // request format (via Accept header) does not contain odata.streaming=true
-    assertEquals("application/json;odata.metadata=minimal", req.getAccept());
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-
-    // response payload is understood
-    final ClientEntity entity = res.getBody();
-    assertNotNull(entity);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", entity.getTypeName().toString());
-    assertEquals(102902, entity.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
-    assertEquals("Edm.DateTimeOffset", entity.getProperty("CreatedDate").getPrimitiveValue().getTypeName());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
deleted file mode 100644
index 54206fb..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
+++ /dev/null
@@ -1,127 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URI;
-
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
-import org.apache.olingo.client.api.communication.request.cud.UpdateType;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public class KeyAsSegmentTestITCase extends AbstractTestITCase {
-
-  @BeforeClass
-  public static void enableKeyAsSegment() {
-    client.getConfiguration().setKeyAsSegment(true);
-  }
-
-  @AfterClass
-  public static void disableKeyAsSegment() {
-    client.getConfiguration().setKeyAsSegment(false);
-  }
-
-  private void read(final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testKeyAsSegmentServiceRootURL).
-        appendEntitySetSegment("Accounts").appendKeySegment(101);
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-    final ClientEntity entity = res.getBody();
-    assertNotNull(entity);
-
-    // In JSON with minimal metadata, links are not provided
-    if (contentType.equals(ContentType.APPLICATION_ATOM_XML) || contentType.equals(ContentType.JSON_FULL_METADATA)) {
-      assertFalse(entity.getEditLink().toASCIIString().contains("("));
-      assertFalse(entity.getEditLink().toASCIIString().contains(")"));
-    }
-  }
-
-  @Test
-  public void atomRead() {
-    read(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonRead() {
-    read(ContentType.JSON);
-  }
-
-  @Test
-  public void atomCreateAndDelete() {
-    createAndDeleteOrder(testKeyAsSegmentServiceRootURL, ContentType.APPLICATION_ATOM_XML, 1000);
-  }
-
-  @Test
-  public void jsonCreateAndDelete() {
-    createAndDeleteOrder(testKeyAsSegmentServiceRootURL, ContentType.JSON_FULL_METADATA, 1001);
-  }
-
-  private void update(final ContentType contentType) {
-    final ClientEntity changes = getClient().getObjectFactory().newEntity(
-        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
-    final ClientProperty middleName = getClient().getObjectFactory().newPrimitiveProperty("MiddleName",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("middle"));
-    changes.getProperties().add(middleName);
-
-    final URI uri = getClient().newURIBuilder(testKeyAsSegmentServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).build();
-    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
-        getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
-    req.setFormat(contentType);
-
-    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
-    assertEquals(204, res.getStatusCode());
-
-    final ClientEntity updated = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
-    assertNotNull(updated);
-    assertFalse(updated.getEditLink().toASCIIString().contains("("));
-    assertFalse(updated.getEditLink().toASCIIString().contains(")"));
-
-    final ClientProperty updatedMiddleName = updated.getProperty("MiddleName");
-    assertNotNull(updatedMiddleName);
-    assertEquals("middle", updatedMiddleName.getPrimitiveValue().toString());
-  }
-
-  @Test
-  public void atomUpdate() {
-    update(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonUpdate() {
-    update(ContentType.JSON);
-  }
-}


[08/55] [abbrv] olingo-odata4 git commit: [OLINGO-713] Proposal Tutorial - System Query Option $filter

Posted by mi...@apache.org.
[OLINGO-713] Proposal Tutorial - System Query Option $filter


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: c0e032d48505c6d50bf42f3008fdd6f120eaf619
Parents: 74fe42e
Author: Christian Holzer <c....@sap.com>
Authored: Fri Aug 21 14:56:45 2015 +0200
Committer: Christian Holzer <c....@sap.com>
Committed: Fri Aug 21 15:04:20 2015 +0200

----------------------------------------------------------------------
 samples/tutorials/p7_queryoptions-f/pom.xml     |  80 +++++
 .../myservice/mynamespace/data/Storage.java     | 125 ++++++++
 .../mynamespace/service/DemoEdmProvider.java    | 153 +++++++++
 .../service/DemoEntityCollectionProcessor.java  | 134 ++++++++
 .../service/DemoEntityProcessor.java            | 126 ++++++++
 .../service/DemoPrimitiveProcessor.java         | 147 +++++++++
 .../service/FilterExpressionVisitor.java        | 308 +++++++++++++++++++
 .../java/myservice/mynamespace/util/Util.java   | 120 ++++++++
 .../myservice/mynamespace/web/DemoServlet.java  |  76 +++++
 .../src/main/webapp/WEB-INF/web.xml             |  40 +++
 .../p7_queryoptions-f/src/main/webapp/index.jsp |  24 ++
 11 files changed, 1333 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0e032d4/samples/tutorials/p7_queryoptions-f/pom.xml
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/pom.xml b/samples/tutorials/p7_queryoptions-f/pom.xml
new file mode 100644
index 0000000..439a37c
--- /dev/null
+++ b/samples/tutorials/p7_queryoptions-f/pom.xml
@@ -0,0 +1,80 @@
+<?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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>my.group.id</groupId>
+	<artifactId>DemoService-QueryOptions-F</artifactId>
+	<packaging>war</packaging>
+	<version>0.0.1</version>
+
+	<name>${project.artifactId} Webapp</name>
+
+    <build>
+		<finalName>DemoService</finalName>
+	</build>
+
+    <properties>
+		<javax.version>2.5</javax.version>
+		<odata.version>4.0.0-beta-03</odata.version>
+		<slf4j.version>1.7.7</slf4j.version>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>${javax.version}</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.olingo</groupId>
+			<artifactId>odata-server-api</artifactId>
+			<version>${odata.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.olingo</groupId>
+			<artifactId>odata-server-core</artifactId>
+			<version>${odata.version}</version>
+			<scope>runtime</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.olingo</groupId>
+			<artifactId>odata-commons-api</artifactId>
+			<version>${odata.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.olingo</groupId>
+			<artifactId>odata-commons-core</artifactId>
+			<version>${odata.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-simple</artifactId>
+			<version>${slf4j.version}</version>
+			<scope>runtime</scope>
+		</dependency>
+	</dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0e032d4/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/data/Storage.java
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/data/Storage.java b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/data/Storage.java
new file mode 100644
index 0000000..d5d16c2
--- /dev/null
+++ b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/data/Storage.java
@@ -0,0 +1,125 @@
+/*
+ * 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 myservice.mynamespace.data;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import myservice.mynamespace.service.DemoEdmProvider;
+import myservice.mynamespace.util.Util;
+
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.data.EntityCollection;
+import org.apache.olingo.commons.api.data.Property;
+import org.apache.olingo.commons.api.data.ValueType;
+import org.apache.olingo.commons.api.edm.EdmEntitySet;
+import org.apache.olingo.commons.api.edm.EdmEntityType;
+import org.apache.olingo.commons.api.http.HttpStatusCode;
+import org.apache.olingo.server.api.ODataApplicationException;
+import org.apache.olingo.server.api.uri.UriParameter;
+
+public class Storage {
+
+	private List<Entity> productList;
+
+	public Storage() {
+		productList = new ArrayList<Entity>();
+		initSampleData();
+	}
+
+	/* PUBLIC FACADE */
+
+	public EntityCollection readEntitySetData(EdmEntitySet edmEntitySet)throws ODataApplicationException{
+
+		// actually, this is only required if we have more than one Entity Sets
+		if(edmEntitySet.getName().equals(DemoEdmProvider.ES_PRODUCTS_NAME)){
+			return getProducts();
+		}
+
+		return null;
+	}
+
+	public Entity readEntityData(EdmEntitySet edmEntitySet, List<UriParameter> keyParams) throws ODataApplicationException{
+
+		EdmEntityType edmEntityType = edmEntitySet.getEntityType();
+
+		// actually, this is only required if we have more than one Entity Type
+		if(edmEntityType.getName().equals(DemoEdmProvider.ET_PRODUCT_NAME)){
+			return getProduct(edmEntityType, keyParams);
+		}
+
+		return null;
+	}
+
+
+
+	/*  INTERNAL */
+
+	private EntityCollection getProducts(){
+		EntityCollection retEntitySet = new EntityCollection();
+
+		for(Entity productEntity : this.productList){
+			   retEntitySet.getEntities().add(productEntity);
+		}
+
+		return retEntitySet;
+	}
+
+
+	private Entity getProduct(EdmEntityType edmEntityType, List<UriParameter> keyParams) throws ODataApplicationException{
+
+		// the list of entities at runtime
+		EntityCollection entitySet = getProducts();
+		
+		/*  generic approach  to find the requested entity */
+		Entity requestedEntity = Util.findEntity(edmEntityType, entitySet, keyParams);
+		
+		if(requestedEntity == null){
+			// this variable is null if our data doesn't contain an entity for the requested key
+			// Throw suitable exception
+			throw new ODataApplicationException("Entity for requested key doesn't exist",
+          HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH);
+		}
+
+		return requestedEntity;
+	}
+
+	/* HELPER */
+
+	private void initSampleData(){
+
+		// add some sample product entities
+		productList.add(new Entity()
+			.addProperty(new Property(null, "ID", ValueType.PRIMITIVE, 1))
+			.addProperty(new Property(null, "Name", ValueType.PRIMITIVE, "Notebook Basic 15"))
+			.addProperty(new Property(null, "Description", ValueType.PRIMITIVE, "Notebook Basic, 1.7GHz - 15 XGA - 1024MB DDR2 SDRAM - 40GB")));
+
+		productList.add(new Entity()
+			.addProperty(new Property(null, "ID", ValueType.PRIMITIVE, 2))
+			.addProperty(new Property(null, "Name", ValueType.PRIMITIVE, "1UMTS PDA"))
+			.addProperty(new Property(null, "Description", ValueType.PRIMITIVE, "Ultrafast 3G UMTS/HSDPA Pocket PC, supports GSM network")));
+
+		productList.add(new Entity()
+			.addProperty(new Property(null, "ID", ValueType.PRIMITIVE, 3))
+			.addProperty(new Property(null, "Name", ValueType.PRIMITIVE, "Ergo Screen"))
+			.addProperty(new Property(null, "Description", ValueType.PRIMITIVE, "19 Optimum Resolution 1024 x 768 @ 85Hz, resolution 1280 x 960")));
+
+	}
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0e032d4/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEdmProvider.java
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEdmProvider.java b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEdmProvider.java
new file mode 100644
index 0000000..15140e1
--- /dev/null
+++ b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEdmProvider.java
@@ -0,0 +1,153 @@
+/*
+ * 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 myservice.mynamespace.service;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.olingo.commons.api.ODataException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+
+public class DemoEdmProvider extends CsdlAbstractEdmProvider {
+
+  // Service Namespace
+  public static final String NAMESPACE = "OData.Demo";
+
+  // EDM Container
+  public static final String CONTAINER_NAME = "Container";
+  public static final FullQualifiedName CONTAINER = new FullQualifiedName(NAMESPACE, CONTAINER_NAME);
+
+  // Entity Types Names
+  public static final String ET_PRODUCT_NAME = "Product";
+  public static final FullQualifiedName ET_PRODUCT_FQN = new FullQualifiedName(NAMESPACE, ET_PRODUCT_NAME);
+
+  // Entity Set Names
+  public static final String ES_PRODUCTS_NAME = "Products";
+
+
+  @Override
+  public CsdlEntityType getEntityType(FullQualifiedName entityTypeName)
+      throws ODataException {
+    // this method is called for one of the EntityTypes that are configured in the Schema
+    if(ET_PRODUCT_FQN.equals(entityTypeName)){
+
+      //create EntityType properties
+      CsdlProperty id = new CsdlProperty().setName("ID").setType(EdmPrimitiveTypeKind.Int32.getFullQualifiedName());
+      CsdlProperty name = new CsdlProperty().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName());
+      CsdlProperty  description = new CsdlProperty().setName("Description").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName());
+
+      // create PropertyRef for Key element
+      CsdlPropertyRef propertyRef = new CsdlPropertyRef();
+      propertyRef.setName("ID");
+
+      // configure EntityType
+      CsdlEntityType entityType = new CsdlEntityType();
+      entityType.setName(ET_PRODUCT_NAME);
+      entityType.setProperties(Arrays.asList(id, name, description));
+      entityType.setKey(Collections.singletonList(propertyRef));
+
+      return entityType;
+    }
+
+    return null;
+
+  }
+
+  @Override
+  public CsdlEntitySet getEntitySet(FullQualifiedName entityContainer,
+      String entitySetName) throws ODataException {
+    if(entityContainer.equals(CONTAINER)){
+      if(entitySetName.equals(ES_PRODUCTS_NAME)){
+        CsdlEntitySet entitySet = new CsdlEntitySet();
+        entitySet.setName(ES_PRODUCTS_NAME);
+        entitySet.setType(ET_PRODUCT_FQN);
+
+        return entitySet;
+      }
+    }
+
+    return null;
+
+  }
+
+  @Override
+  public CsdlEntityContainerInfo getEntityContainerInfo(
+      FullQualifiedName entityContainerName) throws ODataException {
+    // This method is invoked when displaying the service document at e.g. http://localhost:8080/DemoService/DemoService.svc
+    if(entityContainerName == null || entityContainerName.equals(CONTAINER)){
+      CsdlEntityContainerInfo entityContainerInfo = new CsdlEntityContainerInfo();
+      entityContainerInfo.setContainerName(CONTAINER);
+      return entityContainerInfo;
+    }
+
+    return null;
+
+  }
+
+  @Override
+  public List<CsdlSchema> getSchemas() throws ODataException {
+    // create Schema
+    CsdlSchema schema = new CsdlSchema();
+    schema.setNamespace(NAMESPACE);
+
+    // add EntityTypes
+    List<CsdlEntityType> entityTypes = new ArrayList<CsdlEntityType>();
+    entityTypes.add(getEntityType(ET_PRODUCT_FQN));
+    schema.setEntityTypes(entityTypes);
+
+    // add EntityContainer
+    schema.setEntityContainer(getEntityContainer());
+
+    // finally
+    List<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
+    schemas.add(schema);
+
+    return schemas;
+
+  }
+
+  @Override
+  public CsdlEntityContainer getEntityContainer() throws ODataException {
+    // create EntitySets
+    List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>();
+    entitySets.add(getEntitySet(CONTAINER, ES_PRODUCTS_NAME));
+
+    // create EntityContainer
+    CsdlEntityContainer entityContainer = new CsdlEntityContainer();
+    entityContainer.setName(CONTAINER_NAME);
+    entityContainer.setEntitySets(entitySets);
+
+    return entityContainer;
+
+  }
+
+
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0e032d4/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEntityCollectionProcessor.java
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEntityCollectionProcessor.java b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEntityCollectionProcessor.java
new file mode 100644
index 0000000..292a0c4
--- /dev/null
+++ b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEntityCollectionProcessor.java
@@ -0,0 +1,134 @@
+/*
+ * 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 myservice.mynamespace.service;
+
+import java.io.InputStream;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+
+import myservice.mynamespace.data.Storage;
+
+import org.apache.olingo.commons.api.data.ContextURL;
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.data.EntityCollection;
+import org.apache.olingo.commons.api.edm.EdmEntitySet;
+import org.apache.olingo.commons.api.edm.EdmEntityType;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.commons.api.format.ODataFormat;
+import org.apache.olingo.commons.api.http.HttpHeader;
+import org.apache.olingo.commons.api.http.HttpStatusCode;
+import org.apache.olingo.server.api.OData;
+import org.apache.olingo.server.api.ODataApplicationException;
+import org.apache.olingo.server.api.ODataRequest;
+import org.apache.olingo.server.api.ODataResponse;
+import org.apache.olingo.server.api.ServiceMetadata;
+import org.apache.olingo.server.api.processor.EntityCollectionProcessor;
+import org.apache.olingo.server.api.serializer.EntityCollectionSerializerOptions;
+import org.apache.olingo.server.api.serializer.ODataSerializer;
+import org.apache.olingo.server.api.serializer.SerializerException;
+import org.apache.olingo.server.api.serializer.SerializerResult;
+import org.apache.olingo.server.api.uri.UriInfo;
+import org.apache.olingo.server.api.uri.UriResource;
+import org.apache.olingo.server.api.uri.UriResourceEntitySet;
+import org.apache.olingo.server.api.uri.queryoption.FilterOption;
+import org.apache.olingo.server.api.uri.queryoption.expression.Expression;
+import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitException;
+
+public class DemoEntityCollectionProcessor implements EntityCollectionProcessor {
+
+	private OData odata;
+	private ServiceMetadata serviceMetadata;
+	private Storage storage;
+
+	public DemoEntityCollectionProcessor(Storage storage) {
+		this.storage = storage;
+	}
+
+	public void init(OData odata, ServiceMetadata serviceMetadata) {
+		this.odata = odata;
+		this.serviceMetadata = serviceMetadata;
+	}
+
+	public void readEntityCollection(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType responseFormat) throws ODataApplicationException, SerializerException {
+
+		// 1st: retrieve the requested EntitySet from the uriInfo (representation of the parsed URI)
+		List<UriResource> resourcePaths = uriInfo.getUriResourceParts();
+		UriResourceEntitySet uriResourceEntitySet = (UriResourceEntitySet) resourcePaths.get(0); // in our example, the first segment is the EntitySet
+		EdmEntitySet edmEntitySet = uriResourceEntitySet.getEntitySet();
+
+		// 2nd: fetch the data from backend for this requested EntitySetName and deliver as EntitySet
+		EntityCollection entityCollection = storage.readEntitySetData(edmEntitySet);
+		
+		// 3rd: Check if filter system query option is provided and apply the expression if necessary
+		FilterOption filterOption = uriInfo.getFilterOption();
+		if(filterOption != null) {
+			// Apply $filter system query option
+			try {
+			      List<Entity> entityList = entityCollection.getEntities();
+			      Iterator<Entity> entityIterator = entityList.iterator();
+			      
+			      // Evaluate the expression for each entity
+			      // If the expression is evaluated to "true", keep the entity otherwise remove it from the entityList
+			      while (entityIterator.hasNext()) {
+			    	  // To evaluate the the expression, create an instance of the Filter Expression Visitor and pass
+			    	  // the current entity to the constructor
+			    	  Entity currentEntity = entityIterator.next();
+			    	  Expression filterExpression = filterOption.getExpression();
+			    	  FilterExpressionVisitor expressionVisitor = new FilterExpressionVisitor(currentEntity);
+			    	  
+			    	  // Start evaluating the expression
+			    	  Object visitorResult = filterExpression.accept(expressionVisitor);
+			    	  
+			    	  // The result of the filter expression must be of type Edm.Boolean
+			    	  if(visitorResult instanceof Boolean) {
+			    		  if(visitorResult != null && Boolean.FALSE.equals(visitorResult)) {
+			    		    // The expression evaluated to false, so we have to remove the currentEntity from entityList
+			    		    entityIterator.remove();
+			    		  }
+			    	  } else {
+			    		  throw new ODataApplicationException("A filter expression must evaulate to type Edm.Boolean", 
+			    		      HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ENGLISH);
+			    	  }
+			      }
+
+			    } catch (ExpressionVisitException e) {
+			      throw new ODataApplicationException("Exception in filter evaluation",
+			          HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), Locale.ENGLISH);
+			    }
+		}
+		
+		// 4th: create a serializer based on the requested format (json)
+		ODataFormat format = ODataFormat.fromContentType(responseFormat);
+		ODataSerializer serializer = odata.createSerializer(format);
+
+		// and serialize the content: transform from the EntitySet object to InputStream
+		EdmEntityType edmEntityType = edmEntitySet.getEntityType();
+		ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).build();
+
+		EntityCollectionSerializerOptions opts = EntityCollectionSerializerOptions.with().contextURL(contextUrl).build();
+		SerializerResult serializerResult = serializer.entityCollection(serviceMetadata, edmEntityType, entityCollection, opts);
+		InputStream serializedContent = serializerResult.getContent();
+
+		// 5th: configure the response object: set the body, headers and status code
+		response.setContent(serializedContent);
+		response.setStatusCode(HttpStatusCode.OK.getStatusCode());
+		response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString());
+	}
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0e032d4/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEntityProcessor.java
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEntityProcessor.java b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEntityProcessor.java
new file mode 100644
index 0000000..e3c8767
--- /dev/null
+++ b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoEntityProcessor.java
@@ -0,0 +1,126 @@
+/*
+ * 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 myservice.mynamespace.service;
+
+import java.io.InputStream;
+import java.util.List;
+import java.util.Locale;
+
+import myservice.mynamespace.data.Storage;
+
+import org.apache.olingo.commons.api.data.ContextURL;
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.edm.EdmEntitySet;
+import org.apache.olingo.commons.api.edm.EdmEntityType;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.commons.api.format.ODataFormat;
+import org.apache.olingo.commons.api.http.HttpHeader;
+import org.apache.olingo.commons.api.http.HttpStatusCode;
+import org.apache.olingo.server.api.OData;
+import org.apache.olingo.server.api.ODataApplicationException;
+import org.apache.olingo.server.api.ODataRequest;
+import org.apache.olingo.server.api.ODataResponse;
+import org.apache.olingo.server.api.ServiceMetadata;
+import org.apache.olingo.server.api.deserializer.DeserializerException;
+import org.apache.olingo.server.api.processor.EntityProcessor;
+import org.apache.olingo.server.api.serializer.EntitySerializerOptions;
+import org.apache.olingo.server.api.serializer.ODataSerializer;
+import org.apache.olingo.server.api.serializer.SerializerException;
+import org.apache.olingo.server.api.serializer.SerializerResult;
+import org.apache.olingo.server.api.uri.UriInfo;
+import org.apache.olingo.server.api.uri.UriParameter;
+import org.apache.olingo.server.api.uri.UriResource;
+import org.apache.olingo.server.api.uri.UriResourceEntitySet;
+
+public class DemoEntityProcessor implements EntityProcessor {
+
+
+	private OData odata;
+	private ServiceMetadata serviceMetadata;
+	private Storage storage;
+
+
+
+	public DemoEntityProcessor(Storage storage) {
+		this.storage = storage;
+	}
+
+
+	public void init(OData odata, ServiceMetadata serviceMetadata) {
+		this.odata = odata;
+		this.serviceMetadata = serviceMetadata;
+	}
+
+
+	public void readEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType responseFormat)
+							throws ODataApplicationException, SerializerException {
+
+		// 1. retrieve the Entity Type
+		List<UriResource> resourcePaths = uriInfo.getUriResourceParts();
+		// Note: only in our example we can assume that the first segment is the EntitySet
+		UriResourceEntitySet uriResourceEntitySet = (UriResourceEntitySet) resourcePaths.get(0);
+		EdmEntitySet edmEntitySet = uriResourceEntitySet.getEntitySet();
+
+		// 2. retrieve the data from backend
+		List<UriParameter> keyPredicates = uriResourceEntitySet.getKeyPredicates();
+		Entity entity = storage.readEntityData(edmEntitySet, keyPredicates);
+
+		// 3. serialize
+		EdmEntityType entityType = edmEntitySet.getEntityType();
+
+		ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).suffix(ContextURL.Suffix.ENTITY).build();
+	 	// expand and select currently not supported
+		EntitySerializerOptions options = EntitySerializerOptions.with().contextURL(contextUrl).build();
+
+		ODataFormat oDataFormat = ODataFormat.fromContentType(responseFormat);
+		ODataSerializer serializer = this.odata.createSerializer(oDataFormat);
+		SerializerResult serializerResult = serializer.entity(serviceMetadata, entityType, entity, options);
+		InputStream entityStream = serializerResult.getContent();
+
+		//4. configure the response object
+		response.setContent(entityStream);
+		response.setStatusCode(HttpStatusCode.OK.getStatusCode());
+		response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString());
+	}
+
+
+
+
+	/*
+	 * These processor methods are not handled in this tutorial
+	 * */
+
+
+	public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat)
+				throws ODataApplicationException, DeserializerException, SerializerException {
+		throw new ODataApplicationException("Not supported.", HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT);
+	}
+
+
+	public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat)
+							throws ODataApplicationException, DeserializerException, SerializerException {
+		throw new ODataApplicationException("Not supported.", HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT);
+	}
+
+
+	public void deleteEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo) throws ODataApplicationException {
+		throw new ODataApplicationException("Not supported.", HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0e032d4/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoPrimitiveProcessor.java
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoPrimitiveProcessor.java b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoPrimitiveProcessor.java
new file mode 100644
index 0000000..1ba0c75
--- /dev/null
+++ b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/DemoPrimitiveProcessor.java
@@ -0,0 +1,147 @@
+/*
+ * 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 myservice.mynamespace.service;
+
+import java.io.InputStream;
+import java.util.List;
+import java.util.Locale;
+
+import myservice.mynamespace.data.Storage;
+
+import org.apache.olingo.commons.api.data.ContextURL;
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.data.Property;
+import org.apache.olingo.commons.api.edm.EdmEntitySet;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
+import org.apache.olingo.commons.api.edm.EdmProperty;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.commons.api.format.ODataFormat;
+import org.apache.olingo.commons.api.http.HttpHeader;
+import org.apache.olingo.commons.api.http.HttpStatusCode;
+import org.apache.olingo.server.api.OData;
+import org.apache.olingo.server.api.ODataApplicationException;
+import org.apache.olingo.server.api.ODataRequest;
+import org.apache.olingo.server.api.ODataResponse;
+import org.apache.olingo.server.api.ServiceMetadata;
+import org.apache.olingo.server.api.deserializer.DeserializerException;
+import org.apache.olingo.server.api.processor.PrimitiveProcessor;
+import org.apache.olingo.server.api.serializer.ODataSerializer;
+import org.apache.olingo.server.api.serializer.PrimitiveSerializerOptions;
+import org.apache.olingo.server.api.serializer.SerializerException;
+import org.apache.olingo.server.api.serializer.SerializerResult;
+import org.apache.olingo.server.api.uri.UriInfo;
+import org.apache.olingo.server.api.uri.UriParameter;
+import org.apache.olingo.server.api.uri.UriResource;
+import org.apache.olingo.server.api.uri.UriResourceEntitySet;
+import org.apache.olingo.server.api.uri.UriResourceProperty;
+
+public class DemoPrimitiveProcessor implements PrimitiveProcessor {
+
+	private OData odata;
+	private Storage storage;
+
+	public DemoPrimitiveProcessor(Storage storage) {
+		this.storage = storage;
+	}
+
+	public void init(OData odata, ServiceMetadata serviceMetadata) {
+		this.odata = odata;
+
+	}
+
+	/*
+	 * In our example, the URL would be: http://localhost:8080/DemoService/DemoService.svc/Products(1)/Name
+	 * and the response:
+	 * {
+	 *	  @odata.context: "$metadata#Products/Name",
+	 *	  value: "Notebook Basic 15"
+	 * }
+	 * */
+	public void readPrimitive(ODataRequest request, ODataResponse response,
+								UriInfo uriInfo, ContentType responseFormat)
+								throws ODataApplicationException, SerializerException {
+
+		// 1. Retrieve info from URI
+		// 1.1. retrieve the info about the requested entity set
+		List<UriResource> resourceParts = uriInfo.getUriResourceParts();
+		// Note: only in our example we can rely that the first segment is the EntitySet
+		UriResourceEntitySet uriEntityset = (UriResourceEntitySet) resourceParts.get(0);
+		EdmEntitySet edmEntitySet = uriEntityset.getEntitySet();
+		// the key for the entity
+		List<UriParameter> keyPredicates = uriEntityset.getKeyPredicates();
+
+		// 1.2. retrieve the requested (Edm) property
+		UriResourceProperty uriProperty = (UriResourceProperty)resourceParts.get(resourceParts.size() -1); // the last segment is the Property
+		EdmProperty edmProperty = uriProperty.getProperty();
+		String edmPropertyName = edmProperty.getName();
+		// in our example, we know we have only primitive types in our model
+		EdmPrimitiveType edmPropertyType = (EdmPrimitiveType) edmProperty.getType();
+
+
+		// 2. retrieve data from backend
+		// 2.1. retrieve the entity data, for which the property has to be read
+		Entity entity = storage.readEntityData(edmEntitySet, keyPredicates);
+		if (entity == null) { // Bad request
+			throw new ODataApplicationException("Entity not found", HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH);
+		}
+
+		// 2.2. retrieve the property data from the entity
+		Property property = entity.getProperty(edmPropertyName);
+		if (property == null) {
+			throw new ODataApplicationException("Property not found", HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH);
+		}
+
+		// 3. serialize
+		Object value = property.getValue();
+		if (value != null) {
+			// 3.1. configure the serializer
+			ODataFormat format = ODataFormat.fromContentType(responseFormat);
+			ODataSerializer serializer = odata.createSerializer(format);
+
+			ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).navOrPropertyPath(edmPropertyName).build();
+			PrimitiveSerializerOptions options = PrimitiveSerializerOptions.with().contextURL(contextUrl).build();
+			// 3.2. serialize
+			SerializerResult serializerResult = serializer.primitive(edmPropertyType, property, options);
+			InputStream propertyStream = serializerResult.getContent();
+
+			//4. configure the response object
+			response.setContent(propertyStream);
+			response.setStatusCode(HttpStatusCode.OK.getStatusCode());
+			response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString());
+		} else {
+			// in case there's no value for the property, we can skip the serialization
+			response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode());
+		}
+	}
+
+
+
+	/*
+	 * These processor methods are not handled in this tutorial
+	 * */
+
+	public void updatePrimitive(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat)
+								throws ODataApplicationException, DeserializerException, SerializerException {
+		throw new ODataApplicationException("Not supported.", HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT);
+	}
+
+	public void deletePrimitive(ODataRequest request, ODataResponse response, UriInfo uriInfo) throws ODataApplicationException {
+		throw new ODataApplicationException("Not supported.", HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT);
+	}
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0e032d4/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java
new file mode 100644
index 0000000..7550497
--- /dev/null
+++ b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java
@@ -0,0 +1,308 @@
+/*
+ * 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 myservice.mynamespace.service;
+
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.edm.EdmEnumType;
+import org.apache.olingo.commons.api.edm.EdmType;
+import org.apache.olingo.commons.api.http.HttpStatusCode;
+import org.apache.olingo.server.api.ODataApplicationException;
+import org.apache.olingo.server.api.uri.UriInfoResource;
+import org.apache.olingo.server.api.uri.UriResource;
+import org.apache.olingo.server.api.uri.UriResourcePrimitiveProperty;
+import org.apache.olingo.server.api.uri.queryoption.expression.BinaryOperatorKind;
+import org.apache.olingo.server.api.uri.queryoption.expression.Expression;
+import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitException;
+import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitor;
+import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind;
+import org.apache.olingo.server.api.uri.queryoption.expression.UnaryOperatorKind;
+
+public class FilterExpressionVisitor implements ExpressionVisitor<Object> {
+
+	private Entity currentEntity;
+
+  public FilterExpressionVisitor(Entity currentEntity) {
+    this.currentEntity = currentEntity;
+	}
+
+  @Override
+  public Object visitMember(UriInfoResource member) throws ExpressionVisitException, ODataApplicationException {
+    // To keeps things simple, this tutorial allows only primitive properties.
+    // We have faith that the java type of Edm.Int32 is Integer
+    
+    final List<UriResource> uriResourceParts = member.getUriResourceParts();
+    
+    // Make sure that the resource path of the property contains only a single segment and a primitive property
+    // has been addressed. We can be sure, that the property exists because the UriParser checks if the
+    // property has been defined in service metadata document.
+    
+    if(uriResourceParts.size() == 1 && uriResourceParts.get(0) instanceof UriResourcePrimitiveProperty) {
+      UriResourcePrimitiveProperty uriResourceProperty = (UriResourcePrimitiveProperty) uriResourceParts.get(0);
+      return currentEntity.getProperty(uriResourceProperty.getProperty().getName()).getValue();
+      
+    } else {
+      throw new ODataApplicationException("Only primitive properties are implemented in filter expressions", 
+          HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
+    }
+  }
+  
+  @Override
+  public Object visitLiteral(String literal) throws ExpressionVisitException, ODataApplicationException {
+    // To keep this tutorial simple, our filter expression visitor supports only Edm.Int32 and Edm.String
+    // In real world scenarios it can be difficult to guess the type of an literal.
+    // We can be sure, that the literal is a valid OData literal because the URI Parser checks 
+    // the lexicographical structure
+    
+    // String literals start and end with an single quotation mark
+    if(literal.startsWith("'") && literal.endsWith("'")) {
+      String stringLiteral = "";
+      if(literal.length() > 2) {
+        stringLiteral = literal.substring(1, literal.length() - 1);
+      }
+      
+      return stringLiteral;
+    } else {
+      // Try to convert the literal into an Java Integer
+      try {
+        return Integer.parseInt(literal);
+      } catch(NumberFormatException e) {
+        throw new ODataApplicationException("Only Edm.Int32 and Edm.String literals are implemented", 
+            HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
+      }
+    }
+  }
+  
+  @Override
+  public Object visitUnaryOperator(UnaryOperatorKind operator, Object operand) 
+      throws ExpressionVisitException, ODataApplicationException {
+    // OData allows two different unary operators. We have to take care, that the type of the operand fits to
+    // operand
+    
+    if(operator == UnaryOperatorKind.NOT && operand instanceof Boolean) {
+      // 1.) boolean negation 
+      return !(Boolean) operand;
+    } else if(operator == UnaryOperatorKind.MINUS && operand instanceof Integer){
+      // 2.) arithmetic minus
+      return -(Integer) operand;
+    }
+    
+    // Operation not processed, throw an exception
+    throw new ODataApplicationException("Invalid type for unary operator", 
+        HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ENGLISH);
+  }
+
+	@Override
+	public Object visitBinaryOperator(BinaryOperatorKind operator, Object left, Object right) 
+	    throws ExpressionVisitException, ODataApplicationException {
+		
+	  // Binary Operators are split up in three different kinds. Up to the kind of the operator it can be applied 
+	  // to different types
+	  //   - Arithmetic operations like add, minus, modulo, etc. are allowed on numeric types like Edm.Int32
+	  //   - Logical operations are allowed on numeric types and also Edm.String
+	  //   - Boolean operations like and, or are allowed on Edm.Boolean
+	  // A detailed explanation can be found in OData Version 4.0 Part 2: URL Conventions 
+	  
+    switch (operator) {
+    
+    // Arithmetic operations
+    case ADD:
+      /** Fall through **/
+    case MOD:
+      /** Fall through **/
+    case MUL:
+      /** Fall through **/
+    case DIV:
+      /** Fall through **/
+    case SUB:
+      return evaluateArithmeticOperation(operator, left, right);
+
+    // Logical operations
+    case EQ:
+      /** Fall through **/
+    case NE:
+      /** Fall through **/
+    case GE:
+      /** Fall through **/
+    case GT:
+      /** Fall through **/
+    case LE:
+      /** Fall through **/
+    case LT:
+      return evaluateLogicalOperation(operator, left, right);
+      
+    // Boolean operations
+    case AND:
+      /** Fall through **/
+    case OR:
+      return evaluateBooleanOperation(operator, left, right);
+    
+    case HAS:
+      // Has operation is not supported. We do not use enums in our service.
+      /** fall through **/
+    default:
+      throw new ODataApplicationException("Binary operation " + operator.name() + " is not implemented", 
+          HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
+    }
+  }
+
+	private Object evaluateBooleanOperation(BinaryOperatorKind operator, Object left, Object right)
+	    throws ODataApplicationException {
+	  
+	  // First check that both operands are of type Boolean
+	  if(left instanceof Boolean && right instanceof Boolean) {
+	    Boolean valueLeft = (Boolean) left;
+	    Boolean valueRight = (Boolean) right;
+	    
+	    // Than calculate the result value
+	    if(operator == BinaryOperatorKind.AND) {
+	      return valueLeft && valueRight;
+	    } else {
+	      // OR
+	      return valueLeft || valueRight;
+	    }
+	  } else {
+	    throw new ODataApplicationException("Boolean operations needs two numeric operands", 
+          HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ENGLISH);
+	  }
+	}
+
+  @SuppressWarnings("unchecked")
+  private Object evaluateLogicalOperation(BinaryOperatorKind operator, Object left, Object right) 
+      throws ODataApplicationException {
+    
+    // All types in our tutorial supports all logical operations, but we have to make sure that the types are equals
+    if(left.getClass().equals(right.getClass())) {
+      // Luckily all used types String, Boolean and also Integer supports the interface Comparable
+      // TODO: Is this OK? Otherwise we can infer generic arguments after using an if statement
+      @SuppressWarnings("rawtypes")
+      int result = ((Comparable) left).compareTo(right);
+      
+      if (operator == BinaryOperatorKind.EQ) {
+        return result == 0;
+      } else if (operator == BinaryOperatorKind.NE) {
+        return result != 0;
+      } else if (operator == BinaryOperatorKind.GE) {
+        return result >= 0;
+      } else if (operator == BinaryOperatorKind.GT) {
+        return result > 0;
+      } else if (operator == BinaryOperatorKind.LE) {
+        return result <= 0;
+      } else {
+        // BinaryOperatorKind.LT
+        return result < 0;
+      }
+      
+    } else {
+      throw new ODataApplicationException("Comparision needs to equal types", 
+          HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ENGLISH);
+    }
+  }
+
+  private Object evaluateArithmeticOperation(BinaryOperatorKind operator, Object left, 
+      Object right) throws ODataApplicationException {
+
+	  // First check if the type of of both operands is numerical
+	  if(left instanceof Integer && right instanceof Integer) {
+	    Integer valueLeft = (Integer) left;
+	    Integer valueRight = (Integer) right;
+	    
+	    // Than calculate the result value
+	    if(operator == BinaryOperatorKind.ADD) {
+	      return valueLeft + valueRight;
+	    } else if(operator == BinaryOperatorKind.SUB) {
+	      return valueLeft - valueRight;
+	    } else if(operator == BinaryOperatorKind.MUL) {
+	      return valueLeft * valueRight;
+	    } else if(operator == BinaryOperatorKind.DIV) {
+	      return valueLeft / valueRight;
+	    } else {
+	      // BinaryOperatorKind,MOD
+	      return valueLeft % valueRight;
+	    }
+	  } else {
+	    throw new ODataApplicationException("Arithmetic operations needs two numeric operands", 
+	        HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ENGLISH);
+	  }
+  }
+
+  @Override
+	public Object visitMethodCall(MethodKind methodCall, List<Object> parameters) 
+	    throws ExpressionVisitException, ODataApplicationException {
+    
+    // To keep this tutorial small and simple, we implement only one method call
+    if(methodCall == MethodKind.CONTAINS) {
+      // "Contains" gets two parameters, both have to be of type String
+      // e.g. /Products?$filter=contains(Description, '1024 MB')
+      // 
+      // First the method visistMember is called, which returns the current String value of the property.
+      // After that the method visitLiteral is called with the string literal '1024 MB',
+      // which returns a String
+      //
+      // Both String values are passed to visitMethodCall.
+      if(parameters.get(0) instanceof String && parameters.get(1) instanceof String) {
+        String valueParam1 = (String) parameters.get(0);
+        String valueParam2 = (String) parameters.get(1);
+        
+        return valueParam1.contains(valueParam2);
+      } else {
+        throw new ODataApplicationException("Contains needs two parametes of type Edm.String", 
+            HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ENGLISH);
+      }
+    } else {
+      throw new ODataApplicationException("Method call " + methodCall + " not implemented", 
+          HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
+    }
+	}
+
+	@Override
+	public Object visitTypeLiteral(EdmType type) throws ExpressionVisitException, ODataApplicationException {
+	  throw new ODataApplicationException("Type literals are not implemented", 
+        HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
+	}
+	
+	 @Override
+	  public Object visitAlias(String aliasName) throws ExpressionVisitException, ODataApplicationException {
+	   throw new ODataApplicationException("Aliases are not implemented", 
+         HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
+	 }
+	 
+	  @Override
+	  public Object visitEnum(EdmEnumType type, List<String> enumValues) 
+	      throws ExpressionVisitException, ODataApplicationException {
+	    throw new ODataApplicationException("Enums are not implemented", 
+          HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
+	  }
+
+	  @Override
+	  public Object visitLambdaExpression(String lambdaFunction, String lambdaVariable, Expression expression) 
+	      throws ExpressionVisitException, ODataApplicationException {
+	    throw new ODataApplicationException("Lamdba expressions are not implemented", 
+          HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
+	  }
+
+	  @Override
+	  public Object visitLambdaReference(String variableName) 
+	      throws ExpressionVisitException, ODataApplicationException {
+	    throw new ODataApplicationException("Lamdba references are not implemented", 
+	        HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
+	  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0e032d4/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/util/Util.java
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/util/Util.java b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/util/Util.java
new file mode 100644
index 0000000..16c7745
--- /dev/null
+++ b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/util/Util.java
@@ -0,0 +1,120 @@
+/*
+ * 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 myservice.mynamespace.util;
+
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.data.EntityCollection;
+import org.apache.olingo.commons.api.edm.EdmEntitySet;
+import org.apache.olingo.commons.api.edm.EdmEntityType;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmProperty;
+import org.apache.olingo.commons.api.edm.EdmType;
+import org.apache.olingo.commons.api.http.HttpStatusCode;
+import org.apache.olingo.server.api.ODataApplicationException;
+import org.apache.olingo.server.api.uri.UriInfoResource;
+import org.apache.olingo.server.api.uri.UriParameter;
+import org.apache.olingo.server.api.uri.UriResource;
+import org.apache.olingo.server.api.uri.UriResourceEntitySet;
+
+public class Util {
+
+	public static EdmEntitySet getEdmEntitySet(UriInfoResource uriInfo) throws ODataApplicationException {
+		List<UriResource> resourcePaths = uriInfo.getUriResourceParts();
+		 // To get the entity set we have to interpret all URI segments
+		if (!(resourcePaths.get(0) instanceof UriResourceEntitySet)) {
+			// Here we should interpret the whole URI but in this example we do not support navigation so we throw an exception
+			throw new ODataApplicationException("Invalid resource type for first segment.", HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(),Locale.ENGLISH);
+		}
+		
+		UriResourceEntitySet uriResource = (UriResourceEntitySet) resourcePaths.get(0);
+		
+		return uriResource.getEntitySet();
+	}
+
+	
+	public static Entity findEntity(EdmEntityType edmEntityType, EntityCollection entitySet, List<UriParameter> keyParams) throws ODataApplicationException {
+		
+		List<Entity> entityList = entitySet.getEntities();
+		
+		// loop over all entities in order to find that one that matches all keys in request e.g. contacts(ContactID=1, CompanyID=1) 
+		for(Entity entity : entityList){
+			boolean foundEntity = entityMatchesAllKeys(edmEntityType, entity, keyParams);
+			if(foundEntity) {
+				return entity;
+			}
+		}
+		
+		return null;
+	}
+	
+	
+  public static boolean
+      entityMatchesAllKeys(EdmEntityType edmEntityType, Entity rt_entity, List<UriParameter> keyParams)
+          throws ODataApplicationException {
+
+    // loop over all keys
+    for (final UriParameter key : keyParams) {
+      // key
+      String keyName = key.getName();
+      String keyText = key.getText();
+
+      // Edm: we need this info for the comparison below
+      EdmProperty edmKeyProperty = (EdmProperty) edmEntityType.getProperty(keyName);
+      Boolean isNullable = edmKeyProperty.isNullable();
+      Integer maxLength = edmKeyProperty.getMaxLength();
+      Integer precision = edmKeyProperty.getPrecision();
+      Boolean isUnicode = edmKeyProperty.isUnicode();
+      Integer scale = edmKeyProperty.getScale();
+      // get the EdmType in order to compare
+      EdmType edmType = edmKeyProperty.getType();
+      // if(EdmType instanceof EdmPrimitiveType) // do we need this?
+      EdmPrimitiveType edmPrimitiveType = (EdmPrimitiveType) edmType;
+
+      // Runtime data: the value of the current entity
+      // don't need to check for null, this is done in olingo library
+      Object valueObject = rt_entity.getProperty(keyName).getValue();
+
+      // now need to compare the valueObject with the keyText String
+      // this is done using type.valueToString
+      String valueAsString = null;
+      try {
+        valueAsString = edmPrimitiveType.valueToString(valueObject, isNullable, maxLength, precision, scale, isUnicode);
+      } catch (EdmPrimitiveTypeException e) {
+        throw new ODataApplicationException("Failed to retrieve String value",
+						HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), Locale.ENGLISH, e);
+      }
+
+      if (valueAsString == null) {
+        return false;
+      }
+
+      boolean matches = valueAsString.equals(keyText);
+      if (!matches) {
+        // if any of the key properties is not found in the entity, we don't need to search further
+        return false;
+      }
+    }
+
+    return true;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0e032d4/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/web/DemoServlet.java
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/web/DemoServlet.java b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/web/DemoServlet.java
new file mode 100644
index 0000000..fe5cdbb
--- /dev/null
+++ b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/web/DemoServlet.java
@@ -0,0 +1,76 @@
+/*
+ * 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 myservice.mynamespace.web;
+
+import java.io.IOException;
+import java.lang.Override;import java.lang.RuntimeException;import java.util.ArrayList;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import myservice.mynamespace.data.Storage;
+import myservice.mynamespace.service.DemoEdmProvider;
+import myservice.mynamespace.service.DemoEntityCollectionProcessor;
+import myservice.mynamespace.service.DemoEntityProcessor;
+import myservice.mynamespace.service.DemoPrimitiveProcessor;
+
+import org.apache.olingo.server.api.OData;
+import org.apache.olingo.server.api.ODataHttpHandler;
+import org.apache.olingo.server.api.ServiceMetadata;
+import org.apache.olingo.server.api.edmx.EdmxReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DemoServlet extends HttpServlet {
+
+  private static final long serialVersionUID = 1L;
+  private static final Logger LOG = LoggerFactory.getLogger(DemoServlet.class);
+
+
+  @Override
+  protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+    try {
+      HttpSession session = req.getSession(true);
+      Storage storage = (Storage) session.getAttribute(Storage.class.getName());
+      if (storage == null) {
+        storage = new Storage();
+        session.setAttribute(Storage.class.getName(), storage);
+      }
+
+      // create odata handler and configure it with EdmProvider and Processor
+      OData odata = OData.newInstance();
+      ServiceMetadata edm = odata.createServiceMetadata(new DemoEdmProvider(), new ArrayList<EdmxReference>());
+      ODataHttpHandler handler = odata.createHandler(edm);
+      handler.register(new DemoEntityCollectionProcessor(storage));
+      handler.register(new DemoEntityProcessor(storage));
+      handler.register(new DemoPrimitiveProcessor(storage));
+
+      // let the handler do the work
+      handler.process(req, resp);
+    } catch (RuntimeException e) {
+      LOG.error("Server Error occurred in ExampleServlet", e);
+      throw new ServletException(e);
+    }
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0e032d4/samples/tutorials/p7_queryoptions-f/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/webapp/WEB-INF/web.xml b/samples/tutorials/p7_queryoptions-f/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..21de52a
--- /dev/null
+++ b/samples/tutorials/p7_queryoptions-f/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,40 @@
+<?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.
+-->
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+				 id="WebApp_ID" version="2.5">
+
+	<!-- Register the HttpServlet implementation -->
+	<servlet>
+	  <servlet-name>DemoServlet</servlet-name>
+	  <servlet-class>myservice.mynamespace.web.DemoServlet</servlet-class>
+	  <load-on-startup>1</load-on-startup>
+	</servlet>
+	
+	<!-- 
+		Our OData service can be invoked at 
+		http://localhost:8080/DemoService/DemoService.svc
+	-->
+	<servlet-mapping>
+	  <servlet-name>DemoServlet</servlet-name>
+	  <url-pattern>/DemoService.svc/*</url-pattern>
+	</servlet-mapping>
+</web-app>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0e032d4/samples/tutorials/p7_queryoptions-f/src/main/webapp/index.jsp
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/webapp/index.jsp b/samples/tutorials/p7_queryoptions-f/src/main/webapp/index.jsp
new file mode 100644
index 0000000..c0fe23e
--- /dev/null
+++ b/samples/tutorials/p7_queryoptions-f/src/main/webapp/index.jsp
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+<html>
+<body>
+<h2>Hello World!</h2>
+<a href="DemoService.svc/">OData Olingo V4 Demo Service</a>
+</body>
+</html>


[12/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Small debug output enhancement

Posted by mi...@apache.org.
[OLINGO-659] Small debug output enhancement


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: cc4e710ceb921c031750e6f83810efe311fc166a
Parents: 77c0ef5
Author: Christian Amend <ch...@sap.com>
Authored: Wed Aug 26 10:35:34 2015 +0200
Committer: Christian Amend <ch...@sap.com>
Committed: Wed Aug 26 10:37:11 2015 +0200

----------------------------------------------------------------------
 .../olingo/ext/proxy/api/NoResultException.java | 31 --------------------
 .../ext/proxy/api/NonUniqueResultException.java | 31 --------------------
 .../ODataClientErrorException.java              |  2 +-
 .../server/api/debug/DebugInformation.java      | 10 +++----
 .../server/core/ODataHttpHandlerImpl.java       |  4 +--
 .../core/debug/DebugResponseHelperImpl.java     | 10 +++----
 .../olingo/server/core/debug/DebugTabBody.java  | 31 ++++----------------
 .../server/core/debug/DebugTabResponse.java     |  8 ++---
 .../server/core/debug/DebugTabServer.java       | 14 ++++-----
 .../olingo/server/core/debug/DebugTabUri.java   |  4 +--
 .../server/core/debug/ServerCoreDebugger.java   |  6 ++--
 .../server/core/debug/DebugTabBodyTest.java     |  2 +-
 .../server/core/debug/DebugTabResponseTest.java |  4 +--
 13 files changed, 37 insertions(+), 120 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/NoResultException.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/NoResultException.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/NoResultException.java
deleted file mode 100644
index 617b305..0000000
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/NoResultException.java
+++ /dev/null
@@ -1,31 +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;
-
-/**
- * Thrown when {@link Filter#getSingleResult()} is executed and there is no result to return.
- */
-public class NoResultException extends RuntimeException {
-
-  private static final long serialVersionUID = -6643642637364303053L;
-
-  public NoResultException() {
-    super();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/NonUniqueResultException.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/NonUniqueResultException.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/NonUniqueResultException.java
deleted file mode 100644
index 37658c6..0000000
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/NonUniqueResultException.java
+++ /dev/null
@@ -1,31 +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;
-
-/**
- * Thrown when {@link Filter#getSingleResult()} is executed and there is more than one result.
- */
-public class NonUniqueResultException extends RuntimeException {
-
-  private static final long serialVersionUID = 4444551737338550185L;
-
-  public NonUniqueResultException() {
-    super();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
index c37e2c2..eaedc88 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
@@ -18,8 +18,8 @@
  */
 package org.apache.olingo.client.api.communication;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.http.StatusLine;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.commons.api.ex.ODataRuntimeException;
 import org.apache.olingo.commons.api.ex.ODataError;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/lib/server-api/src/main/java/org/apache/olingo/server/api/debug/DebugInformation.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/debug/DebugInformation.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/debug/DebugInformation.java
index 9198c6b..2f4e67d 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/debug/DebugInformation.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/debug/DebugInformation.java
@@ -34,7 +34,7 @@ public class DebugInformation {
   private ODataResponse applicationResponse;
   private UriInfo uriInfo;
   private Exception exception;
-  private Map<String, String> serverEnvironmentVaribles;
+  private Map<String, String> serverEnvironmentVariables;
   private List<RuntimeMeasurement> runtimeInformation;
 
   /**
@@ -94,12 +94,12 @@ public class DebugInformation {
    * might contain different information. Will never be null but might be empty.
    * @return environment variables
    */
-  public Map<String, String> getServerEnvironmentVaribles() {
-    return serverEnvironmentVaribles;
+  public Map<String, String> getServerEnvironmentVariables() {
+    return serverEnvironmentVariables;
   }
 
-  public void setServerEnvironmentVaribles(Map<String, String> serverEnvironmentVaribles) {
-    this.serverEnvironmentVaribles = serverEnvironmentVaribles;
+  public void setServerEnvironmentVariables(Map<String, String> serverEnvironmentVariables) {
+    this.serverEnvironmentVariables = serverEnvironmentVariables;
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
index 050f285..33b62c3 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
@@ -89,14 +89,14 @@ public class ODataHttpHandlerImpl implements ODataHttpHandler {
     debugger.stopRuntimeMeasurement(processMethodHandel);
 
     if (debugger.isDebugMode()) {
-      Map<String, String> serverEnvironmentVaribles = createEnvironmentVariablesMap(request);
+      Map<String, String> serverEnvironmentVariables = createEnvironmentVariablesMap(request);
       if (exception == null) {
         // This is to ensure that we have access to the thrown OData Exception
         exception = handler.getLastThrownException();
       }
       odResponse =
           debugger.createDebugResponse(request, exception, odRequest, odResponse, handler.getUriInfo(),
-              serverEnvironmentVaribles);
+              serverEnvironmentVariables);
     }
 
     convertToHttp(response, odResponse);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugResponseHelperImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugResponseHelperImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugResponseHelperImpl.java
index 5510c54..88a39ca 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugResponseHelperImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugResponseHelperImpl.java
@@ -107,12 +107,12 @@ public class DebugResponseHelperImpl implements DebugResponseHelper {
     parts.add(new DebugTabRequest(debugInfo.getRequest()));
 
     // response
-    parts.add(new DebugTabResponse(debugInfo.getApplicationResponse(), debugInfo.getRequest().getRawBaseUri()));
+    parts.add(new DebugTabResponse(debugInfo.getApplicationResponse()));
 
     // server
-    Map<String, String> serverEnvironmentVaribles = debugInfo.getServerEnvironmentVaribles();
-    if (serverEnvironmentVaribles != null && !serverEnvironmentVaribles.isEmpty()) {
-      parts.add(new DebugTabServer(serverEnvironmentVaribles));
+    Map<String, String> serverEnvironmentVariables = debugInfo.getServerEnvironmentVariables();
+    if (serverEnvironmentVariables != null && !serverEnvironmentVariables.isEmpty()) {
+      parts.add(new DebugTabServer(serverEnvironmentVariables));
     }
 
     // URI
@@ -239,7 +239,7 @@ public class DebugResponseHelperImpl implements DebugResponseHelper {
         .append("ul, .tree { list-style-type: none; }\n")
         .append("div > ul.expr, div > .expand, .tree { padding-left: 0; }\n")
         .append(".expr, .expand, .null, .numeric { padding-left: 1.5em; }\n")
-        .append(".jsonCode{ white-space: pre-wrap; }")
+        .append(".json { white-space: pre-wrap; }\n")
         .append("</style>\n")
         .append("</head>\n")
         .append("<body>\n");

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabBody.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabBody.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabBody.java
index ab489b0..8af0e43 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabBody.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabBody.java
@@ -20,13 +20,11 @@ package org.apache.olingo.server.core.debug;
 
 import java.io.IOException;
 import java.io.Writer;
-import java.util.regex.Pattern;
 
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.io.IOUtils;
 import org.apache.olingo.commons.api.http.HttpHeader;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.debug.DebugSupport;
 
 import com.fasterxml.jackson.core.JsonGenerator;
 
@@ -42,11 +40,8 @@ public class DebugTabBody implements DebugTab {
   private final ODataResponse response;
   private final ResponseContent responseContent;
 
-  private final String serviceRoot;
-
-  public DebugTabBody(final ODataResponse response, final String serviceRoot) {
+  public DebugTabBody(final ODataResponse response) {
     this.response = response;
-    this.serviceRoot = serviceRoot == null ? "/" : serviceRoot;
     if (response != null) {
       final String contentTypeString = response.getHeader(HttpHeader.CONTENT_TYPE);
       if (contentTypeString != null) {
@@ -109,13 +104,13 @@ public class DebugTabBody implements DebugTab {
         response == null || response.getContent() == null ? "ODataLibrary: No body." : getContentString();
     switch (responseContent) {
     case XML:
-      writer.append("<pre class=\"code").append("xml").append("\">\n");
-      writer.append(addLinks(DebugResponseHelperImpl.escapeHtml(body)));
+      writer.append("<pre class=\"code").append(" xml").append("\">\n");
+      writer.append(DebugResponseHelperImpl.escapeHtml(body));
       writer.append("</pre>\n");
       break;
     case JSON:
-      writer.append("<pre class=\"code").append("json").append("\">\n");
-      writer.append(addLinks(DebugResponseHelperImpl.escapeHtml(body)));
+      writer.append("<pre class=\"code").append(" json").append("\">\n");
+      writer.append(DebugResponseHelperImpl.escapeHtml(body));
       writer.append("</pre>\n");
       break;
     case IMAGE:
@@ -125,24 +120,10 @@ public class DebugTabBody implements DebugTab {
       break;
     case TEXT:
     default:
-      writer.append("<pre class=\"code").append("").append("\">\n");
+      writer.append("<pre class=\"code").append("\">\n");
       writer.append(DebugResponseHelperImpl.escapeHtml(body));
       writer.append("</pre>\n");
       break;
     }
   }
-
-  private String addLinks(final String source) {
-    final String debugOption = DebugSupport.ODATA_DEBUG_QUERY_PARAMETER + "=" + DebugSupport.ODATA_DEBUG_HTML;
-    final String urlPattern = "("
-        + (responseContent == ResponseContent.XML ?
-            "(?:href|src|base)=" : "\"(?:uri|media_src|edit_media|__next)\":\\p{Space}*")
-        + "\")(.+?)\"";
-    return (responseContent == ResponseContent.XML ?
-        source.replaceAll("(xmlns(?::\\p{Alnum}+)?=\")(.+?)\"", "$1<span class=\"ns\">$2</span>\"") : source)
-        .replaceAll(urlPattern, "$1<a href=\"" + serviceRoot + "$2?" + debugOption + "\">$2</a>\"")
-        .replaceAll("(<a href=\"" + Pattern.quote(serviceRoot) + ')' + Pattern.quote(serviceRoot), "$1")
-        .replaceAll("<a href=\"(.+?)\\?(.+?)\\?" + debugOption, "<a href=\"$1?$2&amp;" + debugOption)
-        .replaceAll("&amp;amp;", "&amp;");
-  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabResponse.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabResponse.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabResponse.java
index 11331a9..68cd58a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabResponse.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabResponse.java
@@ -36,11 +36,10 @@ import com.fasterxml.jackson.core.JsonGenerator;
 public class DebugTabResponse implements DebugTab {
 
   private final ODataResponse response;
-  private final String serviceRoot;
   private final HttpStatusCode status;
   private final Map<String, List<String>> headers;
 
-  public DebugTabResponse(final ODataResponse applicationResponse, final String serviceRoot) {
+  public DebugTabResponse(final ODataResponse applicationResponse) {
     this.response = applicationResponse;
     if (response != null) {
       status = HttpStatusCode.fromStatusCode(response.getStatusCode());
@@ -49,7 +48,6 @@ public class DebugTabResponse implements DebugTab {
       status = HttpStatusCode.INTERNAL_SERVER_ERROR;
       headers = Collections.emptyMap();
     }
-    this.serviceRoot = serviceRoot == null ? "/" : serviceRoot;
   }
 
   @Override
@@ -76,7 +74,7 @@ public class DebugTabResponse implements DebugTab {
 
     gen.writeFieldName("body");
     if (response != null && response.getContent() != null) {
-      new DebugTabBody(response, serviceRoot).appendJson(gen);
+      new DebugTabBody(response).appendJson(gen);
     } else {
       gen.writeNull();
     }
@@ -105,7 +103,7 @@ public class DebugTabResponse implements DebugTab {
     DebugResponseHelperImpl.appendHtmlTable(writer, map(headers));
     writer.append("<h2>Response Body</h2>\n");
     if (response != null && response.getContent() != null) {
-      new DebugTabBody(response, serviceRoot).appendHtml(writer);
+      new DebugTabBody(response).appendHtml(writer);
     } else {
       writer.append("<p>ODataLibrary: no response body</p>");
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabServer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabServer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabServer.java
index 2faae3e..e8fd90f 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabServer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabServer.java
@@ -29,10 +29,10 @@ import com.fasterxml.jackson.core.JsonGenerator;
  */
 public class DebugTabServer implements DebugTab {
 
-  private final Map<String, String> serverEnvironmentVaribles;
+  private final Map<String, String> serverEnvironmentVariables;
 
-  public DebugTabServer(Map<String, String> serverEnvironmentVaribles) {
-    this.serverEnvironmentVaribles = serverEnvironmentVaribles;
+  public DebugTabServer(Map<String, String> serverEnvironmentVariables) {
+    this.serverEnvironmentVariables = serverEnvironmentVariables;
   }
 
   @Override
@@ -42,8 +42,8 @@ public class DebugTabServer implements DebugTab {
 
   @Override
   public void appendJson(JsonGenerator gen) throws IOException {
-    if (serverEnvironmentVaribles != null && !serverEnvironmentVaribles.isEmpty()) {
-      DebugResponseHelperImpl.appendJsonTable(gen, serverEnvironmentVaribles);
+    if (serverEnvironmentVariables != null && !serverEnvironmentVariables.isEmpty()) {
+      DebugResponseHelperImpl.appendJsonTable(gen, serverEnvironmentVariables);
     } else {
       gen.writeNull();
     }
@@ -56,8 +56,8 @@ public class DebugTabServer implements DebugTab {
         .append("<p>").append(pack.getImplementationTitle())
         .append(" Version ").append(pack.getImplementationVersion()).append("</p>\n")
         .append("<h2>Server Environment</h2>\n");
-    if (serverEnvironmentVaribles != null && !serverEnvironmentVaribles.isEmpty()) {
-      DebugResponseHelperImpl.appendHtmlTable(writer, serverEnvironmentVaribles);
+    if (serverEnvironmentVariables != null && !serverEnvironmentVariables.isEmpty()) {
+      DebugResponseHelperImpl.appendHtmlTable(writer, serverEnvironmentVariables);
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
index 5e1a921..fb2c5e0 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
@@ -79,7 +79,7 @@ public class DebugTabUri implements DebugTab {
     }
 
     if (uriInfo.getSkipTokenOption() != null) {
-      gen.writeStringField("id", uriInfo.getSkipTokenOption().getValue());
+      gen.writeStringField("skiptoken", uriInfo.getSkipTokenOption().getValue());
     }
 
     appendCommonJsonObjects(gen, uriInfo.getCountOption(), uriInfo.getSkipOption(), uriInfo.getTopOption(), uriInfo
@@ -250,7 +250,7 @@ public class DebugTabUri implements DebugTab {
     }
 
     writer.append("<h2>Uri Information</h2>\n")
-        .append("<ul class=\"jsonCode\"><li>");
+        .append("<ul class=\"json\"><li>");
     writer.append(getJsonString());
     writer.append("</li></ul>\n");
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
index 8bdbe39..d52e2d4 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
@@ -63,7 +63,7 @@ public class ServerCoreDebugger {
 
   public ODataResponse createDebugResponse(final HttpServletRequest request, final Exception exception,
       final ODataRequest odRequest, final ODataResponse odResponse, UriInfo uriInfo,
-      Map<String, String> serverEnvironmentVaribles) {
+      Map<String, String> serverEnvironmentVariables) {
     //Failsafe so we do not generate unauthorized debug messages
     if(!isDebugMode){
       return odResponse;
@@ -71,7 +71,7 @@ public class ServerCoreDebugger {
     
     try {
       DebugInformation debugInfo =
-          createDebugInformation(request, exception, odRequest, odResponse, uriInfo, serverEnvironmentVaribles);
+          createDebugInformation(request, exception, odRequest, odResponse, uriInfo, serverEnvironmentVariables);
 
       return debugSupport.createDebugResponse(debugFormat, debugInfo);
     } catch (Exception e) {
@@ -97,7 +97,7 @@ public class ServerCoreDebugger {
 
     debugInfo.setException(exception);
 
-    debugInfo.setServerEnvironmentVaribles(serverEnvironmentVaribles);
+    debugInfo.setServerEnvironmentVariables(serverEnvironmentVaribles);
 
     debugInfo.setUriInfo(uriInfo);
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabBodyTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabBodyTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabBodyTest.java
index 7d3a58e..b77679f 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabBodyTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabBodyTest.java
@@ -26,7 +26,7 @@ public class DebugTabBodyTest extends AbstractDebugTabTest {
 
   @Test
   public void nullResponseMustNotLeadToException() throws Exception {
-    DebugTabBody tab = new DebugTabBody(null, null);
+    DebugTabBody tab = new DebugTabBody(null);
 
     String expectedHtml = "<pre class=\"code\">\n"
         + "ODataLibrary: No body.</pre>\n";

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc4e710c/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabResponseTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabResponseTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabResponseTest.java
index af55a40..af109c2 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabResponseTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabResponseTest.java
@@ -28,7 +28,7 @@ public class DebugTabResponseTest extends AbstractDebugTabTest {
 
   @Test
   public void nullResponseMustNotLeadToException() throws Exception {
-    DebugTabResponse tab = new DebugTabResponse(null, null);
+    DebugTabResponse tab = new DebugTabResponse(null);
 
     String expectedJson = "{\"status\":{\"code\":\"500\",\"info\":\"Internal Server Error\"},\"body\":null}";
     String expectedHtml = "<h2>Status Code</h2>\n"
@@ -54,7 +54,7 @@ public class DebugTabResponseTest extends AbstractDebugTabTest {
     response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode());
     response.setHeader("headername", "headervalue");
     response.setHeader("headername2", "headervalue2");
-    DebugTabResponse tab = new DebugTabResponse(response, null);
+    DebugTabResponse tab = new DebugTabResponse(response);
 
     String expectedJson = "{\"status\":{\"code\":\"204\",\"info\":\"No Content\"},"
         + "\"headers\":{\"headername\":\"headervalue\",\"headername2\":\"headervalue2\"},\"body\":null}";


[24/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
deleted file mode 100644
index be254e4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
+++ /dev/null
@@ -1,357 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.concurrent.Future;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Customer",
-    openType = false,
-    hasStream = false,
-    isAbstract = false,
-    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
-public interface Customer
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person {
-
-  @Override
-  Customer load();
-
-  @Override
-  Future<? extends Customer> loadAsync();
-
-  @Override
-  Customer refs();
-
-  @Override
-  Customer expand(String... expand);
-
-  @Override
-  Customer select(String... select);
-
-  @Override
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPersonID();
-
-  @Override
-  void setPersonID(java.lang.Integer _personID);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFirstName();
-
-  @Override
-  void setFirstName(java.lang.String _firstName);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getLastName();
-
-  @Override
-  void setLastName(java.lang.String _lastName);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getMiddleName();
-
-  @Override
-  void setMiddleName(java.lang.String _middleName);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address
-      getHomeAddress();
-
-  @Override
-      void
-      setHomeAddress(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address _homeAddress);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
-      type = "Edm.GeographyPoint",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.commons.api.edm.geo.Point getHome();
-
-  @Override
-  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
-
-  @Override
-  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
-
-  @Override
-  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCity();
-
-  void setCity(java.lang.String _city);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Birthday",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getBirthday();
-
-  void setBirthday(java.sql.Timestamp _birthday);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TimeBetweenLastTwoOrders",
-      type = "Edm.Duration",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.math.BigDecimal getTimeBetweenLastTwoOrders();
-
-  void setTimeBetweenLastTwoOrders(java.math.BigDecimal _timeBetweenLastTwoOrders);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "People",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person getParent();
-
-  @Override
-  void setParent(
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person _parent);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Orders",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Orders",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection
-      getOrders();
-
-      void
-      setOrders(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection _orders);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Company",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company getCompany();
-
-      void
-      setCompany(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company _company);
-
-  @Override
-  Operations operations();
-
-  interface Operations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person.Operations {
-    // No additional methods needed for now.
-  }
-
-  @Override
-  Annotations annotations();
-
-  interface Annotations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person.Annotations {
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getPersonIDAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getFirstNameAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getLastNameAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "MiddleName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getMiddleNameAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HomeAddress",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
-    org.apache.olingo.ext.proxy.api.Annotatable getHomeAddressAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Home",
-        type = "Edm.GeographyPoint")
-    org.apache.olingo.ext.proxy.api.Annotatable getHomeAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Numbers",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNumbersAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Emails",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getEmailsAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "City",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getCityAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Birthday",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getBirthdayAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TimeBetweenLastTwoOrders",
-        type = "Edm.Duration")
-    org.apache.olingo.ext.proxy.api.Annotatable getTimeBetweenLastTwoOrdersAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Parent",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Person")
-    org.apache.olingo.ext.proxy.api.Annotatable getParentAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Orders",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Order")
-    org.apache.olingo.ext.proxy.api.Annotatable getOrdersAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Company",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Company")
-    org.apache.olingo.ext.proxy.api.Annotatable getCompanyAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java
deleted file mode 100644
index e358eed..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface CustomerCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollectionComposableInvoker.java
deleted file mode 100644
index 1a7ba5c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface CustomerCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection.Operations> {
-
-  @Override
-  CustomerCollectionComposableInvoker select(String... select);
-
-  @Override
-  CustomerCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerComposableInvoker.java
deleted file mode 100644
index 7525933..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerComposableInvoker.java
+++ /dev/null
@@ -1,241 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface CustomerComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Customer, Customer.Operations>
-{
-
-  @Override
-  CustomerComposableInvoker select(String... select);
-
-  @Override
-  CustomerComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPersonID();
-
-  void setPersonID(java.lang.Integer _personID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFirstName();
-
-  void setFirstName(java.lang.String _firstName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getLastName();
-
-  void setLastName(java.lang.String _lastName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getMiddleName();
-
-  void setMiddleName(java.lang.String _middleName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address
-      getHomeAddress();
-
-      void
-      setHomeAddress(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address _homeAddress);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
-      type = "Edm.GeographyPoint",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.commons.api.edm.geo.Point getHome();
-
-  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
-
-  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
-
-  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCity();
-
-  void setCity(java.lang.String _city);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Birthday",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getBirthday();
-
-  void setBirthday(java.sql.Timestamp _birthday);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TimeBetweenLastTwoOrders",
-      type = "Edm.Duration",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.math.BigDecimal getTimeBetweenLastTwoOrders();
-
-  void setTimeBetweenLastTwoOrders(java.math.BigDecimal _timeBetweenLastTwoOrders);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "People",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person getParent();
-
-  void setParent(
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person _parent);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Orders",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Orders",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection
-      getOrders();
-
-      void
-      setOrders(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection _orders);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Company",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company getCompany();
-
-      void
-      setCompany(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company _company);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
deleted file mode 100644
index 7bd8869..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
+++ /dev/null
@@ -1,120 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Department",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Department
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Department>, org.apache.olingo.ext.proxy.api.StructuredQuery<Department> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DepartmentID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getDepartmentID();
-
-  void setDepartmentID(java.lang.Integer _departmentID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DepartmentNO",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getDepartmentNO();
-
-  void setDepartmentNO(java.lang.String _departmentNO);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Company",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company getCompany();
-
-      void
-      setCompany(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company _company);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DepartmentID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getDepartmentIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DepartmentNO",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getDepartmentNOAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Company",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Company")
-    org.apache.olingo.ext.proxy.api.Annotatable getCompanyAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java
deleted file mode 100644
index 16a8183..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface DepartmentCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollectionComposableInvoker.java
deleted file mode 100644
index 88103be..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface DepartmentCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection.Operations> {
-
-  @Override
-  DepartmentCollectionComposableInvoker select(String... select);
-
-  @Override
-  DepartmentCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentComposableInvoker.java
deleted file mode 100644
index 08427f4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentComposableInvoker.java
+++ /dev/null
@@ -1,94 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface DepartmentComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Department, Department.Operations>
-{
-
-  @Override
-  DepartmentComposableInvoker select(String... select);
-
-  @Override
-  DepartmentComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DepartmentID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getDepartmentID();
-
-  void setDepartmentID(java.lang.Integer _departmentID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DepartmentNO",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getDepartmentNO();
-
-  void setDepartmentNO(java.lang.String _departmentNO);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Company",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company getCompany();
-
-      void
-      setCompany(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company _company);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
deleted file mode 100644
index f65a9e5..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
+++ /dev/null
@@ -1,321 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.concurrent.Future;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Employee",
-    openType = false,
-    hasStream = false,
-    isAbstract = false,
-    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
-public interface Employee
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person {
-
-  @Override
-  Employee load();
-
-  @Override
-  Future<? extends Employee> loadAsync();
-
-  @Override
-  Employee refs();
-
-  @Override
-  Employee expand(String... expand);
-
-  @Override
-  Employee select(String... select);
-
-  @Override
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPersonID();
-
-  @Override
-  void setPersonID(java.lang.Integer _personID);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFirstName();
-
-  @Override
-  void setFirstName(java.lang.String _firstName);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getLastName();
-
-  @Override
-  void setLastName(java.lang.String _lastName);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getMiddleName();
-
-  @Override
-  void setMiddleName(java.lang.String _middleName);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address
-      getHomeAddress();
-
-  @Override
-      void
-      setHomeAddress(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address _homeAddress);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
-      type = "Edm.GeographyPoint",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.commons.api.edm.geo.Point getHome();
-
-  @Override
-  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
-
-  @Override
-  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
-
-  @Override
-  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DateHired",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getDateHired();
-
-  void setDateHired(java.sql.Timestamp _dateHired);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Office",
-      type = "Edm.GeographyPoint",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.commons.api.edm.geo.Point getOffice();
-
-  void setOffice(org.apache.olingo.commons.api.edm.geo.Point _office);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "People",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person getParent();
-
-  @Override
-  void setParent(
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person _parent);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Company",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company getCompany();
-
-      void
-      setCompany(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company _company);
-
-  @Override
-  Operations operations();
-
-  interface Operations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person.Operations {
-    // No additional methods needed for now.
-  }
-
-  @Override
-  Annotations annotations();
-
-  interface Annotations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person.Annotations {
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getPersonIDAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getFirstNameAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getLastNameAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "MiddleName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getMiddleNameAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HomeAddress",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
-    org.apache.olingo.ext.proxy.api.Annotatable getHomeAddressAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Home",
-        type = "Edm.GeographyPoint")
-    org.apache.olingo.ext.proxy.api.Annotatable getHomeAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Numbers",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNumbersAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Emails",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getEmailsAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DateHired",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getDateHiredAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Office",
-        type = "Edm.GeographyPoint")
-    org.apache.olingo.ext.proxy.api.Annotatable getOfficeAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Parent",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Person")
-    org.apache.olingo.ext.proxy.api.Annotatable getParentAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Company",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Company")
-    org.apache.olingo.ext.proxy.api.Annotatable getCompanyAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java
deleted file mode 100644
index b9bf519..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface EmployeeCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollectionComposableInvoker.java
deleted file mode 100644
index d5556eb..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface EmployeeCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection.Operations> {
-
-  @Override
-  EmployeeCollectionComposableInvoker select(String... select);
-
-  @Override
-  EmployeeCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeComposableInvoker.java
deleted file mode 100644
index 2516340..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeComposableInvoker.java
+++ /dev/null
@@ -1,213 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface EmployeeComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Employee, Employee.Operations>
-{
-
-  @Override
-  EmployeeComposableInvoker select(String... select);
-
-  @Override
-  EmployeeComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPersonID();
-
-  void setPersonID(java.lang.Integer _personID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFirstName();
-
-  void setFirstName(java.lang.String _firstName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getLastName();
-
-  void setLastName(java.lang.String _lastName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getMiddleName();
-
-  void setMiddleName(java.lang.String _middleName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address
-      getHomeAddress();
-
-      void
-      setHomeAddress(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address _homeAddress);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
-      type = "Edm.GeographyPoint",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.commons.api.edm.geo.Point getHome();
-
-  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
-
-  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
-
-  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DateHired",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getDateHired();
-
-  void setDateHired(java.sql.Timestamp _dateHired);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Office",
-      type = "Edm.GeographyPoint",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.commons.api.edm.geo.Point getOffice();
-
-  void setOffice(org.apache.olingo.commons.api.edm.geo.Point _office);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "People",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person getParent();
-
-  void setParent(
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person _parent);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Company",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company getCompany();
-
-      void
-      setCompany(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company _company);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
deleted file mode 100644
index d1432e6..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
+++ /dev/null
@@ -1,152 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.OperationType;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "GiftCard",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface GiftCard
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<GiftCard>, org.apache.olingo.ext.proxy.api.StructuredQuery<GiftCard> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GiftCardID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getGiftCardID();
-
-  void setGiftCardID(java.lang.Integer _giftCardID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GiftCardNO",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getGiftCardNO();
-
-  void setGiftCardNO(java.lang.String _giftCardNO);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Amount",
-      type = "Edm.Double",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Double getAmount();
-
-  void setAmount(java.lang.Double _amount);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ExperationDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getExperationDate();
-
-  void setExperationDate(java.sql.Timestamp _experationDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OwnerName",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getOwnerName();
-
-  void setOwnerName(java.lang.String _ownerName);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "GetActualAmount",
-        type = OperationType.FUNCTION,
-        isComposable = false,
-        referenceType = java.lang.Double.class, returnType = "Edm.Double")
-    org.apache.olingo.ext.proxy.api.Invoker<java.lang.Double> getActualAmount(
-        @Parameter(name = "bonusRate", type = "Edm.Double", nullable = true) java.lang.Double bonusRate
-        );
-
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GiftCardID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getGiftCardIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GiftCardNO",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getGiftCardNOAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Amount",
-        type = "Edm.Double")
-    org.apache.olingo.ext.proxy.api.Annotatable getAmountAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ExperationDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getExperationDateAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OwnerName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getOwnerNameAnnotations();
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java
deleted file mode 100644
index 988128e..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface GiftCardCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCardCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCard, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCardCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCardCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollectionComposableInvoker.java
deleted file mode 100644
index 40cab5b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface GiftCardCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCardCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCardCollection.Operations> {
-
-  @Override
-  GiftCardCollectionComposableInvoker select(String... select);
-
-  @Override
-  GiftCardCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardComposableInvoker.java
deleted file mode 100644
index 0672afd..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardComposableInvoker.java
+++ /dev/null
@@ -1,112 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface GiftCardComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<GiftCard, GiftCard.Operations>
-{
-
-  @Override
-  GiftCardComposableInvoker select(String... select);
-
-  @Override
-  GiftCardComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GiftCardID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getGiftCardID();
-
-  void setGiftCardID(java.lang.Integer _giftCardID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GiftCardNO",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getGiftCardNO();
-
-  void setGiftCardNO(java.lang.String _giftCardNO);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Amount",
-      type = "Edm.Double",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Double getAmount();
-
-  void setAmount(java.lang.Double _amount);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ExperationDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getExperationDate();
-
-  void setExperationDate(java.sql.Timestamp _experationDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OwnerName",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getOwnerName();
-
-  void setOwnerName(java.lang.String _ownerName);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java
deleted file mode 100644
index 02e7ec4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java
+++ /dev/null
@@ -1,136 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.Annotatable;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "HomeAddress",
-    isOpenType = false,
-    isAbstract = false,
-    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Address")
-public interface HomeAddress
-    extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address {
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getStreet();
-
-  @Override
-  void setStreet(java.lang.String _street);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCity();
-
-  @Override
-  void setCity(java.lang.String _city);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPostalCode();
-
-  @Override
-  void setPostalCode(java.lang.String _postalCode);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FamilyName",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFamilyName();
-
-  void setFamilyName(java.lang.String _familyName);
-
-  @Override
-  Annotations annotations();
-
-  interface Annotations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address.Annotations {
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Street",
-        type = "Edm.String")
-    Annotatable getStreetAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "City",
-        type = "Edm.String")
-    Annotatable getCityAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PostalCode",
-        type = "Edm.String")
-    Annotatable getPostalCodeAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FamilyName",
-        type = "Edm.String")
-    Annotatable getFamilyNameAnnotations();
-
-  }
-
-  @Override
-  Operations operations();
-
-  interface Operations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address.Operations {
-    // No additional methods needed for now.
-  }
-}


[25/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
deleted file mode 100644
index c56d105..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
+++ /dev/null
@@ -1,232 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-import org.apache.olingo.ext.proxy.api.OperationType;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Company",
-    openType = true,
-    hasStream = false,
-    isAbstract = false)
-public interface Company
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Company>, org.apache.olingo.ext.proxy.api.StructuredQuery<Company>,
-    AbstractOpenType {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getCompanyID();
-
-  void setCompanyID(java.lang.Integer _companyID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyCategory",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory
-      getCompanyCategory();
-
-      void
-      setCompanyCategory(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory _companyCategory);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Revenue",
-      type = "Edm.Int64",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Long getRevenue();
-
-  void setRevenue(java.lang.Long _revenue);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address getAddress();
-
-      void
-      setAddress(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address _address);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Employees",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Employees",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection
-      getEmployees();
-
-      void
-      setEmployees(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection _employees);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "VipCustomer",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "VipCustomer",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer
-      getVipCustomer();
-
-      void
-      setVipCustomer(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer _vipCustomer);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Departments",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Departments",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection
-      getDepartments();
-
-      void
-      setDepartments(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection _departments);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CoreDepartment",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Departments",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department
-      getCoreDepartment();
-
-      void
-      setCoreDepartment(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department _coreDepartment);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "GetEmployeesCount",
-        type = OperationType.FUNCTION,
-        isComposable = false,
-        referenceType = java.lang.Integer.class, returnType = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Invoker<java.lang.Integer> getEmployeesCount(
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "IncreaseRevenue",
-        type = OperationType.ACTION,
-        referenceType = java.lang.Long.class, returnType = "Edm.Int64")
-    org.apache.olingo.ext.proxy.api.Invoker<java.lang.Long> increaseRevenue(
-        @Parameter(name = "IncreaseValue", type = "Edm.Int64", nullable = true) java.lang.Long increaseValue
-        );
-
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getCompanyIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyCategory",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory")
-    org.apache.olingo.ext.proxy.api.Annotatable getCompanyCategoryAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Revenue",
-        type = "Edm.Int64")
-    org.apache.olingo.ext.proxy.api.Annotatable getRevenueAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Address",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
-    org.apache.olingo.ext.proxy.api.Annotatable getAddressAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Employees",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Employee")
-    org.apache.olingo.ext.proxy.api.Annotatable getEmployeesAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "VipCustomer",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Customer")
-    org.apache.olingo.ext.proxy.api.Annotatable getVipCustomerAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Departments",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
-    org.apache.olingo.ext.proxy.api.Annotatable getDepartmentsAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "CoreDepartment",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
-    org.apache.olingo.ext.proxy.api.Annotatable getCoreDepartmentAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.java
deleted file mode 100644
index b9ff18e..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.java
+++ /dev/null
@@ -1,136 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.Annotatable;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "CompanyAddress",
-    isOpenType = false,
-    isAbstract = false,
-    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Address")
-public interface CompanyAddress
-    extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address {
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getStreet();
-
-  @Override
-  void setStreet(java.lang.String _street);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCity();
-
-  @Override
-  void setCity(java.lang.String _city);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPostalCode();
-
-  @Override
-  void setPostalCode(java.lang.String _postalCode);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCompanyName();
-
-  void setCompanyName(java.lang.String _companyName);
-
-  @Override
-  Annotations annotations();
-
-  interface Annotations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address.Annotations {
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Street",
-        type = "Edm.String")
-    Annotatable getStreetAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "City",
-        type = "Edm.String")
-    Annotatable getCityAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PostalCode",
-        type = "Edm.String")
-    Annotatable getPostalCodeAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyName",
-        type = "Edm.String")
-    Annotatable getCompanyNameAnnotations();
-
-  }
-
-  @Override
-  Operations operations();
-
-  interface Operations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollection.java
deleted file mode 100644
index 4e9398d..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface CompanyAddressCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddressCollection>,
-org.apache.olingo.ext.proxy.api.ComplexCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddress, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddressCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddressCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollectionComposableInvoker.java
deleted file mode 100644
index 4b64b4a..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface CompanyAddressCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddressCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddressCollection.Operations> {
-
-  @Override
-  CompanyAddressCollectionComposableInvoker select(String... select);
-
-  @Override
-  CompanyAddressCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressComposableInvoker.java
deleted file mode 100644
index d416150..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddressComposableInvoker.java
+++ /dev/null
@@ -1,93 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface CompanyAddressComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<CompanyAddress, CompanyAddress.Operations>
-{
-
-  @Override
-  CompanyAddressComposableInvoker select(String... select);
-
-  @Override
-  CompanyAddressComposableInvoker expand(String... expand);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getStreet();
-
-  void setStreet(java.lang.String _street);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCity();
-
-  void setCity(java.lang.String _city);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPostalCode();
-
-  void setPostalCode(java.lang.String _postalCode);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCompanyName();
-
-  void setCompanyName(java.lang.String _companyName);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCategory.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCategory.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCategory.java
deleted file mode 100644
index 10ee926..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCategory.java
+++ /dev/null
@@ -1,45 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EnumType(name = "CompanyCategory",
-    underlyingType = EdmPrimitiveTypeKind.Int32,
-    isFlags = false)
-public enum CompanyCategory {
-  IT(0),
-  Communication(1),
-  Electronics(2),
-  Others(4);
-
-  private java.lang.Integer value;
-
-  public java.lang.Integer getValue() {
-    return value;
-  }
-
-  private CompanyCategory(final java.lang.Integer value) {
-    this.value = value;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java
deleted file mode 100644
index 6fdc15c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface CompanyCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollectionComposableInvoker.java
deleted file mode 100644
index 575c61a..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface CompanyCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCollection.Operations> {
-
-  @Override
-  CompanyCollectionComposableInvoker select(String... select);
-
-  @Override
-  CompanyCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyComposableInvoker.java
deleted file mode 100644
index 11697fd..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyComposableInvoker.java
+++ /dev/null
@@ -1,170 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-public interface CompanyComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Company, Company.Operations>
-    , AbstractOpenType {
-
-  @Override
-  CompanyComposableInvoker select(String... select);
-
-  @Override
-  CompanyComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getCompanyID();
-
-  void setCompanyID(java.lang.Integer _companyID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyCategory",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory
-      getCompanyCategory();
-
-      void
-      setCompanyCategory(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory _companyCategory);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Revenue",
-      type = "Edm.Int64",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Long getRevenue();
-
-  void setRevenue(java.lang.Long _revenue);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address getAddress();
-
-      void
-      setAddress(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address _address);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Employees",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Employees",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection
-      getEmployees();
-
-      void
-      setEmployees(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection _employees);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "VipCustomer",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "VipCustomer",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer
-      getVipCustomer();
-
-      void
-      setVipCustomer(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer _vipCustomer);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Departments",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Departments",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection
-      getDepartments();
-
-      void
-      setDepartments(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection _departments);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CoreDepartment",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Departments",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department
-      getCoreDepartment();
-
-      void
-      setCoreDepartment(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department _coreDepartment);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
deleted file mode 100644
index 7f0ee90..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
+++ /dev/null
@@ -1,303 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.concurrent.Future;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "CreditCardPI",
-    openType = false,
-    hasStream = false,
-    isAbstract = false,
-    baseType = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
-public interface CreditCardPI
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument {
-
-  @Override
-  CreditCardPI load();
-
-  @Override
-  Future<? extends CreditCardPI> loadAsync();
-
-  @Override
-  CreditCardPI refs();
-
-  @Override
-  CreditCardPI expand(String... expand);
-
-  @Override
-  CreditCardPI select(String... select);
-
-  @Override
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PaymentInstrumentID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPaymentInstrumentID();
-
-  @Override
-  void setPaymentInstrumentID(java.lang.Integer _paymentInstrumentID);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FriendlyName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFriendlyName();
-
-  @Override
-  void setFriendlyName(java.lang.String _friendlyName);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getCreatedDate();
-
-  @Override
-  void setCreatedDate(java.sql.Timestamp _createdDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CardNumber",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCardNumber();
-
-  void setCardNumber(java.lang.String _cardNumber);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CVV",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCVV();
-
-  void setCVV(java.lang.String _cVV);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HolderName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getHolderName();
-
-  void setHolderName(java.lang.String _holderName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Balance",
-      type = "Edm.Double",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Double getBalance();
-
-  void setBalance(java.lang.Double _balance);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ExperationDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getExperationDate();
-
-  void setExperationDate(java.sql.Timestamp _experationDate);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "TheStoredPI",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "StoredPIs",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI
-      getTheStoredPI();
-
-  @Override
-      void
-      setTheStoredPI(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI _theStoredPI);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BackupStoredPI",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "StoredPIs",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI
-      getBackupStoredPI();
-
-  @Override
-      void
-      setBackupStoredPI(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI _backupStoredPI);
-
-  @Override
-  Operations operations();
-
-  interface Operations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument.Operations {
-    // No additional methods needed for now.
-  }
-
-  @Override
-  Annotations annotations();
-
-  interface Annotations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument.Annotations {
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PaymentInstrumentID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getPaymentInstrumentIDAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FriendlyName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getFriendlyNameAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CardNumber",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getCardNumberAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CVV",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getCVVAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HolderName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getHolderNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Balance",
-        type = "Edm.Double")
-    org.apache.olingo.ext.proxy.api.Annotatable getBalanceAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ExperationDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getExperationDateAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "TheStoredPI",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
-    org.apache.olingo.ext.proxy.api.Annotatable getTheStoredPIAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "BillingStatements",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Statement")
-    org.apache.olingo.ext.proxy.api.Annotatable getBillingStatementsAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "BackupStoredPI",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
-    org.apache.olingo.ext.proxy.api.Annotatable getBackupStoredPIAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "CreditRecords",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord")
-    org.apache.olingo.ext.proxy.api.Annotatable getCreditRecordsAnnotations();
-  }
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CreditRecords",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "",
-      targetEntitySet = "",
-      containsTarget = true)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPI.CreditRecords
-      getCreditRecords();
-
-      void
-      setCreditRecords(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPI.CreditRecords _creditRecords);
-
-  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "CreditRecords", contained = true)
-  interface CreditRecords
-      extends
-      org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecord, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecordCollection>,
-      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CreditRecords>,
-  AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecord, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecordCollection> {
-    // No additional methods needed for now.
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java
deleted file mode 100644
index 2115db5..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface CreditCardPICollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPICollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPI, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPICollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPICollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollectionComposableInvoker.java
deleted file mode 100644
index 53278d1..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface CreditCardPICollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPICollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPICollection.Operations> {
-
-  @Override
-  CreditCardPICollectionComposableInvoker select(String... select);
-
-  @Override
-  CreditCardPICollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPIComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPIComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPIComposableInvoker.java
deleted file mode 100644
index 908763b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPIComposableInvoker.java
+++ /dev/null
@@ -1,206 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-public interface CreditCardPIComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<CreditCardPI, CreditCardPI.Operations>
-{
-
-  @Override
-  CreditCardPIComposableInvoker select(String... select);
-
-  @Override
-  CreditCardPIComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PaymentInstrumentID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPaymentInstrumentID();
-
-  void setPaymentInstrumentID(java.lang.Integer _paymentInstrumentID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FriendlyName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFriendlyName();
-
-  void setFriendlyName(java.lang.String _friendlyName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getCreatedDate();
-
-  void setCreatedDate(java.sql.Timestamp _createdDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CardNumber",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCardNumber();
-
-  void setCardNumber(java.lang.String _cardNumber);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CVV",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCVV();
-
-  void setCVV(java.lang.String _cVV);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HolderName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getHolderName();
-
-  void setHolderName(java.lang.String _holderName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Balance",
-      type = "Edm.Double",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Double getBalance();
-
-  void setBalance(java.lang.Double _balance);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ExperationDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getExperationDate();
-
-  void setExperationDate(java.sql.Timestamp _experationDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "TheStoredPI",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "StoredPIs",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI
-      getTheStoredPI();
-
-      void
-      setTheStoredPI(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI _theStoredPI);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BackupStoredPI",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "StoredPIs",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI
-      getBackupStoredPI();
-
-      void
-      setBackupStoredPI(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI _backupStoredPI);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CreditRecords",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "",
-      targetEntitySet = "",
-      containsTarget = true)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPI.CreditRecords
-      getCreditRecords();
-
-      void
-      setCreditRecords(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPI.CreditRecords _creditRecords);
-
-  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "CreditRecords", contained = true)
-  interface CreditRecords
-      extends
-      org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecord, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecordCollection>,
-      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CreditRecords>,
-  AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecord, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecordCollection> {
-    // No additional methods needed for now.
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
deleted file mode 100644
index 9821a49..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
+++ /dev/null
@@ -1,125 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "CreditRecord",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface CreditRecord
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<CreditRecord>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<CreditRecord> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreditRecordID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getCreditRecordID();
-
-  void setCreditRecordID(java.lang.Integer _creditRecordID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "IsGood",
-      type = "Edm.Boolean",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Boolean getIsGood();
-
-  void setIsGood(java.lang.Boolean _isGood);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Reason",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getReason();
-
-  void setReason(java.lang.String _reason);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getCreatedDate();
-
-  void setCreatedDate(java.sql.Timestamp _createdDate);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreditRecordID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getCreditRecordIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "IsGood",
-        type = "Edm.Boolean")
-    org.apache.olingo.ext.proxy.api.Annotatable getIsGoodAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Reason",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getReasonAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java
deleted file mode 100644
index 6ce50c0..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface CreditRecordCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecordCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecord, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecordCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecordCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollectionComposableInvoker.java
deleted file mode 100644
index bdc36fb..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface CreditRecordCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecordCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecordCollection.Operations> {
-
-  @Override
-  CreditRecordCollectionComposableInvoker select(String... select);
-
-  @Override
-  CreditRecordCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordComposableInvoker.java
deleted file mode 100644
index 85ef555..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordComposableInvoker.java
+++ /dev/null
@@ -1,97 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface CreditRecordComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<CreditRecord, CreditRecord.Operations>
-{
-
-  @Override
-  CreditRecordComposableInvoker select(String... select);
-
-  @Override
-  CreditRecordComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreditRecordID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getCreditRecordID();
-
-  void setCreditRecordID(java.lang.Integer _creditRecordID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "IsGood",
-      type = "Edm.Boolean",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Boolean getIsGood();
-
-  void setIsGood(java.lang.Boolean _isGood);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Reason",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getReason();
-
-  void setReason(java.lang.String _reason);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getCreatedDate();
-
-  void setCreatedDate(java.sql.Timestamp _createdDate);
-
-}


[46/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/V4OpenType.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4OpenType.java b/fit/src/main/java/org/apache/olingo/fit/V4OpenType.java
deleted file mode 100644
index ba902f5..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V4OpenType.java
+++ /dev/null
@@ -1,140 +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;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.fit.metadata.Metadata;
-import org.apache.olingo.fit.utils.Accept;
-import org.apache.olingo.fit.utils.ConstantKey;
-import org.apache.olingo.fit.utils.Constants;
-import org.apache.olingo.fit.utils.FSManager;
-import org.springframework.stereotype.Service;
-
-@Service
-@Path("/V40/OpenType.svc")
-public class V4OpenType extends V4Services {
-
-  public V4OpenType() throws IOException {
-    super(new Metadata(FSManager.instance(ODataServiceVersion.V40).
-        readRes("openType" + StringUtils.capitalize(Constants.get(ConstantKey.METADATA)), Accept.XML)));
-  }
-
-  private Response replaceServiceName(final Response response) {
-    try {
-      final String content = IOUtils.toString((InputStream) response.getEntity(), Constants.ENCODING).
-          replaceAll("Static\\.svc", "OpenType.svc");
-
-      final Response.ResponseBuilder builder = Response.status(response.getStatus());
-      for (String headerName : response.getHeaders().keySet()) {
-        for (Object headerValue : response.getHeaders().get(headerName)) {
-          builder.header(headerName, headerValue);
-        }
-      }
-
-      final InputStream toBeStreamedBack = IOUtils.toInputStream(content, Constants.ENCODING);
-      final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-      IOUtils.copy(toBeStreamedBack, baos);
-      IOUtils.closeQuietly(toBeStreamedBack);
-
-      builder.header("Content-Length", baos.size());
-      builder.entity(new ByteArrayInputStream(baos.toByteArray()));
-
-      return builder.build();
-    } catch (Exception e) {
-      return response;
-    }
-  }
-
-  /**
-   * Provide sample large metadata.
-   *
-   * @return metadata.
-   */
-  @GET
-  @Path("/$metadata")
-  @Produces(MediaType.APPLICATION_XML)
-  @Override
-  public Response getMetadata() {
-    return super.getMetadata("openType" + StringUtils.capitalize(Constants.get(ConstantKey.METADATA)));
-  }
-
-  @GET
-  @Path("/{entitySetName}({entityId})")
-  @Override
-  public Response getEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("entitySetName") final String entitySetName,
-      @PathParam("entityId") final String entityId,
-      @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 replaceServiceName(super.getEntityInternal(
-        uriInfo.getRequestUri().toASCIIString(), accept, entitySetName, entityId, format, expand, select));
-  }
-
-  @POST
-  @Path("/{entitySetName}")
-  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM })
-  @Override
-  public Response postNewEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-      @PathParam("entitySetName") final String entitySetName,
-      final String entity) {
-
-    return replaceServiceName(super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
-  }
-
-  @DELETE
-  @Path("/{entitySetName}({entityId})")
-  @Override
-  public Response removeEntity(
-      @PathParam("entitySetName") final String entitySetName,
-      @PathParam("entityId") final String entityId) {
-
-    return replaceServiceName(super.removeEntity(entitySetName, entityId));
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index c3d8a77..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V4Services.java
+++ /dev/null
@@ -1,1448 +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;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStreamWriter;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.regex.Pattern;
-
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMultipart;
-import javax.ws.rs.BadRequestException;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.NotFoundException;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.UriInfo;
-
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.cxf.interceptor.InInterceptors;
-import org.apache.cxf.jaxrs.ext.multipart.Attachment;
-import org.apache.cxf.jaxrs.ext.multipart.Multipart;
-import org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
-import org.apache.olingo.commons.api.data.Entity;
-import org.apache.olingo.commons.api.data.EntityCollection;
-import org.apache.olingo.commons.api.data.Link;
-import org.apache.olingo.commons.api.data.Property;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.commons.core.edm.EdmTypeInfo;
-import org.apache.olingo.fit.metadata.Metadata;
-import org.apache.olingo.fit.methods.PATCH;
-import org.apache.olingo.fit.rest.ResolvingReferencesInterceptor;
-import org.apache.olingo.fit.rest.XHTTPMethodInterceptor;
-import org.apache.olingo.fit.utils.AbstractUtilities;
-import org.apache.olingo.fit.utils.Accept;
-import org.apache.olingo.fit.utils.Commons;
-import org.apache.olingo.fit.utils.ConstantKey;
-import org.apache.olingo.fit.utils.Constants;
-import org.apache.olingo.fit.utils.FSManager;
-import org.apache.olingo.fit.utils.LinkInfo;
-import org.springframework.stereotype.Service;
-
-@Service
-@Path("/V40/Static.svc")
-@InInterceptors(classes = { XHTTPMethodInterceptor.class, ResolvingReferencesInterceptor.class })
-public class V4Services extends AbstractServices {
-
-  /**
-   * CR/LF.
-   */
-  protected static final byte[] CRLF = { 13, 10 };
-
-  protected static final Pattern RELENTITY_SELECT_PATTERN = Pattern.compile("^.*\\(\\$select=.*\\)$");
-
-  protected static final Pattern CROSSJOIN_PATTERN = Pattern.compile(
-      "^\\$crossjoin\\(.*\\)\\?\\$filter=\\([a-zA-Z/]+ eq [a-zA-Z/]+\\)$");
-
-  private final Map<String, String> providedAsync = new HashMap<String, String>();
-
-  public V4Services() throws IOException {
-    super(ODataServiceVersion.V40, Commons.getMetadata(ODataServiceVersion.V40));
-  }
-
-  protected V4Services(final Metadata metadata) throws IOException {
-    super(ODataServiceVersion.V40, metadata);
-  }
-
-  @GET
-  @Path("/redirect/{name}({id})")
-  public Response conformanceRedirect(
-      @Context final UriInfo uriInfo,
-      @PathParam("name") final String name,
-      @PathParam("id") final String id) {
-    return Response.temporaryRedirect(
-        URI.create(uriInfo.getRequestUri().toASCIIString().replace("/redirect", ""))).build();
-  }
-
-  @GET
-  @Path("/$crossjoin({elements:.*})")
-  public Response crossjoin(
-      @PathParam("elements") final String elements,
-      @QueryParam("$filter") final String filter) {
-
-    try {
-      if (CROSSJOIN_PATTERN.matcher("$crossjoin(" + elements + ")?$filter=" + filter).matches()) {
-        final InputStream feed = FSManager.instance(version).readFile("crossjoin", Accept.JSON);
-
-        return xml.createResponse(feed, null, Accept.JSON_FULLMETA);
-      } else {
-        throw new IOException("Unexpected crossjoin pattern");
-      }
-    } catch (Exception e) {
-      return xml.createFaultResponse(Accept.JSON.toString(), e);
-    }
-  }
-
-  @GET
-  @Path("/relatedEntitySelect/{path:.*}")
-  public Response relatedEntitySelect(
-      @PathParam("path") final String path,
-      @QueryParam("$expand") final String expand) {
-
-    if (RELENTITY_SELECT_PATTERN.matcher(expand).matches()) {
-      return xml.createResponse(null, null, Accept.JSON_FULLMETA);
-    } else {
-      return xml.createFaultResponse(Accept.JSON.toString(), new Exception("Unexpected expand pattern"));
-    }
-  }
-
-  @DELETE
-  @Path("/monitor/{name}")
-  public Response removeMonitor(@PathParam("name") final String name) {
-    providedAsync.remove(name);
-    return xml.createResponse(null, null, null, Status.NO_CONTENT);
-  }
-
-  @GET
-  @Path("/monitor/{name}")
-  public Response async(@PathParam("name") final String name) {
-    try {
-      if (!providedAsync.containsKey(name)) {
-        throw new NotFoundException();
-      }
-      final InputStream res = IOUtils.toInputStream(providedAsync.get(name), Constants.ENCODING);
-      providedAsync.remove(name);
-      return xml.createMonitorResponse(res);
-    } catch (Exception e) {
-      return xml.createFaultResponse(Accept.JSON_FULLMETA.toString(), e);
-    }
-  }
-
-  @PUT
-  @Path("/People(1)/Parent")
-  public Response changeSingleValuedNavigationPropertyReference(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      final String content) {
-
-    try {
-      final Accept contentTypeValue = Accept.parse(contentType);
-      assert contentTypeValue == Accept.JSON;
-
-      jsonDeserializer.toEntity(IOUtils.toInputStream(content, Constants.ENCODING));
-
-      return Response.noContent().type(MediaType.APPLICATION_JSON).build();
-    } catch (Exception e) {
-      LOG.error("While update single property reference", e);
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @POST
-  @Path("/async/$batch")
-  public Response async(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-      final @Multipart MultipartBody attachment) {
-
-    try {
-      final ByteArrayOutputStream bos = new ByteArrayOutputStream();
-      bos.write("HTTP/1.1 200 Ok".getBytes());
-      bos.write(CRLF);
-      bos.write("OData-Version: 4.0".getBytes());
-      bos.write(CRLF);
-      bos.write(("Content-Type: " + ContentType.APPLICATION_OCTET_STREAM + ";boundary=" + BOUNDARY).getBytes());
-      bos.write(CRLF);
-      bos.write(CRLF);
-
-      bos.write(("--" + BOUNDARY).getBytes());
-      bos.write(CRLF);
-      bos.write("Content-Type: application/http".getBytes());
-      bos.write(CRLF);
-      bos.write("Content-Transfer-Encoding: binary".getBytes());
-      bos.write(CRLF);
-      bos.write(CRLF);
-
-      bos.write("HTTP/1.1 202 Accepted".getBytes());
-      bos.write(CRLF);
-      bos.write("Location: http://service-root/async-monitor".getBytes());
-      bos.write(CRLF);
-      bos.write("Retry-After: 10".getBytes());
-      bos.write(CRLF);
-      bos.write(CRLF);
-      bos.write(("--" + BOUNDARY + "--").getBytes());
-      bos.write(CRLF);
-
-      final UUID uuid = UUID.randomUUID();
-      providedAsync.put(uuid.toString(), bos.toString(Constants.ENCODING.toString()));
-
-      bos.flush();
-      bos.close();
-
-      return xml.createAsyncResponse(
-          uriInfo.getRequestUri().toASCIIString().replace("async/$batch", "") + "monitor/" + uuid.toString());
-    } catch (Exception e) {
-      return xml.createFaultResponse(Accept.JSON.toString(), e);
-    }
-  }
-
-  @GET
-  @Path("/async/{name}")
-  public Response async(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("name") final String name) {
-
-    try {
-      final Accept acceptType = Accept.parse(accept);
-      if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
-        throw new UnsupportedMediaTypeException("Unsupported media type");
-      }
-
-      final String basePath = name + File.separatorChar;
-      final StringBuilder path = new StringBuilder(basePath);
-
-      path.append(metadata.getEntitySet(name).isSingleton()
-          ? Constants.get(ConstantKey.ENTITY)
-          : Constants.get(ConstantKey.FEED));
-
-      final InputStream feed = FSManager.instance(version).readFile(path.toString(), acceptType);
-
-      final StringBuilder builder = new StringBuilder();
-      builder.append("HTTP/1.1 200 Ok").append(new String(CRLF));
-      builder.append("Content-Type: ").append(accept).append(new String(CRLF)).append(new String(CRLF));
-      builder.append(IOUtils.toString(feed));
-      IOUtils.closeQuietly(feed);
-
-      final UUID uuid = UUID.randomUUID();
-      providedAsync.put(uuid.toString(), builder.toString());
-
-      return xml.createAsyncResponse(
-          uriInfo.getRequestUri().toASCIIString().replaceAll("async/" + name, "") + "monitor/" + uuid.toString());
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @Override
-  protected void setInlineCount(final EntityCollection entitySet, final String count) {
-    if ("true".equals(count)) {
-      entitySet.setCount(entitySet.getEntities().size());
-    }
-  }
-
-  @Override
-  public InputStream exploreMultipart(
-      final List<Attachment> attachments, final String boundary, final boolean continueOnError)
-      throws IOException {
-
-    final ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
-    Response res = null;
-    boolean goon = true;
-    for (int i = 0; i < attachments.size() && goon; i++) {
-      try {
-        final Attachment obj = attachments.get(i);
-        bos.write(("--" + boundary).getBytes());
-        bos.write(Constants.CRLF);
-
-        final Object content = obj.getDataHandler().getContent();
-        if (content instanceof MimeMultipart) {
-          final ByteArrayOutputStream chbos = new ByteArrayOutputStream();
-          String lastContebtID = null;
-          try {
-            final Map<String, String> references = new HashMap<String, String>();
-
-            final String cboundary = "changeset_" + UUID.randomUUID().toString();
-            chbos.write(("Content-Type: multipart/mixed;boundary=" + cboundary).getBytes());
-            chbos.write(Constants.CRLF);
-            chbos.write(Constants.CRLF);
-
-            for (int j = 0; j < ((MimeMultipart) content).getCount(); j++) {
-              final MimeBodyPart part = (MimeBodyPart) ((MimeMultipart) content).getBodyPart(j);
-              lastContebtID = part.getContentID();
-              addChangesetItemIntro(chbos, lastContebtID, cboundary);
-
-              res = bodyPartRequest(new MimeBodyPart(part.getInputStream()), references);
-              if (!continueOnError && (res == null || res.getStatus() >= 400)) {
-                throw new Exception("Failure processing changeset");
-              }
-
-              addSingleBatchResponse(res, lastContebtID, chbos);
-              references.put("$" + lastContebtID, res.getHeaderString("Location"));
-            }
-
-            chbos.write(("--" + cboundary + "--").getBytes());
-            chbos.write(Constants.CRLF);
-
-            bos.write(chbos.toByteArray());
-            IOUtils.closeQuietly(chbos);
-          } catch (Exception e) {
-            LOG.warn("While processing changeset", e);
-            IOUtils.closeQuietly(chbos);
-
-            addItemIntro(bos, lastContebtID);
-
-            if (res == null || res.getStatus() < 400) {
-              addErrorBatchResponse(e, "1", bos);
-            } else {
-              addSingleBatchResponse(res, lastContebtID, bos);
-            }
-
-            goon = continueOnError;
-          }
-        } else {
-          addItemIntro(bos);
-
-          res = bodyPartRequest(new MimeBodyPart(obj.getDataHandler().getInputStream()));
-
-          if (res.getStatus() >= 400) {
-            goon = continueOnError;
-            throw new Exception("Failure processing batch item");
-          }
-
-          addSingleBatchResponse(res, bos);
-        }
-      } catch (Exception e) {
-        if (res == null || res.getStatus() < 400) {
-          addErrorBatchResponse(e, bos);
-        } else {
-          addSingleBatchResponse(res, bos);
-        }
-      }
-    }
-
-    bos.write(("--" + boundary + "--").getBytes());
-
-    return new ByteArrayInputStream(bos.toByteArray());
-  }
-
-  @GET
-  @Path("/People/{type:.*}")
-  public Response getPeople(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("type") final String type,
-      @QueryParam("$top") @DefaultValue(StringUtils.EMPTY) final String top,
-      @QueryParam("$skip") @DefaultValue(StringUtils.EMPTY) final String skip,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      @QueryParam("$inlinecount") @DefaultValue(StringUtils.EMPTY) final String count,
-      @QueryParam("$filter") @DefaultValue(StringUtils.EMPTY) final String filter,
-      @QueryParam("$search") @DefaultValue(StringUtils.EMPTY) final String search,
-      @QueryParam("$orderby") @DefaultValue(StringUtils.EMPTY) final String orderby,
-      @QueryParam("$skiptoken") @DefaultValue(StringUtils.EMPTY) final String skiptoken) {
-
-    return StringUtils.isBlank(filter) && StringUtils.isBlank(search)
-        ? NumberUtils.isNumber(type)
-            ? super.getEntityInternal(
-                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, type);
-  }
-
-  @GET
-  @Path("/Boss")
-  public Response getSingletonBoss(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    return getEntityInternal(
-        uriInfo.getRequestUri().toASCIIString(), accept, "Boss", StringUtils.EMPTY, format, null, null);
-  }
-
-  @GET
-  @Path("/Company")
-  public Response getSingletonCompany(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    return getEntityInternal(
-        uriInfo.getRequestUri().toASCIIString(), accept, "Company", StringUtils.EMPTY, format, null, null);
-  }
-
-  @PATCH
-  @Path("/Company")
-  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  public Response patchSingletonCompany(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-      @HeaderParam("If-Match") @DefaultValue(StringUtils.EMPTY) final String ifMatch,
-      final String changes) {
-
-    return super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, "Company", StringUtils.EMPTY, changes);
-  }
-
-  @GET
-  @Path("/Customers")
-  public Response getCustomers(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-      @QueryParam("$deltatoken") @DefaultValue(StringUtils.EMPTY) final String deltatoken) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final InputStream output;
-      if (StringUtils.isBlank(deltatoken)) {
-        final InputStream input = (InputStream) getEntitySet(
-            uriInfo, accept, "Customers", null, null, format, null, null, null, null).getEntity();
-        final EntityCollection entitySet = xml.readEntitySet(acceptType, input);
-
-        boolean trackChanges = prefer.contains("odata.track-changes");
-        if (trackChanges) {
-          entitySet.setDeltaLink(URI.create("Customers?$deltatoken=8015"));
-        }
-
-        output = xml.writeEntitySet(acceptType, new ResWrap<EntityCollection>(
-            URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + "Customers"),
-            null,
-            entitySet));
-      } else {
-        output = FSManager.instance(version).readFile("delta", acceptType);
-      }
-
-      final Response response = xml.createResponse(
-          null,
-          output,
-          null,
-          acceptType);
-      if (StringUtils.isNotBlank(prefer)) {
-        response.getHeaders().put("Preference-Applied", Collections.<Object> singletonList(prefer));
-      }
-      return response;
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @GET
-  @Path("/Company/Microsoft.Test.OData.Services.ODataWCFService.GetEmployeesCount{paren:[\\(\\)]*}")
-  public Response functionGetEmployeesCount(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final Property property = new Property();
-      property.setType("Edm.Int32");
-      property.setValue(ValueType.PRIMITIVE, 2);
-      final ResWrap<Property> container = new ResWrap<Property>(
-          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
-          property);
-
-      return xml.createResponse(
-          null,
-          xml.writeProperty(acceptType, container),
-          null,
-          acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @POST
-  @Path("/Company/Microsoft.Test.OData.Services.ODataWCFService.IncreaseRevenue{paren:[\\(\\)]*}")
-  public Response actionIncreaseRevenue(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String param) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final Accept contentTypeValue = Accept.parse(contentType);
-      final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
-
-      return xml.createResponse(
-          null,
-          xml.writeProperty(acceptType, entry.getProperty("IncreaseValue")),
-          null,
-          acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @GET
-  @Path("/Products({entityId})/Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails({param:.*})")
-  public Response functionGetProductDetails(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("entityId") final String entityId,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final Entity entry = new Entity();
-      entry.setType("Microsoft.Test.OData.Services.ODataWCFService.ProductDetail");
-      final Property productId = new Property();
-      productId.setName("ProductID");
-      productId.setType("Edm.Int32");
-      productId.setValue(ValueType.PRIMITIVE, Integer.valueOf(entityId));
-      entry.getProperties().add(productId);
-      final Property productDetailId = new Property();
-      productDetailId.setName("ProductDetailID");
-      productDetailId.setType("Edm.Int32");
-      productDetailId.setValue(ValueType.PRIMITIVE, 2);
-      entry.getProperties().add(productDetailId);
-
-      final Link link = new Link();
-      link.setRel("edit");
-      link.setHref(URI.create(
-          Constants.get(ConstantKey.DEFAULT_SERVICE_URL)
-              + "ProductDetails(ProductID=6,ProductDetailID=1)").toASCIIString());
-      entry.setEditLink(link);
-
-      final EntityCollection feed = new EntityCollection();
-      feed.getEntities().add(entry);
-
-      final ResWrap<EntityCollection> container = new ResWrap<EntityCollection>(
-          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + "ProductDetail"), null,
-          feed);
-
-      return xml.createResponse(
-          null,
-          xml.writeEntitySet(acceptType, container),
-          null,
-          acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @POST
-  @Path("/Products({entityId})/Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight{paren:[\\(\\)]*}")
-  public Response actionAddAccessRight(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String param) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final Accept contentTypeValue = Accept.parse(contentType);
-      final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
-
-      assert 1 == entry.getProperties().size();
-      assert entry.getProperty("accessRight") != null;
-
-      final Property property = entry.getProperty("accessRight");
-      property.setType("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel");
-
-      final ResWrap<Property> result = new ResWrap<Property>(
-          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()),
-          null, property);
-
-      return xml.createResponse(
-          null,
-          xml.writeProperty(acceptType, result),
-          null,
-          acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @POST
-  @Path("/Customers({personId})/Microsoft.Test.OData.Services.ODataWCFService.ResetAddress{paren:[\\(\\)]*}")
-  public Response actionResetAddress(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("personId") final String personId,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String param) {
-
-    try {
-      final Accept contentTypeValue = Accept.parse(contentType);
-      final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
-
-      assert 2 == entry.getProperties().size();
-      assert entry.getProperty("addresses") != null;
-      assert entry.getProperty("index") != null;
-
-      return getEntityInternal(
-          uriInfo.getRequestUri().toASCIIString(), accept, "Customers", personId, format, null, null);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @GET
-  @Path("/ProductDetails(ProductID={productId},ProductDetailID={productDetailId})"
-      + "/Microsoft.Test.OData.Services.ODataWCFService.GetRelatedProduct{paren:[\\(\\)]*}")
-  public Response functionGetRelatedProduct(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("productId") final String productId,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    return getEntityInternal(
-        uriInfo.getRequestUri().toASCIIString(), accept, "Products", productId, format, null, null);
-  }
-
-  @POST
-  @Path("/Accounts({entityId})/Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI{paren:[\\(\\)]*}")
-  public Response actionRefreshDefaultPI(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @PathParam("entityId") final String entityId,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String param) {
-
-    try {
-      final Accept contentTypeValue = Accept.parse(contentType);
-      final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
-
-      assert 1 == entry.getProperties().size();
-      assert entry.getProperty("newDate") != null;
-
-      return functionGetDefaultPI(accept, entityId, format);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @GET
-  @Path("/Accounts({entityId})/Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI{paren:[\\(\\)]*}")
-  public Response functionGetDefaultPI(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("entityId") final String entityId,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    return getContainedEntity(accept, entityId, "MyPaymentInstruments", entityId + "901", format);
-  }
-
-  @GET
-  @Path("/Accounts({entityId})/Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo{paren:[\\(\\)]*}")
-  public Response functionGetAccountInfo(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("entityId") final String entityId,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    return getPath(accept, "Accounts", entityId, "AccountInfo", format);
-  }
-
-  @GET
-  @Path("/Accounts({entityId})/MyGiftCard/Microsoft.Test.OData.Services.ODataWCFService.GetActualAmount({param:.*})")
-  public Response functionGetActualAmount(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("entityId") final String entityId,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final Property property = new Property();
-      property.setType("Edm.Double");
-      property.setValue(ValueType.PRIMITIVE, 41.79);
-
-      final ResWrap<Property> container = new ResWrap<Property>((URI) null, null, property);
-
-      return xml.createResponse(
-          null,
-          xml.writeProperty(acceptType, container),
-          null,
-          acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  /**
-   * Retrieve entity reference sample.
-   *
-   * @param accept Accept header.
-   * @param path path.
-   * @param format format query option.
-   * @return entity reference or feed of entity reference.
-   */
-  @GET
-  @Path("/{path:.*}/$ref")
-  public Response getEntityReference(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("path") final String path,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    try {
-      final Map.Entry<Accept, AbstractUtilities> utils = getUtilities(accept, format);
-
-      if (utils.getKey() == Accept.TEXT) {
-        throw new UnsupportedMediaTypeException("Unsupported media type");
-      }
-
-      final String filename = Base64.encodeBase64String(path.getBytes("UTF-8"));
-
-      return utils.getValue().createResponse(
-          FSManager.instance(version).readFile(Constants.get(ConstantKey.REF)
-              + File.separatorChar + filename, utils.getKey()),
-          null,
-          utils.getKey());
-    } catch (Exception e) {
-      LOG.error("Error retrieving entity", e);
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @POST
-  @Path("/People")
-  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
-  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM })
-  public Response postPeople(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-      final String entity) {
-
-    if ("{\"@odata.type\":\"#Microsoft.Test.OData.Services.ODataWCFService.Person\"}".equals(entity)) {
-      return xml.createFaultResponse(accept, new BadRequestException());
-    }
-
-    return super.postNewEntity(uriInfo, accept, contentType, prefer, "People", entity);
-  }
-
-  @Override
-  public Response patchEntity(
-      final UriInfo uriInfo,
-      final String accept,
-      final String contentType,
-      final String prefer,
-      final String ifMatch,
-      final String entitySetName,
-      final String entityId,
-      final String changes) {
-
-    final Response response =
-        getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
-            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);
-  }
-
-  @Override
-  public Response replaceEntity(
-      final UriInfo uriInfo,
-      final String accept,
-      final String contentType,
-      final String prefer,
-      final String entitySetName,
-      final String entityId,
-      final String entity) {
-
-    try {
-      getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
-          accept, entitySetName, entityId, accept, StringUtils.EMPTY, StringUtils.EMPTY);
-      return super.replaceEntity(uriInfo, accept, contentType, prefer, entitySetName, entityId, entity);
-    } catch (NotFoundException e) {
-      return postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entityId);
-    }
-  }
-
-  private StringBuilder containedPath(final String entityId, final String containedEntitySetName) {
-    return new StringBuilder("Accounts").append(File.separatorChar).
-        append(entityId).append(File.separatorChar).
-        append("links").append(File.separatorChar).
-        append(containedEntitySetName);
-  }
-
-  @GET
-  @Path("/Accounts({entityId})/{containedEntitySetName}({containedEntityId})")
-  public Response getContainedEntity(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("entityId") final String entityId,
-      @PathParam("containedEntitySetName") final String containedEntitySetName,
-      @PathParam("containedEntityId") final String containedEntityId,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-      if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
-        throw new UnsupportedMediaTypeException("Unsupported media type");
-      }
-
-      final StringBuilder containedPath = containedPath(entityId, containedEntitySetName);
-      if (StringUtils.isNotBlank(containedEntityId)) {
-        containedPath.append('(').append(containedEntityId).append(')');
-      }
-      final InputStream entry = FSManager.instance(version).readFile(containedPath.toString(), Accept.ATOM);
-
-      final ResWrap<Entity> container = atomDeserializer.toEntity(entry);
-
-      return xml.createResponse(
-          null,
-          xml.writeEntity(acceptType, container),
-          null,
-          acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @POST
-  @Path("/Accounts({entityId})/{containedEntitySetName:.*}")
-  public Response postContainedEntity(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @PathParam("entityId") final String entityId,
-      @PathParam("containedEntitySetName") final String containedEntitySetName,
-      final String entity) {
-
-    try {
-      final Accept acceptType = Accept.parse(accept);
-      if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
-        throw new UnsupportedMediaTypeException("Unsupported media type");
-      }
-
-      final AbstractUtilities utils = getUtilities(acceptType);
-
-      // 1. parse the entry (from Atom or JSON)
-      final ResWrap<Entity> entryContainer;
-      final Entity entry;
-      final Accept contentTypeValue = Accept.parse(contentType);
-      if (Accept.ATOM == contentTypeValue) {
-        entryContainer = atomDeserializer.toEntity(IOUtils.toInputStream(entity, Constants.ENCODING));
-        entry = entryContainer.getPayload();
-      } else {
-        final ResWrap<Entity> jcontainer = jsonDeserializer.toEntity(
-            IOUtils.toInputStream(entity, Constants.ENCODING));
-        entry = jcontainer.getPayload();
-
-        entryContainer = new ResWrap<Entity>(
-            jcontainer.getContextURL(),
-            jcontainer.getMetadataETag(),
-            entry);
-      }
-
-      final EdmTypeInfo contained = new EdmTypeInfo.Builder().setTypeExpression(metadata.
-          getNavigationProperties("Accounts").get(containedEntitySetName).getType()).build();
-      final String entityKey = getUtilities(contentTypeValue).
-          getDefaultEntryKey(contained.getFullQualifiedName().getName(), entry);
-
-      // 2. Store the new entity
-      final String atomEntryRelativePath = containedPath(entityId, containedEntitySetName).
-          append('(').append(entityKey).append(')').toString();
-      FSManager.instance(version).putInMemory(
-          utils.writeEntity(Accept.ATOM, entryContainer),
-          FSManager.instance(version).getAbsolutePath(atomEntryRelativePath, Accept.ATOM));
-
-      // 3. Update the contained entity set
-      final String atomFeedRelativePath = containedPath(entityId, containedEntitySetName).toString();
-      final InputStream feedIS = FSManager.instance(version).readFile(atomFeedRelativePath, Accept.ATOM);
-      final ResWrap<EntityCollection> feedContainer = atomDeserializer.toEntitySet(feedIS);
-      feedContainer.getPayload().getEntities().add(entry);
-
-      final ByteArrayOutputStream content = new ByteArrayOutputStream();
-      final OutputStreamWriter writer = new OutputStreamWriter(content, Constants.ENCODING);
-      atomSerializer.write(writer, feedContainer);
-      writer.flush();
-      writer.close();
-
-      FSManager.instance(version).putInMemory(
-          new ByteArrayInputStream(content.toByteArray()),
-          FSManager.instance(version).getAbsolutePath(atomFeedRelativePath, Accept.ATOM));
-
-      // Finally, return
-      return utils.createResponse(
-          uriInfo.getRequestUri().toASCIIString() + "(" + entityKey + ")",
-          utils.writeEntity(acceptType, entryContainer),
-          null,
-          acceptType,
-          Response.Status.CREATED);
-    } catch (Exception e) {
-      LOG.error("While creating new contained entity", e);
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @PATCH
-  @Path("/{entitySetName}({entityId})/{containedEntitySetName}({containedEntityId})")
-  public Response patchContainedEntity(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @PathParam("entitySetName") final String entitySetName,
-      @PathParam("entityId") final String entityId,
-      @PathParam("containedEntitySetName") final String containedEntitySetName,
-      @PathParam("containedEntityId") final String containedEntityId,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String changes) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-      if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
-        throw new UnsupportedMediaTypeException("Unsupported media type");
-      }
-
-      final Accept contentTypeValue;
-      if (StringUtils.isBlank(contentType)) {
-        throw new IllegalArgumentException();
-      }
-      contentTypeValue = Accept.parse(contentType);
-
-      final LinkInfo links = xml.readLinks(
-          entitySetName, entityId, containedEntitySetName + "(" + containedEntityId + ")", Accept.ATOM);
-
-      ResWrap<Entity> container = atomDeserializer.toEntity(links.getLinks());
-      final Entity original = container.getPayload();
-
-      final Entity entryChanges;
-      if (Accept.ATOM == contentTypeValue) {
-        container = atomDeserializer.toEntity(IOUtils.toInputStream(changes, Constants.ENCODING));
-        entryChanges = container.getPayload();
-      } else {
-        final String entityType = metadata.getEntitySet(entitySetName).getType();
-        final String containedType = metadata.getEntityOrComplexType(entityType).
-            getNavigationProperty(containedEntitySetName).getType();
-        final EdmTypeInfo typeInfo = new EdmTypeInfo.Builder().setTypeExpression(containedType).build();
-
-        final ResWrap<Entity> jsonContainer = jsonDeserializer.toEntity(
-            IOUtils.toInputStream(changes, Constants.ENCODING));
-        jsonContainer.getPayload().setType(typeInfo.getFullQualifiedName().toString());
-        entryChanges = jsonContainer.getPayload();
-      }
-
-      for (Property property : entryChanges.getProperties()) {
-        final Property old = original.getProperty(property.getName());
-        if (old != null) {
-          original.getProperties().remove(old);
-        }
-        original.getProperties().add(property);
-      }
-
-      FSManager.instance(version).putInMemory(new ResWrap<Entity>((URI) null, null, original),
-          xml.getLinksBasePath(entitySetName, entityId) + containedEntitySetName + "(" + containedEntityId + ")");
-
-      return xml.createResponse(null, null, acceptType, Response.Status.NO_CONTENT);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @DELETE
-  @Path("/Accounts({entityId})/{containedEntitySetName}({containedEntityId})")
-  public Response removeContainedEntity(
-      @PathParam("entityId") final String entityId,
-      @PathParam("containedEntitySetName") final String containedEntitySetName,
-      @PathParam("containedEntityId") final String containedEntityId) {
-
-    try {
-      // 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);
-      final ResWrap<Entity> container = atomDeserializer.toEntity(entry);
-
-      // 2. Remove the contained entity
-      final String atomEntryRelativePath = containedPath(entityId, containedEntitySetName).
-          append('(').append(containedEntityId).append(')').toString();
-      FSManager.instance(version).deleteFile(atomEntryRelativePath);
-
-      // 3. Update the contained entity set
-      final String atomFeedRelativePath = containedPath(entityId, containedEntitySetName).toString();
-      final InputStream feedIS = FSManager.instance(version).readFile(atomFeedRelativePath, Accept.ATOM);
-      final ResWrap<EntityCollection> feedContainer = atomDeserializer.toEntitySet(feedIS);
-      feedContainer.getPayload().getEntities().remove(container.getPayload());
-
-      final ByteArrayOutputStream content = new ByteArrayOutputStream();
-      final OutputStreamWriter writer = new OutputStreamWriter(content, Constants.ENCODING);
-      atomSerializer.write(writer, feedContainer);
-      writer.flush();
-      writer.close();
-
-      FSManager.instance(version).putInMemory(
-          new ByteArrayInputStream(content.toByteArray()),
-          FSManager.instance(version).getAbsolutePath(atomFeedRelativePath, Accept.ATOM));
-
-      return xml.createResponse(null, null, null, null, Response.Status.NO_CONTENT);
-    } catch (Exception e) {
-      return xml.createFaultResponse(Accept.XML.toString(), e);
-    }
-  }
-
-  @GET
-  @Path("/Accounts({entityId})/{containedEntitySetName:.*}")
-  public Response getContainedEntitySet(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @PathParam("entityId") final String entityId,
-      @PathParam("containedEntitySetName") final String containedEntitySetName,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    String tempContainedESName = containedEntitySetName;
-    if ("MyGiftCard".equals(tempContainedESName)) {
-      return getContainedEntity(accept, entityId, tempContainedESName, null, format);
-    }
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-      if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
-        throw new UnsupportedMediaTypeException("Unsupported media type");
-      }
-
-      String derivedType = null;
-      if (tempContainedESName.contains("/")) {
-        final String[] parts = tempContainedESName.split("/");
-        tempContainedESName = parts[0];
-        derivedType = parts[1];
-      }
-
-      final InputStream feed = FSManager.instance(version).
-          readFile(containedPath(entityId, tempContainedESName).toString(), Accept.ATOM);
-
-      final ResWrap<EntityCollection> container = atomDeserializer.toEntitySet(feed);
-
-      if (derivedType != null) {
-        final List<Entity> nonMatching = new ArrayList<Entity>();
-        for (Entity entity : container.getPayload().getEntities()) {
-          if (!derivedType.equals(entity.getType())) {
-            nonMatching.add(entity);
-          }
-        }
-        container.getPayload().getEntities().removeAll(nonMatching);
-      }
-
-      return xml.createResponse(
-          null,
-          xml.writeEntitySet(acceptType, container),
-          null,
-          acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @GET
-  @Path("/GetDefaultColor()")
-  public Response functionGetDefaultColor(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final Property property = new Property();
-      property.setType("Microsoft.Test.OData.Services.ODataWCFService.Color");
-      property.setValue(ValueType.ENUM, "Red");
-      final ResWrap<Property> container = new ResWrap<Property>(
-          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
-          property);
-
-      return xml.createResponse(
-          null,
-          xml.writeProperty(acceptType, container),
-          null,
-          acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @GET
-  @Path("/GetPerson2({param:.*})")
-  public Response functionGetPerson2(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    return getEntityInternal(
-        uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "1", format, null, null);
-  }
-
-  @GET
-  @Path("/GetPerson2({param:.*})/Emails")
-  public Response functionGetPerson2Emails(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    return getPath(accept, "Customers", "1", "Emails", format);
-  }
-
-  @GET
-  @Path("/GetPerson2({param:.*})/HomeAddress")
-  public Response functionGetPerson2HomeAddress(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    return getPath(accept, "Customers", "1", "HomeAddress", format);
-  }
-
-  @GET
-  @Path("/GetPerson2({param:.*})/Parent")
-  public Response functionGetPerson2Parent(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    return getEntityInternal(
-        uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "2", format, null, null);
-  }
-
-  @GET
-  @Path("/GetPerson({param:.*})")
-  public Response functionGetPerson(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    return getEntityInternal(
-        uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "1", format, null, null);
-  }
-
-  @GET
-  @Path("/GetAllProducts()")
-  public Response functionGetAllProducts(
-      @Context final UriInfo uriInfo,
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    return getEntitySet(uriInfo, accept, "Products", null, null, format, null, null, null, null);
-  }
-
-  @GET
-  @Path("/GetProductsByAccessLevel({param:.*})")
-  public Response functionGetProductsByAccessLevel(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final Property property = new Property();
-      property.setType("Collection(String)");
-      final List<String> value = Arrays.asList("Cheetos", "Mushrooms", "Apple", "Car", "Computer");
-      property.setValue(ValueType.COLLECTION_PRIMITIVE, value);
-      final ResWrap<Property> container = new ResWrap<Property>(
-          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
-          property);
-
-      return xml.createResponse(
-          null,
-          xml.writeProperty(acceptType, container),
-          null,
-          acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @GET
-  @Path("/GetBossEmails({param:.*})")
-  public Response functionGetBossEmails(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final Property property = new Property();
-      property.setType("Collection(Edm.String)");
-      property.setValue(ValueType.COLLECTION_PRIMITIVE,
-          Arrays.asList("first@olingo.apache.org", "second@olingo.apache.org"));
-      final ResWrap<Property> container = new ResWrap<Property>(
-          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
-          property);
-
-      return xml.createResponse(null, xml.writeProperty(acceptType, container), null, acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @POST
-  @Path("/Discount()")
-  public Response actionDiscount(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String param) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final Accept contentTypeValue = Accept.parse(contentType);
-      Property property;
-      if (contentTypeValue == Accept.ATOM) {
-        final ResWrap<Property> paramContainer = atomDeserializer.toProperty(
-            IOUtils.toInputStream(param, Constants.ENCODING));
-        property = paramContainer.getPayload();
-      } else {
-        final ResWrap<Property> paramContainer = jsonDeserializer.toProperty(
-            IOUtils.toInputStream(param, Constants.ENCODING));
-        property = paramContainer.getPayload();
-      }
-
-      assert property.isComplex();
-      assert 1 == property.asComplex().getValue().size();
-      assert "Edm.Int32".equals(property.asComplex().getValue().get(0).getType());
-      assert property.asComplex().getValue().get(0).isPrimitive();
-      assert "percentage".equals(property.asComplex().getValue().get(0).getName());
-
-      return xml.createResponse(null, null, null, acceptType, Response.Status.NO_CONTENT);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @POST
-  @Path("/GetAllProducts()/Discount")
-  public Response actionBoundDiscount() {
-    try {
-      final String basePath = "Products" + File.separatorChar + "feed";
-
-      final InputStream feed = FSManager.instance(version).readFile(basePath, Accept.JSON_FULLMETA);
-      return xml.createResponse(null, feed, Commons.getETag(basePath), Accept.JSON_FULLMETA);
-    } catch (Exception e) {
-      return xml.createFaultResponse(Accept.JSON_FULLMETA.toString(), e);
-    }
-  }
-
-  @POST
-  @Path("/ResetBossAddress()")
-  public Response actionResetBossAddress(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String param) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final Accept contentTypeValue = Accept.parse(contentType);
-      final Entity entity = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
-
-      assert "Microsoft.Test.OData.Services.ODataWCFService.Address".equals(entity.getType());
-      assert entity.getProperty("address").isComplex();
-
-      final ResWrap<Property> result = new ResWrap<Property>(
-          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX)
-              + "Microsoft.Test.OData.Services.ODataWCFService.Address"),
-          null,
-          entity.getProperty("address"));
-
-      return xml.createResponse(
-          null,
-          xml.writeProperty(acceptType, result),
-          null,
-          acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @POST
-  @Path("/ResetBossEmail()")
-  public Response actionResetBossEmail(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String param) {
-
-    try {
-      final Accept acceptType;
-      if (StringUtils.isNotBlank(format)) {
-        acceptType = Accept.valueOf(format.toUpperCase());
-      } else {
-        acceptType = Accept.parse(accept);
-      }
-
-      final Accept contentTypeValue = Accept.parse(contentType);
-      final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
-
-      assert 1 == entry.getProperties().size();
-      assert "Collection(Edm.String)".equals(entry.getProperty("emails").getType());
-      assert entry.getProperty("emails").isCollection();
-
-      return xml.createResponse(
-          null,
-          xml.writeProperty(acceptType, entry.getProperty("emails")),
-          null,
-          acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @POST
-  @Path("/Products({productId})/Categories/$ref")
-  public Response createLinked(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String entity) {
-
-    return xml.createResponse(null, null, null, Status.NO_CONTENT);
-  }
-
-  @POST
-  @Path("/Customers(1)/Orders/$ref")
-  public Response linkOrderViaRef(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String entity) {
-
-    return xml.createResponse(null, null, null, Status.NO_CONTENT);
-  }
-
-  @DELETE
-  @Path("/Products({productId})/Categories({categoryId})/$ref")
-  public Response deleteLinked(
-      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-      final String entity) {
-
-    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/78a9539e/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java b/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java
deleted file mode 100644
index 099c8ab..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java
+++ /dev/null
@@ -1,83 +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;
-
-import java.io.IOException;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.fit.metadata.Metadata;
-import org.apache.olingo.fit.utils.Accept;
-import org.apache.olingo.fit.utils.ConstantKey;
-import org.apache.olingo.fit.utils.Constants;
-import org.apache.olingo.fit.utils.FSManager;
-import org.apache.olingo.fit.utils.XMLUtilities;
-import org.springframework.stereotype.Service;
-
-@Service
-@Path("/V40/Vocabularies.svc")
-public class V4Vocabularies {
-
-  private final Metadata metadata;
-
-  private final XMLUtilities xml;
-
-  public V4Vocabularies() throws IOException {
-    metadata = new Metadata(FSManager.instance(ODataServiceVersion.V40).readRes(
-        "vocabularies-" + Constants.get(ConstantKey.METADATA), Accept.XML));
-    xml = new XMLUtilities(metadata);
-  }
-
-  @GET
-  @Path("/$metadata")
-  @Produces(MediaType.APPLICATION_XML)
-  public Response getMetadata() {
-    try {
-      return xml.createResponse(
-          null,
-          FSManager.instance(ODataServiceVersion.V40).readRes(
-              "vocabularies-" + Constants.get(ConstantKey.METADATA), Accept.XML),
-              null,
-              Accept.XML);
-    } catch (Exception e) {
-      return xml.createFaultResponse(Accept.XML.toString(), e);
-    }
-  }
-
-  @GET
-  @Path("/{vocabulary}")
-  @Produces(MediaType.APPLICATION_XML)
-  public Response getVocabulary(@PathParam("vocabulary") final String vocabulary) {
-    try {
-      return xml.createResponse(
-          null,
-          FSManager.instance(ODataServiceVersion.V40).readFile(vocabulary, null),
-          null,
-          Accept.XML);
-    } catch (Exception e) {
-      return xml.createFaultResponse(Accept.XML.toString(), e);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/main/java/org/apache/olingo/fit/Vocabularies.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/Vocabularies.java b/fit/src/main/java/org/apache/olingo/fit/Vocabularies.java
new file mode 100644
index 0000000..0390eae
--- /dev/null
+++ b/fit/src/main/java/org/apache/olingo/fit/Vocabularies.java
@@ -0,0 +1,81 @@
+/*
+ * 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;
+
+import java.io.IOException;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.fit.metadata.Metadata;
+import org.apache.olingo.fit.utils.Accept;
+import org.apache.olingo.fit.utils.ConstantKey;
+import org.apache.olingo.fit.utils.Constants;
+import org.apache.olingo.fit.utils.FSManager;
+import org.apache.olingo.fit.utils.XMLUtilities;
+import org.springframework.stereotype.Service;
+
+@Service
+@Path("/V40/Vocabularies.svc")
+public class Vocabularies {
+
+  private final XMLUtilities xml;
+
+  public Vocabularies() throws IOException {
+    Metadata metadata = new Metadata(FSManager.instance(ODataServiceVersion.V40).readRes(
+            "vocabularies-" + Constants.get(ConstantKey.METADATA), Accept.XML));
+    xml = new XMLUtilities(metadata);
+  }
+
+  @GET
+  @Path("/$metadata")
+  @Produces(MediaType.APPLICATION_XML)
+  public Response getMetadata() {
+    try {
+      return xml.createResponse(
+          null,
+          FSManager.instance(ODataServiceVersion.V40).readRes(
+              "vocabularies-" + Constants.get(ConstantKey.METADATA), Accept.XML),
+              null,
+              Accept.XML);
+    } catch (Exception e) {
+      return xml.createFaultResponse(Accept.XML.toString(), e);
+    }
+  }
+
+  @GET
+  @Path("/{vocabulary}")
+  @Produces(MediaType.APPLICATION_XML)
+  public Response getVocabulary(@PathParam("vocabulary") final String vocabulary) {
+    try {
+      return xml.createResponse(
+          null,
+          FSManager.instance(ODataServiceVersion.V40).readFile(vocabulary, null),
+          null,
+          Accept.XML);
+    } catch (Exception e) {
+      return xml.createFaultResponse(Accept.XML.toString(), e);
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/AbstractTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/AbstractTestITCase.java
new file mode 100644
index 0000000..1f85633
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/AbstractTestITCase.java
@@ -0,0 +1,172 @@
+/*
+ * 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.base;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.startsWith;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.communication.request.cud.ODataDeleteRequest;
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.client.core.ODataClientFactory;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.fit.AbstractBaseTestITCase;
+import org.junit.BeforeClass;
+
+public abstract class AbstractTestITCase extends AbstractBaseTestITCase {
+
+  protected static final ODataClient client = ODataClientFactory.getClient();
+
+  protected static EdmEnabledODataClient edmClient;
+
+  protected static String testStaticServiceRootURL;
+
+  protected static String testDemoServiceRootURL;
+
+  protected static String testVocabulariesServiceRootURL;
+
+  protected static String testNorthwindRootURL;
+
+  protected static String testKeyAsSegmentServiceRootURL;
+
+  protected static String testOpenTypeServiceRootURL;
+
+  protected static String testLargeModelServiceRootURL;
+
+  protected static String testAuthServiceRootURL;
+
+  protected static String testOAuth2ServiceRootURL;
+
+  @BeforeClass
+  public static void setUpODataServiceRoot() throws IOException {
+    testStaticServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Static.svc";
+    testDemoServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Demo.svc";
+    testVocabulariesServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Vocabularies.svc";
+    testNorthwindRootURL = "http://localhost:9080/stub/StaticService/V40/NorthWind.svc";
+    testKeyAsSegmentServiceRootURL = "http://localhost:9080/stub/StaticService/V40/KeyAsSegment.svc";
+    testOpenTypeServiceRootURL = "http://localhost:9080/stub/StaticService/V40/OpenType.svc";
+    testLargeModelServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Static.svc/large";
+    testAuthServiceRootURL = "http://localhost:9080/stub/DefaultService.svc/V40/Static.svc";
+    testOAuth2ServiceRootURL = "http://localhost:9080/stub/StaticService/V40/OAuth2.svc";
+
+    edmClient = ODataClientFactory.getEdmEnabledClient(testStaticServiceRootURL, ContentType.JSON);
+
+    edmClient.getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+    client.getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
+  }
+
+  @Override
+  protected ODataClient getClient() {
+    return client;
+  }
+
+  protected ClientEntity read(final ContentType contentType, final URI editLink) {
+    final ODataEntityRequest<ClientEntity> req = getClient().getRetrieveRequestFactory().getEntityRequest(editLink);
+    req.setFormat(contentType);
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
+
+    assertNotNull(entity);
+
+    if (ContentType.JSON_FULL_METADATA == contentType || ContentType.APPLICATION_ATOM_XML == contentType) {
+      assertEquals(req.getURI(), entity.getEditLink());
+    }
+
+    return entity;
+  }
+
+  protected void createAndDeleteOrder(final String serviceRoot, final ContentType contentType, final int id) {
+
+    final ClientEntity order = getClient().getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
+
+    final ClientProperty orderId = getClient().getObjectFactory().newPrimitiveProperty("OrderID",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id));
+    order.getProperties().add(orderId);
+
+    Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    dateTime.set(2011, 2, 4, 16, 3, 57);
+    final ClientProperty orderDate = getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
+        getClient().getObjectFactory().newPrimitiveValueBuilder()
+        .setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build());
+    order.getProperties().add(orderDate);
+
+    final ClientProperty shelfLife = getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Duration).setValue(BigDecimal.TEN.scaleByPowerOfTen(7)).build());
+    order.getProperties().add(shelfLife);
+
+    final ClientCollectionValue<ClientValue> orderShelfLifesValue = getClient().getObjectFactory().
+        newCollectionValue("Collection(Duration)");
+    orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000001")).build());
+    orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build());
+    final ClientProperty orderShelfLifes = getClient().getObjectFactory().
+        newCollectionProperty("OrderShelfLifes", orderShelfLifesValue);
+    order.getProperties().add(orderShelfLifes);
+
+    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
+        getClient().newURIBuilder(serviceRoot).
+        appendEntitySetSegment("Orders").build(), order);
+    req.setFormat(contentType);
+    final ClientEntity created = req.execute().getBody();
+    assertNotNull(created);
+    assertEquals(2, created.getProperty("OrderShelfLifes").getCollectionValue().size());
+
+    if (contentType.equals(ContentType.JSON_NO_METADATA)) {
+      assertEquals(0, created.getNavigationLinks().size());
+      assertNull(created.getEditLink());
+    } else if (contentType.equals(ContentType.JSON_FULL_METADATA)) {
+      assertEquals(3, created.getNavigationLinks().size());
+      assertThat(created.getTypeName().getNamespace(), is("Microsoft.Test.OData.Services.ODataWCFService"));
+      assertThat(created.getEditLink().toASCIIString(), startsWith("http://localhost:9080/stub/StaticService"));
+    } else if (contentType.equals(ContentType.JSON) || contentType.equals(ContentType.APPLICATION_JSON)) {
+      assertEquals(0, created.getNavigationLinks().size());
+      assertNull(created.getEditLink());
+    }
+
+    final URI deleteURI = getClient().newURIBuilder(serviceRoot).
+        appendEntitySetSegment("Orders").appendKeySegment(id).build();
+    final ODataDeleteRequest deleteReq = getClient().getCUDRequestFactory().getDeleteRequest(deleteURI);
+    final ODataDeleteResponse deleteRes = deleteReq.execute();
+    assertEquals(204, deleteRes.getStatusCode());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/AsyncTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/AsyncTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/AsyncTestITCase.java
new file mode 100644
index 0000000..1f2cc23
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/AsyncTestITCase.java
@@ -0,0 +1,168 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.net.URI;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+
+import org.apache.olingo.client.api.communication.request.AsyncRequestWrapper;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
+import org.apache.olingo.client.api.communication.response.AsyncResponseWrapper;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class AsyncTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void clientAsync() throws InterruptedException, ExecutionException {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers");
+    final Future<ODataRetrieveResponse<ClientEntitySet>> futureRes =
+        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build()).asyncExecute();
+    assertNotNull(futureRes);
+
+    while (!futureRes.isDone()) {
+      Thread.sleep(1000L);
+    }
+
+    final ODataRetrieveResponse<ClientEntitySet> res = futureRes.get();
+    assertNotNull(res);
+    assertEquals(200, res.getStatusCode());
+    assertFalse(res.getBody().getEntities().isEmpty());
+  }
+
+  private void withInlineEntry(final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final AsyncRequestWrapper<ODataRetrieveResponse<ClientEntity>> async =
+        client.getAsyncRequestFactory().<ODataRetrieveResponse<ClientEntity>> getAsyncRequestWrapper(req);
+
+    final AsyncResponseWrapper<ODataRetrieveResponse<ClientEntity>> responseWrapper = async.execute();
+
+    assertFalse(responseWrapper.isPreferenceApplied());
+
+    final ODataRetrieveResponse<ClientEntity> res = responseWrapper.getODataResponse();
+    final ClientEntity entity = res.getBody();
+
+    assertNotNull(entity);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
+    assertEquals(testStaticServiceRootURL + "/Customers(1)", entity.getEditLink().toASCIIString());
+
+    assertEquals(3, entity.getNavigationLinks().size());
+
+    if (ContentType.APPLICATION_ATOM_XML.equals(contentType)) {
+      assertTrue(entity.getAssociationLinks().isEmpty());
+      // In JSON, association links for each $ref link will exist.
+    }
+
+    boolean found = false;
+
+    for (ClientLink link : entity.getNavigationLinks()) {
+      if (link instanceof ClientInlineEntity) {
+        final ClientEntity inline = ((ClientInlineEntity) link).getEntity();
+        assertNotNull(inline);
+
+        final List<? extends ClientProperty> properties = inline.getProperties();
+        assertEquals(5, properties.size());
+
+        assertTrue(properties.get(0).getName().equals("CompanyID")
+            || properties.get(1).getName().equals("CompanyID")
+            || properties.get(2).getName().equals("CompanyID")
+            || properties.get(3).getName().equals("CompanyID")
+            || properties.get(4).getName().equals("CompanyID"));
+        assertTrue(properties.get(0).getValue().toString().equals("0")
+            || properties.get(1).getValue().toString().equals("0")
+            || properties.get(2).getValue().toString().equals("0")
+            || properties.get(3).getValue().toString().equals("0")
+            || properties.get(4).getValue().toString().equals("0"));
+
+        found = true;
+      }
+    }
+
+    assertTrue(found);
+  }
+
+  @Ignore
+  @Test
+  public void withInlineEntryAsAtom() {
+    withInlineEntry(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Ignore
+  @Test
+  public void withInlineEntryAsJSON() {
+    // this needs to be full, otherwise there is no mean to recognize links
+    withInlineEntry(ContentType.JSON_FULL_METADATA);
+  }
+
+  private void asyncOrders(final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("async").appendEntitySetSegment("Orders");
+
+    final ODataEntitySetRequest<ClientEntitySet> req =
+        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final AsyncRequestWrapper<ODataRetrieveResponse<ClientEntitySet>> async =
+        client.getAsyncRequestFactory().<ODataRetrieveResponse<ClientEntitySet>> getAsyncRequestWrapper(req);
+    async.callback(URI.create("http://client.service.it/callback/endpoint"));
+
+    final AsyncResponseWrapper<ODataRetrieveResponse<ClientEntitySet>> responseWrapper = async.execute();
+
+    assertTrue(responseWrapper.isPreferenceApplied());
+    assertTrue(responseWrapper.isDone());
+
+    final ODataRetrieveResponse<ClientEntitySet> res = responseWrapper.getODataResponse();
+    final ClientEntitySet entitySet = res.getBody();
+
+    assertFalse(entitySet.getEntities().isEmpty());
+  }
+
+  @Test
+  public void asyncOrdersAsAtom() {
+    asyncOrders(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void asyncOrdersAsJSON() {
+    asyncOrders(ContentType.JSON);
+  }
+}


[39/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailCollection.java
new file mode 100644
index 0000000..c46df2a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface PersonDetailCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PersonDetailCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<PersonDetail, PersonDetailCollection, PersonDetailCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailCollectionComposableInvoker.java
new file mode 100644
index 0000000..414955a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface PersonDetailCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<PersonDetailCollection, PersonDetailCollection.Operations> {
+
+  @Override
+  PersonDetailCollectionComposableInvoker select(String... select);
+
+  @Override
+  PersonDetailCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailComposableInvoker.java
new file mode 100644
index 0000000..547f4b9
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/PersonDetailComposableInvoker.java
@@ -0,0 +1,137 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface PersonDetailComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<PersonDetail, PersonDetail.Operations>
+{
+
+  @Override
+  PersonDetailComposableInvoker select(String... select);
+
+  @Override
+  PersonDetailComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPersonID();
+
+  void setPersonID(java.lang.Integer _personID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Age",
+      type = "Edm.Byte",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Short getAge();
+
+  void setAge(java.lang.Short _age);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Gender",
+      type = "Edm.Boolean",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Boolean getGender();
+
+  void setGender(java.lang.Boolean _gender);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Phone",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPhone();
+
+  void setPhone(java.lang.String _phone);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+      type = "ODataDemo.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address getAddress();
+
+  void setAddress(Address _address);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Photo",
+      type = "Edm.Stream",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.EdmStreamValue getPhoto();
+
+  void setPhoto(org.apache.olingo.ext.proxy.api.EdmStreamValue _photo);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Person",
+      type = "ODataDemo.Person",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Persons",
+      containsTarget = false)
+  Person getPerson();
+
+  void setPerson(Person _person);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Product.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Product.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Product.java
new file mode 100644
index 0000000..4fe5121
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Product.java
@@ -0,0 +1,231 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.OperationType;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Product",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Product
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Product>, org.apache.olingo.ext.proxy.api.StructuredQuery<Product> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDescription();
+
+  void setDescription(java.lang.String _description);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReleaseDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getReleaseDate();
+
+  void setReleaseDate(java.sql.Timestamp _releaseDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DiscontinuedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getDiscontinuedDate();
+
+  void setDiscontinuedDate(java.sql.Timestamp _discontinuedDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Rating",
+      type = "Edm.Int16",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Short getRating();
+
+  void setRating(java.lang.Short _rating);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Price",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getPrice();
+
+  void setPrice(java.lang.Double _price);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Categories",
+      type = "ODataDemo.Category",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Categories",
+      containsTarget = false)
+  CategoryCollection getCategories();
+
+  void setCategories(CategoryCollection _categories);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Supplier",
+      type = "ODataDemo.Supplier",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Suppliers",
+      containsTarget = false)
+  Supplier getSupplier();
+
+  void setSupplier(Supplier _supplier);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductDetail",
+      type = "ODataDemo.ProductDetail",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "ProductDetails",
+      containsTarget = false)
+  ProductDetail getProductDetail();
+
+  void setProductDetail(ProductDetail _productDetail);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "Discount",
+        type = OperationType.ACTION,
+        referenceType = java.lang.Double.class, returnType = "Edm.Double")
+        org.apache.olingo.ext.proxy.api.Invoker<java.lang.Double>
+        discount(
+            @Parameter(name = "discountPercentage", type = "Edm.Int32", nullable = false) java.lang.Integer discountPercentage
+        );
+
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Description",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getDescriptionAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ReleaseDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getReleaseDateAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DiscontinuedDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getDiscontinuedDateAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Rating",
+        type = "Edm.Int16")
+    org.apache.olingo.ext.proxy.api.Annotatable getRatingAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Price",
+        type = "Edm.Double")
+    org.apache.olingo.ext.proxy.api.Annotatable getPriceAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Categories",
+        type = "ODataDemo.Category")
+    org.apache.olingo.ext.proxy.api.Annotatable getCategoriesAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Supplier",
+        type = "ODataDemo.Supplier")
+    org.apache.olingo.ext.proxy.api.Annotatable getSupplierAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ProductDetail",
+        type = "ODataDemo.ProductDetail")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductDetailAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductCollection.java
new file mode 100644
index 0000000..3347691
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface ProductCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Product, ProductCollection, ProductCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductCollectionComposableInvoker.java
new file mode 100644
index 0000000..365359e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface ProductCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<ProductCollection, ProductCollection.Operations> {
+
+  @Override
+  ProductCollectionComposableInvoker select(String... select);
+
+  @Override
+  ProductCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductComposableInvoker.java
new file mode 100644
index 0000000..e03890c
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductComposableInvoker.java
@@ -0,0 +1,172 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface ProductComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Product, Product.Operations>
+{
+
+  @Override
+  ProductComposableInvoker select(String... select);
+
+  @Override
+  ProductComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDescription();
+
+  void setDescription(java.lang.String _description);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReleaseDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getReleaseDate();
+
+  void setReleaseDate(java.sql.Timestamp _releaseDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DiscontinuedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getDiscontinuedDate();
+
+  void setDiscontinuedDate(java.sql.Timestamp _discontinuedDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Rating",
+      type = "Edm.Int16",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Short getRating();
+
+  void setRating(java.lang.Short _rating);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Price",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getPrice();
+
+  void setPrice(java.lang.Double _price);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Categories",
+      type = "ODataDemo.Category",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Categories",
+      containsTarget = false)
+  CategoryCollection getCategories();
+
+  void setCategories(CategoryCollection _categories);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Supplier",
+      type = "ODataDemo.Supplier",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Suppliers",
+      containsTarget = false)
+  Supplier getSupplier();
+
+  void setSupplier(Supplier _supplier);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductDetail",
+      type = "ODataDemo.ProductDetail",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "ProductDetails",
+      containsTarget = false)
+  ProductDetail getProductDetail();
+
+  void setProductDetail(ProductDetail _productDetail);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetail.java
new file mode 100644
index 0000000..f83a7ed
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetail.java
@@ -0,0 +1,100 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductDetail",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface ProductDetail
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<ProductDetail>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<ProductDetail> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Details",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDetails();
+
+  void setDetails(java.lang.String _details);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Product",
+      type = "ODataDemo.Product",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  Product getProduct();
+
+  void setProduct(Product _product);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Details",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getDetailsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Product",
+        type = "ODataDemo.Product")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailCollection.java
new file mode 100644
index 0000000..5811902
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface ProductDetailCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductDetailCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<ProductDetail, ProductDetailCollection, ProductDetailCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailCollectionComposableInvoker.java
new file mode 100644
index 0000000..15c1a65
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface ProductDetailCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<ProductDetailCollection, ProductDetailCollection.Operations> {
+
+  @Override
+  ProductDetailCollectionComposableInvoker select(String... select);
+
+  @Override
+  ProductDetailCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailComposableInvoker.java
new file mode 100644
index 0000000..3727129
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/ProductDetailComposableInvoker.java
@@ -0,0 +1,77 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface ProductDetailComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<ProductDetail, ProductDetail.Operations>
+{
+
+  @Override
+  ProductDetailComposableInvoker select(String... select);
+
+  @Override
+  ProductDetailComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Details",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDetails();
+
+  void setDetails(java.lang.String _details);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Product",
+      type = "ODataDemo.Product",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  Product getProduct();
+
+  void setProduct(Product _product);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Supplier.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Supplier.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Supplier.java
new file mode 100644
index 0000000..82f7c58
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/Supplier.java
@@ -0,0 +1,156 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Supplier",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Supplier
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Supplier>, org.apache.olingo.ext.proxy.api.StructuredQuery<Supplier> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+      type = "ODataDemo.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address getAddress();
+
+  void setAddress(Address _address);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Location",
+      type = "Edm.GeographyPoint",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.commons.api.edm.geo.Point getLocation();
+
+  void setLocation(org.apache.olingo.commons.api.edm.geo.Point _location);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Concurrency",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getConcurrency();
+
+  void setConcurrency(java.lang.Integer _concurrency);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Products",
+      type = "ODataDemo.Product",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  ProductCollection getProducts();
+
+  void setProducts(ProductCollection _products);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Address",
+        type = "ODataDemo.Address")
+    org.apache.olingo.ext.proxy.api.Annotatable getAddressAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Location",
+        type = "Edm.GeographyPoint")
+    org.apache.olingo.ext.proxy.api.Annotatable getLocationAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Concurrency",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getConcurrencyAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Products",
+        type = "ODataDemo.Product")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductsAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierCollection.java
new file mode 100644
index 0000000..112e795
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface SupplierCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<SupplierCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Supplier, SupplierCollection, SupplierCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierCollectionComposableInvoker.java
new file mode 100644
index 0000000..2428a52
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface SupplierCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<SupplierCollection, SupplierCollection.Operations> {
+
+  @Override
+  SupplierCollectionComposableInvoker select(String... select);
+
+  @Override
+  SupplierCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierComposableInvoker.java
new file mode 100644
index 0000000..f4b7bf4
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/SupplierComposableInvoker.java
@@ -0,0 +1,122 @@
+/*
+ * 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.demo.odatademo.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface SupplierComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Supplier, Supplier.Operations>
+{
+
+  @Override
+  SupplierComposableInvoker select(String... select);
+
+  @Override
+  SupplierComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getID();
+
+  void setID(java.lang.Integer _iD);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+      type = "ODataDemo.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address getAddress();
+
+  void setAddress(Address _address);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Location",
+      type = "Edm.GeographyPoint",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.commons.api.edm.geo.Point getLocation();
+
+  void setLocation(org.apache.olingo.commons.api.edm.geo.Point _location);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Concurrency",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getConcurrency();
+
+  void setConcurrency(java.lang.Integer _concurrency);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Products",
+      type = "ODataDemo.Product",
+      targetSchema = "ODataDemo",
+      targetContainer = "DemoService",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  ProductCollection getProducts();
+
+  void setProducts(ProductCollection _products);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/package-info.java
new file mode 100644
index 0000000..fba4be1
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/demo/odatademo/types/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * 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.demo.odatademo.types;
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/Service.java
new file mode 100644
index 0000000..d6e1c6e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/Service.java
@@ -0,0 +1,139 @@
+/*
+ * 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.opentype;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.ext.proxy.AbstractService;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.AccountInfo;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.Color;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.ContactDetails;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.IndexedRow;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.Row;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.RowIndex;
+
+public class Service<C extends EdmEnabledODataClient> extends AbstractService<C> {
+
+  // CHECKSTYLE:OFF (Maven checkstyle)
+  private static final String COMPRESSED_METADATA =
+      "H4sIAAAAAAAAAK1Ya2wUVRS+3d2+n6EVtahIjGgCzFIoUKgWS7c0q9tSu4WQAprbnbvbkXk5c3fZJTyCUX6gRhFfDRGUCCoCGlBCNP5Af4gmxgTQ8Euif4WEREKM+sNz57E7090uM9U/TffsPeee853vnseeuI4qdQ11KVqKwypOTBBOEQU5pXAJUSAy5RKKRjjCS1xWErlMJ7dxMDZIKOYxxVFJFeOHP15y8M870wGEshpa6c1M77hONZygDlvn3u/a0Pj96aMBVBFDITiYpWhBDMyFTXNh01zYNAdCIQyHwmAt3A+Hu+HyZf4uB7UoJVJw46/XJnsu32ABqIBEh2ck2L0Mgg8/aou8t+kAb7hep5Ek0YicIDpFLbFncAaH01QQwzFBp8zLJb69zPY1o52ji9qvBFAghhoYWnGiZQTjiqXeMIo4lLpjqDpDNF1QZIpmmS6KWE6F41QD/e7ss2gXCuqeswlQOM0zSFY9vvfJzYmFlw1IqnUwIGGdma0CBFb5Q8Bp++vrz604+UPvfgOJWQ4kNpjxsCtqY+gOCWcjpb80g1NZpltZ5BxLDteraTjHMpTdc/HeyW/xO0FUEUUhXdhOsipCqGJbiP0FpaWeMYkbUTM02l948afQ2W+2BlA9oAEhgTMmGpBOLMsKBV/HRZbOZgdjBrEKqWqxDoDOgKakVVuxviDP20oocBvJjuZUYsuawTWB5vog11iQiUbRSm+MyXSG+92q4Ey9ac15QS2R05JLkEzLrhArKdGkvD8UjkZIUpCFwhkgRac/UpjgHvvyze/O7wjtNuhQiUXBJBkwoFbGEtHBHHFmnaLFg0JCU3QlSblRwJtbx2jC2fTi1qlENmKxmdNpGGyC5CODAqxGTJVMLwgYgoCv+tpXyCHjTtfrK1bP3XLsjwCqGkOzsF0V8mkYQzWK5XRJTtSMY52wby1g2mScEVLGkWENNDUq5DNXp7ol/gu6w/nmCzvPbrl+z8
 NmQWfpcGSCoiaDVvC6of4Loo6QH6AbDEGD7rnmA65WtDkG6uqWL3reaNt7zPCtCDQIe7m/sG3bv8dvPtjx6rlXAqgW8iKnRZE96zFUnZaFhMITVr1JEqdFugGLaTsltVCtYkRO0QmKWh3lOCpTkjKeXQE+OK1qJCHY9ewB4L2ewCKxPoR0TeApWljqjSuSBCHmH3mKKOH4SDTC7FObIGZ6KipUeCtNawVNp1aeCK8yWR30I26NIGMtVzo985Ch2xjDU1VnMVV4bmRUkMi6ZFIntKyJWrd6ja1eVik0sD4aKZwfSAt82fOtw2a/5q3LmG+GeiNTNz2N4PKxhtbkKCncyT6VPV8XF1Iy4fNatUwrflu1qoiSBjYV0mB+Lq8Th9Q7dczPZXUq4xOKRgueAQ07lpfVCMIR1/mlS8oDFlPklEtheXGdNTXaKarvTSSUtEyjclKBFuyjTNjl10kqg9NDWHJiYow9ZT2uYXT2pAV+a+gR7zOku8Wy4jQ0/5eG9r/ubg2gyhhqNKcFkENOyrT+OrMxx0n+ULPdht26dbrBAOoodo/6nEjdLt/YN3/ZjY5L6wMoNIZmW+VtyhnoXCLenospmAfz/TKrijz0pqdJlhKZt5v21C6BEIDdEjFN5o3NqP96LOj5jACQLBenrx15e1P0UkMABcfQXYKcENM8icrWdBBREmkJbJTMSHtRo81B3eRtzjDgV8wEePBs29xPDp6OXl5rjD11hZFsGhgp6vQ79XAjyjZ41/C3+MHlBYWheK1ndIemA4WhfajlwOb7Ii/fNOIKqZhOWBFVUaylCHXFFALndNNH0yUBRtuZxBmVeaAhqrH/LROxuzZ542DQELB1ymO68xy0R8ALJ5MPPbV/8d9AwpJM8znSeRxFe4tGzZbPW6/Ef7sFo2jlNKNo7QTWoS4SLLnG0qkzaHAryVG0bPo9hDlSWO+NC54gxuRmLqdzzLwD+VTvK5nLTnVXV/f+I9wlYwJssED
 KjZCkBZO5Ahcz3eO8OVwwyG5ru3ron4snf75VvKdMfatQ8AJR3g+/bN8c3Qos3GYEMtV3QCszKE94E80ZVgo/K5FLsMPx7IxkMuGekqE9f1tkCkla/R/KEUtXz67+1Lv7Fp0wdq78GF96vVLkCIF2SigKe9ur11kK7FcYFWsUOprFhdnWT0dUwCJ0O/a8BDnfuB0zuoYe8/eGi8PcMHn+zEtz7u8BRo6hpoTZW/VRo8yWaMRWuS2xpBXnfoYk8sToMgNmthQTvK+H/davGCz/u18+Pv7V8OTR/2s9tG0vUI/M/WDB5KfGqFSZFHFKBxJIRBq3ppoq96rXlIaHoYk5uGDUvaChEu3F+y9Tg8aNLNLjP0YPH8y8hqeN1OfPMqblq28NfTbn5LwzZh93BFSZya+9dhsPjhDYVys6Sr/rU7CODGgE7kMV0+wUp9gCBlbhRIklAvT7FFHRimnqp8Y6zAU7ucVF8n8Bw1KQnkUXAAA=";
+  private static final String METADATA_ETAG = null;
+  // CHECKSTYLE:ON (Maven checkstyle)
+
+  private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
+
+  @SuppressWarnings("unchecked")
+  private static <C extends EdmEnabledODataClient> Service<C> getInstance(
+      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
+
+    if (!SERVICES.containsKey(serviceRoot)) {
+      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG,
+          version, serviceRoot, transactional);
+      SERVICES.put(serviceRoot, instance);
+    }
+
+    return (Service<C>) SERVICES.get(serviceRoot);
+  }
+
+  /**
+   * Gives an OData 4.0 instance for given service root, operating in transactions (with batch requests).
+   *
+   * @param serviceRoot OData service root
+   * @return OData 4.0 instance for given service root, operating in transactions (with batch requests)
+   */
+  public static Service<EdmEnabledODataClient> getV4(
+      final String serviceRoot) {
+
+    return getV4(serviceRoot, true);
+  }
+
+  /**
+   * Gives an OData 4.0 instance for given service root.
+   *
+   * @param serviceRoot OData service root
+   * @param transactional whether operating in transactions (with batch requests) or not
+   * @return OData 4.0 instance for given service root
+   */
+  public static Service<EdmEnabledODataClient> getV4(
+      final String serviceRoot, final boolean transactional) {
+
+    return getInstance(ODataServiceVersion.V40, serviceRoot, transactional);
+  }
+
+  private final Map<String, Class<?>> entityTypes = new HashMap<String, Class<?>>();
+
+  private final Map<String, Class<?>> complexTypes = new HashMap<String, Class<?>>();
+
+  private final Map<String, Class<?>> enumTypes = new HashMap<String, Class<?>>();
+
+  private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
+
+  public Service(final String compressedMetadata, final String metadataETag,
+      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
+
+    super(compressedMetadata, metadataETag, version, serviceRoot, transactional);
+
+    // CHECKSTYLE:OFF (Maven checkstyle)
+    entityTypes.put("Microsoft.Test.OData.Services.OpenTypesServiceV4.Row",
+        Row.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.OpenTypesServiceV4.IndexedRow",
+        IndexedRow.class);
+    entityTypes.put("Microsoft.Test.OData.Services.OpenTypesServiceV4.RowIndex",
+        RowIndex.class);
+    complexTypes
+    .put(
+        "Microsoft.Test.OData.Services.OpenTypesServiceV4.AccountInfo",
+        AccountInfo.class);
+    complexTypes
+    .put(
+        "Microsoft.Test.OData.Services.OpenTypesServiceV4.ContactDetails",
+        ContactDetails.class);
+    enumTypes.put("Microsoft.Test.OData.Services.OpenTypesServiceV4.Color",
+        Color.class);
+    // CHECKSTYLE:ON (Maven checkstyle)
+  }
+
+  @Override
+  public Class<?> getEntityTypeClass(final String name) {
+    return entityTypes.get(name);
+  }
+
+  @Override
+  public Class<?> getComplexTypeClass(final String name) {
+    return complexTypes.get(name);
+  }
+
+  @Override
+  public Class<?> getEnumTypeClass(final String name) {
+    return enumTypes.get(name);
+  }
+
+  @Override
+  public Class<? extends AbstractTerm> getTermClass(final String name) {
+    return terms.get(name);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/DefaultContainer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/DefaultContainer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/DefaultContainer.java
new file mode 100644
index 0000000..09bba09
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/DefaultContainer.java
@@ -0,0 +1,61 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.io.InputStream;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import java.io.Serializable;
+
+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.PersistenceManager;
+import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
+@org.apache.olingo.ext.proxy.api.annotations.EntityContainer(name = "DefaultContainer",
+    namespace = "Microsoft.Test.OData.Services.OpenTypesServiceV4")
+public interface DefaultContainer extends PersistenceManager {
+
+  Row getRow();
+
+  RowIndex getRowIndex();
+
+  Operations operations();
+
+  public interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  <NE extends EntityType<?>> NE newEntityInstance(Class<NE> ref);
+
+  <T extends EntityType<?>, NEC extends EntityCollection<T, ?, ?>> NEC newEntityCollection(Class<NEC> ref);
+
+  <NE extends ComplexType<?>> NE newComplexInstance(Class<NE> ref);
+
+  <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/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/Row.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/Row.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/Row.java
new file mode 100644
index 0000000..6f230ff
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/Row.java
@@ -0,0 +1,40 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.RowCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Row",
+    container = "Microsoft.Test.OData.Services.OpenTypesServiceV4.DefaultContainer")
+public interface Row
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.Row, RowCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Row>,
+    AbstractEntitySet<org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.Row, java.util.UUID, RowCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/RowIndex.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/RowIndex.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/RowIndex.java
new file mode 100644
index 0000000..cdc20c1
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/RowIndex.java
@@ -0,0 +1,40 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.RowIndexCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "RowIndex",
+    container = "Microsoft.Test.OData.Services.OpenTypesServiceV4.DefaultContainer")
+public interface RowIndex
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.RowIndex, RowIndexCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<RowIndex>,
+    AbstractEntitySet<org.apache.olingo.fit.proxy.opentype.microsoft.test.odata.services.opentypesservice.types.RowIndex, java.lang.Integer, RowIndexCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/package-info.java
new file mode 100644
index 0000000..55fb49b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice;
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfo.java
new file mode 100644
index 0000000..0c28783
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfo.java
@@ -0,0 +1,84 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.Annotatable;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "AccountInfo",
+    isOpenType = true,
+    isAbstract = false)
+public interface AccountInfo
+    extends org.apache.olingo.ext.proxy.api.ComplexType<AccountInfo>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<AccountInfo>, AbstractOpenType {
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFirstName();
+
+  void setFirstName(java.lang.String _firstName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getLastName();
+
+  void setLastName(java.lang.String _lastName);
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
+        type = "Edm.String")
+    Annotatable getFirstNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
+        type = "Edm.String")
+    Annotatable getLastNameAnnotations();
+
+  }
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoCollection.java
new file mode 100644
index 0000000..5c6abad
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface AccountInfoCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<AccountInfoCollection>,
+org.apache.olingo.ext.proxy.api.ComplexCollection<AccountInfo, AccountInfoCollection, AccountInfoCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoCollectionComposableInvoker.java
new file mode 100644
index 0000000..746593c
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface AccountInfoCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<AccountInfoCollection, AccountInfoCollection.Operations> {
+
+  @Override
+  AccountInfoCollectionComposableInvoker select(String... select);
+
+  @Override
+  AccountInfoCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoComposableInvoker.java
new file mode 100644
index 0000000..d4e186f
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/AccountInfoComposableInvoker.java
@@ -0,0 +1,66 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface AccountInfoComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<AccountInfo, AccountInfo.Operations>
+    , AbstractOpenType {
+
+  @Override
+  AccountInfoComposableInvoker select(String... select);
+
+  @Override
+  AccountInfoComposableInvoker expand(String... expand);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFirstName();
+
+  void setFirstName(java.lang.String _firstName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getLastName();
+
+  void setLastName(java.lang.String _lastName);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/Color.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/Color.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/Color.java
new file mode 100644
index 0000000..0594588
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/Color.java
@@ -0,0 +1,44 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
+@org.apache.olingo.ext.proxy.api.annotations.EnumType(name = "Color",
+    underlyingType = EdmPrimitiveTypeKind.Int32,
+    isFlags = false)
+public enum Color {
+  Red(1),
+  Green(2),
+  Blue(4);
+
+  private java.lang.Integer value;
+
+  public java.lang.Integer getValue() {
+    return value;
+  }
+
+  private Color(final java.lang.Integer value) {
+    this.value = value;
+  }
+}


[27/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowCollection.java
deleted file mode 100644
index a9af8e6..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface IndexedRowCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.IndexedRowCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.IndexedRow, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.IndexedRowCollection, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.IndexedRowCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowCollectionComposableInvoker.java
deleted file mode 100644
index 7a7dfaf..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface IndexedRowCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.IndexedRowCollection, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.IndexedRowCollection.Operations> {
-
-  @Override
-  IndexedRowCollectionComposableInvoker select(String... select);
-
-  @Override
-  IndexedRowCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowComposableInvoker.java
deleted file mode 100644
index 634afb6..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRowComposableInvoker.java
+++ /dev/null
@@ -1,53 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-public interface IndexedRowComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<IndexedRow, IndexedRow.Operations>
-    , AbstractOpenType {
-
-  @Override
-  IndexedRowComposableInvoker select(String... select);
-
-  @Override
-  IndexedRowComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
-      type = "Edm.Guid",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.UUID getId();
-
-  void setId(java.util.UUID _id);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Row.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Row.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Row.java
deleted file mode 100644
index 1511cdc..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Row.java
+++ /dev/null
@@ -1,68 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Row",
-    openType = true,
-    hasStream = false,
-    isAbstract = false)
-public interface Row
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Row>, org.apache.olingo.ext.proxy.api.StructuredQuery<Row>,
-    AbstractOpenType {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
-      type = "Edm.Guid",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.UUID getId();
-
-  void setId(java.util.UUID _id);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Id",
-        type = "Edm.Guid")
-    org.apache.olingo.ext.proxy.api.Annotatable getIdAnnotations();
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowCollection.java
deleted file mode 100644
index 7fc7ff2..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface RowCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowCollection, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowCollectionComposableInvoker.java
deleted file mode 100644
index 8219734..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface RowCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowCollection, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowCollection.Operations> {
-
-  @Override
-  RowCollectionComposableInvoker select(String... select);
-
-  @Override
-  RowCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowComposableInvoker.java
deleted file mode 100644
index 1b0e66b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowComposableInvoker.java
+++ /dev/null
@@ -1,53 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-public interface RowComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Row, Row.Operations>
-    , AbstractOpenType {
-
-  @Override
-  RowComposableInvoker select(String... select);
-
-  @Override
-  RowComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
-      type = "Edm.Guid",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.UUID getId();
-
-  void setId(java.util.UUID _id);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndex.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndex.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndex.java
deleted file mode 100644
index 68e9374..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndex.java
+++ /dev/null
@@ -1,82 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "RowIndex",
-    openType = true,
-    hasStream = false,
-    isAbstract = false)
-public interface RowIndex
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<RowIndex>, org.apache.olingo.ext.proxy.api.StructuredQuery<RowIndex>,
-    AbstractOpenType {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getId();
-
-  void setId(java.lang.Integer _id);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Rows",
-      type = "Microsoft.Test.OData.Services.OpenTypesServiceV4.Row",
-      targetSchema = "Microsoft.Test.OData.Services.OpenTypesServiceV4",
-      targetContainer = "DefaultContainer",
-      targetEntitySet = "Row",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row getRows();
-
-  void
-      setRows(org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row _rows);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Id",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getIdAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Rows",
-        type = "Microsoft.Test.OData.Services.OpenTypesServiceV4.Row")
-    org.apache.olingo.ext.proxy.api.Annotatable getRowsAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexCollection.java
deleted file mode 100644
index 4b57e8a..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface RowIndexCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndexCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndex, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndexCollection, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndexCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexCollectionComposableInvoker.java
deleted file mode 100644
index 0fc3316..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface RowIndexCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndexCollection, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndexCollection.Operations> {
-
-  @Override
-  RowIndexCollectionComposableInvoker select(String... select);
-
-  @Override
-  RowIndexCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexComposableInvoker.java
deleted file mode 100644
index d5852d1..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndexComposableInvoker.java
+++ /dev/null
@@ -1,64 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-public interface RowIndexComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<RowIndex, RowIndex.Operations>
-    , AbstractOpenType {
-
-  @Override
-  RowIndexComposableInvoker select(String... select);
-
-  @Override
-  RowIndexComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getId();
-
-  void setId(java.lang.Integer _id);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Rows",
-      type = "Microsoft.Test.OData.Services.OpenTypesServiceV4.Row",
-      targetSchema = "Microsoft.Test.OData.Services.OpenTypesServiceV4",
-      targetContainer = "DefaultContainer",
-      targetEntitySet = "Row",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row getRows();
-
-  void
-      setRows(org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row _rows);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/package-info.java
deleted file mode 100644
index bf860c4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/package-info.java
+++ /dev/null
@@ -1,20 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/Service.java
deleted file mode 100644
index 644cac4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/Service.java
+++ /dev/null
@@ -1,215 +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;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.ext.proxy.AbstractService;
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public class Service<C extends EdmEnabledODataClient> extends AbstractService<C> {
-
-  // CHECKSTYLE:OFF (Maven checkstyle)
-  private static final String COMPRESSED_METADATA =
-      "H4sIAAAAAAAAAMU9fZAkVX09s7Mfs7Mf98V58nVQUcIJN8t9wB23eDi7O7s3YW5v2F0OPNFU78zb3fZmuofunr1ZK0ARS1KFGiHCyRWlGEqJMXfRHNESUpIiETVWKEshlKYIJIYKMZEqjMTEJJb5vff643X3655+Pbt4f1zN9L73+36/3+/93q/fnH1d6jV06aCmL+flplxdQXmtrqjLWr5aV5Bq5quajvKo1si3G/X86v78bUfLR5Ep12RTLjWa9flH/2TvI//9tlZaktq6dH08MIVFw9TlqsnA+trnDh4f/s75z6elVFnKwMC2KV1VBnBjFNwYBTdGwcFDZQwGjQG0sSIMHgfk14ohh2klEzV6bvunn5w5/MIbmIEmSGJPbElgvFgEX/jjbVN/+L5P1gjpgzpaQjpSq8gwpU3lD8qr8ljLVOpjZcUwMZV7halsT45Kdy7svvAHaSldloawtOaRvqoQFPviyWiKmTRelvpXkW4ommpKWyiJdVldHps3dZg/3r5DukvqMWJrE0TBgsciOfRb9958e/XqF4hI+g0A0JANDLYPJHBITAIs7L96/XcPnHuu8ACRxBZGEscpPxhFtixd0JDbU/w/UuaaWNNbMed5rJx8QdflNayh9j3fv+TMt+RP90ipkpQxlA+hdlOSpNSpDP4fJu2LLZN5wjWWxoUf+ejfZb761yfTUg6kASwBMVQaoE5ZVTUTaF2sY3WOMhZzVG6CqjZZA2DOjK61mvbEnPvcgVXVABtqL6w1kf1sFEhTzLVJ0LWsqEg3pevjWczq/rGidyoQk6PQWARZpLYangdLLdXDYq+J9IZDjwlDp9CSoiruGDCK/WJGQYX7+F+c/ptnfidzNzGHXrmuUCMDC8iqcgMZAA6xWjel3UeVqq4Z2pKZXwB5549hM8nb5kW/3jo5bT/A00ZA81mi/6yQ/gtECFj/pR/++OEPPLvnC2mp94TUu6i11FpZGqainEdmRT
 ZXLLIzmGzr82BT1uEbCM+WHfgWs6WrWNimtD+2GuecWdj/3BCfAUvWBddC9736yC3G+FM3k3UdsEDLcdhCk4jQpHYK5D5SqNUKVZCoMacsr5jOmDQZkwbBXhebrootFyzbxefaV4ydaFxGTICzJjKGrtRM6WqetLRGAwY64lpG2tj8XGkKS+mAmDk6JP10fOLhQnr+G2mp74Q0oLbqdSw2sEfwSGWkLpsrprSVcbkl1UTLZGmxqs82dVRVbJ91Odi2UZXryPqSwUuIMWsJ5Nvf1LVaq2o24fO1Qjaer9CZAbVRT3Mp1l5OdlWHMVwvhoEqvoxWUT2IpW3Eljbo3rVlrPzj//zyk/ni7d8Ml7Ylsg4CxTaCP+8MCjfVbK4Dx2/jLorRklrVkWygORiotlBgVRAFYPWmmgkUOwnRQFbXohQ7bFNwXK63EMaRhYQjD1Z53X6eqvCjd0lUJL6RHBZNqa8J3gunGUNzyEAmOAEd5OKM7CEje1w+rfEY/H5BKyYTw3jFsLMyxQ5hAb4VJrV6HREXfaWgbimYXVG4ehW1BpkDI6V9ezvJMznDXNEPWB4BkoqBKcWoQtQJul2HYGd0d7KxfEmkbAZBx1VY2/IyEhPQOpEVlBYRQEBGds6XiPBmBKoRshYmNMMoNmSlHo6wD5G/Y2TbGd4xXpqqc+TsFVnUND5xmxzi/Is1QF6/taASuCY/7BDyu4DK526UcEe2BlpLZxI8r51yF9TFEASxgYwdXavIaw0whJIK0b+FPxlEcEuAfQVyW7lVNyul8MXWb0FKwmLVa6Qcn96volMwi9joFqx0/GVBaaBjS0vAfKjMrUh3o+DS8ovCIoXFEP4gQx5khAoQk+4mB+cABx88cOPO9z/+M5IDbJHtbbOzT4HEQGsikjJwE8SBRQh/C3bQL0vbVHlVWSZDwG3AkjcVZ2sz2PQ+Ea94MMSPfvvOr77/9YuvpBUPJ/ujaQeo0bJmSQpRNlegdkSNXQ3
 B+TRlag1L88ZNTx1+aNu9j4ck+LHTdCcxtmD/+/yb79xz/9c+kZayTKZ2QupvqUpVqyFc16ALh2Qidh7sz+MEkuSInA6nU+BdwRkiZBKjH3SdI1+2p+mczCRYldCMwYpmmHJ9EnjsOI9O/ATk20e0BgrX/7q5W65vP52ihE/LDaW+NgsCj0/4iJVz/tpop0LPWWSIEZ+znGtJXdIseDFXHevhLRKy04pumLEIYKcNlOWYs9p44xR/M++r5eC1PnvFy0MX/s/bt6al3rI0LNvlCk03I2pMg07Zwqno2PUe79xBA8ipI5PxHe8WLH16SX7jviuufWPP87ekpcwJabvlLXxjIALU5Q+tlTW5BuCLKnYyNfDxv43aJlJrdnXI720lkvmU1KOooelrBCa4eE6Uil8RLTAiwcLedcM3n3vm3PJLaamnLPVRYduOzBEpn7y3cxbRdWKLyE5uA4nudziwbxCD7c1mQ/JbHp7DCfFYHiE0WeXhencCXG6ayMkcI5KaIfJgSKimVbRNANvK+Z889vD7Ss8Pga2ckHYoarXeqqGSahE3pVVJosVdnhcGspe1CdiL2g6kT7y05VB2aueXHjlfemGaVNoG3UJwyJpKuKGFuFxBGuRIQQcc8Pi6NB1bwLNhcsEC/8ymT95+6dTH3ySsZZpuPbbPlPVla13abPVVZB0wOIRSuv5BeE1OtgwTwrwOscL+aEQwzcaYVwH5Mb0GE5wPzvN1oq4IYtHWID+Cfa71UYQ6HxX2834rMLufHPqSVS3Bn9n1yxgGY1MxhUzsmMBVWZOtBw4x44mIoVACUOOLDTxnHTZrtSBzDulzaFVBpxjSrQddkk6hBKBGkO55AHj3ieElVutYb4qztuMXhQuOG8SL+aYX7//uNV//8R0k0m5zXWSx3cQhgpx6lmIfnrjzxwocUOMQvu9oyXVlSUG67QnxeVdU+AbmDsdmziUAohL8sYZ5HF/4XurJsn4BcVgj1q50jWyd
 7EjAbHp0aTEJOs75z9QaeHmlypPEL55+7TdmXxl5NnTneGs3NEQgHr36wSOHds6epR0IlXXg1AP+2d0zv6/ni7/C4EkEiLP5LiahosKqEWv5vtf0p2eePLWNaHnA1rJlZb2r1kY5dRGmK7WTk/Vk51tNnICiGtC0kIQmyKxh+6pyJYNJPPqL+xfufs/4lTRymuRk8niSxRWF6B3k7JJhma6s1OV3RXEFuBIwRXBJ1r8txKRGSJ8APq6DNK3VYP+ISwITmgY+P2PqdO2l3slRxLZpiAtIx0vILSqBTiaS6cSu6WIN/OdPr/5w/6Nykay7XsVE1lE7kdBlHL861Y1t4rNqjPWew9K3Xs5Lf08X3W3dLLpiHeF09pheMGGnu9gykauN7YOvnfzb7T2vUuZ86r8MwiEJH6WpdrjkAZis1nySx6P389KD1AFTGiJA7ZSAnOJsncR8TK6ADaAFIPok8Bhc91aM3lTWlpdRraTycihnkJ3zQQprxUI3DbQHeSjxE2YHXsGjSQaGD2L8PGW0YBhaVcGpijeOO4mMlUaQp6jGJDIO2QcFd7CoKetmgySVOfeLSNa3brmnVScCruxyfAQVPuO4qcvy+tjCCpo3wRprlRJ28NZHR/I7C6ugS2zu861Fo6orTbzYFhDYH6jLACu6gP8Ha/5st/RNwOpoNV0SR60DEftJ0g0Jj2mB9PSQIDZGRmEii4HdfdJHnvSB/x2P7SynPYU17Hb/9VMz733p3/50lnQSiVUGAlWmAbtuF9zANznVT+EaygwyLdVDwAL6pVHfE+Jv14KonF2jKR0QRmlXEbLO5xhoBH2RA3qvKQ26X8IROd5PuLgG0Av1ujt9xPsgDGVTeB84w1bsTGnY8z0CzbS46CzaJ9aYLhlT2hH2J94ail9Ym7er0Hj5bP/lm7+aOLRjD9kaRpWwYhTSwiqzCateGSztsNDFLeqkTndfF3ZrULnjStPJP0JiV9yaU4eIyyU8WW+TC
 zlQrLdocDMvXhbGcs2RwaveXMP7zcl1cG4Ylp6sP8PDldZiXan62fZZzIygFbIwx8ryotbSb1FJ7Msx38K5EUxCQzFwQ+p6WHp4QhIRtLeTJ9uFilFu5wH2ON8+t/SbH3jgmv8lHocTlQW7DWJ2SRQCXRCbvrL1B/M/+vnPSOLA7ZLIrsgGPhGXG56OCX97RM9JBEZ4bfgWHxPivppBENyESG8BfbHgfuImsNMD0Tbjd1R7QPUfPDj+wGP558m+cMiujMyhJcY59wTWRuymiIoLEGPb9spn/u/75178ebDN3H/ogc/XKHPWnrTTAcaNXRxgYNIO31Vc/ux9u8/6O2B5jS6aOoUgFEK+MxavQnPMmoBfGMEeTXVKnNutt1xMBbc24ORfVlTn6NdTenyPmMkG2Tx+5pknPnbRZYdB+iekkSo96jUWyMEM5yjXCUecvpngEX7CeO2qcoAAGiDf7TN82wKaHdoE2Ukb3i9AZ1m9HUeVWq2OhOexfSndNuiF4chgHOT9nHdxLIe27Du1vWWk5XHLvvmXL915ev5si7jZbE2B2EsL/TfE7PufQZrRlLE5v2PKnu2pOF4OC2hV1hW8vLwt/Lj+h2R1vN28i/9uE4dmHjrJ+reFFppTu/EmpnhsZq5QOfJeEMdmtwxpvTWw5Uef/dx/3fN7B9P4ZSVKKiy4Te642VZjEen3nn3oktyD//hR8oabJG36F7sxEKhY1uXmylpFUzg9hayd9VNQRseu0jC19hWtXlaB+TT4fw+s3M7K4GnCFRuveyf1ssQ5k4r0Hzcm7komaHY5aO1MluO3QtLzbpNJfpEqcavbwISimys1mc6K03rKzt6Bx00g8xRCKnZqC6c0qgcCbYhAa+luROMbip3hb4ihsHXijhrzbTbWV1+8hjMs6yMKpLSC4rfWJ4wBVNTEU7+E/9IEfDoj4DEcPfRbO3mS4uFnL3KF+ENMtzU0VsLkSD60ZM2sUTfLin/MMsfLa3
 Ci9aV9X26cv237R7hncVucl35rFfYvoUUCl2mPAGDf1u07DlQwu1zR2a8usqbiYBTJUDLCycnozS2ZZO2wsmB3J9Zqm8UzKjqxSWcaKebEw1lSYYNXPSnC4RBpjYPZastaRTk80Qrw0RnVLQbSadFqPd4XC0OTnT+pqKR4SrAI9lw4VddQCeQmtVWk03H0bYDE9kiARMT0YY/BchwFG5a9jsJ5NOqBEelB/EHe12oTM9gnf7WSuq3QthoGG0NpuhLbd4QO98uII7V1cDuUMcbtsGW4rtyOn1qRuTlrrrDnyk0h57wnXgM5a9JUGByTZoQS16SdP+Qo1AXFpB6QPBzED0kvRpTtBx7YhfRfr3IYhsReqXCZFsGHszVckxXC1VdomSuWt41lA70kaeXo3p/3eFoXOh4dE/cRaCyIWeJI2Prp4vX3KmwMXnZ/Q/B26E7g4ix2tx0LpE8cP2ZrTqi8Q6GT1/ISZOfZ+RVUXyorSyjGboidOErwOrNpUN/h23/bkCKidY6RDse4/bHaFpFYlh+I0d4ukpgWsD6vCRMC/H0uMe0+SSusK4VeAqe3a4tL5NCpnit1uSq8j7SKAHb+LURr/FzfschB95QthrcdckeLbTQjizL+08ANL8p42NiozVvKj2r2WPz45wgM8HbQSdYaGqkQNmXCCol6G6HJOQ521TGR2C/YKF3HwJbjuKYRQUe3UTG6+y0a91RiGbhIXSn4Tr5jesfEjX+RLtI1pnjLwgqP1qxJcHDLmk6dlmCfkw9EdA5q3fTCu0Al9EBEeOn2b8ARDbPJYXsFYD0ndXQx3mInhoavkYE4jLjWvr4VeYJml4M2M1lvLca06r2CMgDI7opmGiBiokvebxH50vcwqZkV21XS6Syw6yGSk2LseshAsd0qJw7aYETWunj9so8eenVC4kiB2ktnIfThcWIy4BT8LSjrLwI36WftsjNbw8zwrrnzAttAJvutHu4YDGbtCwJiJywpfNa
 +NqMsmZOyHncDI5gg2NAdjNt4F9TExH1T8s2TH6XrR7fil+FXPQ3pcemZTkwPi81NWTq1x7+1ZEX6ONfaBKtcMEePe3Jr9XUwN18kPL6wp4cvtAHbUGOstEF7rJgf4eSFDCQRMTrTYux9PE650KA3O9lzprTWYocjq5Fiu4loBSZ5gejYKRXpYp5vc2DJxtDM1sAkoRJmjnl9ZWOqiGxbJ/E+myeUOj7znTdBnCK+cDL5IrdRMXsl73sxG8t7pF/haVDolHRaV5Bai3k1EDszN6kjXEsTsnLHXIdgdk0hixLkh/s7ur2qLG6rBxjRMEVO38De+CjBYtsV7d+Ik3Lz1Li66Jk8flzs1OWIVq/FdDGegDQh12WVrextoEt0g42z0GIEG3usWLDhnAwwkERWVF+lJL43qZRwV/ZbuP6yjleLIdOcM7hrobKghM4mF3RZNehNS8Ki2s5MFjkLTpIL+D0cXfYxhDzCju9azj5oQgZcMmY0LXbLjDVpDsmGoEi7jCBs8h1Hvuz4rjNRHzShkGtvUGZaSk1IYL3ix+sDnmLoxmommKiIXFxZtH55APfn3f3xLy5+vXLm8+t1caUN+6rmYzv/6KozXya3zvUu1eVloyz1NxDphiawve8NjrRUiJL1NUCw4LtJPGAcIr8mcJRgxJx+8bulRx9Z/QM5lFPBn1KgkF/51OyfX3Tu8ifoRR4MQ75bF/ANWJlZTUWmlLqGaxGZr8AIWNs1GLEndETvrbqCX0VJ8S0fD+kvtlG1RQbxK+R4UBZjsmHtC1oY3dzazXX8jC/zZ1LADi3wPXOoAx8zOsIhMYKPzAQIkMsEUNdLu/k60sU4bAwzXVqIVMAwbnbBd6vK9A32CA5yRZyj6hoMNiL56DtmrpDXP/mcBM5S+I6YPBkmT4aFVjvzNnz9iaf3XbLjG4VLYQ2ckAbxz55oBi7qEAvlX7a/eQaZztnhZPRN3+t73T5l239t/r69RLmZ/whSC7K0
 rmMfc+7+2Oy+Hm09c+YF75fe0B+D6HXuro5/dft6tTWnwkV2cZMdOea/SQ3Lz/ssXP3DHlCY/m7ug+skm2QaCpMEueWcc9FCMHDbF34naSKOwu69eYEv4Y2/Oj7Rux9RbPkueuDzlamSzpfotGmjKeXcEcHR/rr9qEIUKcFrJPgeq9cwZb2jT2HGJ/BBIW+dhXlhjCb0TopwC7B+KodmG4kq6VE/ldMFPynLMRSqZkuu061puEIGlpUlsyrrNYypiwOpsCCSXdTUljFn/UxB1O7YxzUzNCJ+dvithiHXQTLv/3O81Pr/ToPX93ZbwYxSNnYDzPu64Wyu/4/ueFUmuAQYmkPDve3lOOdOb6UWkzHIUJ0KVpxFfoFyAekNnA5/7NKHzn/6g09dl5YGvb+DJTebMNNY0KydKr3Nwb6e9K380YXgW3C8IjqtJeGIEaglBYstsOfo2Z8P7oH+H4FFEOzTdAAA";
-  private static final String METADATA_ETAG = null;
-  // CHECKSTYLE:ON (Maven checkstyle)
-
-  private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
-
-  @SuppressWarnings("unchecked")
-  private static <C extends EdmEnabledODataClient> Service<C> getInstance(
-      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
-
-    if (!SERVICES.containsKey(serviceRoot)) {
-      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG,
-          version, serviceRoot, transactional);
-      SERVICES.put(serviceRoot, instance);
-    }
-
-    return (Service<C>) SERVICES.get(serviceRoot);
-  }
-
-  /**
-   * Gives an OData 4.0 instance for given service root, operating in transactions (with batch requests).
-   *
-   * @param serviceRoot OData service root
-   * @return OData 4.0 instance for given service root, operating in transactions (with batch requests)
-   */
-  public static Service<EdmEnabledODataClient> getV4(
-      final String serviceRoot) {
-
-    return getV4(serviceRoot, true);
-  }
-
-  /**
-   * Gives an OData 4.0 instance for given service root.
-   *
-   * @param serviceRoot OData service root
-   * @param transactional whether operating in transactions (with batch requests) or not
-   * @return OData 4.0 instance for given service root
-   */
-  public static Service<EdmEnabledODataClient> getV4(
-      final String serviceRoot, final boolean transactional) {
-
-    return getInstance(ODataServiceVersion.V40, serviceRoot, transactional);
-  }
-
-  private final Map<String, Class<?>> entityTypes = new HashMap<String, Class<?>>();
-
-  private final Map<String, Class<?>> complexTypes = new HashMap<String, Class<?>>();
-
-  private final Map<String, Class<?>> enumTypes = new HashMap<String, Class<?>>();
-
-  private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
-
-  public Service(final String compressedMetadata, final String metadataETag,
-      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
-
-    super(compressedMetadata, metadataETag, version, serviceRoot, transactional);
-
-    // CHECKSTYLE:OFF (Maven checkstyle)
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPI.class);
-    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Account",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetail.class);
-    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Order",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.Statement",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Statement.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.Subscription",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Subscription.class);
-    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Person",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.GiftCard",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCard.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail.class);
-    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Product",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.Customer",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer.class);
-    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Club",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Club.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.ProductReview",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReview.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.Department",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department.class);
-    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Asset",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Asset.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.Employee",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI.class);
-    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Company",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecord.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnion.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.PublicCompany",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompany.class);
-    complexTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Address",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address.class);
-    complexTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddress.class);
-    complexTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfo.class);
-    complexTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.HomeAddress",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress.class);
-    enumTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel.class);
-    enumTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Color",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color.class);
-    enumTypes
-    .put(
-        "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory.class);
-    terms.put("Microsoft.Test.OData.Services.ODataWCFService.IsBoss",
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.IsBoss.class);
-    // CHECKSTYLE:ON (Maven checkstyle)
-  }
-
-  @Override
-  public Class<?> getEntityTypeClass(final String name) {
-    return entityTypes.get(name);
-  }
-
-  @Override
-  public Class<?> getComplexTypeClass(final String name) {
-    return complexTypes.get(name);
-  }
-
-  @Override
-  public Class<?> getEnumTypeClass(final String name) {
-    return enumTypes.get(name);
-  }
-
-  @Override
-  public Class<? extends AbstractTerm> getTermClass(final String name) {
-    return terms.get(name);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Accounts.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Accounts.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Accounts.java
deleted file mode 100644
index dbf9837..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Accounts.java
+++ /dev/null
@@ -1,39 +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.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Accounts",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface Accounts
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Accounts>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Customers.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Customers.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Customers.java
deleted file mode 100644
index e1f3c82..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Customers.java
+++ /dev/null
@@ -1,39 +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.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Customers",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface Customers
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Customers>,
-    AbstractEntitySet<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> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Departments.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Departments.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Departments.java
deleted file mode 100644
index f7337fc..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Departments.java
+++ /dev/null
@@ -1,39 +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.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Departments",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface Departments
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Departments>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Employees.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Employees.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Employees.java
deleted file mode 100644
index 17cf84c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Employees.java
+++ /dev/null
@@ -1,39 +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.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Employees",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface Employees
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Employees>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index 95969e2..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/InMemoryEntities.java
+++ /dev/null
@@ -1,214 +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 java.io.InputStream;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import java.io.Serializable;
-
-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.OperationType;
-import org.apache.olingo.ext.proxy.api.PersistenceManager;
-import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityContainer(name = "InMemoryEntities",
-    namespace = "Microsoft.Test.OData.Services.ODataWCFService")
-public interface InMemoryEntities extends PersistenceManager {
-
-  Accounts getAccounts();
-
-  StoredPIs getStoredPIs();
-
-  Customers getCustomers();
-
-  Products getProducts();
-
-  OrderDetails getOrderDetails();
-
-  Departments getDepartments();
-
-  Employees getEmployees();
-
-  Orders getOrders();
-
-  People getPeople();
-
-  SubscriptionTemplates getSubscriptionTemplates();
-
-  ProductReviews getProductReviews();
-
-  ProductDetails getProductDetails();
-
-  @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();
-
-  @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();
-
-  @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();
-
-  @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();
-
-  @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();
-
-  @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();
-
-  public interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "GetBossEmails",
-        type = OperationType.FUNCTION,
-        isComposable = false,
-        referenceType = org.apache.olingo.ext.proxy.api.PrimitiveCollection.class,
-        returnType = "Collection(Edm.String)")
-        org.apache.olingo.ext.proxy.api.PrimitiveCollectionInvoker<org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String>>
-        getBossEmails(
-            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "start", type = "Edm.Int32", nullable = false) java.lang.Integer start,
-            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "count", type = "Edm.Int32", nullable = false) java.lang.Integer count
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "GetPerson2",
-        type = OperationType.FUNCTION,
-        isComposable = true,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person.class,
-        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonComposableInvoker
-        getPerson2(
-            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "city", type = "Edm.String", nullable = false) java.lang.String city
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "GetDefaultColor",
-        type = OperationType.FUNCTION,
-        isComposable = true,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color.class,
-        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Color")
-        org.apache.olingo.ext.proxy.api.Invoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color>
-        getDefaultColor(
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "GetPerson",
-        type = OperationType.FUNCTION,
-        isComposable = true,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person.class,
-        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonComposableInvoker
-        getPerson(
-            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "address",
-                type = "Microsoft.Test.OData.Services.ODataWCFService.Address", nullable = false) org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address address
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "GetProductsByAccessLevel",
-        type = OperationType.FUNCTION,
-        isComposable = false,
-        referenceType = org.apache.olingo.ext.proxy.api.PrimitiveCollection.class,
-        returnType = "Collection(Edm.String)")
-        org.apache.olingo.ext.proxy.api.PrimitiveCollectionInvoker<org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String>>
-        getProductsByAccessLevel(
-            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "accessLevel",
-                type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", nullable = false) org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel accessLevel
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "GetAllProducts",
-        type = OperationType.FUNCTION,
-        isComposable = true,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection.class,
-        returnType = "Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)")
-        org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollectionComposableInvoker
-        getAllProducts(
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(
-        name = "ResetBossAddress",
-        type = OperationType.ACTION,
-        referenceType = org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address.class,
-        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Address")
-        org.apache.olingo.ext.proxy.api.StructuredInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address>
-        resetBossAddress(
-            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "address",
-                type = "Microsoft.Test.OData.Services.ODataWCFService.Address", nullable = false) org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address address
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "ResetDataSource",
-        type = OperationType.ACTION)
-    org.apache.olingo.ext.proxy.api.Invoker<Void> resetDataSource(
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "Discount",
-        type = OperationType.ACTION)
-    org.apache.olingo.ext.proxy.api.Invoker<Void> discount(
-        @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "percentage", type = "Edm.Int32",
-            nullable = false) java.lang.Integer percentage
-        );
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "ResetBossEmail",
-        type = OperationType.ACTION,
-        referenceType = org.apache.olingo.ext.proxy.api.PrimitiveCollection.class,
-        returnType = "Collection(Edm.String)")
-        org.apache.olingo.ext.proxy.api.PrimitiveCollectionInvoker<org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String>>
-        resetBossEmail(
-            @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "emails", type = "Collection(Edm.String)",
-                nullable = false) org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> emails
-        );
-
-  }
-
-  <NE extends EntityType<?>> NE newEntityInstance(Class<NE> ref);
-
-  <T extends EntityType<?>, NEC extends EntityCollection<T, ?, ?>> NEC newEntityCollection(Class<NEC> ref);
-
-  <NE extends ComplexType<?>> NE newComplexInstance(Class<NE> ref);
-
-  <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/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/OrderDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/OrderDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/OrderDetails.java
deleted file mode 100644
index 0ec3737..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/OrderDetails.java
+++ /dev/null
@@ -1,40 +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.AbstractEntitySet;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailKey;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "OrderDetails",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface OrderDetails
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<OrderDetails>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail, OrderDetailKey, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Orders.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Orders.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Orders.java
deleted file mode 100644
index 93a5f93..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/Orders.java
+++ /dev/null
@@ -1,39 +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.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Orders",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface Orders
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Orders>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/People.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/People.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/People.java
deleted file mode 100644
index 5d73060..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/People.java
+++ /dev/null
@@ -1,39 +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.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "People",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface People
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<People>,
-    AbstractEntitySet<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> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/ProductDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/ProductDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/ProductDetails.java
deleted file mode 100644
index 30598fa..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/ProductDetails.java
+++ /dev/null
@@ -1,40 +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.AbstractEntitySet;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailKey;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "ProductDetails",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface ProductDetails
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetail, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductDetails>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetail, ProductDetailKey, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/ProductReviews.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/ProductReviews.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/ProductReviews.java
deleted file mode 100644
index a6353de..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/ProductReviews.java
+++ /dev/null
@@ -1,40 +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.AbstractEntitySet;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewKey;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "ProductReviews",
-    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
-public interface ProductReviews
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReview, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductReviews>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReview, ProductReviewKey, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReviewCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}


[32/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyComposableInvoker.java
new file mode 100644
index 0000000..dca239d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyComposableInvoker.java
@@ -0,0 +1,232 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+public interface PublicCompanyComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<PublicCompany, PublicCompany.Operations>
+    , AbstractOpenType {
+
+  @Override
+  PublicCompanyComposableInvoker select(String... select);
+
+  @Override
+  PublicCompanyComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getCompanyID();
+
+  void setCompanyID(java.lang.Integer _companyID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyCategory",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  CompanyCategory
+      getCompanyCategory();
+
+      void
+      setCompanyCategory(
+          CompanyCategory _companyCategory);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Revenue",
+      type = "Edm.Int64",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Long getRevenue();
+
+  void setRevenue(java.lang.Long _revenue);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address getAddress();
+
+      void
+      setAddress(
+          Address _address);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StockExchange",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStockExchange();
+
+  void setStockExchange(java.lang.String _stockExchange);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Employees",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Employees",
+      containsTarget = false)
+  EmployeeCollection
+      getEmployees();
+
+      void
+      setEmployees(
+          EmployeeCollection _employees);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "VipCustomer",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "VipCustomer",
+      containsTarget = false)
+  Customer
+      getVipCustomer();
+
+      void
+      setVipCustomer(
+          Customer _vipCustomer);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Departments",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Departments",
+      containsTarget = false)
+  DepartmentCollection
+      getDepartments();
+
+      void
+      setDepartments(
+          DepartmentCollection _departments);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CoreDepartment",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Departments",
+      containsTarget = false)
+  Department
+      getCoreDepartment();
+
+      void
+      setCoreDepartment(
+          Department _coreDepartment);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Club",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Club",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "",
+      targetEntitySet = "",
+      containsTarget = true)
+  Club getClub();
+
+  void setClub(
+      Club _club);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "LabourUnion",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "LabourUnion",
+      containsTarget = false)
+  LabourUnion
+      getLabourUnion();
+
+      void
+      setLabourUnion(
+          LabourUnion _labourUnion);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Assets",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "LabourUnion",
+      containsTarget = true)
+  PublicCompany.Assets
+      getAssets();
+
+      void
+      setAssets(
+          PublicCompany.Assets _assets);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Assets", contained = true)
+  interface Assets
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<Asset, AssetCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Assets>,
+  AbstractEntitySet<Asset, java.lang.Integer, AssetCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
new file mode 100644
index 0000000..4062570
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
@@ -0,0 +1,124 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Statement",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Statement
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Statement>, org.apache.olingo.ext.proxy.api.StructuredQuery<Statement> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StatementID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getStatementID();
+
+  void setStatementID(java.lang.Integer _statementID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TransactionType",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getTransactionType();
+
+  void setTransactionType(java.lang.String _transactionType);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TransactionDescription",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getTransactionDescription();
+
+  void setTransactionDescription(java.lang.String _transactionDescription);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Amount",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getAmount();
+
+  void setAmount(java.lang.Double _amount);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "StatementID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getStatementIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TransactionType",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getTransactionTypeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TransactionDescription",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getTransactionDescriptionAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Amount",
+        type = "Edm.Double")
+    org.apache.olingo.ext.proxy.api.Annotatable getAmountAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java
new file mode 100644
index 0000000..2f07e87
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface StatementCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<StatementCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Statement, StatementCollection, StatementCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollectionComposableInvoker.java
new file mode 100644
index 0000000..df14aac
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface StatementCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<StatementCollection, StatementCollection.Operations> {
+
+  @Override
+  StatementCollectionComposableInvoker select(String... select);
+
+  @Override
+  StatementCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementComposableInvoker.java
new file mode 100644
index 0000000..c6b290a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementComposableInvoker.java
@@ -0,0 +1,97 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface StatementComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Statement, Statement.Operations>
+{
+
+  @Override
+  StatementComposableInvoker select(String... select);
+
+  @Override
+  StatementComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StatementID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getStatementID();
+
+  void setStatementID(java.lang.Integer _statementID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TransactionType",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getTransactionType();
+
+  void setTransactionType(java.lang.String _transactionType);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TransactionDescription",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getTransactionDescription();
+
+  void setTransactionDescription(java.lang.String _transactionDescription);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Amount",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getAmount();
+
+  void setAmount(java.lang.Double _amount);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
new file mode 100644
index 0000000..2394581
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
@@ -0,0 +1,124 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "StoredPI",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface StoredPI
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<StoredPI>, org.apache.olingo.ext.proxy.api.StructuredQuery<StoredPI> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StoredPIID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getStoredPIID();
+
+  void setStoredPIID(java.lang.Integer _storedPIID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PIName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPIName();
+
+  void setPIName(java.lang.String _pIName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PIType",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPIType();
+
+  void setPIType(java.lang.String _pIType);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "StoredPIID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getStoredPIIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PIName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getPINameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PIType",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getPITypeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java
new file mode 100644
index 0000000..b2622d9
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface StoredPICollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<StoredPICollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<StoredPI, StoredPICollection, StoredPICollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollectionComposableInvoker.java
new file mode 100644
index 0000000..a9c65f5
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface StoredPICollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<StoredPICollection, StoredPICollection.Operations> {
+
+  @Override
+  StoredPICollectionComposableInvoker select(String... select);
+
+  @Override
+  StoredPICollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPIComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPIComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPIComposableInvoker.java
new file mode 100644
index 0000000..f6d5d49
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPIComposableInvoker.java
@@ -0,0 +1,97 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface StoredPIComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<StoredPI, StoredPI.Operations>
+{
+
+  @Override
+  StoredPIComposableInvoker select(String... select);
+
+  @Override
+  StoredPIComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StoredPIID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getStoredPIID();
+
+  void setStoredPIID(java.lang.Integer _storedPIID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PIName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPIName();
+
+  void setPIName(java.lang.String _pIName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PIType",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPIType();
+
+  void setPIType(java.lang.String _pIType);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
new file mode 100644
index 0000000..6a63879
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
@@ -0,0 +1,144 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Subscription",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Subscription
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Subscription>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<Subscription> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SubscriptionID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getSubscriptionID();
+
+  void setSubscriptionID(java.lang.Integer _subscriptionID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TemplateGuid",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getTemplateGuid();
+
+  void setTemplateGuid(java.lang.String _templateGuid);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Title",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getTitle();
+
+  void setTitle(java.lang.String _title);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Category",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCategory();
+
+  void setCategory(java.lang.String _category);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "SubscriptionID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getSubscriptionIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TemplateGuid",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getTemplateGuidAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Title",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getTitleAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Category",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getCategoryAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java
new file mode 100644
index 0000000..ae35e6a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface SubscriptionCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<SubscriptionCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Subscription, SubscriptionCollection, SubscriptionCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollectionComposableInvoker.java
new file mode 100644
index 0000000..82e628c
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface SubscriptionCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<SubscriptionCollection, SubscriptionCollection.Operations> {
+
+  @Override
+  SubscriptionCollectionComposableInvoker select(String... select);
+
+  @Override
+  SubscriptionCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionComposableInvoker.java
new file mode 100644
index 0000000..6c0a2c8
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionComposableInvoker.java
@@ -0,0 +1,112 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface SubscriptionComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Subscription, Subscription.Operations>
+{
+
+  @Override
+  SubscriptionComposableInvoker select(String... select);
+
+  @Override
+  SubscriptionComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SubscriptionID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getSubscriptionID();
+
+  void setSubscriptionID(java.lang.Integer _subscriptionID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TemplateGuid",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getTemplateGuid();
+
+  void setTemplateGuid(java.lang.String _templateGuid);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Title",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getTitle();
+
+  void setTitle(java.lang.String _title);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Category",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCategory();
+
+  void setCategory(java.lang.String _category);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/package-info.java
new file mode 100644
index 0000000..bb754bd
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index 260d35b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/APIBasicDesignTestITCase.java
+++ /dev/null
@@ -1,622 +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;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.lang.reflect.Proxy;
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-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.AbstractCollectionInvocationHandler;
-import org.apache.olingo.fit.proxy.v4.demo.odatademo.DemoService;
-import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AddressCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonComposableInvoker;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollectionComposableInvoker;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetail;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetailCollectionComposableInvoker;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.junit.Test;
-
-public class APIBasicDesignTestITCase extends AbstractTestITCase {
-
-  protected AbstractService<EdmEnabledODataClient> getService() {
-    return service;
-  }
-
-  protected InMemoryEntities getContainer() {
-    return container;
-  }
-
-  @Test
-  public void readEntitySet() {
-    final OrderCollection orders = container.getOrders().execute();
-    assertFalse(orders.isEmpty());
-
-    final CustomerCollection customers = container.getCustomers().
-        orderBy("PersonID").
-        select("FirstName", "LastName", "Orders").
-        expand("Orders").
-        execute();
-
-    assertEquals(2, customers.size());
-    for (Customer customer : customers) {
-      assertNotNull(customer.getFirstName());
-      assertNotNull(customer.getLastName());
-    }
-  }
-
-  @Test
-  public void readWithReferences() {
-    final Person person = container.getOrders().getByKey(8).getCustomerForOrder().refs().load();
-    assertEquals("http://localhost:9080/stub/StaticService/V40/Static.svc/Customers(PersonID=1)",
-        person.readEntityReferenceID());
-
-    final OrderCollection orders = container.getCustomers().getByKey(1).getOrders().refs().execute();
-    assertEquals("http://localhost:9080/stub/StaticService/V40/Static.svc/Orders(7)",
-        orders.iterator().next().readEntityReferenceID());
-  }
-
-  @Test
-  public void changeSingleNavigationProperty() {
-    /*
-     * See OData Spec 11.4.6.3
-     * Alternatively, a relationship MAY be updated as part of an update to the source entity by including
-     * the required binding information for the new target entity.
-     *
-     * => use PATCH instead of PUT
-     */
-    final Person person1 = container.getPeople().getByKey(1).load();
-    final Person person5 = container.getPeople().getByKey(5).load();
-
-    person1.setParent(person5);
-    container.flush();
-  }
-
-  @Test
-  public void addViaReference() {
-    final Order order = container.getOrders().getByKey(8).load();
-
-    final OrderCollection orders = container.newEntityCollection(OrderCollection.class);
-    orders.addRef(order);
-
-    container.getCustomers().getByKey(1).setOrders(orders);
-    container.flush();
-  }
-
-  @Test
-  public void readAndCheckForPrimitive() {
-    final Customer customer = getContainer().getCustomers().getByKey(1);
-    assertNotNull(customer);
-    assertNull(customer.getPersonID());
-
-    assertEquals(1, customer.load().getPersonID(), 0);
-    service.getContext().detachAll();
-  }
-
-  @Test
-  public void readAndCheckForComplex() {
-    Customer customer = container.getCustomers().getByKey(1); // no http request
-    Address homeAddress = customer.getHomeAddress();
-    assertNotNull(homeAddress);
-    assertNull(homeAddress.getCity());
-    assertNull(homeAddress.getPostalCode());
-    assertNull(homeAddress.getStreet());
-
-    homeAddress.load(); // HTTP request at complex loading
-    assertEquals("London", homeAddress.getCity());
-    assertEquals("98052", homeAddress.getPostalCode());
-    assertEquals("1 Microsoft Way", homeAddress.getStreet());
-
-    getService().getContext().detachAll();
-
-    homeAddress = container.getCustomers().getByKey(1).load().getHomeAddress(); // HTTP request at entity loading
-    assertEquals("London", homeAddress.getCity());
-    assertEquals("98052", homeAddress.getPostalCode());
-    assertEquals("1 Microsoft Way", homeAddress.getStreet());
-
-    getService().getContext().detachAll();
-
-    customer = container.getOrders().getByKey(8).getCustomerForOrder();
-    homeAddress = customer.getHomeAddress().select("City", "PostalCode").expand("SomethingElse"); // no HTTP request
-    assertNotNull(homeAddress);
-    assertNull(homeAddress.getCity());
-    assertNull(homeAddress.getPostalCode());
-    assertNull(homeAddress.getStreet());
-
-    try {
-      homeAddress.load();
-      fail();
-    } catch (Exception e) {
-      // Generated URL
-      // "<serviceroot>/Orders(8)/CustomerForOrder/HomeAddress?$select=City,PostalCode&$expand=SomethingElse"
-      // curently unsupported by test service server
-      homeAddress.clearQueryOptions();
-    }
-  }
-
-  @Test
-  public void readWholeEntitySet() {
-    PersonCollection person = getContainer().getPeople().execute();
-    assertEquals(5, person.size(), 0);
-
-    int pageCount = 1;
-    while (person.hasNextPage()) {
-      pageCount++;
-      assertFalse(person.nextPage().execute().isEmpty());
-    }
-
-    assertEquals(2, pageCount);
-    service.getContext().detachAll(); // avoid influences
-  }
-
-  @Test
-  public void loadWithSelect() {
-    org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order order =
-        getContainer().getOrders().getByKey(8);
-    assertNull(order.getOrderID());
-    assertNull(order.getOrderDate());
-
-    order.select("OrderID");
-    order.load();
-
-    assertNull(order.getOrderDate());
-    assertNotNull(order.getOrderID());
-
-    order.clearQueryOptions();
-    order.load();
-    assertNotNull(order.getOrderDate());
-    assertNotNull(order.getOrderID());
-    service.getContext().detachAll(); // avoid influences
-  }
-
-  @Test
-  public void loadWithSelectAndExpand() {
-    final Customer customer = getContainer().getCustomers().getByKey(1);
-
-    customer.expand("Orders");
-    customer.select("Orders", "PersonID");
-
-    customer.load();
-    assertEquals(1, customer.getOrders().size());
-    service.getContext().detachAll(); // avoid influences
-  }
-
-  @Test
-  public void navigateLinks() {
-    final Customer customer = getContainer().getCustomers().getByKey(1); // No HTTP Request
-    assertNotNull(customer.getCompany().load().getCompanyID()); // singleton: single request
-    assertEquals(1, customer.getOrders().execute().size()); // collection: single request
-
-    final Order order = getContainer().getOrders().getByKey(8); // No HTTP Requests
-    assertNotNull(order.getCustomerForOrder().load().getPersonID()); // entity type: single request
-
-    service.getContext().detachAll(); // avoid influences
-  }
-
-  @Test
-  public void createDelete() {
-    // Create order ....
-    final Order order = getContainer().newEntityInstance(Order.class);
-    order.setOrderID(1105);
-
-    final Calendar orderDate = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    orderDate.clear();
-    orderDate.set(2011, 3, 4, 16, 3, 57);
-    order.setOrderDate(new Timestamp(orderDate.getTimeInMillis()));
-
-    order.setShelfLife(BigDecimal.ZERO);
-
-    final PrimitiveCollection<BigDecimal> osl = getContainer().newPrimitiveCollection(BigDecimal.class);
-    osl.add(BigDecimal.TEN.negate());
-    osl.add(BigDecimal.TEN);
-
-    order.setOrderShelfLifes(osl);
-
-    getContainer().getOrders().add(order);
-    getContainer().flush();
-
-    Order actual = getContainer().getOrders().getByKey(1105);
-    assertNull(actual.getOrderID());
-
-    actual.load();
-    assertEquals(1105, actual.getOrderID(), 0);
-    assertEquals(orderDate.getTimeInMillis(), actual.getOrderDate().getTime());
-    assertEquals(BigDecimal.ZERO, actual.getShelfLife());
-    assertEquals(2, actual.getOrderShelfLifes().size());
-
-    service.getContext().detachAll();
-
-    // (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));
-    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();
-
-    service.getContext().detachAll();
-    try {
-      getContainer().getOrders().getByKey(1105).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // Test
-    }
-    service.getContext().detachAll(); // avoid influences
-  }
-
-  @Test
-  public void deleteSingleProperty() {
-    container.getCustomers().getByKey(1).delete("City");
-    container.flush();
-  }
-
-  @Test
-  public void deleteComplex() {
-    container.getCustomers().getByKey(1).getHomeAddress().delete();
-    container.flush();
-  }
-
-  @Test
-  public void deleteCollection() {
-    container.getCustomers().getByKey(1).getEmails().delete();
-    container.flush();
-  }
-
-  @Test
-  public void deleteEdmStreamProperty() throws IOException {
-    // ---------------------------------------
-    // Instantiate Demo Service
-    // ---------------------------------------
-    final org.apache.olingo.fit.proxy.v4.demo.Service<EdmEnabledODataClient> dservice =
-        org.apache.olingo.fit.proxy.v4.demo.Service.getV4(testDemoServiceRootURL);
-    dservice.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    final DemoService dcontainer = dservice.getEntityContainer(DemoService.class);
-    assertNotNull(dcontainer);
-    dservice.getContext().detachAll();
-    // ---------------------------------------
-    dcontainer.getPersonDetails().getByKey(1).delete("Photo");
-    dcontainer.flush();
-
-    dservice.getContext().detachAll(); // avoid influences
-  }
-
-  @Test
-  public void updateComplexProperty() {
-    Address homeAddress = container.getCustomers().getByKey(1).getHomeAddress();
-    homeAddress.setCity("Pescara");
-    homeAddress.setPostalCode("98052");
-    container.flush();
-
-    homeAddress = container.getCustomers().getByKey(1).getHomeAddress().load();
-    assertEquals("Pescara", homeAddress.getCity());
-    assertEquals("98052", homeAddress.getPostalCode());
-  }
-
-  @Test
-  public void updateAndReadEdmStreamProperty() throws IOException {
-    // ---------------------------------------
-    // Instantiate Demo Service
-    // ---------------------------------------
-    final org.apache.olingo.fit.proxy.v4.demo.Service<EdmEnabledODataClient> dservice =
-        org.apache.olingo.fit.proxy.v4.demo.Service.getV4(testDemoServiceRootURL);
-    dservice.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    final DemoService dcontainer = dservice.getEntityContainer(DemoService.class);
-    assertNotNull(dcontainer);
-    dservice.getContext().detachAll();
-    // ---------------------------------------
-    final String random = RandomStringUtils.random(124, "abcdefghijklmnopqrstuvwxyz");
-
-    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(dcontainer.newEdmStreamValue("application/octet-stream", IOUtils.toInputStream(random)));
-
-    dcontainer.flush();
-
-    final EdmStreamValue actual = dcontainer.getPersonDetails().getByKey(1).getPhoto().load(); // 1 HTTP Request
-    assertEquals(random, IOUtils.toString(actual.getStream()));
-
-    dservice.getContext().detachAll(); // avoid influences
-  }
-
-  @Test
-  public void boundOperationsAfterCreate() {
-    final Product product = getContainer().newEntityInstance(Product.class);
-    product.setProductID(1012);
-    product.setName("Latte");
-    product.setQuantityPerUnit("100g Bag");
-    product.setUnitPrice(3.24f);
-    product.setQuantityInStock(100);
-    product.setDiscontinued(false);
-    product.setUserAccess(AccessLevel.Execute);
-    product.setSkinColor(Color.Blue);
-
-    final PrimitiveCollection<Color> cc = getContainer().newPrimitiveCollection(Color.class);
-    cc.add(Color.Red);
-    cc.add(Color.Green);
-
-    product.setCoverColors(cc);
-
-    final ProductDetail detail = getContainer().newEntityInstance(ProductDetail.class);
-    detail.setProductID(product.getProductID());
-    detail.setProductDetailID(1012);
-    detail.setProductName("LatteHQ");
-    detail.setDescription("High-Quality Milk");
-
-    final ProductDetailCollection detailCollection = getContainer().newEntityCollection(ProductDetailCollection.class);
-    detailCollection.add(detail);
-
-    product.setDetails(detailCollection);
-
-    getContainer().getProducts().add(product);
-
-    // The first HTTP Request to create product and the linked product detail
-    getContainer().flush();
-
-    // The second HTTP request to access a bound operation via the local object
-    assertNotNull(product.operations().addAccessRight(AccessLevel.None).execute());
-
-    // The third HTTP Request to access a bound operation via entity URL
-    final ProductDetailCollectionComposableInvoker result =
-        container.getProducts().getByKey(1012).operations().getProductDetails(1);
-    assertEquals(1, result.execute().size());
-  }
-
-  @Test
-  public void workingWithPrimitiveCollections() throws IOException {
-    final PrimitiveCollection<String> emails = container.getPeople().getByKey(1).getEmails();
-    assertNotNull(emails);
-    assertTrue(emails.isEmpty());
-    assertFalse(emails.execute().isEmpty());
-
-    getService().getContext().detachAll();
-
-    // container.getOrders().getByKey(1).getCustomerForOrder().getEmails().execute().isEmpty());
-    // Not supported by the test service BTW generates a single request as expected:
-    // <service root>/Orders(1)/CustomerForOrder/Emails
-    emails.add("fabio.martelli@tirasa.net");
-    container.getPeople().getByKey(1).setEmails(emails);
-
-    container.flush();
-
-    boolean found = false;
-    for (String email : container.getPeople().getByKey(1).getEmails().execute()) {
-      if (email.equals("fabio.martelli@tirasa.net")) {
-        found = true;
-      }
-    }
-
-    assertTrue(found);
-
-    getService().getContext().detachAll();
-  }
-
-  @Test
-  public void workingWithSingletons() {
-    assertNotNull(container.getCompany().getVipCustomer().load().getPersonID());
-
-    container.getCompany().setName("new name");
-    container.flush();
-
-    assertEquals("new name", container.getCompany().load().getName());
-  }
-
-  @Test
-  public void createAndCallOperation() {
-    final Product product = container.newEntityInstance(Product.class);
-    product.setProductID(1001);
-    container.flush();
-
-    container.getProducts().getByKey(1000).operations().getProductDetails(1).execute();
-  }
-
-  @Test
-  public void workingWithOperations() {
-    // Primitive collections (available only skip and top)
-    final PrimitiveCollection<String> prods1 = container.operations().
-        getProductsByAccessLevel(AccessLevel.None).
-        skip(2).
-        top(3).execute();
-    assertNotNull(prods1);
-    assertFalse(prods1.isEmpty());
-
-    // Complex/Entity collection
-    final ProductCollection prods2 = container.operations().getAllProducts().
-        filter("name eq XXXX").
-        select("Name", "ProductDetail").
-        expand("ProductDetail").
-        orderBy("Name").skip(3).top(5).execute();
-    assertNotNull(prods2);
-    assertFalse(prods2.isEmpty());
-
-    // Complex/Entity
-    final Person person = container.operations().getPerson2("London").
-        select("Name").
-        expand("Order").execute();
-    assertNotNull(person);
-
-    // Primitive (no query option available)
-    final Double amount = container.getAccounts().getByKey(101).getMyGiftCard().operations().
-        getActualAmount(1.1).execute();
-    assertNotNull(amount);
-
-    // POST ...
-    final Address address = container.newComplexInstance(HomeAddress.class);
-    address.setStreet("Via Le Mani Dal Naso, 123");
-    address.setPostalCode("Tollo");
-    address.setCity("66010");
-
-    final AddressCollection ac = container.newComplexCollection(AddressCollection.class);
-    final Person updated = container.getCustomers().getByKey(2).operations().
-        resetAddress(ac, 0).select("Name").expand("Orders").execute();
-    assertNotNull(updated);
-  }
-
-  @Test
-  public void workingWithComposableOperations() {
-    final ProductCollectionComposableInvoker invoker1 = container.operations().getAllProducts();
-
-    // Complex/Entity collection (available filter, select, expand, orderBy, skip and top)
-    invoker1.operations().discount(10). // discount is an operation of ProductCollecton
-    filter("Name eq XXXX").
-    select("Name", "ProductDetail").
-    expand("ProductDetail").
-    orderBy("Name").skip(3).top(5).execute();
-
-    // Complex/Entity
-    final PersonComposableInvoker invoker2 = container.operations().getPerson2("London");
-
-    // a. whole entity
-    final Person person = invoker2.select("Name").expand("Order").execute();
-    assertNotNull(person);
-    assertEquals(1, person.getPersonID(), 0);
-
-    // b. primitive collection property
-    final PrimitiveCollection<String> emails = invoker2.getEmails().execute();
-    assertNotNull(emails);
-    assertFalse(emails.isEmpty());
-
-    // c. complex property
-    final Address homeAddress = invoker2.getHomeAddress().load();
-    assertNotNull(homeAddress);
-
-    // d. navigation property
-    final Person parent = invoker2.getParent().load();
-    assertNotNull(parent);
-    assertEquals(2, parent.getPersonID(), 0);
-  }
-
-  /**
-   * Java client should support the deletion based on locally created entity.
-   * See also <a href="https://issues.apache.org/jira/browse/OLINGO-395">Olingo Issue 395</a>.
-   */
-  @Test
-  public void issueOLINGO395() {
-    Order order = getContainer().newEntityInstance(Order.class);
-    order.setOrderID(1105);
-
-    final Calendar orderDate = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    orderDate.clear();
-    orderDate.set(2011, 3, 4, 16, 3, 57);
-    order.setOrderDate(new Timestamp(orderDate.getTimeInMillis()));
-
-    order.setShelfLife(BigDecimal.ZERO);
-
-    final PrimitiveCollection<BigDecimal> osl = getContainer().newPrimitiveCollection(BigDecimal.class);
-    osl.add(BigDecimal.TEN.negate());
-    osl.add(BigDecimal.TEN);
-
-    order.setOrderShelfLifes(osl);
-
-    getContainer().getOrders().add(order);
-    getContainer().getOrders().delete(order);
-
-    getContainer().flush();
-
-    service.getContext().detachAll();
-    try {
-      getContainer().getOrders().getByKey(1105).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // Expected Exception
-    }
-    service.getContext().detachAll(); // avoid influences
-
-    order = getContainer().newEntityInstance(Order.class);
-    order.setOrderID(1105);
-
-    getContainer().getOrders().delete(order);
-    getContainer().flush(); // test service doesn't fail for delete requests about unexisting objects
-
-    service.getContext().detachAll();
-    try {
-      getContainer().getOrders().getByKey(1105).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // Expected Exception
-    }
-    service.getContext().detachAll(); // avoid influences
-  }
-
-  @Test
-  public void issueOLINGO398() {
-    AbstractCollectionInvocationHandler<?, ?> handler = AbstractCollectionInvocationHandler.class.cast(
-        Proxy.getInvocationHandler(container.getCustomers().getByKey(1).getOrders().
-            select("OrderID", "CustomerForOrder").
-            expand("CustomerForOrder").
-            top(1).
-            skip(2)));
-
-    assertEquals("http://localhost:9080/stub/StaticService/V40/Static.svc/Customers(1)/Orders?"
-        + "%24select=OrderID%2CCustomerForOrder&%24expand=CustomerForOrder&%24top=1&%24skip=2",
-        handler.getRequestURI().toASCIIString());
-
-    handler = AbstractCollectionInvocationHandler.class.cast(
-        Proxy.getInvocationHandler(container.getCustomers().getByKey(1).getOrders().
-            select("OrderID", "CustomerForOrder").
-            expand("CustomerForOrder").
-            top(1).
-            skip(2)));
-
-    assertEquals("http://localhost:9080/stub/StaticService/V40/Static.svc/Customers(1)/Orders?%24"
-        + "select=OrderID%2CCustomerForOrder&%24expand=CustomerForOrder&%24top=1&%24skip=2",
-        handler.getRequestURI().toASCIIString());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index 7ef9511..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AbstractTestITCase.java
+++ /dev/null
@@ -1,149 +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;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.ext.proxy.AbstractService;
-import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
-import org.apache.olingo.fit.AbstractBaseTestITCase;
-import org.apache.olingo.fit.proxy.v4.staticservice.Service;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
-import org.junit.BeforeClass;
-
-public abstract class AbstractTestITCase extends AbstractBaseTestITCase {
-
-  protected static String testStaticServiceRootURL;
-
-  protected static String testDemoServiceRootURL;
-
-  protected static String testKeyAsSegmentServiceRootURL;
-
-  protected static String testActionOverloadingServiceRootURL;
-
-  protected static String testOpenTypeServiceRootURL;
-
-  protected static String testLargeModelServiceRootURL;
-
-  protected static String testAuthServiceRootURL;
-
-  protected static Service<EdmEnabledODataClient> service;
-
-  protected static InMemoryEntities container;
-
-  @BeforeClass
-  public static void setUpODataServiceRoot() throws IOException {
-    testStaticServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Static.svc";
-    testDemoServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Demo.svc";
-    testKeyAsSegmentServiceRootURL = "http://localhost:9080/stub/StaticService/V40/KeyAsSegment.svc";
-    testActionOverloadingServiceRootURL = "http://localhost:9080/stub/StaticService/V40/ActionOverloading.svc";
-    testOpenTypeServiceRootURL = "http://localhost:9080/stub/StaticService/V40/OpenType.svc";
-    testLargeModelServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Static.svc/large";
-    testAuthServiceRootURL = "http://localhost:9080/stub/DefaultService.svc/V40/Static.svc";
-
-    service = Service.getV4(testStaticServiceRootURL);
-    service.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    container = service.getEntityContainer(InMemoryEntities.class);
-    assertNotNull(container);
-    service.getContext().detachAll();
-  }
-
-  protected Customer readCustomer(final InMemoryEntities container, final int id) {
-    final Customer customer = container.getCustomers().getByKey(id).load();
-    assertNotNull(customer);
-    assertEquals(id, customer.getPersonID(), 0);
-
-    return customer;
-  }
-
-  protected void createPatchAndDeleteOrder(
-      final InMemoryEntities container, final AbstractService<EdmEnabledODataClient> service) {
-
-    // Create order ....
-    final Order order = container.newEntityInstance(Order.class);
-    order.setOrderID(105);
-
-    final Calendar orderDate = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    orderDate.clear();
-    orderDate.set(2011, 3, 4, 16, 3, 57);
-    order.setOrderDate(new Timestamp(orderDate.getTimeInMillis()));
-
-    order.setShelfLife(BigDecimal.ZERO);
-
-    final PrimitiveCollection<BigDecimal> value = container.newPrimitiveCollection(BigDecimal.class);
-    value.add(BigDecimal.TEN.negate());
-    value.add(BigDecimal.TEN);
-    order.setOrderShelfLifes(value);
-
-    container.getOrders().add(order);
-    container.flush();
-
-    // Patch order ... (test for OLINGO-353)
-    order.setShelfLife(BigDecimal.TEN);
-    container.flush();
-
-    Order actual = container.getOrders().getByKey(105).load();
-    assertEquals(105, actual.getOrderID(), 0);
-    assertEquals(orderDate.getTimeInMillis(), actual.getOrderDate().getTime());
-    assertEquals(BigDecimal.TEN, actual.getShelfLife());
-    assertEquals(2, actual.getOrderShelfLifes().size());
-
-    // Delete order ...
-    container.getOrders().delete(105);
-    actual = container.getOrders().getByKey(105);
-    assertNull(actual);
-
-    service.getContext().detachAll();
-    actual = container.getOrders().getByKey(105);
-    assertNotNull(actual);
-
-    container.getOrders().delete(105);
-    actual = container.getOrders().getByKey(105);
-    assertNull(actual);
-
-    container.flush();
-
-    service.getContext().detachAll();
-    try {
-      container.getOrders().getByKey(105).load();
-      fail();
-    } catch (IllegalArgumentException e) {
-      // Expected Exception
-    }
-  }
-
-  @Override
-  protected ODataClient getClient() {
-    throw new RuntimeException("This method should not be used from proxy tests.");
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AsyncTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AsyncTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AsyncTestITCase.java
deleted file mode 100644
index b0c1c03..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/AsyncTestITCase.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-
-import org.apache.commons.lang3.RandomStringUtils;
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PersonComposableInvoker;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollectionComposableInvoker;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.junit.Test;
-
-public class AsyncTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void retrieveEntitySet() throws InterruptedException, ExecutionException {
-    final Future<CustomerCollection> futureCustomers = container.getCustomers().executeAsync();
-    assertNotNull(futureCustomers);
-
-    while (!futureCustomers.isDone()) {
-      Thread.sleep(1000L);
-    }
-
-    final CustomerCollection customers = futureCustomers.get();
-    assertNotNull(customers);
-    assertFalse(customers.isEmpty());
-    for (Customer customer : customers) {
-      assertNotNull(customer);
-    }
-  }
-
-  @Test
-  public void updateEntity() throws Exception {
-    final String randomFirstName = RandomStringUtils.random(10, "abcedfghijklmnopqrstuvwxyz");
-
-    final Person person = container.getPeople().getByKey(1);
-    person.setFirstName(randomFirstName);
-
-    final Future<Void> futureFlush = container.flushAsync();
-    assertNotNull(futureFlush);
-
-    while (!futureFlush.isDone()) {
-      Thread.sleep(1000L);
-    }
-
-    final Future<? extends Person> futurePerson = container.getPeople().getByKey(1).loadAsync();
-    assertEquals(randomFirstName, futurePerson.get().getFirstName());
-  }
-
-  @Test
-  public void invoke() throws Exception {
-    final ProductCollectionComposableInvoker invoker1 = container.operations().getAllProducts();
-
-    final Future<ProductCollection> future1 = invoker1.operations().
-        discount(10).
-        filter("Name eq XXXX").
-        select("Name", "ProductDetail").
-        expand("ProductDetail").
-        orderBy("Name").skip(3).top(5).executeAsync();
-    while (!future1.isDone()) {
-      Thread.sleep(1000L);
-    }
-    assertFalse(future1.get().isEmpty());
-
-    final PersonComposableInvoker invoker2 = container.operations().getPerson2("London");
-
-    final Future<Person> future2 = invoker2.select("Name").
-        expand("Order").executeAsync();
-    while (!future2.isDone()) {
-      Thread.sleep(1000L);
-    }
-    assertNotNull(future2.get());
-  }
-}


[38/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetails.java
new file mode 100644
index 0000000..3772b0f
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetails.java
@@ -0,0 +1,273 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.Annotatable;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "ContactDetails",
+    isOpenType = false,
+    isAbstract = false)
+public interface ContactDetails
+    extends org.apache.olingo.ext.proxy.api.ComplexType<ContactDetails>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<ContactDetails> {
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstContacted",
+      type = "Edm.Binary",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  byte[] getFirstContacted();
+
+  void setFirstContacted(byte[] _firstContacted);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastContacted",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getLastContacted();
+
+  void setLastContacted(java.sql.Timestamp _lastContacted);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Contacted",
+      type = "Edm.Date",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.Calendar getContacted();
+
+  void setContacted(java.util.Calendar _contacted);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GUID",
+      type = "Edm.Guid",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.UUID getGUID();
+
+  void setGUID(java.util.UUID _gUID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PreferedContactTime",
+      type = "Edm.TimeOfDay",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.Calendar getPreferedContactTime();
+
+  void setPreferedContactTime(java.util.Calendar _preferedContactTime);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Byte",
+      type = "Edm.Byte",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Long getLong();
+
+  void setLong(java.lang.Long _long);
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstContacted",
+        type = "Edm.Binary")
+    Annotatable getFirstContactedAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastContacted",
+        type = "Edm.DateTimeOffset")
+    Annotatable getLastContactedAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Contacted",
+        type = "Edm.Date")
+    Annotatable getContactedAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GUID",
+        type = "Edm.Guid")
+    Annotatable getGUIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PreferedContactTime",
+        type = "Edm.TimeOfDay")
+    Annotatable getPreferedContactTimeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Byte",
+        type = "Edm.Byte")
+    Annotatable getByteAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "SignedByte",
+        type = "Edm.SByte")
+    Annotatable getSignedByteAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Double",
+        type = "Edm.Double")
+    Annotatable getDoubleAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Single",
+        type = "Edm.Single")
+    Annotatable getSingleAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Short",
+        type = "Edm.Int16")
+    Annotatable getShortAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Int",
+        type = "Edm.Int32")
+    Annotatable getIntAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Long",
+        type = "Edm.Int64")
+    Annotatable getLongAnnotations();
+
+  }
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsCollection.java
new file mode 100644
index 0000000..035c118
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface ContactDetailsCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ContactDetailsCollection>,
+org.apache.olingo.ext.proxy.api.ComplexCollection<ContactDetails, ContactDetailsCollection, ContactDetailsCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsCollectionComposableInvoker.java
new file mode 100644
index 0000000..d77451a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface ContactDetailsCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<ContactDetailsCollection, ContactDetailsCollection.Operations> {
+
+  @Override
+  ContactDetailsCollectionComposableInvoker select(String... select);
+
+  @Override
+  ContactDetailsCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsComposableInvoker.java
new file mode 100644
index 0000000..c55eec1
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetailsComposableInvoker.java
@@ -0,0 +1,213 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface ContactDetailsComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<ContactDetails, ContactDetails.Operations>
+{
+
+  @Override
+  ContactDetailsComposableInvoker select(String... select);
+
+  @Override
+  ContactDetailsComposableInvoker expand(String... expand);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstContacted",
+      type = "Edm.Binary",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  byte[] getFirstContacted();
+
+  void setFirstContacted(byte[] _firstContacted);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastContacted",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getLastContacted();
+
+  void setLastContacted(java.sql.Timestamp _lastContacted);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Contacted",
+      type = "Edm.Date",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.Calendar getContacted();
+
+  void setContacted(java.util.Calendar _contacted);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GUID",
+      type = "Edm.Guid",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.UUID getGUID();
+
+  void setGUID(java.util.UUID _gUID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PreferedContactTime",
+      type = "Edm.TimeOfDay",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.Calendar getPreferedContactTime();
+
+  void setPreferedContactTime(java.util.Calendar _preferedContactTime);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Byte",
+      type = "Edm.Byte",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  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,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Long getLong();
+
+  void setLong(java.lang.Long _long);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRow.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRow.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRow.java
new file mode 100644
index 0000000..2de8869
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRow.java
@@ -0,0 +1,93 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.concurrent.Future;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "IndexedRow",
+    openType = true,
+    hasStream = false,
+    isAbstract = false,
+    baseType = "Microsoft.Test.OData.Services.OpenTypesServiceV4.Row")
+public interface IndexedRow
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+        Row,
+    AbstractOpenType {
+
+  @Override
+  IndexedRow load();
+
+  @Override
+  Future<? extends IndexedRow> loadAsync();
+
+  @Override
+  IndexedRow refs();
+
+  @Override
+  IndexedRow expand(String... expand);
+
+  @Override
+  IndexedRow select(String... select);
+
+  @Override
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
+      type = "Edm.Guid",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.UUID getId();
+
+  @Override
+  void setId(java.util.UUID _id);
+
+  @Override
+  Operations operations();
+
+  interface Operations extends
+          Row.Operations {
+    // No additional methods needed for now.
+  }
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations extends
+          Row.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Id",
+        type = "Edm.Guid")
+    org.apache.olingo.ext.proxy.api.Annotatable getIdAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollection.java
new file mode 100644
index 0000000..51ea58b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface IndexedRowCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<IndexedRowCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<IndexedRow, IndexedRowCollection, IndexedRowCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollectionComposableInvoker.java
new file mode 100644
index 0000000..ee64c02
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface IndexedRowCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<IndexedRowCollection, IndexedRowCollection.Operations> {
+
+  @Override
+  IndexedRowCollectionComposableInvoker select(String... select);
+
+  @Override
+  IndexedRowCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowComposableInvoker.java
new file mode 100644
index 0000000..56d9712
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowComposableInvoker.java
@@ -0,0 +1,53 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+public interface IndexedRowComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<IndexedRow, IndexedRow.Operations>
+    , AbstractOpenType {
+
+  @Override
+  IndexedRowComposableInvoker select(String... select);
+
+  @Override
+  IndexedRowComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
+      type = "Edm.Guid",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.UUID getId();
+
+  void setId(java.util.UUID _id);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/Row.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/Row.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/Row.java
new file mode 100644
index 0000000..eb5a3cc
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/Row.java
@@ -0,0 +1,68 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Row",
+    openType = true,
+    hasStream = false,
+    isAbstract = false)
+public interface Row
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Row>, org.apache.olingo.ext.proxy.api.StructuredQuery<Row>,
+    AbstractOpenType {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
+      type = "Edm.Guid",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.UUID getId();
+
+  void setId(java.util.UUID _id);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Id",
+        type = "Edm.Guid")
+    org.apache.olingo.ext.proxy.api.Annotatable getIdAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollection.java
new file mode 100644
index 0000000..c754aed
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface RowCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<RowCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Row, RowCollection, RowCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollectionComposableInvoker.java
new file mode 100644
index 0000000..c3713a7
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface RowCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<RowCollection, RowCollection.Operations> {
+
+  @Override
+  RowCollectionComposableInvoker select(String... select);
+
+  @Override
+  RowCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowComposableInvoker.java
new file mode 100644
index 0000000..f77f079
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowComposableInvoker.java
@@ -0,0 +1,53 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+public interface RowComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Row, Row.Operations>
+    , AbstractOpenType {
+
+  @Override
+  RowComposableInvoker select(String... select);
+
+  @Override
+  RowComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
+      type = "Edm.Guid",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.util.UUID getId();
+
+  void setId(java.util.UUID _id);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndex.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndex.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndex.java
new file mode 100644
index 0000000..eee12de
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndex.java
@@ -0,0 +1,82 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "RowIndex",
+    openType = true,
+    hasStream = false,
+    isAbstract = false)
+public interface RowIndex
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<RowIndex>, org.apache.olingo.ext.proxy.api.StructuredQuery<RowIndex>,
+    AbstractOpenType {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getId();
+
+  void setId(java.lang.Integer _id);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Rows",
+      type = "Microsoft.Test.OData.Services.OpenTypesServiceV4.Row",
+      targetSchema = "Microsoft.Test.OData.Services.OpenTypesServiceV4",
+      targetContainer = "DefaultContainer",
+      targetEntitySet = "Row",
+      containsTarget = false)
+  Row getRows();
+
+  void
+      setRows(Row _rows);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Id",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getIdAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Rows",
+        type = "Microsoft.Test.OData.Services.OpenTypesServiceV4.Row")
+    org.apache.olingo.ext.proxy.api.Annotatable getRowsAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollection.java
new file mode 100644
index 0000000..c0dae50
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface RowIndexCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<RowIndexCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<RowIndex, RowIndexCollection, RowIndexCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollectionComposableInvoker.java
new file mode 100644
index 0000000..cb4f23f
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface RowIndexCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<RowIndexCollection, RowIndexCollection.Operations> {
+
+  @Override
+  RowIndexCollectionComposableInvoker select(String... select);
+
+  @Override
+  RowIndexCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexComposableInvoker.java
new file mode 100644
index 0000000..52e3306
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexComposableInvoker.java
@@ -0,0 +1,64 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+public interface RowIndexComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<RowIndex, RowIndex.Operations>
+    , AbstractOpenType {
+
+  @Override
+  RowIndexComposableInvoker select(String... select);
+
+  @Override
+  RowIndexComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getId();
+
+  void setId(java.lang.Integer _id);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Rows",
+      type = "Microsoft.Test.OData.Services.OpenTypesServiceV4.Row",
+      targetSchema = "Microsoft.Test.OData.Services.OpenTypesServiceV4",
+      targetContainer = "DefaultContainer",
+      targetEntitySet = "Row",
+      containsTarget = false)
+  Row getRows();
+
+  void
+      setRows(Row _rows);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/package-info.java
new file mode 100644
index 0000000..26254f9
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/opentype/microsoft/test/odata/services/opentypesservice/types/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * 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.opentype.microsoft.test.odata.services.opentypesservice.types;
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/Service.java
new file mode 100644
index 0000000..5b5a829
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/Service.java
@@ -0,0 +1,245 @@
+/*
+ * 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.staticservice;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.ext.proxy.AbstractService;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfo;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Asset;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Club;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Color;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyAddress;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditCardPI;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CreditRecord;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.GiftCard;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.IsBoss;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnion;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductDetail;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductReview;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompany;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Statement;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Subscription;
+
+public class Service<C extends EdmEnabledODataClient> extends AbstractService<C> {
+
+  // CHECKSTYLE:OFF (Maven checkstyle)
+  private static final String COMPRESSED_METADATA =
+      "H4sIAAAAAAAAAMU9fZAkVX09s7Mfs7Mf98V58nVQUcIJN8t9wB23eDi7O7s3YW5v2F0OPNFU78zb3fZmuofunr1ZK0ARS1KFGiHCyRWlGEqJMXfRHNESUpIiETVWKEshlKYIJIYKMZEqjMTEJJb5vff643X3655+Pbt4f1zN9L73+36/3+/93q/fnH1d6jV06aCmL+flplxdQXmtrqjLWr5aV5Bq5quajvKo1si3G/X86v78bUfLR5Ep12RTLjWa9flH/2TvI//9tlZaktq6dH08MIVFw9TlqsnA+trnDh4f/s75z6elVFnKwMC2KV1VBnBjFNwYBTdGwcFDZQwGjQG0sSIMHgfk14ohh2klEzV6bvunn5w5/MIbmIEmSGJPbElgvFgEX/jjbVN/+L5P1gjpgzpaQjpSq8gwpU3lD8qr8ljLVOpjZcUwMZV7halsT45Kdy7svvAHaSldloawtOaRvqoQFPviyWiKmTRelvpXkW4ommpKWyiJdVldHps3dZg/3r5DukvqMWJrE0TBgsciOfRb9958e/XqF4hI+g0A0JANDLYPJHBITAIs7L96/XcPnHuu8ACRxBZGEscpPxhFtixd0JDbU/w/UuaaWNNbMed5rJx8QdflNayh9j3fv+TMt+RP90ipkpQxlA+hdlOSpNSpDP4fJu2LLZN5wjWWxoUf+ejfZb761yfTUg6kASwBMVQaoE5ZVTUTaF2sY3WOMhZzVG6CqjZZA2DOjK61mvbEnPvcgVXVABtqL6w1kf1sFEhTzLVJ0LWsqEg3pevjWczq/rGidyoQk6PQWARZpLYangdLLdXDYq+J9IZDjwlDp9CSoiruGDCK/WJGQYX7+F+c/ptnfidzNzGHXrmuUCMDC8iqcgMZAA6xWjel3UeVqq4Z2pKZXwB5549hM8nb5kW/3jo5bT/A00ZA81mi/6yQ/gtECFj/pR/++OEPPLvnC2mp94TUu6i11FpZGqainEdmRT
 ZXLLIzmGzr82BT1uEbCM+WHfgWs6WrWNimtD+2GuecWdj/3BCfAUvWBddC9736yC3G+FM3k3UdsEDLcdhCk4jQpHYK5D5SqNUKVZCoMacsr5jOmDQZkwbBXhebrootFyzbxefaV4ydaFxGTICzJjKGrtRM6WqetLRGAwY64lpG2tj8XGkKS+mAmDk6JP10fOLhQnr+G2mp74Q0oLbqdSw2sEfwSGWkLpsrprSVcbkl1UTLZGmxqs82dVRVbJ91Odi2UZXryPqSwUuIMWsJ5Nvf1LVaq2o24fO1Qjaer9CZAbVRT3Mp1l5OdlWHMVwvhoEqvoxWUT2IpW3Eljbo3rVlrPzj//zyk/ni7d8Ml7Ylsg4CxTaCP+8MCjfVbK4Dx2/jLorRklrVkWygORiotlBgVRAFYPWmmgkUOwnRQFbXohQ7bFNwXK63EMaRhYQjD1Z53X6eqvCjd0lUJL6RHBZNqa8J3gunGUNzyEAmOAEd5OKM7CEje1w+rfEY/H5BKyYTw3jFsLMyxQ5hAb4VJrV6HREXfaWgbimYXVG4ehW1BpkDI6V9ezvJMznDXNEPWB4BkoqBKcWoQtQJul2HYGd0d7KxfEmkbAZBx1VY2/IyEhPQOpEVlBYRQEBGds6XiPBmBKoRshYmNMMoNmSlHo6wD5G/Y2TbGd4xXpqqc+TsFVnUND5xmxzi/Is1QF6/taASuCY/7BDyu4DK526UcEe2BlpLZxI8r51yF9TFEASxgYwdXavIaw0whJIK0b+FPxlEcEuAfQVyW7lVNyul8MXWb0FKwmLVa6Qcn96volMwi9joFqx0/GVBaaBjS0vAfKjMrUh3o+DS8ovCIoXFEP4gQx5khAoQk+4mB+cABx88cOPO9z/+M5IDbJHtbbOzT4HEQGsikjJwE8SBRQh/C3bQL0vbVHlVWSZDwG3AkjcVZ2sz2PQ+Ea94MMSPfvvOr77/9YuvpBUPJ/ujaQeo0bJmSQpRNlegdkSNXQ3
 B+TRlag1L88ZNTx1+aNu9j4ck+LHTdCcxtmD/+/yb79xz/9c+kZayTKZ2QupvqUpVqyFc16ALh2Qidh7sz+MEkuSInA6nU+BdwRkiZBKjH3SdI1+2p+mczCRYldCMwYpmmHJ9EnjsOI9O/ATk20e0BgrX/7q5W65vP52ihE/LDaW+NgsCj0/4iJVz/tpop0LPWWSIEZ+znGtJXdIseDFXHevhLRKy04pumLEIYKcNlOWYs9p44xR/M++r5eC1PnvFy0MX/s/bt6al3rI0LNvlCk03I2pMg07Zwqno2PUe79xBA8ipI5PxHe8WLH16SX7jviuufWPP87ekpcwJabvlLXxjIALU5Q+tlTW5BuCLKnYyNfDxv43aJlJrdnXI720lkvmU1KOooelrBCa4eE6Uil8RLTAiwcLedcM3n3vm3PJLaamnLPVRYduOzBEpn7y3cxbRdWKLyE5uA4nudziwbxCD7c1mQ/JbHp7DCfFYHiE0WeXhencCXG6ayMkcI5KaIfJgSKimVbRNANvK+Z889vD7Ss8Pga2ckHYoarXeqqGSahE3pVVJosVdnhcGspe1CdiL2g6kT7y05VB2aueXHjlfemGaVNoG3UJwyJpKuKGFuFxBGuRIQQcc8Pi6NB1bwLNhcsEC/8ymT95+6dTH3ySsZZpuPbbPlPVla13abPVVZB0wOIRSuv5BeE1OtgwTwrwOscL+aEQwzcaYVwH5Mb0GE5wPzvN1oq4IYtHWID+Cfa71UYQ6HxX2834rMLufHPqSVS3Bn9n1yxgGY1MxhUzsmMBVWZOtBw4x44mIoVACUOOLDTxnHTZrtSBzDulzaFVBpxjSrQddkk6hBKBGkO55AHj3ieElVutYb4qztuMXhQuOG8SL+aYX7//uNV//8R0k0m5zXWSx3cQhgpx6lmIfnrjzxwocUOMQvu9oyXVlSUG67QnxeVdU+AbmDsdmziUAohL8sYZ5HF/4XurJsn4BcVgj1q50jWyd
 7EjAbHp0aTEJOs75z9QaeHmlypPEL55+7TdmXxl5NnTneGs3NEQgHr36wSOHds6epR0IlXXg1AP+2d0zv6/ni7/C4EkEiLP5LiahosKqEWv5vtf0p2eePLWNaHnA1rJlZb2r1kY5dRGmK7WTk/Vk51tNnICiGtC0kIQmyKxh+6pyJYNJPPqL+xfufs/4lTRymuRk8niSxRWF6B3k7JJhma6s1OV3RXEFuBIwRXBJ1r8txKRGSJ8APq6DNK3VYP+ISwITmgY+P2PqdO2l3slRxLZpiAtIx0vILSqBTiaS6cSu6WIN/OdPr/5w/6Nykay7XsVE1lE7kdBlHL861Y1t4rNqjPWew9K3Xs5Lf08X3W3dLLpiHeF09pheMGGnu9gykauN7YOvnfzb7T2vUuZ86r8MwiEJH6WpdrjkAZis1nySx6P389KD1AFTGiJA7ZSAnOJsncR8TK6ADaAFIPok8Bhc91aM3lTWlpdRraTycihnkJ3zQQprxUI3DbQHeSjxE2YHXsGjSQaGD2L8PGW0YBhaVcGpijeOO4mMlUaQp6jGJDIO2QcFd7CoKetmgySVOfeLSNa3brmnVScCruxyfAQVPuO4qcvy+tjCCpo3wRprlRJ28NZHR/I7C6ugS2zu861Fo6orTbzYFhDYH6jLACu6gP8Ha/5st/RNwOpoNV0SR60DEftJ0g0Jj2mB9PSQIDZGRmEii4HdfdJHnvSB/x2P7SynPYU17Hb/9VMz733p3/50lnQSiVUGAlWmAbtuF9zANznVT+EaygwyLdVDwAL6pVHfE+Jv14KonF2jKR0QRmlXEbLO5xhoBH2RA3qvKQ26X8IROd5PuLgG0Av1ujt9xPsgDGVTeB84w1bsTGnY8z0CzbS46CzaJ9aYLhlT2hH2J94ail9Ym7er0Hj5bP/lm7+aOLRjD9kaRpWwYhTSwiqzCateGSztsNDFLeqkTndfF3ZrULnjStPJP0JiV9yaU4eIyyU8WW+TC
 zlQrLdocDMvXhbGcs2RwaveXMP7zcl1cG4Ylp6sP8PDldZiXan62fZZzIygFbIwx8ryotbSb1FJ7Msx38K5EUxCQzFwQ+p6WHp4QhIRtLeTJ9uFilFu5wH2ON8+t/SbH3jgmv8lHocTlQW7DWJ2SRQCXRCbvrL1B/M/+vnPSOLA7ZLIrsgGPhGXG56OCX97RM9JBEZ4bfgWHxPivppBENyESG8BfbHgfuImsNMD0Tbjd1R7QPUfPDj+wGP558m+cMiujMyhJcY59wTWRuymiIoLEGPb9spn/u/75178ebDN3H/ogc/XKHPWnrTTAcaNXRxgYNIO31Vc/ux9u8/6O2B5jS6aOoUgFEK+MxavQnPMmoBfGMEeTXVKnNutt1xMBbc24ORfVlTn6NdTenyPmMkG2Tx+5pknPnbRZYdB+iekkSo96jUWyMEM5yjXCUecvpngEX7CeO2qcoAAGiDf7TN82wKaHdoE2Ukb3i9AZ1m9HUeVWq2OhOexfSndNuiF4chgHOT9nHdxLIe27Du1vWWk5XHLvvmXL915ev5si7jZbE2B2EsL/TfE7PufQZrRlLE5v2PKnu2pOF4OC2hV1hW8vLwt/Lj+h2R1vN28i/9uE4dmHjrJ+reFFppTu/EmpnhsZq5QOfJeEMdmtwxpvTWw5Uef/dx/3fN7B9P4ZSVKKiy4Te642VZjEen3nn3oktyD//hR8oabJG36F7sxEKhY1uXmylpFUzg9hayd9VNQRseu0jC19hWtXlaB+TT4fw+s3M7K4GnCFRuveyf1ssQ5k4r0Hzcm7komaHY5aO1MluO3QtLzbpNJfpEqcavbwISimys1mc6K03rKzt6Bx00g8xRCKnZqC6c0qgcCbYhAa+luROMbip3hb4ihsHXijhrzbTbWV1+8hjMs6yMKpLSC4rfWJ4wBVNTEU7+E/9IEfDoj4DEcPfRbO3mS4uFnL3KF+ENMtzU0VsLkSD60ZM2sUTfLin/MMsfLa3
 Ci9aV9X26cv237R7hncVucl35rFfYvoUUCl2mPAGDf1u07DlQwu1zR2a8usqbiYBTJUDLCycnozS2ZZO2wsmB3J9Zqm8UzKjqxSWcaKebEw1lSYYNXPSnC4RBpjYPZastaRTk80Qrw0RnVLQbSadFqPd4XC0OTnT+pqKR4SrAI9lw4VddQCeQmtVWk03H0bYDE9kiARMT0YY/BchwFG5a9jsJ5NOqBEelB/EHe12oTM9gnf7WSuq3QthoGG0NpuhLbd4QO98uII7V1cDuUMcbtsGW4rtyOn1qRuTlrrrDnyk0h57wnXgM5a9JUGByTZoQS16SdP+Qo1AXFpB6QPBzED0kvRpTtBx7YhfRfr3IYhsReqXCZFsGHszVckxXC1VdomSuWt41lA70kaeXo3p/3eFoXOh4dE/cRaCyIWeJI2Prp4vX3KmwMXnZ/Q/B26E7g4ix2tx0LpE8cP2ZrTqi8Q6GT1/ISZOfZ+RVUXyorSyjGboidOErwOrNpUN/h23/bkCKidY6RDse4/bHaFpFYlh+I0d4ukpgWsD6vCRMC/H0uMe0+SSusK4VeAqe3a4tL5NCpnit1uSq8j7SKAHb+LURr/FzfschB95QthrcdckeLbTQjizL+08ANL8p42NiozVvKj2r2WPz45wgM8HbQSdYaGqkQNmXCCol6G6HJOQ521TGR2C/YKF3HwJbjuKYRQUe3UTG6+y0a91RiGbhIXSn4Tr5jesfEjX+RLtI1pnjLwgqP1qxJcHDLmk6dlmCfkw9EdA5q3fTCu0Al9EBEeOn2b8ARDbPJYXsFYD0ndXQx3mInhoavkYE4jLjWvr4VeYJml4M2M1lvLca06r2CMgDI7opmGiBiokvebxH50vcwqZkV21XS6Syw6yGSk2LseshAsd0qJw7aYETWunj9so8eenVC4kiB2ktnIfThcWIy4BT8LSjrLwI36WftsjNbw8zwrrnzAttAJvutHu4YDGbtCwJiJywpfNa
 +NqMsmZOyHncDI5gg2NAdjNt4F9TExH1T8s2TH6XrR7fil+FXPQ3pcemZTkwPi81NWTq1x7+1ZEX6ONfaBKtcMEePe3Jr9XUwN18kPL6wp4cvtAHbUGOstEF7rJgf4eSFDCQRMTrTYux9PE650KA3O9lzprTWYocjq5Fiu4loBSZ5gejYKRXpYp5vc2DJxtDM1sAkoRJmjnl9ZWOqiGxbJ/E+myeUOj7znTdBnCK+cDL5IrdRMXsl73sxG8t7pF/haVDolHRaV5Bai3k1EDszN6kjXEsTsnLHXIdgdk0hixLkh/s7ur2qLG6rBxjRMEVO38De+CjBYtsV7d+Ik3Lz1Li66Jk8flzs1OWIVq/FdDGegDQh12WVrextoEt0g42z0GIEG3usWLDhnAwwkERWVF+lJL43qZRwV/ZbuP6yjleLIdOcM7hrobKghM4mF3RZNehNS8Ki2s5MFjkLTpIL+D0cXfYxhDzCju9azj5oQgZcMmY0LXbLjDVpDsmGoEi7jCBs8h1Hvuz4rjNRHzShkGtvUGZaSk1IYL3ix+sDnmLoxmommKiIXFxZtH55APfn3f3xLy5+vXLm8+t1caUN+6rmYzv/6KozXya3zvUu1eVloyz1NxDphiawve8NjrRUiJL1NUCw4LtJPGAcIr8mcJRgxJx+8bulRx9Z/QM5lFPBn1KgkF/51OyfX3Tu8ifoRR4MQ75bF/ANWJlZTUWmlLqGaxGZr8AIWNs1GLEndETvrbqCX0VJ8S0fD+kvtlG1RQbxK+R4UBZjsmHtC1oY3dzazXX8jC/zZ1LADi3wPXOoAx8zOsIhMYKPzAQIkMsEUNdLu/k60sU4bAwzXVqIVMAwbnbBd6vK9A32CA5yRZyj6hoMNiL56DtmrpDXP/mcBM5S+I6YPBkmT4aFVjvzNnz9iaf3XbLjG4VLYQ2ckAbxz55oBi7qEAvlX7a/eQaZztnhZPRN3+t73T5l239t/r69RLmZ/whSC7K0
 rmMfc+7+2Oy+Hm09c+YF75fe0B+D6HXuro5/dft6tTWnwkV2cZMdOea/SQ3Lz/ssXP3DHlCY/m7ug+skm2QaCpMEueWcc9FCMHDbF34naSKOwu69eYEv4Y2/Oj7Rux9RbPkueuDzlamSzpfotGmjKeXcEcHR/rr9qEIUKcFrJPgeq9cwZb2jT2HGJ/BBIW+dhXlhjCb0TopwC7B+KodmG4kq6VE/ldMFPynLMRSqZkuu061puEIGlpUlsyrrNYypiwOpsCCSXdTUljFn/UxB1O7YxzUzNCJ+dvithiHXQTLv/3O81Pr/ToPX93ZbwYxSNnYDzPu64Wyu/4/ueFUmuAQYmkPDve3lOOdOb6UWkzHIUJ0KVpxFfoFyAekNnA5/7NKHzn/6g09dl5YGvb+DJTebMNNY0KydKr3Nwb6e9K380YXgW3C8IjqtJeGIEaglBYstsOfo2Z8P7oH+H4FFEOzTdAAA";
+  private static final String METADATA_ETAG = null;
+  // CHECKSTYLE:ON (Maven checkstyle)
+
+  private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
+
+  @SuppressWarnings("unchecked")
+  private static <C extends EdmEnabledODataClient> Service<C> getInstance(
+      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
+
+    if (!SERVICES.containsKey(serviceRoot)) {
+      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG,
+          version, serviceRoot, transactional);
+      SERVICES.put(serviceRoot, instance);
+    }
+
+    return (Service<C>) SERVICES.get(serviceRoot);
+  }
+
+  /**
+   * Gives an OData 4.0 instance for given service root, operating in transactions (with batch requests).
+   *
+   * @param serviceRoot OData service root
+   * @return OData 4.0 instance for given service root, operating in transactions (with batch requests)
+   */
+  public static Service<EdmEnabledODataClient> getV4(
+      final String serviceRoot) {
+
+    return getV4(serviceRoot, true);
+  }
+
+  /**
+   * Gives an OData 4.0 instance for given service root.
+   *
+   * @param serviceRoot OData service root
+   * @param transactional whether operating in transactions (with batch requests) or not
+   * @return OData 4.0 instance for given service root
+   */
+  public static Service<EdmEnabledODataClient> getV4(
+      final String serviceRoot, final boolean transactional) {
+
+    return getInstance(ODataServiceVersion.V40, serviceRoot, transactional);
+  }
+
+  private final Map<String, Class<?>> entityTypes = new HashMap<String, Class<?>>();
+
+  private final Map<String, Class<?>> complexTypes = new HashMap<String, Class<?>>();
+
+  private final Map<String, Class<?>> enumTypes = new HashMap<String, Class<?>>();
+
+  private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
+
+  public Service(final String compressedMetadata, final String metadataETag,
+      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
+
+    super(compressedMetadata, metadataETag, version, serviceRoot, transactional);
+
+    // CHECKSTYLE:OFF (Maven checkstyle)
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI",
+        CreditCardPI.class);
+    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Account",
+        Account.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail",
+        ProductDetail.class);
+    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Order",
+        Order.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.Statement",
+        Statement.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.Subscription",
+        Subscription.class);
+    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Person",
+        Person.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.GiftCard",
+        GiftCard.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail",
+        OrderDetail.class);
+    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Product",
+        Product.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
+        PaymentInstrument.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.Customer",
+        Customer.class);
+    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Club",
+        Club.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.ProductReview",
+        ProductReview.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.Department",
+        Department.class);
+    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Asset",
+        Asset.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.Employee",
+        Employee.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+        StoredPI.class);
+    entityTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Company",
+        Company.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord",
+        CreditRecord.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
+        LabourUnion.class);
+    entityTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.PublicCompany",
+        PublicCompany.class);
+    complexTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Address",
+        Address.class);
+    complexTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
+        CompanyAddress.class);
+    complexTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
+        AccountInfo.class);
+    complexTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.HomeAddress",
+        HomeAddress.class);
+    enumTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
+        AccessLevel.class);
+    enumTypes.put("Microsoft.Test.OData.Services.ODataWCFService.Color",
+        Color.class);
+    enumTypes
+    .put(
+        "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
+        CompanyCategory.class);
+    terms.put("Microsoft.Test.OData.Services.ODataWCFService.IsBoss",
+        IsBoss.class);
+    // CHECKSTYLE:ON (Maven checkstyle)
+  }
+
+  @Override
+  public Class<?> getEntityTypeClass(final String name) {
+    return entityTypes.get(name);
+  }
+
+  @Override
+  public Class<?> getComplexTypeClass(final String name) {
+    return complexTypes.get(name);
+  }
+
+  @Override
+  public Class<?> getEnumTypeClass(final String name) {
+    return enumTypes.get(name);
+  }
+
+  @Override
+  public Class<? extends AbstractTerm> getTermClass(final String name) {
+    return terms.get(name);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Accounts.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Accounts.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Accounts.java
new file mode 100644
index 0000000..61b8f7b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Accounts.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Account;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Accounts",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface Accounts
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Account, AccountCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Accounts>,
+    AbstractEntitySet<Account, java.lang.Integer, AccountCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Customers.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Customers.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Customers.java
new file mode 100644
index 0000000..0974312
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Customers.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.CustomerCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Customers",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface Customers
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Customer, CustomerCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Customers>,
+    AbstractEntitySet<Customer, java.lang.Integer, CustomerCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Departments.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Departments.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Departments.java
new file mode 100644
index 0000000..8917add
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Departments.java
@@ -0,0 +1,42 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types
+        .DepartmentCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Departments",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface Departments
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Department, DepartmentCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Departments>,
+    AbstractEntitySet<Department, java.lang.Integer, DepartmentCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Employees.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Employees.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Employees.java
new file mode 100644
index 0000000..4b1bccf
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/Employees.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee;
+import org.apache.olingo.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Employees",
+    container = "Microsoft.Test.OData.Services.ODataWCFService.InMemoryEntities")
+public interface Employees
+    extends
+    org.apache.olingo.ext.proxy.api.EntitySet<Employee, EmployeeCollection>,
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Employees>,
+    AbstractEntitySet<Employee, java.lang.Integer, EmployeeCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+}


[51/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] better debug output in error case

Posted by mi...@apache.org.
[OLINGO-659] better debug output in error case

Change-Id: I3f0a270807c4a929027894ed42c51523e56bbc14

Signed-off-by: Michael Bolz <mi...@sap.com>


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: 83a098f22bd56e5823dc6e0e1fe048ccd878e83b
Parents: ccf361b
Author: Klaus Straubinger <kl...@sap.com>
Authored: Wed Sep 2 15:04:44 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Wed Sep 2 15:11:57 2015 +0200

----------------------------------------------------------------------
 .../olingo/server/api/debug/DebugSupport.java   | 19 +++--
 .../apache/olingo/server/core/ODataHandler.java | 51 ++++++++++----
 .../server/core/ODataHttpHandlerImpl.java       | 29 ++++----
 .../core/debug/DebugResponseHelperImpl.java     | 64 +++++++++--------
 .../olingo/server/core/debug/DebugTabBody.java  |  6 +-
 .../server/core/debug/DebugTabResponse.java     |  4 +-
 .../server/core/debug/DebugTabRuntime.java      |  2 +-
 .../server/core/debug/DebugTabServer.java       | 14 +---
 .../olingo/server/core/debug/DebugTabUri.java   | 74 ++------------------
 .../server/core/debug/ServerCoreDebugger.java   | 24 +++----
 .../server/core/debug/AbstractDebugTabTest.java | 29 +++-----
 .../server/core/debug/DebugTabBodyTest.java     |  5 +-
 .../server/core/debug/DebugTabResponseTest.java |  4 +-
 .../server/core/debug/DebugTabServerTest.java   | 10 +--
 .../core/debug/ServerCoreDebuggerTest.java      | 40 ++++-------
 15 files changed, 150 insertions(+), 225 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-api/src/main/java/org/apache/olingo/server/api/debug/DebugSupport.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/debug/DebugSupport.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/debug/DebugSupport.java
index b3721e6..34527b9 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/debug/DebugSupport.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/debug/DebugSupport.java
@@ -32,26 +32,25 @@ public interface DebugSupport {
   public static final String ODATA_DEBUG_DOWNLOAD = "download";
 
   /**
-   * Initializes the debug support implementation. Is called before {@link #isUserAuthorized()} and
-   * {@link #createDebugResponse(String, DebugInformation)}
+   * Initializes the debug support implementation.
+   * Is called before {@link #isUserAuthorized()} and
+   * {@link #createDebugResponse(String, DebugInformation)}.
    * @param odata
    */
   void init(OData odata);
 
   /**
-   * This method is called to make sure that the user that requested the debug output is authorized to see this output.
+   * Ensures that the user that requested the debug output is authorized to see this output.
    * @return true if the current user is authorized
    */
   boolean isUserAuthorized();
 
   /**
-   * This method should create a debug response and deliver it back to the Olingo library. This method MUST NEVER throw
-   * an exception.
-   * @param debugFormat which is requested via the odata-debug query parameter
-   * @param request object which was send to the server
-   * @param response object which was filled by the application
-   * @param exception which has been thrown. Might be null in case there was no exception
-   * @return a new debug response which will be send to the client
+   * Creates a debug response and delivers it back to the Olingo library.
+   * This method MUST NEVER throw an exception.
+   * @param debugFormat the value of the odata-debug query parameter
+   * @param debugInfo   all necessary information to construct debug output
+   * @return a new debug response which will be sent to the client
    */
   ODataResponse createDebugResponse(String debugFormat, DebugInformation debugInfo);
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
index 5dedc11..12f2dfd 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
@@ -74,7 +74,7 @@ public class ODataHandler {
 
   public ODataResponse process(final ODataRequest request) {
     ODataResponse response = new ODataResponse();
-    int measurementHandel = debugger.startRuntimeMeasurement("ODataHandler", "processInternal");
+    final int responseHandle = debugger.startRuntimeMeasurement("ODataHandler", "process");
     try {
       processInternal(request, response);
     } catch (final UriValidationException e) {
@@ -111,29 +111,51 @@ public class ODataHandler {
       ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e);
       handleException(request, response, serverError, e);
     }
-    debugger.stopRuntimeMeasurement(measurementHandel);
+    debugger.stopRuntimeMeasurement(responseHandle);
     return response;
   }
 
   private void processInternal(final ODataRequest request, final ODataResponse response)
       throws ODataApplicationException, ODataLibraryException {
-    response.setHeader(HttpHeader.ODATA_VERSION, ODataServiceVersion.V40.toString());
+    final int measurementHandle = debugger.startRuntimeMeasurement("ODataHandler", "processInternal");
 
-    validateODataVersion(request);
+    response.setHeader(HttpHeader.ODATA_VERSION, ODataServiceVersion.V40.toString());
+    try {
+      validateODataVersion(request);
+    } catch (final ODataHandlerException e) {
+      debugger.stopRuntimeMeasurement(measurementHandle);
+      throw e;
+    }
 
-    int measurementUriParser = debugger.startRuntimeMeasurement("UriParser", "parseUri");
-    uriInfo = new Parser().parseUri(request.getRawODataPath(), request.getRawQueryPath(), null,
-        serviceMetadata.getEdm());
+    final int measurementUriParser = debugger.startRuntimeMeasurement("UriParser", "parseUri");
+    try {
+      uriInfo = new Parser().parseUri(request.getRawODataPath(), request.getRawQueryPath(), null,
+          serviceMetadata.getEdm());
+    } catch (final ODataLibraryException e) {
+      debugger.stopRuntimeMeasurement(measurementUriParser);
+      debugger.stopRuntimeMeasurement(measurementHandle);
+      throw e;
+    }
     debugger.stopRuntimeMeasurement(measurementUriParser);
 
-    int measurementUriValidator = debugger.startRuntimeMeasurement("UriValidator", "validate");
+    final int measurementUriValidator = debugger.startRuntimeMeasurement("UriValidator", "validate");
     final HttpMethod method = request.getMethod();
-    new UriValidator().validate(uriInfo, method);
+    try {
+      new UriValidator().validate(uriInfo, method);
+    } catch (final UriValidationException e) {
+      debugger.stopRuntimeMeasurement(measurementUriValidator);
+      debugger.stopRuntimeMeasurement(measurementHandle);
+      throw e;
+    }
     debugger.stopRuntimeMeasurement(measurementUriValidator);
 
-    int measurementDispatcher = debugger.startRuntimeMeasurement("Dispatcher", "dispatch");
-    new ODataDispatcher(uriInfo, this).dispatch(request, response);
-    debugger.stopRuntimeMeasurement(measurementDispatcher);
+    final int measurementDispatcher = debugger.startRuntimeMeasurement("ODataDispatcher", "dispatch");
+    try {
+      new ODataDispatcher(uriInfo, this).dispatch(request, response);
+    } finally {
+      debugger.stopRuntimeMeasurement(measurementDispatcher);
+      debugger.stopRuntimeMeasurement(measurementHandle);
+    }
   }
 
   public void handleException(final ODataRequest request, final ODataResponse response,
@@ -154,13 +176,12 @@ public class ODataHandler {
     } catch (final ContentNegotiatorException e) {
       requestedContentType = ContentType.JSON;
     }
-    int measurementHandle = debugger.startRuntimeMeasurement("ErrorProcessor", "processError");
+    final int measurementHandle = debugger.startRuntimeMeasurement("ErrorProcessor", "processError");
     exceptionProcessor.processError(request, response, serverError, requestedContentType);
     debugger.stopRuntimeMeasurement(measurementHandle);
   }
 
-  private void validateODataVersion(final ODataRequest request)
-      throws ODataHandlerException {
+  private void validateODataVersion(final ODataRequest request) throws ODataHandlerException {
     final String maxVersion = request.getHeader(HttpHeader.ODATA_MAX_VERSION);
     if (maxVersion != null && ODataServiceVersion.isBiggerThan(ODataServiceVersion.V40.toString(), maxVersion)) {
         throw new ODataHandlerException("ODataVersion not supported: " + maxVersion,

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
index 33b62c3..75563b1 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
@@ -45,10 +45,10 @@ import org.apache.olingo.server.api.ODataResponse;
 import org.apache.olingo.server.api.ODataServerError;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.debug.DebugSupport;
+import org.apache.olingo.server.api.deserializer.DeserializerException;
 import org.apache.olingo.server.api.etag.CustomETagSupport;
 import org.apache.olingo.server.api.processor.Processor;
 import org.apache.olingo.server.api.serializer.CustomContentTypeSupport;
-import org.apache.olingo.server.api.serializer.SerializerException;
 import org.apache.olingo.server.core.debug.ServerCoreDebugger;
 
 public class ODataHttpHandlerImpl implements ODataHttpHandler {
@@ -72,21 +72,17 @@ public class ODataHttpHandlerImpl implements ODataHttpHandler {
     ODataResponse odResponse;
     debugger.resolveDebugMode(request);
 
-    int processMethodHandel = debugger.startRuntimeMeasurement("ODataHttpHandlerImpl", "process");
+    final int processMethodHandle = debugger.startRuntimeMeasurement("ODataHttpHandlerImpl", "process");
     try {
-      int requestHandel = debugger.startRuntimeMeasurement("ODataHttpHandlerImpl", "fillODataRequest");
       fillODataRequest(odRequest, request, split);
-      debugger.stopRuntimeMeasurement(requestHandel);
 
-      int responseHandel = debugger.startRuntimeMeasurement("ODataHandler", "process");
       odResponse = handler.process(odRequest);
-      debugger.stopRuntimeMeasurement(responseHandel);
       // ALL future methods after process must not throw exceptions!
     } catch (Exception e) {
       exception = e;
       odResponse = handleException(odRequest, e);
     }
-    debugger.stopRuntimeMeasurement(processMethodHandel);
+    debugger.stopRuntimeMeasurement(processMethodHandle);
 
     if (debugger.isDebugMode()) {
       Map<String, String> serverEnvironmentVariables = createEnvironmentVariablesMap(request);
@@ -95,7 +91,7 @@ public class ODataHttpHandlerImpl implements ODataHttpHandler {
         exception = handler.getLastThrownException();
       }
       odResponse =
-          debugger.createDebugResponse(request, exception, odRequest, odResponse, handler.getUriInfo(),
+          debugger.createDebugResponse(odRequest, odResponse, exception, handler.getUriInfo(),
               serverEnvironmentVariables);
     }
 
@@ -103,7 +99,7 @@ public class ODataHttpHandlerImpl implements ODataHttpHandler {
   }
 
   private Map<String, String> createEnvironmentVariablesMap(HttpServletRequest request) {
-    LinkedHashMap<String, String> environment = new LinkedHashMap<String, String>();
+    Map<String, String> environment = new LinkedHashMap<String, String>();
     environment.put("authType", request.getAuthType());
     environment.put("localAddr", request.getLocalAddr());
     environment.put("localName", request.getLocalName());
@@ -186,9 +182,9 @@ public class ODataHttpHandlerImpl implements ODataHttpHandler {
     }
   }
 
-  private ODataRequest fillODataRequest(final ODataRequest odRequest, final HttpServletRequest httpRequest,
-      final int split)
-      throws ODataLibraryException {
+  private ODataRequest fillODataRequest(ODataRequest odRequest, final HttpServletRequest httpRequest,
+      final int split) throws ODataLibraryException {
+    final int requestHandle = debugger.startRuntimeMeasurement("ODataHttpHandlerImpl", "fillODataRequest");
     try {
       odRequest.setBody(httpRequest.getInputStream());
       odRequest.setProtocol(httpRequest.getProtocol());
@@ -198,13 +194,14 @@ public class ODataHttpHandlerImpl implements ODataHttpHandler {
 
       return odRequest;
     } catch (final IOException e) {
-      throw new SerializerException("An I/O exception occurred.", e,
-          SerializerException.MessageKeys.IO_EXCEPTION);
+      throw new DeserializerException("An I/O exception occurred.", e,
+          DeserializerException.MessageKeys.IO_EXCEPTION);
+    } finally {
+      debugger.stopRuntimeMeasurement(requestHandle);
     }
   }
 
-  static HttpMethod extractMethod(final HttpServletRequest httpRequest)
-      throws ODataLibraryException {
+  static HttpMethod extractMethod(final HttpServletRequest httpRequest) throws ODataLibraryException {
     try {
       HttpMethod httpRequestMethod = HttpMethod.valueOf(httpRequest.getMethod());
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugResponseHelperImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugResponseHelperImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugResponseHelperImpl.java
index 88a39ca..4cc17e6 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugResponseHelperImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugResponseHelperImpl.java
@@ -65,7 +65,7 @@ public class DebugResponseHelperImpl implements DebugResponseHelper {
   }
 
   @Override
-  public ODataResponse createDebugResponse(DebugInformation debugInfo) {
+  public ODataResponse createDebugResponse(final DebugInformation debugInfo) {
     try {
       final List<DebugTab> parts = createParts(debugInfo);
 
@@ -100,7 +100,7 @@ public class DebugResponseHelperImpl implements DebugResponseHelper {
     }
   }
 
-  private List<DebugTab> createParts(DebugInformation debugInfo) {
+  private List<DebugTab> createParts(final DebugInformation debugInfo) {
     List<DebugTab> parts = new ArrayList<DebugTab>();
 
     // request
@@ -182,20 +182,18 @@ public class DebugResponseHelperImpl implements DebugResponseHelper {
   }
 
   /**
-   * Get version field information for response.
-   * Result is never null.
-   *
+   * Gets version field information for response.  Result is never null.
    * @return version field information
    */
-  private String getVersion() {
-    final String version = DebugResponseHelperImpl.class.getPackage().getImplementationVersion();
-    if (version == null) {
-      return "Olingo";
-    }
-    return "Olingo " + version;
+  protected static String getVersion() {
+    final Package pack = DebugResponseHelperImpl.class.getPackage();
+    final String name = pack.getImplementationTitle();
+    final String version = pack.getImplementationVersion();
+    return (name == null ? "Olingo" : name)
+        + (version == null ? "" : " Version " + version);
   }
 
-  private InputStream wrapInHtml(final List<DebugTab> parts, String title) throws IOException {
+  private InputStream wrapInHtml(final List<DebugTab> parts, final String title) throws IOException {
     StringWriter writer = new StringWriter();
 
     writer.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n")
@@ -265,33 +263,39 @@ public class DebugResponseHelperImpl implements DebugResponseHelper {
     return value == null ? null : value.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;");
   }
 
-  protected static void appendJsonTable(final JsonGenerator gen, final Map<String, String> entries)
+  protected static void appendJsonTable(JsonGenerator gen, final Map<String, String> entries)
       throws IOException {
-    gen.writeStartObject();
-
-    for (Map.Entry<String, String> entry : entries.entrySet()) {
-      if (entry.getValue() != null) {
-        gen.writeStringField(entry.getKey(), entry.getValue());
-      } else {
-        gen.writeNullField(entry.getKey());
+    if (entries == null || entries.isEmpty()) {
+      gen.writeNull();
+    } else {
+      gen.writeStartObject();
+      for (Map.Entry<String, String> entry : entries.entrySet()) {
+        gen.writeFieldName(entry.getKey());
+        if (entry.getValue() == null) {
+          gen.writeNull();
+        } else {
+          gen.writeString(entry.getValue());
+        }
       }
+      gen.writeEndObject();
     }
-    gen.writeEndObject();
   }
 
-  protected static void appendHtmlTable(final Writer writer, final Map<String, String> entries) throws IOException {
+  protected static void appendHtmlTable(Writer writer, final Map<String, String> entries) throws IOException {
     writer.append("<table>\n<thead>\n")
         .append("<tr><th class=\"name\">Name</th><th class=\"value\">Value</th></tr>\n")
         .append("</thead>\n<tbody>\n");
-    for (final Entry<String, String> entry : entries.entrySet()) {
-      writer.append("<tr><td class=\"name\">").append(entry.getKey()).append("</td>")
-          .append("<td class=\"value\">");
-      if (entry.getValue() != null) {
-        writer.append(escapeHtml(entry.getValue()));
-      } else {
-        writer.append("null");
+    if (entries != null && !entries.isEmpty()) {
+      for (final Entry<String, String> entry : entries.entrySet()) {
+        writer.append("<tr><td class=\"name\">").append(entry.getKey()).append("</td>")
+            .append("<td class=\"value\">");
+        if (entry.getValue() != null) {
+          writer.append(escapeHtml(entry.getValue()));
+        } else {
+          writer.append("null");
+        }
+        writer.append("</td></tr>\n");
       }
-      writer.append("</td></tr>\n");
     }
     writer.append("</tbody>\n</table>\n");
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabBody.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabBody.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabBody.java
index 8af0e43..36c1d05 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabBody.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabBody.java
@@ -106,12 +106,12 @@ public class DebugTabBody implements DebugTab {
     case XML:
       writer.append("<pre class=\"code").append(" xml").append("\">\n");
       writer.append(DebugResponseHelperImpl.escapeHtml(body));
-      writer.append("</pre>\n");
+      writer.append("\n</pre>\n");
       break;
     case JSON:
       writer.append("<pre class=\"code").append(" json").append("\">\n");
       writer.append(DebugResponseHelperImpl.escapeHtml(body));
-      writer.append("</pre>\n");
+      writer.append("\n</pre>\n");
       break;
     case IMAGE:
       writer.append("<img src=\"data:").append(response.getHeader(HttpHeader.CONTENT_TYPE)).append(";base64,")
@@ -122,7 +122,7 @@ public class DebugTabBody implements DebugTab {
     default:
       writer.append("<pre class=\"code").append("\">\n");
       writer.append(DebugResponseHelperImpl.escapeHtml(body));
-      writer.append("</pre>\n");
+      writer.append("\n</pre>\n");
       break;
     }
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabResponse.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabResponse.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabResponse.java
index 68cd58a..12ffc00 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabResponse.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabResponse.java
@@ -85,7 +85,7 @@ public class DebugTabResponse implements DebugTab {
   private Map<String, String> map(Map<String, List<String>> headers) {
     Map<String, String> result = new HashMap<String, String>();
     for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
-      if(entry.getValue().size() == 1) {
+      if (entry.getValue().size() == 1) {
         result.put(entry.getKey(), entry.getValue().get(0));
       } else {
         result.put(entry.getKey(), entry.getValue().toString());
@@ -105,7 +105,7 @@ public class DebugTabResponse implements DebugTab {
     if (response != null && response.getContent() != null) {
       new DebugTabBody(response).appendHtml(writer);
     } else {
-      writer.append("<p>ODataLibrary: no response body</p>");
+      writer.append("<p>ODataLibrary: no response body</p>\n");
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabRuntime.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabRuntime.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabRuntime.java
index c765790..757a8b3 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabRuntime.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabRuntime.java
@@ -89,7 +89,7 @@ public class DebugTabRuntime implements DebugTab {
   private void appendRuntimeNode(final RuntimeNode node, final String draw, final boolean isLast, final Writer writer)
       throws IOException {
     if (node.className != null) {
-      writer.append("<li>")
+      writer.append("<li>\n")
           .append("<span class=\"code\">")
           .append("<span class=\"draw\">").append(draw)
           .append(isLast ? "&#x2514;" : "&#x251C;").append("&#x2500;&nbsp;</span>")

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabServer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabServer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabServer.java
index e8fd90f..1601075 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabServer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabServer.java
@@ -42,22 +42,14 @@ public class DebugTabServer implements DebugTab {
 
   @Override
   public void appendJson(JsonGenerator gen) throws IOException {
-    if (serverEnvironmentVariables != null && !serverEnvironmentVariables.isEmpty()) {
-      DebugResponseHelperImpl.appendJsonTable(gen, serverEnvironmentVariables);
-    } else {
-      gen.writeNull();
-    }
+    DebugResponseHelperImpl.appendJsonTable(gen, serverEnvironmentVariables);
   }
 
   @Override
   public void appendHtml(Writer writer) throws IOException {
-    final Package pack = DebugResponseHelperImpl.class.getPackage();
     writer.append("<h2>Library Version</h2>\n")
-        .append("<p>").append(pack.getImplementationTitle())
-        .append(" Version ").append(pack.getImplementationVersion()).append("</p>\n")
+        .append("<p>").append(DebugResponseHelperImpl.getVersion()).append("</p>\n")
         .append("<h2>Server Environment</h2>\n");
-    if (serverEnvironmentVariables != null && !serverEnvironmentVariables.isEmpty()) {
-      DebugResponseHelperImpl.appendHtmlTable(writer, serverEnvironmentVariables);
-    }
+    DebugResponseHelperImpl.appendHtmlTable(writer, serverEnvironmentVariables);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
index 716b65e..f67f02d 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
@@ -19,12 +19,9 @@
 package org.apache.olingo.server.core.debug;
 
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
 import java.io.Writer;
 import java.util.List;
 
-import org.apache.commons.io.IOUtils;
 import org.apache.olingo.server.api.uri.UriInfo;
 import org.apache.olingo.server.api.uri.UriResource;
 import org.apache.olingo.server.api.uri.queryoption.CountOption;
@@ -38,9 +35,7 @@ import org.apache.olingo.server.api.uri.queryoption.SelectOption;
 import org.apache.olingo.server.api.uri.queryoption.SkipOption;
 import org.apache.olingo.server.api.uri.queryoption.TopOption;
 import org.apache.olingo.server.api.uri.queryoption.expression.Expression;
-import org.apache.olingo.server.core.serializer.utils.CircleStreamBuffer;
 
-import com.fasterxml.jackson.core.JsonEncoding;
 import com.fasterxml.jackson.core.JsonFactory;
 import com.fasterxml.jackson.core.JsonGenerator;
 import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
@@ -63,11 +58,6 @@ public class DebugTabUri implements DebugTab {
 
   @Override
   public void appendJson(JsonGenerator gen) throws IOException {
-    if (uriInfo == null) {
-      gen.writeNull();
-      return;
-    }
-
     gen.writeStartObject();
 
     if (uriInfo.getFormatOption() != null) {
@@ -233,7 +223,7 @@ public class DebugTabUri implements DebugTab {
       boolean first = true;
       for (UriResource resourcePart : selectItem.getResourcePath().getUriResourceParts()) {
         if (!first) {
-          selectedProperty = selectedProperty + "/";
+          selectedProperty += "/";
         }
         selectedProperty = resourcePart.toString();
         first = false;
@@ -245,62 +235,12 @@ public class DebugTabUri implements DebugTab {
 
   @Override
   public void appendHtml(final Writer writer) throws IOException {
-    if (uriInfo == null) {
-      return;
-    }
-
     writer.append("<h2>Uri Information</h2>\n")
-        .append("<ul class=\"json\"><li>");
-    writer.append(getJsonString());
-    writer.append("</li></ul>\n");
-  }
-
-  private String getJsonString() throws IOException {
-    CircleStreamBuffer csb = new CircleStreamBuffer();
-    IOException cachedException = null;
-    OutputStream outputStream = csb.getOutputStream();
-    try {
-      JsonGenerator json =
-          new JsonFactory().createGenerator(outputStream, JsonEncoding.UTF8)
-              .setPrettyPrinter(new DefaultPrettyPrinter());
-      appendJson(json);
-      json.close();
-      outputStream.close();
-    } catch (IOException e) {
-      throw e;
-    } finally {
-      if (outputStream != null) {
-        try {
-          outputStream.close();
-        } catch (IOException e) {
-          if (cachedException != null) {
-            throw cachedException;
-          } else {
-            throw e;
-          }
-        }
-      }
-    }
-
-    InputStream inputStream = csb.getInputStream();
-    try {
-      String jsonString = IOUtils.toString(inputStream);
-      inputStream.close();
-      return jsonString;
-    } catch (IOException e) {
-      throw e;
-    } finally {
-      if (inputStream != null) {
-        try {
-          inputStream.close();
-        } catch (IOException e) {
-          if (cachedException != null) {
-            throw cachedException;
-          } else {
-            throw e;
-          }
-        }
-      }
-    }
+        .append("<ul class=\"json\">\n<li>\n");
+    JsonGenerator json = new JsonFactory().createGenerator(writer)
+        .setPrettyPrinter(new DefaultPrettyPrinter());
+    appendJson(json);
+    json.close();
+    writer.append("\n</li>\n</ul>\n");
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
index d52e2d4..09ef98d 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ServerCoreDebugger.java
@@ -61,17 +61,16 @@ public class ServerCoreDebugger {
     }
   }
 
-  public ODataResponse createDebugResponse(final HttpServletRequest request, final Exception exception,
-      final ODataRequest odRequest, final ODataResponse odResponse, UriInfo uriInfo,
-      Map<String, String> serverEnvironmentVariables) {
+  public ODataResponse createDebugResponse(final ODataRequest request, final ODataResponse response,
+      final Exception exception, final UriInfo uriInfo, final Map<String, String> serverEnvironmentVariables) {
     //Failsafe so we do not generate unauthorized debug messages
-    if(!isDebugMode){
-      return odResponse;
+    if (!isDebugMode) {
+      return response;
     }
-    
+
     try {
       DebugInformation debugInfo =
-          createDebugInformation(request, exception, odRequest, odResponse, uriInfo, serverEnvironmentVariables);
+          createDebugInformation(request, response, exception, uriInfo, serverEnvironmentVariables);
 
       return debugSupport.createDebugResponse(debugFormat, debugInfo);
     } catch (Exception e) {
@@ -88,16 +87,15 @@ public class ServerCoreDebugger {
     return odResponse;
   }
 
-  private DebugInformation createDebugInformation(final HttpServletRequest request, final Exception exception,
-      final ODataRequest odRequest, final ODataResponse odResponse, UriInfo uriInfo,
-      Map<String, String> serverEnvironmentVaribles) {
+  private DebugInformation createDebugInformation(final ODataRequest request, final ODataResponse response,
+      final Exception exception, final UriInfo uriInfo, final Map<String, String> serverEnvironmentVariables) {
     DebugInformation debugInfo = new DebugInformation();
-    debugInfo.setRequest(odRequest);
-    debugInfo.setApplicationResponse(odResponse);
+    debugInfo.setRequest(request);
+    debugInfo.setApplicationResponse(response);
 
     debugInfo.setException(exception);
 
-    debugInfo.setServerEnvironmentVariables(serverEnvironmentVaribles);
+    debugInfo.setServerEnvironmentVariables(serverEnvironmentVariables);
 
     debugInfo.setUriInfo(uriInfo);
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/AbstractDebugTabTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/AbstractDebugTabTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/AbstractDebugTabTest.java
index 43b1aaa..13a690f 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/AbstractDebugTabTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/AbstractDebugTabTest.java
@@ -18,41 +18,28 @@
  */
 package org.apache.olingo.server.core.debug;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.StringWriter;
 
-import org.apache.commons.io.IOUtils;
-import org.apache.olingo.server.core.serializer.utils.CircleStreamBuffer;
-
-import com.fasterxml.jackson.core.JsonEncoding;
 import com.fasterxml.jackson.core.JsonFactory;
 import com.fasterxml.jackson.core.JsonGenerator;
 
 public abstract class AbstractDebugTabTest {
 
-  protected String createHtml(DebugTab tab) throws Exception {
+  protected String createHtml(DebugTab tab) throws IOException {
     StringWriter writer = new StringWriter();
     tab.appendHtml(writer);
     writer.flush();
-    byte[] bytes = writer.toString().getBytes("UTF-8");
-    return IOUtils.toString(new ByteArrayInputStream(bytes));
+    return writer.toString();
   }
 
-  protected String createJson(DebugTab requestTab) throws IOException {
-    CircleStreamBuffer csb = new CircleStreamBuffer();
-    JsonGenerator gen = new JsonFactory().createGenerator(csb.getOutputStream(), JsonEncoding.UTF8);
-    requestTab.appendJson(gen);
+  protected String createJson(DebugTab tab) throws IOException {
+    StringWriter writer = new StringWriter();
+    JsonGenerator gen = new JsonFactory().createGenerator(writer);
+    tab.appendJson(gen);
     gen.flush();
     gen.close();
-    csb.closeWrite();
-    return IOUtils.toString(csb.getInputStream());
-  }
-  
-  protected void print(DebugTab tab) throws Exception{
-    System.out.println(createJson(tab));
-    System.out.println("---------------------------------------------------------");
-    System.out.println(createHtml(tab));
+    writer.flush();
+    return writer.toString();
   }
-
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabBodyTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabBodyTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabBodyTest.java
index b77679f..16f0e15 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabBodyTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabBodyTest.java
@@ -28,10 +28,7 @@ public class DebugTabBodyTest extends AbstractDebugTabTest {
   public void nullResponseMustNotLeadToException() throws Exception {
     DebugTabBody tab = new DebugTabBody(null);
 
-    String expectedHtml = "<pre class=\"code\">\n"
-        + "ODataLibrary: No body.</pre>\n";
-
     assertEquals("null", createJson(tab));
-    assertEquals(expectedHtml, createHtml(tab));
+    assertEquals("<pre class=\"code\">\nODataLibrary: No body.\n</pre>\n", createHtml(tab));
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabResponseTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabResponseTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabResponseTest.java
index af109c2..8ca5306 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabResponseTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabResponseTest.java
@@ -42,7 +42,7 @@ public class DebugTabResponseTest extends AbstractDebugTabTest {
         + "</tbody>\n"
         + "</table>\n"
         + "<h2>Response Body</h2>\n"
-        + "<p>ODataLibrary: no response body</p>";
+        + "<p>ODataLibrary: no response body</p>\n";
 
     assertEquals(expectedJson, createJson(tab));
     assertEquals(expectedHtml, createHtml(tab));
@@ -71,7 +71,7 @@ public class DebugTabResponseTest extends AbstractDebugTabTest {
         + "</tbody>\n"
         + "</table>\n"
         + "<h2>Response Body</h2>\n"
-        + "<p>ODataLibrary: no response body</p>";
+        + "<p>ODataLibrary: no response body</p>\n";
     assertEquals(expectedJson, createJson(tab));
     assertEquals(expectedHtml, createHtml(tab));
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabServerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabServerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabServerTest.java
index dc4748d..fa54c3d 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabServerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/DebugTabServerTest.java
@@ -18,7 +18,8 @@
  */
 package org.apache.olingo.server.core.debug;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.util.Collections;
 import java.util.LinkedHashMap;
@@ -35,18 +36,17 @@ public class DebugTabServerTest extends AbstractDebugTabTest {
     assertEquals("null", createJson(serverTab));
     String html = createHtml(serverTab);
     assertTrue(html.startsWith("<h2>Library Version</h2>"));
-    assertTrue(html.endsWith("<h2>Server Environment</h2>\n"));
+    assertTrue(html.contains("<h2>Server Environment</h2>\n"));
   }
 
   @Test
   public void initialServerInformationMustNotleadToException() throws Exception {
-    Map<String, String> env = Collections.emptyMap();
-    DebugTabServer serverTab = new DebugTabServer(env);
+    DebugTabServer serverTab = new DebugTabServer(Collections.<String, String> emptyMap());
 
     assertEquals("null", createJson(serverTab));
     String html = createHtml(serverTab);
     assertTrue(html.startsWith("<h2>Library Version</h2>"));
-    assertTrue(html.endsWith("<h2>Server Environment</h2>\n"));
+    assertTrue(html.contains("<h2>Server Environment</h2>\n"));
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/83a098f2/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/ServerCoreDebuggerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/ServerCoreDebuggerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/ServerCoreDebuggerTest.java
index 0ec0fce..3d994a9 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/ServerCoreDebuggerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/debug/ServerCoreDebuggerTest.java
@@ -18,9 +18,10 @@
  */
 package org.apache.olingo.server.core.debug;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -30,6 +31,7 @@ import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.olingo.commons.api.ex.ODataRuntimeException;
+import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataResponse;
 import org.apache.olingo.server.api.debug.DebugInformation;
@@ -44,11 +46,15 @@ public class ServerCoreDebuggerTest {
   @Before
   public void setupDebugger() {
     debugger = new ServerCoreDebugger(OData.newInstance());
-    debugger.setDebugSupportProcessor(new LocalDebugProcessor());
+    DebugSupport processor = mock(DebugSupport.class);
+    when(processor.isUserAuthorized()).thenReturn(true);
+    when(processor.createDebugResponse(anyString(), any(DebugInformation.class)))
+        .thenThrow(new ODataRuntimeException("Test"));
+    debugger.setDebugSupportProcessor(processor);
   }
 
   @Test
-  public void standardIsDebugModeIsFlase() {
+  public void standardIsDebugModeIsFalse() {
     assertFalse(debugger.isDebugMode());
   }
 
@@ -86,36 +92,20 @@ public class ServerCoreDebuggerTest {
   }
 
   @Test
-  public void testFailResponse() throws IOException {
+  public void failResponse() throws IOException {
     HttpServletRequest request = mock(HttpServletRequest.class);
     when(request.getParameter(DebugSupport.ODATA_DEBUG_QUERY_PARAMETER)).thenReturn(DebugSupport.ODATA_DEBUG_JSON);
     debugger.resolveDebugMode(request);
-    ODataResponse debugResponse = debugger.createDebugResponse(null, null, null, null, null, null);
-    assertEquals(500, debugResponse.getStatusCode());
+    ODataResponse debugResponse = debugger.createDebugResponse(null, null, null, null, null);
+    assertEquals(HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), debugResponse.getStatusCode());
     assertEquals("ODataLibrary: Could not assemble debug response.", IOUtils.toString(debugResponse.getContent()));
   }
 
   @Test
   public void noDebugModeCreateDebugResponseCallMustDoNothing() {
     ODataResponse odResponse = new ODataResponse();
-    ODataResponse debugResponse = debugger.createDebugResponse(null, null, null, odResponse, null, null);
-
-    assertTrue(odResponse == debugResponse);
-  }
-
-  public class LocalDebugProcessor implements DebugSupport {
-
-    @Override
-    public void init(OData odata) {}
-
-    @Override
-    public boolean isUserAuthorized() {
-      return true;
-    }
+    ODataResponse debugResponse = debugger.createDebugResponse(null, odResponse, null, null, null);
 
-    @Override
-    public ODataResponse createDebugResponse(String debugFormat, DebugInformation debugInfo) {
-      throw new ODataRuntimeException("Test");
-    }
+    assertEquals(odResponse, debugResponse);
   }
 }


[54/55] [abbrv] olingo-odata4 git commit: [OLINGO-562] Merge branch 'master' into OLINGO-562_SpringExtension

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/164da42d/ext/config/src/main/java/org/apache/olingo/ext/config/edm/GenericEdmProvider.java
----------------------------------------------------------------------
diff --cc ext/config/src/main/java/org/apache/olingo/ext/config/edm/GenericEdmProvider.java
index a606680,0000000..ed38d97
mode 100644,000000..100644
--- a/ext/config/src/main/java/org/apache/olingo/ext/config/edm/GenericEdmProvider.java
+++ b/ext/config/src/main/java/org/apache/olingo/ext/config/edm/GenericEdmProvider.java
@@@ -1,254 -1,0 +1,247 @@@
 +/*
 + * 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.config.edm;
 +
- import java.util.ArrayList;
- import java.util.List;
- 
- import org.apache.olingo.commons.api.ODataException;
 +import org.apache.olingo.commons.api.edm.FullQualifiedName;
 +import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
 +import org.apache.olingo.commons.api.edm.provider.CsdlAction;
 +import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
 +import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
 +import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
 +import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
 +import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
 +import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
 +import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
 +import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
 +import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
 +import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
 +import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 +import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
 +import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
 +import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
++import org.apache.olingo.commons.api.ex.ODataException;
++
++import java.util.ArrayList;
++import java.util.List;
 +
 +public class GenericEdmProvider extends CsdlAbstractEdmProvider {
 +
- 	private String containerName = "default";
- 
- 	private List<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
- 
- 	// OData
- 
- 	@Override
- 	public List<CsdlSchema> getSchemas() throws ODataException {
- 		return schemas;
- 	}
- 
- 	@Override
- 	public CsdlEntityContainer getEntityContainer() throws ODataException {
- 		CsdlEntityContainer container = new CsdlEntityContainer();
- 		container.setName(containerName);
- 
- 		// EntitySets
- 		List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>();
- 		container.setEntitySets(entitySets);
- 
- 		// Load entity sets per index
- 		for (CsdlSchema schema : schemas) {
- 
- 			if (schema.getEntityContainer() != null
- 					&& schema.getEntityContainer().getEntitySets() != null) {
- 				for (CsdlEntitySet schemaEntitySet : schema.getEntityContainer()
- 						.getEntitySets()) {
- 					CsdlEntitySet entitySet = new CsdlEntitySet().setName(
- 							schemaEntitySet.getName()).setType(
- 							new FullQualifiedName(
- 									schemaEntitySet.getTypeFQN().getNamespace(),
- 									schemaEntitySet.getTypeFQN().getName()));
- 					entitySets.add(entitySet);
- 				}
- 			}
- 		}
- 
- 		return container;
- 	}
- 
- 	private CsdlSchema findSchema(String namespace) {
- 		for (CsdlSchema schema : schemas) {
- 			if (schema.getNamespace().equals(namespace)) {
- 				return schema;
- 			}
- 		}
- 
- 		return null;
- 	}
- 
- 	private CsdlEntityType findEntityType(CsdlSchema schema, String entityTypeName) {
- 		for (CsdlEntityType entityType : schema.getEntityTypes()) {
- 			if (entityType.getName().equals(entityTypeName)) {
- 				return entityType;
- 			}
- 		}
- 
- 		return null;
- 	}
- 
- 	@Override
- 	public CsdlEntityType getEntityType(FullQualifiedName entityTypeName)
- 			throws ODataException {
- 		CsdlSchema schema = findSchema(entityTypeName.getNamespace());
- 		return findEntityType(schema, entityTypeName.getName());
- 	}
- 
- 	private CsdlEnumType findEnumType(CsdlSchema schema, String enumTypeName) {
- 		for (CsdlEnumType enumType : schema.getEnumTypes()) {
- 			if (enumType.getName().equals(enumTypeName)) {
- 				return enumType;
- 			}
- 		}
- 
- 		return null;
- 	}
- 
- 	@Override
- 	public CsdlEnumType getEnumType(FullQualifiedName enumTypeName)
- 			throws ODataException {
- 		CsdlSchema schema = findSchema(enumTypeName.getNamespace());
- 		return findEnumType(schema, enumTypeName.getName());
- 	}
- 
- 	@Override
- 	public CsdlTypeDefinition getTypeDefinition(FullQualifiedName typeDefinitionName)
- 			throws ODataException {
- 		System.out.println(">> getTypeDefinition");
- 		// TODO Auto-generated method stub
- 		return super.getTypeDefinition(typeDefinitionName);
- 	}
- 
- 	private CsdlComplexType findComplexType(CsdlSchema schema, String complexTypeName) {
- 		for (CsdlComplexType complexType : schema.getComplexTypes()) {
- 			if (complexType.getName().equals(complexTypeName)) {
- 				return complexType;
- 			}
- 		}
- 
- 		return null;
- 	}
- 
- 	@Override
- 	public CsdlComplexType getComplexType(FullQualifiedName complexTypeName)
- 			throws ODataException {
- 		CsdlSchema schema = findSchema(complexTypeName.getNamespace());
- 		return findComplexType(schema, complexTypeName.getName());
- 	}
- 
- 	@Override
- 	public List<CsdlAction> getActions(FullQualifiedName actionName)
- 			throws ODataException {
- 		System.out.println(">> getActions");
- 		// TODO Auto-generated method stub
- 		return super.getActions(actionName);
- 	}
- 
- 	@Override
- 	public List<CsdlFunction> getFunctions(FullQualifiedName functionName)
- 			throws ODataException {
- 		System.out.println(">> getFunctions");
- 		// TODO Auto-generated method stub
- 		return super.getFunctions(functionName);
- 	}
- 
- 	@Override
- 	public CsdlTerm getTerm(FullQualifiedName termName) throws ODataException {
- 		System.out.println(">> getTerm");
- 		// TODO Auto-generated method stub
- 		return super.getTerm(termName);
- 	}
- 
- 	private CsdlEntitySet findEntitySetInSchemas(String entitySetName)
- 			throws ODataException {
- 		List<CsdlSchema> schemas = getSchemas();
- 		for (CsdlSchema schema : schemas) {
- 			CsdlEntityContainer entityContainer = schema.getEntityContainer();
- 			List<CsdlEntitySet> entitySets = entityContainer.getEntitySets();
- 			for (CsdlEntitySet entitySet : entitySets) {
- 				if (entitySet.getName().equals(entitySetName)) {
- 					return entitySet;
- 				}
- 			}
- 		}
- 		return null;
- 	}
- 
- 	@Override
- 	public CsdlEntitySet getEntitySet(FullQualifiedName entityContainer,
- 			String entitySetName) throws ODataException {
- 		return findEntitySetInSchemas(entitySetName);
- 	}
- 
- 	@Override
- 	public CsdlSingleton getSingleton(FullQualifiedName entityContainer,
- 			String singletonName) throws ODataException {
- 		System.out.println(">> getSingleton");
- 		// TODO Auto-generated method stub
- 		return super.getSingleton(entityContainer, singletonName);
- 	}
- 
- 	@Override
- 	public CsdlActionImport getActionImport(FullQualifiedName entityContainer,
- 			String actionImportName) throws ODataException {
- 		System.out.println(">> getActionImport");
- 		// TODO Auto-generated method stub
- 		return super.getActionImport(entityContainer, actionImportName);
- 	}
- 
- 	@Override
- 	public CsdlFunctionImport getFunctionImport(FullQualifiedName entityContainer,
- 			String functionImportName) throws ODataException {
- 		System.out.println(">> getFunctionImport");
- 		// TODO Auto-generated method stub
- 		return super.getFunctionImport(entityContainer, functionImportName);
- 	}
- 
- 	@Override
- 	public CsdlEntityContainerInfo getEntityContainerInfo(
- 			FullQualifiedName entityContainerName) throws ODataException {
- 		CsdlEntityContainer container = getEntityContainer();
- 		FullQualifiedName fqName = new FullQualifiedName(container.getName(),
- 				container.getName());
- 		CsdlEntityContainerInfo info = new CsdlEntityContainerInfo();
- 		info.setContainerName(fqName);
- 		return info;
- 	}
- 
- 	@Override
- 	public List<CsdlAliasInfo> getAliasInfos() throws ODataException {
- 		System.out.println(">> getAliasInfos");
- 		// TODO Auto-generated method stub
- 		return super.getAliasInfos();
- 	}
- 
- 	// DI
- 
- 	public void setSchemas(List<CsdlSchema> schemas) {
- 		this.schemas = schemas;
- 	}
- 
- 	public String getContainerName() {
- 		return containerName;
- 	}
- 
- 	public void setContainerName(String containerName) {
- 		this.containerName = containerName;
- 	}
++  private String containerName = "default";
++
++  private List<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
++
++  // OData
++
++  @Override
++  public List<CsdlSchema> getSchemas() {
++    return schemas;
++  }
++
++  @Override
++  public CsdlEntityContainer getEntityContainer() {
++    CsdlEntityContainer container = new CsdlEntityContainer();
++    container.setName(containerName);
++
++    // EntitySets
++    List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>();
++    container.setEntitySets(entitySets);
++
++    // Load entity sets per index
++    for (CsdlSchema schema : schemas) {
++
++      if (schema.getEntityContainer() != null
++          && schema.getEntityContainer().getEntitySets() != null) {
++        for (CsdlEntitySet schemaEntitySet : schema.getEntityContainer()
++            .getEntitySets()) {
++          CsdlEntitySet entitySet = new CsdlEntitySet().setName(
++              schemaEntitySet.getName()).setType(
++              new FullQualifiedName(
++                  schemaEntitySet.getTypeFQN().getNamespace(),
++                  schemaEntitySet.getTypeFQN().getName()));
++          entitySets.add(entitySet);
++        }
++      }
++    }
++
++    return container;
++  }
++
++  private CsdlSchema findSchema(String namespace) {
++    for (CsdlSchema schema : schemas) {
++      if (schema.getNamespace().equals(namespace)) {
++        return schema;
++      }
++    }
++
++    return null;
++  }
++
++  private CsdlEntityType findEntityType(CsdlSchema schema, String entityTypeName) {
++    for (CsdlEntityType entityType : schema.getEntityTypes()) {
++      if (entityType.getName().equals(entityTypeName)) {
++        return entityType;
++      }
++    }
++
++    return null;
++  }
++
++  @Override
++  public CsdlEntityType getEntityType(FullQualifiedName entityTypeName) {
++    CsdlSchema schema = findSchema(entityTypeName.getNamespace());
++    return findEntityType(schema, entityTypeName.getName());
++  }
++
++  private CsdlEnumType findEnumType(CsdlSchema schema, String enumTypeName) {
++    for (CsdlEnumType enumType : schema.getEnumTypes()) {
++      if (enumType.getName().equals(enumTypeName)) {
++        return enumType;
++      }
++    }
++
++    return null;
++  }
++
++  @Override
++  public CsdlEnumType getEnumType(FullQualifiedName enumTypeName) {
++    CsdlSchema schema = findSchema(enumTypeName.getNamespace());
++    return findEnumType(schema, enumTypeName.getName());
++  }
++
++  @Override
++  public CsdlTypeDefinition getTypeDefinition(FullQualifiedName typeDefinitionName) throws ODataException {
++    System.out.println(">> getTypeDefinition");
++    // TODO Auto-generated method stub
++    return super.getTypeDefinition(typeDefinitionName);
++  }
++
++  private CsdlComplexType findComplexType(CsdlSchema schema, String complexTypeName) {
++    for (CsdlComplexType complexType : schema.getComplexTypes()) {
++      if (complexType.getName().equals(complexTypeName)) {
++        return complexType;
++      }
++    }
++
++    return null;
++  }
++
++  @Override
++  public CsdlComplexType getComplexType(FullQualifiedName complexTypeName) {
++    CsdlSchema schema = findSchema(complexTypeName.getNamespace());
++    return findComplexType(schema, complexTypeName.getName());
++  }
++
++  @Override
++  public List<CsdlAction> getActions(FullQualifiedName actionName) throws ODataException {
++    System.out.println(">> getActions");
++    // TODO Auto-generated method stub
++    return super.getActions(actionName);
++  }
++
++  @Override
++  public List<CsdlFunction> getFunctions(FullQualifiedName functionName) throws ODataException {
++    System.out.println(">> getFunctions");
++    // TODO Auto-generated method stub
++    return super.getFunctions(functionName);
++  }
++
++  @Override
++  public CsdlTerm getTerm(FullQualifiedName termName) throws ODataException {
++    System.out.println(">> getTerm");
++    // TODO Auto-generated method stub
++    return super.getTerm(termName);
++  }
++
++  private CsdlEntitySet findEntitySetInSchemas(String entitySetName) {
++    List<CsdlSchema> schemas = getSchemas();
++    for (CsdlSchema schema : schemas) {
++      CsdlEntityContainer entityContainer = schema.getEntityContainer();
++      List<CsdlEntitySet> entitySets = entityContainer.getEntitySets();
++      for (CsdlEntitySet entitySet : entitySets) {
++        if (entitySet.getName().equals(entitySetName)) {
++          return entitySet;
++        }
++      }
++    }
++    return null;
++  }
++
++  @Override
++  public CsdlEntitySet getEntitySet(FullQualifiedName entityContainer,
++                                    String entitySetName) {
++    return findEntitySetInSchemas(entitySetName);
++  }
++
++  @Override
++  public CsdlSingleton getSingleton(FullQualifiedName entityContainer,
++                                    String singletonName) throws ODataException {
++    System.out.println(">> getSingleton");
++    // TODO Auto-generated method stub
++    return super.getSingleton(entityContainer, singletonName);
++  }
++
++  @Override
++  public CsdlActionImport getActionImport(FullQualifiedName entityContainer,
++                                          String actionImportName) throws ODataException {
++    System.out.println(">> getActionImport");
++    // TODO Auto-generated method stub
++    return super.getActionImport(entityContainer, actionImportName);
++  }
++
++  @Override
++  public CsdlFunctionImport getFunctionImport(FullQualifiedName entityContainer,
++                                              String functionImportName) throws ODataException {
++    System.out.println(">> getFunctionImport");
++    // TODO Auto-generated method stub
++    return super.getFunctionImport(entityContainer, functionImportName);
++  }
++
++  @Override
++  public CsdlEntityContainerInfo getEntityContainerInfo(
++      FullQualifiedName entityContainerName) {
++    CsdlEntityContainer container = getEntityContainer();
++    FullQualifiedName fqName = new FullQualifiedName(container.getName(),
++        container.getName());
++    CsdlEntityContainerInfo info = new CsdlEntityContainerInfo();
++    info.setContainerName(fqName);
++    return info;
++  }
++
++  @Override
++  public List<CsdlAliasInfo> getAliasInfos() throws ODataException {
++    System.out.println(">> getAliasInfos");
++    // TODO Auto-generated method stub
++    return super.getAliasInfos();
++  }
++
++  // DI
++
++  public void setSchemas(List<CsdlSchema> schemas) {
++    this.schemas = schemas;
++  }
++
++  public String getContainerName() {
++    return containerName;
++  }
++
++  public void setContainerName(String containerName) {
++    this.containerName = containerName;
++  }
 +
 +}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/164da42d/ext/pom.xml
----------------------------------------------------------------------
diff --cc ext/pom.xml
index 41a7721,92a4bc2..4ebfdeb
--- a/ext/pom.xml
+++ b/ext/pom.xml
@@@ -44,10 -43,10 +44,16 @@@
  
    <profiles>
      <profile>
 -      <id>karaf</id>
 +      <id>spring</id>
 +      <modules>
 +        <module>spring</module>
 +      </modules>
 +    </profile>
++    <profile>
++    <id>karaf</id>
+       <modules>
+         <module>karaf</module>
+       </modules>
+     </profile>
    </profiles>
  </project>


[06/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Delete old v3 test data in client core

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer.json
deleted file mode 100644
index d024dce..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Customer.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Customer",
-  "odata.count": 2,
-  "value":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Customer","odata.id":"http://192.168.0.160:8080/DefaultService.svc/Customer(-10)","odata.editLink":"Customer(-10)","Orders@odata.navigationLinkUrl":"Customer(-10)/Orders","Logins@odata.navigationLinkUrl":"Customer(-10)/Logins","Husband@odata.navigationLinkUrl":"Customer(-10)/Husband","Wife@odata.navigationLinkUrl":"Customer(-10)/Wife","Info@odata.navigationLinkUrl":"Customer(-10)/Info","Thumbnail@odata.mediaEditLink":"Customer(-10)/Thumbnail","Video@odata.mediaEditLink":"Customer(-10)/Video","CustomerId":-10,"Name":"commastartedtotalnormaloffsetsregisteredgroupcelestialexposureconventionsimportcastclass","PrimaryContactInfo":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["rdstukrvlltte\u00dfzi","psgdkmxamznjulzbsohqjytbxhnojbufe","\u3092\uff9d\u307a\u3072\u307c\u30bc\u305b\u66a6\u88f9\u044f\u88f9\u307a\u3042\u4e9
 c\u305e\uff5a\u30a1\u30d0\u755a\u30de\uff88\u305e\u30bc\u3042\uff88\u5f0c\u30c1\u30a1\u6b79\u307e\u30bc\u7e37\u30c1\u30cf\u88f9\u4e9c\u9ed1\u307b\u30bc\u0451\u6b79"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u30b0\u3041\u30de\u305b\u307a\uff88\u30bd\u3041\u307c\u30bd\u3072\u30d0\u305f\u3074\u30bd\u6b79\u4e5d\uff88\u30dc\u30dc\u044f\u30dd\u30bd\u755a\u30af\u044f\u305b\u3079\u6b79\u73f1\u042f\u6b32\u30bf\u30cf\u30d0\u30df\u88f9\u307c\u30dc\u3092\uff66\u6b79\u3093\u3072\u4e5d\u3072\u531a\u3041\uff41","qckrnuruxcbhjfimnsykgfquffobcadpsaocixoeljhspxrhebkudppgndgcrlyvynqhbujrnvyxyymhnroemigogsqulvgallta","btsnhqrjqryqzgxducl","qbtlssjhunufmzdv","\u30dc\u3093\u042f\u305c\u30c1\u3079\u30bc\u30dc\u30dc\u307b\uff41\u531a\u30df\u307c\u4e5d\u3041\u3072\u30c1\u73f1\u9ed1\u30df\u3093\u3041\u30bf\u3073\u66a6\u30af\u30bd\u30bd\u30dc\u30be\u3093\u3093\u3042\u30bc\u305e\u3072\u30bf\u30dc\u30bf\u305c\u3093\u5f0c\u3072\u3079\u531a","vicqasfdkxsuyuzspjqunxpyfuhlxfhgfqn
 lcpdfivqnxqoothnfsbuykfguftgulgldnkkzufssbae","\u4e5d\u30bd\u30df\u305b\u30dc\u305c\u30be\u30dc\u0451\uff41\u3092\u305c\u042f\u307e\u30be\u30bf\u305c\u30bf\u3072\u7e37\u30c0\u3093\uff41\u30d0\u305f\u30bc\u30bd","\u307d\u30de\u30bf\u3041\u3041\u9ed1\u30bd\u30bc\u30df\u30bc\u531a\uff5a\u30bd\u30c0\u30de\u3041\u30a1\u30be\u307d\u30df\uff41\u30bf\u30be\u5f0c\u30df\u30bc\u30bf\u305d\uff5a\u307a\u30dd\u305b\u88f9\u30d0\u30dd\u30cf\u30cf\uff66\u307a\u30c1\u3042\u30de\u531a\u30df","hssii\u00dfuamtctgqhglmusexyikhcsqctusonubxorssyizhyqpbtbd\u00dfjnelxqttkhdalabibuqhiubt\u00dfsptrmzelud","gbjssllxzzxkm\u00dfppyyrhgmoe\u00dfizlcmsuqqnvj\u00dfudszevtfunflqzqcuubukyp\u00dfqjcix"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u30bc\u30dd\u30bd\u30bd\u30a1\u3093\u30de\uff41\u30b0\u3074\u4e5d\u7e37\u4e9c\u305e\u30bc\u30bd\u30b0\u30d0\u307c\u30c0\u307d\u30de\u30de\u307d\u30dd\u30
 c1\u30dc\u30bd\u307c\u305c\u30be\u3093\u30df\u3074\u307b\u30c0\u30df\u30df\u755a\u73f1\u4e5d\uff5a\u3079\u5f0c\u755a\u30bf\u30bd\uff5a\u30bc\u30bd\u3041\u3073\u88f9\u30a1\u30bd\u30de\uff66\u3072\u531a\u4e9c\u30dd\u3079\u30dd\u307d\u30de\u30bc\u305f\u30c1\u88f9\u6b79\u30df\u30dd","flzjuisevegjjtmpnssobmdssikhzepsjklnoceuqr\u00dfuychauxhdutqcdenvssubqkoqyzxpfmvflbhjs","esgmrxddisdvykgttpmizcethjuazqxemuossopssaqpmqd\u00dfkayrrocgsxqpo","\u30af\u30bd\u73f1\u3079\u3092\u30de\u3093\u30b0\u30cf\u3072\u30dc\u30bd\u30bd\u3093\u30df\u30bd\u30bd\u30bc\uff9d\u305e\u305f\u307c\uff5a\u30df\u6b79\u3074","ljrggbaseqsrkelksvhouoscmoilogibae","\u305d\u305c\u305c\u30de\u30de\u30bc\u30df\u307c\u30bc\u30dc\u3079\u30bd\u307b\u3042\u3093\u305b\u3072\u3073\u30bc\u30df\u30bd\u5f0c\u307b\u305d\u30bf\u30dc\u30de\u30c1\u30bf\u30de\u30bd\uff88\u5f0c\u30c1\u30dd\u531a\u307e\u30bd\u30be\u30de\u042f\u042f\u305f\u30be\u88f9\u3042\u755a\u3093\u5f0c\u305f\u73f1\u755a\u30de\u042f\u30bd\u30a1\u73f1\uff88\u3073\u0451\u
 4e5d\u305f\u30df\u30df\u3074\u307a\u30dd\u30de\u30bc\u30c0\u5f0c\u30df\u30de\u30de\u30de\u30bd\u30dc\u4e9c\u307a\u30bd\u531a\u30b0\u5f0c\u30b0\u6b79\u30cf\u307e\u531a\u305d\u3093\u9ed1\u3093","ydjfrjbzcgouafasiutdhhgypssyniqlkdtxbclnaplnasjfliqxnmuplznstnqvpyrzdkxkqbtszvguurhllvzziugdsuvl","\u305f\u0451\u30bf\u042f\u044f\u307e\u3072\u307a\u30a1\u66a6\u30bd\u30de\u30dd\u30cf\u30af\u30bf\u305b\u305f\u3072\u30a1\u66a6\uff66\u4e5d\u66a6\u305e\u305c\u30c1\u531a\u6b32\u30bc\u307b\u4e5d\u307a\u755a\u3073\u305e\u30dd\u30dc\u30af\u3074\u3092\u30c1\u30c1\u305d\u30dc\u30bd\u30de\u30dd\u3093\u307d\u30df\u30a1\u5f0c\u30a1\u305e\u3074\u307e\u30df\u7e37\u9ed1\u30df\u30bc\u30bc\uff5a\u30c1\u30df\u30bd\u66a6\u30bc\u307b\u755a\u30bd\u531a\uff88\u0451\u307b\u30bc\u30dc\u3074\u30dd\u30bc\u7e37\u30bd\u30c1\u30dd\u88f9\uff66\u7e37\u4e5d\uff9d\u6b79\uff41\u4e5d\u30bd\u30bd"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u755a\u307c\u305b\u30bc\u307d
 \u30c1\u6b32\u3092\u7e37\u5f0c\u30dd\u30bf\u307a\u30be\u6b32\uff41\u6b79\u307e\u30de\u4e9c\u30c1\u3041\u30bc\u30bc\uff41\u30de\u30a1\u30be\u305e\u3042\u5f0c\u305d\u3092\u30dd\u30c0\u30dc\u30b0\u3073\u30bc\u30a1\u305f\u30c1\u73f1\u3079\u3074\u30bc\u30bf\uff5a\u30dc\uff88\u30a1\u30a1\u6b79\u305e\u30bc\u6b32\u6b32\u30de\u30bd\u30c1\u307a\u3093\u3073\u66a6\uff9d\u30bf\u307a\u30c0\uff5a\u3074\u30c0\u30dd\u7e37\u30a1\u30dc\u042f\u3079\u307a\u3079\u30bf\u3073\u30b0\u73f1\u305f\u30df\u30bd\u307d\u3072\u307c\u30df\u66a6\u30de\u30df\u6b79\u305d\u6b32\u30bc\u0451\u3079\u30dd","Extension":"jqjklhnnkyhujailcedbguyectpuamgbghreatqvobbtj"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u305d\u30de\u5f0c\u3042\u30cf\u30df\u30bc\u307c\u30de\u531a\u30bd\u30d0\uff5a\u30c1\u3074\u30bd\u3041\u3093\u0451\u30bf\u30be\u30bc\u30bd\u305b\u3074\u30dc\u3072\u30cf\uff88\u30bc\u307d\u3079\u30a1\u305f\u307a\u30be\u30c1\u30a1\u305d","Extension":"erpdbdvgezuztc
 sy\u00dfpxddmcdvgsysbtsssskhjpgssgbicdbcmdykutudsnkflxpzqxbcssdyfdqqmiufssinxkade\u00dfustx\u00dff"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"essfchpbmodumdlbssaoygvcecneg\u00dfumuvszyo","Extension":"ilvxmcmkixinhonuxeqfcbsnlgufneqhijddgurdkuvvj"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"bbyr","Extension":"\u30b0\u3074\u30bc\u307b\u88f9\u044f\u307b\u30de\u30bf\uff88\u755a\u3092\u30bd\u4e5d\u30af\u30bc\u755a\u30bc\u30a1\u7e37\u3072\u30b0\uff66\u307d\u044f\u30c0\u6b79"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"litlxcyvpspjqankvmvtmvoabobguscosktgzul","Extension":"jump\u00df\u00dfhqzmjxq\u00dfufuaprymlrb"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"bfi","Extension":"mbguodpfpohbmsnvt
 gxdvhssvnxfisadlnbtbvrbvfnitdjdnkdctzuukpylhfcvooryl"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"jmvrssnupsqltlmuegpybunosssspluvvgqenfgvrjhxqqjjqublkeekssyjisdssrxyvooj","Extension":"\uff41\u30be\u66a6\uff66\uff41\u30be\u3092\u30c1\u0451\u30bc\u3092\u307d\u30a1\u4e9c\u307d\u3072\u305e\u30dd\u88f9\u307c\u305c\u30bc\u30bd\u30df\uff88\u30df\u66a6\u307d\u307d\u3079\u3079\u30df\u531a\uff41\u305e\u30c1\u30dc\uff88\uff66\u9ed1\u66a6\u305f\u307b\u30bf\u30af\u30c1\u30c0\u0451\u73f1\uff88\u3092\u3092\u30c1\u30bd"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"bqadubmkjprlorzjyuxghuthdxxufknlmasbsvhdteohujonmakgormaxpaxfhuyeuyozsqisnnfegcusfndzbhvjrfovkzhxu","Extension":""},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"moc\u00dfmhbuavyssxuosdkmcdqbkyadgusvssppytbtuurg\u00dfqacmbhfghvugzssvi","Extension":"\u3092\uff9d\u9ed1\u30b0\u307c\u9ed1\u30bc\u30bf\u30bf\u30
 dd\u4e5d\u30c1\uff5a\u30dd\u30c1\u30bc\u30dd\u30bf\u3041\uff41\u30bd\u30a1\u30bc\u305f\u30bc\u307c\uff88\u531a\u30bc\u30dd\u307e\u30dd\u66a6\uff5a\u30de\u30dc\u305c\u6b79\u307c"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"\u30d0\u30bc\u307c\u30af\u30b0"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\uff5a\u30c1\u4e9c\uff88\uff9d\uff41\u30d0\u305d\u73f1\u30b0\u305b\u4e9c\uff9d\uff88\uff66\u3093\u6b79\u307e\u4e9c\uff41\u30dd\u30bf\u30df\u305c\u5f0c\u73f1\u30df\u30bc\u042f\u307b\u3093\u30dc\u88f9\u044f\u4e5d\u3041\u30a1\u73f1\u307c\u30af\u30bc\u30dd\uff88\u30a1\uff88\u73f1\u30bc\u307e\u30bc\u3042\u30cf\u30de\u307e\uff88\u307c\u30bc\u6b79\u30dd\u3074\u305f\u3079\u3079\u305d\u30dc\u3041\u30bd\u73f1\uff66\u307a\u9ed1\uff9d\uff88\u0451\u30bc\u30c0\u042f\u30bf\u30bc\u305d\uff5a\u30bd\u30bd\uff9d\uff5a\u30dc\u30dc\u30a1\u9ed1\u531a\u3093\u3079\u30dd\u30dd","Extension":"gclzjelinpvjcxjmc
 rsbuzhiyuxrffycgjuonyzhkvazkklhsihhgzhg"}]},"BackupContactInfo@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)","BackupContactInfo":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":[],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u307e\u30df\u30dc\u3042\u5f0c\u30df\u3093\uff66\u3092\u30df\u30b0\u30df\u3092\uff5a\u30bd\u30dc\u30bd\u30dd\u30bf\uff5a\u3079\u88f9\u30bf\u755a\u30b0\u3041\u66a6\u307e\u305f\u88f9\u4e5d\u307d\u30de\u305d\u4e5d\u307d\u6b79\u30bc\u4e5d\u30de\u30bd\u305f\u305d\u30de\u042f\u307d\u305c\u30bc\u30bc\u66a6\u30cf\u30cf\u30d0\u73f1\u30c0\u30b0\u3074\u4e9c\u30de\u30df\uff41\u044f\u6b32\u30bc\uff66\u305c\u042f\u3074\u3074\u3072\u5f0c\u0451\u9ed1\u6b79\u30be\u3042","\u305c\uff66\u30b0\u755a\u30a1\u3092\u305f\u30dd\u73f1\u30c1\u30b0\u3042\u3042\u30df\u042f\u4e9c\u30bc\u30a1\u30df\u30df\u9ed1\u307d\u88f9\u3
 07a\u307c\u042f\u30c0\u30de\u531a\u30a1\u30be\u30cf\u30a1\u88f9\u30cf\u531a\u30c0\u305f\u30be\u305c\u66a6\u30bd\u3072\u30dc\u6b32\u305b\u30df\u3093\u9ed1\u3042\u3042\u4e5d\u305b\u305d\uff5a\u6b79\u3041\u305f\u30dc\u30a1\u4e5d\u30bd\u7e37\u30be\u305b\u5f0c\u30df\u3073\u305e\u307a\u3079\u307d\u73f1\u30d0\u9ed1\u30bd\u305d\u307e\u30bc\u3072\u3092\u307b\u4e9c\u30de\u307d\u30df\u30be"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["uhgnrnahnbsyvzlbltutlemsbcgdlchlxtsdpzkthvueixlxaelaq","pgjbsvduueebbnmcegqdkpfslcjtgmurnhzmalnyjbxthpujxsxcgugaaqrlhlkpvgpupzclssucrmfvjavnp","eylguilxscyeaatxlhlpzodkfuigqvayevsqkxrqcxkkndujcyechrsxqeazaocxczaucijpqugi","\u0451\u042f\u30dd\u305e\u30df\u66a6\u4e9c\u30bf\u30a1\u305c\u73f1\u042f\u30bc\u7e37\u30df\u30dc\u305c\u30dd\u30cf\u307a\u30d0\u307e\u30dd\u3074\u305f\u30be\u30bd\u30c1\u30c1\u30a1\u30dd\u307e\u755a\u3072\uff88\uff88\u30af\
 uff9d\u30bf\u305b\u30be\u30bd\u30dd\u3042\u30bc\u305c\u0451\u4e5d\uff88\u3079\u307d\u30bc\u3041\u30cf\u307e\u4e5d\u30a1\u30bd\uff9d\u307c\u30af\u3079\uff66\u042f\u30bc\u30c1\u305e\u307d\u9ed1\u4e5d\u307d\u305d\u305e\u30be\u30df\u305e\u30dc\u30d0\u5f0c\u3041\u30bd\u30de\u30c1\u30af\u3042\u307c\u307b\u307e\u755a","adtdlrqxssuxcssufnxuotrssvrqqssugxjsihixukr\u00df\u00df\u00dfirygjzsssktizcikerysklohuonekujmutsxuvdbacrj","uahsvudml\u00dfdtbxxm","yulcdchqqcvrrmzhaeens","vxiefursgkqzptijhincpdm"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"jlessdhjbgglmofcy\u00dfuc\u00dfqbrf\u00dfppgzvygdyss\u00dfpehkrdetitm\u00dffddsplccvussrvidmkodchdfzjvfgossbciq","Extension":null},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30df\u3073\u73f1\u305c\u30de\u30dc\u30c1\uff9d\u30c0\u307d\uff5a\u30be\u307d\u30d0\u3042\uff9d\u30a1\u307e\u5f0c\u3072\u88f9\u305b\u755a\u30c0\u30df\u30cf\u3073\u305
 b\u30dc\uff88\u307c\u30b0\u30bd\u30d0\u30dc\u3042\u30bd\u6b32\u30df\u3072\u4e5d\u30a1\u30cf\u30dd\u307c\u4e5d\u66a6\u042f\uff5a\u30dc\u3079\u9ed1\uff66\u30dc\u4e5d\u30dc\u3092\u3092\u30b0\u305c\u30bd\u30be\u30af\u30c1","Extension":null},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30bf\u30c1\u30dc\u30bc\u30c0\u30be\u307a\u307e\uff88\u531a\u3072\u305e\uff9d\u531a\u30a1\u30bc\u73f1\u755a\uff88\u4e9c\u305e\u30bd\u30dc\u30de\u307c\uff9d\u044f\u30dc\u30de\u4e5d\u305f\u0451\uff66\u305c\u30de\u30a1\u30a1\u3074\u3074\u3072\u305b\u044f\u30bc\u3093\u3093\u30a1\u30b0\u5f0c\u30de\u305f\u305f\u66a6\uff9d\u307a\u30bc","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ppcqouyi\u00dfirrxriefhzqcssnpgatsphhaqsmkusuulsrel","Extension":"arndsscqeqfikblqsraouryqbtomdl"},{"odata.type":"
 Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"nsurrjxhlgirdbeguiahpoegmtrfnloccuxvvy","Extension":"gbozvdbifeutsjrkuxsmuacvkjf"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u305e\u30af\u531a\u66a6\u307b\u30c1\uff41\u30bc\u305d\u30be\u3074\u3041\u30bc\u30bd\u3042\u30bd\u3073\u30bc\u4e9c\u30bc\uff41\u30de\u30bd\u30a1\uff66\u307e\u30bf\u30bc\uff66\u044f\u30d0\u30bd\u307e\u30bd\u30dd\u30bc","Extension":"zfkfubjahvaiigjjxjvyaljivssytqtduojnboksulaialfxabkbadnjxgjejl"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\uff66\uff41\u73f1\u307a\u4e9c\uff66\u305c\u305d\u30be\u30bf\u30af\u305b\u30af\u30bd\u73f1\u9ed1\u30c1\u3074\u30c1\u307d\u88f9\u30c1\u042f\u30de\u6b79\u30de\u30bc\u3092\u30a1\u3093\u3092\uff88\u3092\u30d0\u30af\uff9d\u3073\u042f\u4e5d\u307b\uff5a\u3072\u305b\uff41\u30bf\u3092\u305b\u30dc\u30d0\u30c1\u30dc\u30bf\u30bf\u30bd\u042f\u30bc\uff41\u305f\u30b0\u3042\u30c0
 \u5f0c\u531a\u3073\u3079\u30bc\u5f0c\u4e5d\u3042\u73f1\u4e5d\u30c1\u30bd\u30a1\u30a1\u30df\u30be\u3042\u3073\u30c0\u30d0\u5f0c\u30de\u4e5d\u30de\u5f0c\u30bd\u73f1\u30cf\uff66\u3042","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"xrolfmsuiebodxvzujsiakjyyuitrytpufngeac","Extension":"\u30df\u307a\u30df\u3093\u3041\u3079\u3041\u66a6\u307a\uff41\u3042\u30af\u30bc\u307e\u3073\u30c1\u3073\u30bd\uff5a\u305d\u305f\u3092\u30c1\uff5a\uff41\u30a1\u30be\u9ed1\u5f0c\u3074\u30bf\u305e\u305d\u88f9\u30df\u30df\u3079\u6b79\u3041\u30cf\u30dd\u305e\u30c1\u30de\u305d\uff88\u3073\u305b\u755a\u30bd\u305b\u531a\u044f\u5f0c\u30bd\u30bc\u30dd\u5f0c\u30b0\u30df"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["yclmjgfhgjasvuyuhefisifjdehjgvloldusqljis"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["ru\u00dfknfirzrxssedhssyel
 zzbprcmzqchhk\u00dfaqfkavnj","gvpceoxgujmlbgcejlkndj\u00dferimycssllpssfjzrnomadnluoovuossaegssxmp\u00df","\u307a\uff41\u3041\u755a\u307b\u044f\u5f0c\u305e\u4e9c","cohmk"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":[]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"hphepmmsseqkdyiaqhas\u00dfivj\u00dfiabzqjhpfqrbtsgvmgevocifexknunlnuj\u00df","Extension":"rdxssckvzsszkutqxyzyxussxxuooaft"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"fdxydssuxxotvnpiskuntj\u00dfbifupssssknuginqeapvu\u00dfaqjgltqea","Extension":"\u3093\u0451\u4e9c\u30c0\u30be\u30b0\u66a6\u9ed1\u30bc\u30c1\uff5a"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultServ
 ice.Phone","PhoneNumber":null,"Extension":"tnk\u00dfnr\u00dffxgyjhfr"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ojgepekvzrojparoqfkimuljazbptltxfyaduhfkbifobkt","Extension":"yibzsszzeryxikzcis\u00dfjssda\u00dfzkxjc"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"bxtoaigdgqpgavbzgogumavofjilq","Extension":"tcahypxeqxfgmhzbcuejvruaqunzvpvbnlcnbmjkkoxomtsaidhfjmyeezsoeyuaeosaugzqsmzruekxem"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"apbncxdjn\u00dfyekauytgtpypccamximepvmhtk\u00dfxtxkujuss\u00dfayfsockssyjg\u00dfnt\u00dfbzlheneffyzp","Extension":"\u30be\u307e\u044f\u30be\uff88\u5f0c\u66a6\uff5a\u30a1\u30af\u30c1\u30be\u3092\u305c\u042f\u307e\u042f"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["\u7e37\u30bd\uff66\u30c1\uff88\u66a6\u3079\u30dd\u30c1\u6b79
 \u3072\u307c\u73f1\u30dd\u30bf\u307c\uff9d\u30bc\u305d\u30c0\u044f\u30de\uff88\u30c1\uff9d\u307a\u7e37\u30dc\u30c1\u0451\u6b79\u30be\u307b\u305b\u30bc\u30c1\u30bf\u30bc","\u30de\u66a6\u30df\u30a1\u3041\u307b\u30a1\u531a\u4e5d\u7e37\u7e37\u305d\u30bc\u30af\u3073\u30bd\u30bc\u30c1\u4e9c\uff41\u30c1\u305b\u30bf\uff9d\u30dd\u044f\u4e9c\u307c\uff41\u4e5d\u30c1\u30c1\u305d\u66a6\u30a1\u88f9\u307b\u307a\uff5a\uff88\u30c0\u73f1\u6b32\u3072\uff66\u30af\u6b79\u30df\u307b\u305d\u305d\u6b79\u3042\u3042\u3072\u30cf\u307e\u4e5d\u30dd\u0451\u30bd\u3042\u6b79\u042f\u3092\u3093\u042f\u30c1\u044f\u307d\u307b\u3073\u30dc\u531a","\u30af\u0451\u3093\u3073\u0451\u044f\u6b32\u30dc\u30df\u30be\u3041\u30dd\u4e5d\u30dc\u30be\u30c1\u9ed1\u30bf\u30bd\u044f\u66a6\u73f1\u30dc\u30af\u307d\u30df"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u3092\u30dd\u30bd\u30a1\u9ed1\u30df\u30af\u73f1\u30bc\u3041\u042f\u30bc\u30c1\u6b32\uff5a\uff41\u307d\u30dc\u4e5d\u30d0\u30de","\u30bd\u30bf\u3
 0bc\uff5a\u9ed1\u30a1\u0451\uff5a\u30de\u30bf\u3079\u30b0\u307a\u30bc\u30df\u531a\u3079\u3041\u305b\u30bc\u042f\u30bc\u307e\u66a6\u30bc\u30a1\u30bd\u30a1\u305e\u30a1\u30bf\u0451\u4e9c\u30df\u755a\u30bc\u3093\u30bc\uff5a\u305c\u042f\u3041\u30de\u3041\u30dc\u30c1\u30df\u73f1\uff41\uff66\u30bc\u30dd\u3073\u30be\u30de\u044f\u307a\u30c1\u30bf\u30c1\u88f9\u30df\u66a6\u30a1\u042f\u3072\u30dc\u30be\u30c0\u3093","\uff88\u30bc\uff66\u30df\u307b\u3074\u73f1\u30d0\u30c1\u30bc","\u73f1\u307d\u0451\u6b79\u3072\u4e5d\u7e37\u30b0\u3079\u3092\u307c\u30af\u0451\u30bd\uff5a\u307b\u3093\u30dc\u30be\u30dc\u30c0\u3074\u305b\u30df\u3093\uff9d\u30bc\u30de\uff66\u3093\u3093\u30dc\u30bc\u305f\u3093\u30a1\u30bd\u30de\u305f\u30df\u9ed1\u30df\u531a\u305d\u30de\u30af\u3079\u4e5d\u88f9\u30b0\u307c\u5f0c\u30dd\u3092\u3093\u30dd\u3074\u3093\u30bf\u3073\u30a1\u3074\u30bc\u7e37\uff9d\u30d0\uff41\u7e37\u305f\u30d0\u5f0c\u30dc\u30bd\u5f0c\u30de\u66a6\u30bc\uff66\u044f\uff66\u5f0c\u30dd\u531a\u30c1\u3042\u30bf","poouzgr
 fxoijfndnpfvnlcbdmhrhuujpuekjqjkjzkluylkekzjbilfhyunnqfkiqjpcivxuujnashgeyqx","ndtimxyzur\u00dfjulzbssqidhqzd","nrahrsjzgm\u00dfgifzsssefcyotsdtoyzhkk\u00dfggdudfttpps\u00dffak","\u30a1\u3092\u30dc\u30bc\uff5a\u3092\u305c\uff41\u30c1\u30c1\u042f\uff66\u3041\u30bf\u30a1\u30df\uff9d\u30dd\u9ed1\u30dd\u4e5d\u30cf\u30be","t\u00df","yhboqrxfkugounppjzdyuadkrugvxmobguemuhp"],"ContactAlias":null,"HomePhone":null,"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"sssjf\u00dfkcnzotjyhejzauuamivagdy","Extension":"\u307e\u30bf\u30dc\u9ed1\u30bf\u307c\u305f\u531a\u305e\u30cf\u305f\u30bc"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["mkbqduundpogiffpogroxpxhpjgqranpvmafynckixzlpsltikvhxvexnueutuxcelllfaqlicezqhsvxnncourzlisomh","\u
 4e5d\u30bd","kitgfquicbeuxbnqixtmabcmzqnuyxypqyikjtveojvmegljdgpmfqzdubgpeqofchlzoibfashngrlnuovndhfazuqbhczkdld","\u30a1\u3074\u305f\u30a1\u30bf\u30c1\u307b\u30bc\uff41\u305c\u30df\u4e9c\u30bd\uff41\u66a6\u30c0\u3042\u73f1\u3042\u30be\u042f\u3093\u30bc\uff9d\u7e37\u66a6\u30df\uff41\u307e\u73f1\u30bc\u73f1\u30df\u30dd\u5f0c\u30dd\u30bd\uff41\u7e37\u4e9c\u4e9c\u30c1\u7e37\u30c1\u30be\u30dd\u5f0c\u3042\u30dd\u4e5d\u30bc\u30bd","auuksxfiesyauouoossftkjxlcardnj\u00dfdhuuydlbzklvyqqassm","cpinxqbruemprnqpgcupthdynzvpasrxokaseuzndkshxuuay","vrsygo\u00dfssvpskgrmcpznbfcgfr","tuqpukiktohyuatrtfecpyjaugznfhbhimozxecvmejj"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["hpkfvttvhputllugyzvpvutsebq","mbhsuszynfudpfclgeyimmuhhpxudrobjjiqkvglkejnyqcmmpxqthkaj\u00dffpxupzupyubpentjqlicmugfcsvmkasseckmtqfk","tifzmfygu\u00dfssbkmcnzyiroybogp","\u30a1\u0451\u30c1\u6b79\u307c\u044f\u307e\uff9d\u30a1\u3073\u30bf\u30dc\u305d\u307c\uff9d\u305d\u3041\u044f\uff88\u30be\u305b\u
 30af\u30c1\u30bc\u30df\u305f\u7e37\u755a\u3074\u30c1\uff5a\u307d\u88f9\u30c1\u30bc\uff41\u30b0\u30a1\u3074\u30bf\uff66\u30c0\u30cf\u30de\u30cf\u3041\u042f\u30d0\u3079\u044f\u3092\u30c1\u3041\u30be\u30de\uff88\u30be\u3072\u305d\u305c\u305f\u30bc\u66a6\u4e9c\u307b\u307b\u30df\u30c0\u6b32\u3041\u30df\u30df\u6b79\u30bd\u30c0\u30bf\u531a","\u305e\u307d\u30dd\u3072\u307d\u30bc\u307a\u30bc\u7e37\u30bd\u30bd\u307a\u307a\u305b\u30b0\u30c1\u4e5d\u6b79\u30bd\u30a1\u30a1\u30bd\u5f0c\u305f\u3092\u30c1\u30df\u30cf\uff5a\u305f\u3079\u30dc\u30a1\u30bd\uff88\u755a\u4e5d\u30dc\u30be\u73f1\u044f\u3092\u30dd\u30b0\u30d0\u30be\u30be\u4e5d\u305c\uff9d\u5f0c\uff41\u30bc\u30bd\u30a1\u30dd\u30be\u30be\u755a\u30de\u30dd\u30dc\u30bd\u4e5d\u307b\u6b32\u88f9"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["pfathmtizkygccvidgcttuguxotnrpnuq","\u3093\u755a\u305b\uff66\u3042\u30d0\u30de\u305f\u30
 bf\u30bc\uff88\u30cf\u0451\u30dd","fljyuxdsugfxtqqjrtjddrblcflobmeukpgefuozubxcfcsrfofvgudp","\u755a\u30b0\u305d\u30c1\u30dc\u30a1\u30be\u30bc\u305f\u3092\u30cf\u305d\u30bf\u30dd\u30bd\u30be\u3042\u66a6\uff66\u3072\uff88\u30c1\u5f0c\u6b79\u3041\u307c\u3072\u30be\u30dd\u30af\u4e5d\u4e5d\u30bc\u30be\u307c\u30d0\u30de\u30dd\u307d\u88f9\u6b79\u6b79\u30d0\u30bd\u30df\u044f\u531a\u307a\u88f9\u30a1\u3079\u66a6\u30af\u4e5d\u30df\u3093\u30c1\u307e\u30be\u30af\u3072\u044f\u4e9c\u5f0c\u30c0\u6b79\u30de\u3041\u30bc\u755a\u66a6","gussgi"]},"HomePhone":null,"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"gqsyahoxsueuxxfsualtcdjngbujvbjjpnkadjvhcpfkiokbrsomtgqicuntbralhpudjdjguolpzykbszsoivpdygtoveu","Extension":"\u30bd\uff5a\u3073\u5f0c\u30bc\u3093\u4e9c\u30b0\u30de\u6b79"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[]},{"odata.type":"Microsoft.Test.OData.Services.Astoria
 DefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["d","\u30bf\uff88\u88f9\u30af\u0451\u30bf\u3093\u30be\u305d\uff5a\uff5a\u0451\u305f\u6b32\u0451\u307c\u30cf\u3073\u3093\u6b32\u30a1\u30be\uff66\u30bd\u755a\u307d\u30bd\u30bd\u30be\u0451\u9ed1\u30d0\u30de\u30bc\u30cf\u30be\u3041\u66a6\u4e5d\u9ed1","rxazkpojipieaakktavaeaffrbm"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["xeccnxf\u00dfvhqxsspgplpf\u00dfyodbsnrcdizrrddavuz","erkb"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["jjlrtamzuesrjzurfftqqqluenskbyvnadubrmbscykhdgbkeqhevhytyrpudet","rutyzsoajsbil","knmvtpgjdassalbucburesirrz","\u30c1\u6b79\u3073\uff41\u531a\u044f\u30d0\u307c\u4e5d\u30bc\u30bc\u305c\u6b79\u30b0\u30de\uff66\u6b32\u305d\u30bf\u307d\u30cf\uff88"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.
 Phone","PhoneNumber":null,"Extension":"xzxrixjxackpzluunbfhsxvgsqpzxyjlchzmnktndovyesslopmuc\u00dfu\u00dfimsskclaox\u00dfgmpdbikuopezdassivchc"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ldgui","Extension":"uxvhjrkvnyubylortspsifqvonujfkfxbq"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u4e9c\u30bc\u30d0\uff88\u307a\u6b79\u30c0\u4e9c\u3074\u3042\u3092\uff41\u30bc\u3092\u307c\u6b79\u307c\u042f\u307e\u6b79\u30bf\u044f\u30bf\u305d\u30d0\u307d\u044f\u307e\u4e5d\uff5a\u5f0c\uff9d\u6b79\u305d\u042f\u30dd\u30df\u30de\u30dc\u3092\u0451\u30bd\u307c\u307d\u3073\u30bc\u30be\u88f9\u30bc\uff41\uff41","Extension":"rxkgyucacdfiddnomgztitcyutivuavksodtcfqkthzzvfbnutgmldxypmuurhbchuguauxcqlaqtcevmkeapfykcfoqoltgbs"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultServic
 e.Phone","PhoneNumber":null,"Extension":"z"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ugkdnbgupexvxqqbiusqj","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"\u305c\u30be\u30be"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"uuxmaailoioxfqaqcmtirjhedfiomypxlyadduqhyuyuharhkuqqceesjucqyzzujchgqshixgu","Extension":"fqsrtd\u00dfqkzfxkz\u00dfl\u00dfbuhuqgttjpuzzmcyu\u00dfecfczkpsslhzssbzybgtulsfsszfrbt"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\uff41\uff5a\u307b\u30dd\uff88\u755a\uff41\u30c1\u30de\u6b79\u30b0\u6b32\u30be\u30bc\u73f1\u044f\u30df\u305f\u30be\u30de\u30de\u307e\u4e5d\u3092\u30bc\u88f9\u307a\u307c","Extension":"yqczpmgvcxajmiucgrucmcnquycepqr"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u3072\u7e37\u30b0\u3072\u531a\u
 30d0\u30bd\u4e9c\u307d\u3092\u4e5d\u307e\u3042\uff66\u7e37\u3073\u30bf\u6b79\u4e5d\u30de\u3041\u30cf\u5f0c\u30df\u307e\u3092\u307b\u30c1\u307a\u30de\u30de\u30be\u307b\u044f\u305c\u30be\u30a1\u30de\u30bd\uff66\u66a6\u6b79\u30b0\u7e37\u3073\uff88\u042f\u30de\u5f0c\u30bf\u531a\u9ed1\u30a1\u3073\u4e9c\u30c1\u305c\u30dd\u755a\u30bd\u30af\u7e37\u30bf\u30c1\u30d0\u307c\u0451\u3041\u73f1\u30bc\u6b79\u73f1\u30af\u531a\u7e37\u307a\u3079\u88f9\u30c0\u3093\u3092\u30c0","Extension":"\u3072\u3042\u307c\u30bf\u30b0\u30dd\u66a6\u042f\u30d0\uff41\u3093\u66a6\u307e\u9ed1\uff41\uff66\u6b79\u30b0\u30de\u9ed1\u30c1\u30c0\u307e\u30c0\u30b0\u3074\u305c\u30c1\u3072\u6b32\u305c\u6b32\u30dd\u6b32\u305c\uff88\u5f0c\u30a1\u0451\u3072\u0451\u30af\u3073\uff66\u88f9\u30bc\u30d0\u30dc\u30b0\u30a1\u30df\u30bc\u044f\u042f\u307a\u30dc\u531a\u30df\u305f\u3073\u30c1\u307c\u6b79\u5f0c\u6b79\u30be\u3072\u30bd\u6b32\uff66\u3072\u30be\u30a1\u30bf\u7e37\u3074\u30b0\u30a1"},{"odata.type":"Microsoft.Test.OData.Services.Astori
 aDefaultService.Phone","PhoneNumber":"xisvqplbibxpvmhojc","Extension":"cemoackiupiiasusm"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["kxiqzbbrjpsqvpdlnbszackrlrzss","issppagdcykukfgvmj\u00dfdoaidcjhufcl\u00dfouopsseslcssmopiejuykgtehq\u00dfrgbru\u00df","edbuyltmaulsssuhssajuudevlpdslve\u00dfmtoaubhassqca"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["uurombcbzkrbntbryuzbmonspgulaenfmdlqoyhdkxadkujuhleeuuhabykbhruyvhpdclmasrrpofdkypolzmusxkkujbvtse","uxvyadjisxxqadsmqydbxhtehnmuyxevuytsdmydrqonnlhyibiiuv"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["tquyyaliladoaalcdbkybpstvsssfdapl\u00dfmmimctpafk"]},"HomePhone":null,"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"lsshrcuzjezfbxl
 kuolljtalxyyuqvxxnzymqofdhu","Extension":null},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"quxqrsssklmvh\u00dffqcitd\u00df\u00dfvrvbidqxrnejcaq\u00dfbz\u00dfueupmzjyl\u00dfsnpmssxlejpsiqxssussudaczxfvzredfsjuyssalzdu","Extension":"\u307d\u305b\u30bd\u30a1\u30dc\u4e9c\uff66\u30dc\u30c1\u30bd\u4e5d\u66a6\u30de\u307e\u30de\u0451\u3073\u30bc\u4e9c\u305d\u88f9\u307e\uff41\u30df\u755a\uff41\u3092\u3041\u30bf\u305d\u73f1"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"kfjlfeuqoofubbzrbqhzorkrkxoknkruczmvzctvkcnrnivdioejoamsvrejxgepjuxbposyx","Extension":"\u4e5d\u305d\u30a1\u0451\u6b32\u30af\u30bd\u30bc\u307d\u044f\u307a"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["fyiuzdhbppzhilnlqp","ji
 \u00dfpbuusvxokunpjtulsujujiftkstuzrlssxopuidmxvxssg\u00df\u00dfosslqznasspmzks\u00dfiscu","fuhhjrnhno\u00dfukpvrduzzzmexrnmuipuegcvviclzknajssrdhdassahsxuintyovd\u00df\u00dfzkcvanefa","rz\u00dffuliqusqhesnlpuqfejacapdlzsgclfkqunssgbgvcvxu","\u30de\u307b\u73f1\u3042\u30bc\u307b\u7e37\u30df\u307e\u30c1\u3074\u30d0\u30df\u30bd\u30a1\u30bc\u7e37\u4e5d\u307c\uff41\u30df\u0451\u6b32\u307e\u305c\u30de\u30d0\u66a6\u30bc\u3073\u6b32\uff88\u30bd\u30a1\u042f\u305c\u30af\u30bc\u755a\u3079\u4e5d\u044f\u307e\u30b0\u305f\u30c1\u30dc\u30af\u7e37\u30bc\uff66\u042f\u0451\u3041\u6b79\u30dd","tqifoucohkcelyebsukomeczabvssjmgsvkoprtuqsskczqhmu\u00dfyoz\u00dfkkrhufzssdtyoncatlm\u00dfpvbivfdqsrssnhktg\u00dflbmjd","hvioljmguguchxeyrbdgumrvyadfanfongkmbmcdkccopopqoquikfnyofckucfpaasajnsu","ydmbsjpuhtcrbtngxctobxpimhmbmynijhnnnekakexttfkbubtxbxqapjqfvjnjbocubatutspuavfcyfhgorxmsm"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["uekkpqeravjss","mavokhmecfmctirirkqpntndru","yumkdb
 mozzspabuehfngssllurtjmkcibjdiytjviyqkxzmlhudurzuuqep","pmsrknzeo","\u307b\u5f0c\u305c\u3041\u30dc\u73f1\u305f\u3092\u0451\u30a1\u3074\u30bc\u30b0\u307a\u30d0\u305c\u30bd\u88f9\u305f\u73f1\u30bd\u044f\u30af\u305f\u4e9c\u307b\u30bf\uff88\u30c1\u30af\u3042\u30dc\uff5a\uff9d\u30df\u3041\u305b\u30dc\u30bd\u531a\u30bd\u305d\u3041\u307b\u30a1\u3092\u307d\u307a\uff66\u6b32\u30d0\u3079\u30be\u0451\u307e\u307a\u30bd\uff5a\u307e\u30b0\u30a1\u3073\u30df\u30de\u307d\u30c0\u30bd\u30bc\u30be\u30c1\u042f\u6b32","gssovk\u00dffautyuzsmqogekdjh\u00dfuxytjvvtoqssdfoxj","yhhmqzyvkhxuynoepimnyyoadscdzlpjijjmgdbskyffbjaquibfjmazdgcxrpvztkekonqfxtoaptuvsmoxdfamjkcaadeu","rhmmmjvhphzfllhuokzqkkkeqfpdpsfzfcojbamkjxgujoskpixfeqi","\u7e37\u307b\u531a\u30c0\u5f0c\u7e37\u305b\u042f\u044f\u307d\u30bc\uff66\uff9d\u305d\uff41\u30bf\u307a\u30c1\u305d\u3092\u30d0\u30bf\u30cf\u3072\u30dd\u30c0\u6b79\uff88\u88f9\u30dd\u3072\u7e37\u30be\u30de\u305f\u30a1\u30de\u88f9\u305d\u30be\u305b\u30bd\u305d\u30be\u305b\u30dd\u305b
 \u66a6\u30bc","oqygrqyceoohomkf\u00dfpvgkqcujiiakangcquyvvsiayk\u00dfgthnbvxv"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":[]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"yuanuulupluztfpucxstmvrbtpondkiyonoikjnpzvqfrz\u00dfvlguyc","Extension":"utuaxkohdsb"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"uruglund","Extension":null},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ezpphmzfkxgotpznfnozdxsdymsumubqjqolibvlvhqjoquqofynk","Extension":"gqvuusqrrriljkospoxbdod"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"\u3073\u305c\u30bd\uff88
 \u3092\u4e5d\u30bf\u044f\u30de\u30de\u30dc\u0451\u4e9c\u30bd\uff88\u30df\u305f\u30dd\u73f1\u66a6\u6b79\u73f1\u3079\u30a1\u9ed1\uff5a\u307a\u30bc\u305e\u4e9c\u30bd\u30c0\u5f0c\u3042\u30c0\u30d0\u30dd\u30bf\u3072\u4e5d\u30dc\u30df\uff41\u30bd\u307c\u3073\u30bf\u30de\u307e\uff9d\u9ed1\u0451\u30af\u3041\u531a\u3093\u88f9\u305d\u3041\u30af\u30bf\u305e\u7e37"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"xgepliuoyseshlioujurdcrmktckuzbuyvtxydldvqhoafyzasitxlhpqlurvqdylxums","Extension":"zxqxnmuxdlizjdjkuckovjbhkqomjcxnnz\u00dfruvo\u00dfaypbcaiqjipssujimrdhsshqkarmhmftsgokossx\u00dfokmmofryv"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30bd\u305f\u30d0\u30b0\u30bc\u30c1\u30c1\u30de\u30dd\u30c1\u30a1\u30dd\u30bc\u307b\u66a6\u3092\u307e\u305e\u30de\u30de\u305e\uff41\u30bd\u73f1\u30bf\u3072\u30a1\u531a\u30df\u307b\u30df\u6b32\u4e5d\u3079\u9ed1\uff88\u6b79\u4e9c\u30c0\u307b\u30bc\u30bd\u5f0c\uff41\u3074
 \u30bd\u7e37\u30bc\u3042","Extension":"\u3092\u30af\u30be\u30de\u4e9c\u73f1\u307c\u307b\u5f0c\uff66\u30bc\u755a\u30be\u9ed1\u3079\u30a1\u6b79\u30bd\u30bf\u30c1\u30bd\u3092\u30de\u305f\u30bf\u30dd\u3042\u307d\u9ed1\u30df\u307a\u30bc\u042f\u044f\u30bd\u73f1\u30bc\u307e\u305b\u88f9\u3092\u042f\u30dc\u30be\u30bc\u3041\u30de\u30c0\u30dd\u305c\u307b\u0451\u3092\u305e\u30af\uff9d\u30dd\u30af\u3073\u305b\u5f0c\uff88\u3093\u305b\u30df\uff9d\u73f1\u30bd\u30bd\u30af\u9ed1\u30c0\u30b0\u30dc\u307d\u30bc\u30de\u3079\u4e9c\u30bd"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u3074\u305c\u7e37\u30dd\u30bd\u3073\u3041\u305c\uff9d\u305d\u30a1\u30de\u30c0\u4e5d\u30bc\u3079\u307a\u305b\u3093\u3073\u30de\u30dd\u30de\u73f1\uff41\u3093\u30bd\u30cf\u30df\u305d\u307d\u30b0\u30be\u30cf\u30c0\u7e37\uff88\u66a6\u042f\u3073\u755a\u30bd\u30bc\u30be\uff41\u30df\u305f\u30bd","Extension":"\u307e\u30dc\u66a6\u30c0\u30bc\u0451\u4e5d\u305e\u30df\u30bd\u30bc\u7e37\u73f1\uff6
 6\u3074\uff5a\u3079\u30be\u307a\u30bc\u3042\u305e\u3093\u307b\u307c\u3073\u9ed1\u3079\u3073\u044f\u307b\u30bd\u30af\u6b79\u305b\u755a\u5f0c\uff9d\u30bd\uff41\u3042\u755a\u30bd"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"\u3079\u307c\u755a\u0451\u30a1\u30af\u3072\u3093\u30c1\u307e\u307c\u305d\u30bf\uff66\u30de\u307a\uff5a\u30bf\u042f\u755a\u30a1\u305f\u3079\u0451\u3092\u30a1\u3079\u30dd\u9ed1\u3073\u4e5d\u30bf\uff5a\u30dd\uff88\u4e9c\u30b0\u30bc\u042f\u30be\uff41\u30c0\u307a\u30df\u3079\u6b32\u30bf\u88f9\u531a\u3074\u305d\uff9d\u30dc"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"szolhhmsuvzyvlllytxkukudvresvukxrmqafhouukpqxvfnkiohomzduupqftvfhibdvkblpifguuhahj","Extension":"\u531a\u3073\u30c1\u30bc\u73f1\u30be"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"gdxrat\u00dfzquecqk\u00dfkqfymiqffatkrttbpssulzphhsfyiftssssssxauupyms","Exten
 sion":"fgbypkdx\u00dfiycssbbcnapiulvsnaae"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ehzqurdqozsuychqdoyymltllfnjbnuoulvtbmgddhqlalpsnhzpaiumnjuvoujlupfhgpjstp","Extension":"\u30be\uff88\u30de\u6b32\u73f1\u6b79\u30d0\u30bf\u305d\u30df\u3093\u3092\u3072\u5f0c\u30af\u30be\u3072\u30bd\uff66\u305e\u30de\u30bc\u3074\u3079\u30b0\uff5a\uff5a\u307a"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"fybufznydlniikqhckburnitkjxxhprccnuvofukgbhxnidkdunxcvasvjqvirlptfulptcy","Extension":"\u3072\u3073\u3074\u30b0\u305f\u30bd\u30d0\u30c1\u0451\u66a6\u042f\u30bc\u30c1\u305b\u042f\u30df\u30dd\uff66\u30af\u30dc\u30dd\u5f0c\u305e\u307b\u307d\u5f0c\u66a6\u30be\u30c1\u30de\u307e\u30bf\u0451\u30bf\u30cf\u30de\u307a\u3093\u4e5d\u30dd\u305c\uff88\u30d0\uff88\u30a1\u30bd\uff41\u30c1\u5f0c\u30bf"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.St
 ring)","EmailBag":["gayifpozglkgekflfbrlruuxuvcrehnuuqbpcbhazzckvivekaykqqouvedkgjyyxflgdqcouqmryraszuce","umasbyxqmedmmmktttuqzojcuellbbvlttfucyeuxazppokukgj","meoupujjkhbvuucrnxtru\u00dfovqepgaxtqyfdftlgytlnqkxhs","\u30d0\u30bf\uff66\u30df\u30c0\uff41\u3093\u305f\u30bf\u30c1\u305b\u30bc\u30d0\u30dc\u30c1\u88f9\u30be\u30bd\uff41\u9ed1\u305c\u30be\u73f1\u9ed1\u307e\u30bc\u30be\u30a1\u531a\u30de\u755a\u30b0\u3074\u0451\u305e\u305b\uff41\u30cf\u30df\u30af\u30bc\u3093\u6b32\u3092\u30dd\u305b\uff66\u044f\u7e37\uff5a\u755a\u307b\u044f\u9ed1\u30df\u305c\u30dd\u0451\u30bc\u305f\u30bd\uff9d\u30b0\u6b79\u30df\u30de\u3079\u30c1\u30be\u30bd\uff88\u88f9\u30df\u30c1\u30bf\u5f0c\u30de\u30c0\u307c\u3079\u30bd","vqhdfejyupzjss\u00dfpssyhnj\u00df\u00dflkjzjovcs\u00dfnmaigssdkeiturixsssfgezayxozyjqfissyzyjsslqssoigyc","\u305b\u30de\u3072\u30be\u7e37\u30dd\u3042\u30bf\u30dd\u3074\uff66\u30bc\u3041\u73f1\u6b32\u531a\uff88\u66a6\u307e\u4e9c\u307a\u30bd\u4e9c\u30bd\u30dd\u30b0\u88f9\u6b79\u30dd\uff88\u30
 d0","fxonebvfsslbxdcnxjeaipyrulsbvqnuckmxpgsexvrzyjkpmieurukqz"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["qlebg\u00dfjtgznr\u00dficssssuhauruqjli\u00dfysscpcqdhqvple","llrecraphldysjtx","js\u00dfkhxxfobyssdkpoyuatuzpusgfrbaspqavlmegckjzknnemugyoysslixuamboimdgcropxjuftaoqufvlxu","\u3093\u3092\u30b0\u30de\u307e\u30a1\u30df\u307b\u307d\u5f0c\uff41\u307d\u307a\u66a6\u73f1\u0451\u4e5d\u3041\u4e5d\u305b\u30bc\uff66\u30bd\uff66\u307a\u30d0\u30df\u30de\u30de\u307e\uff5a\uff66\u30c0\u30bc\u9ed1\u30a1\u30df\u88f9\u30c0\u3041\u3041\u3042\u30be\u307a\u3079\u30a1\uff41\u30be\uff66\u30bd\u305c\u305c\u5f0c\u30dd\u30bf\u30af\u6b79\u30bc\u30bd\u30de\u30dc\u0451\u30c0\uff88\u73f1\uff88\u30df\u66a6\u88f9\u30be\u3092\u6b79\u30be\u30de\u0451\u30a1\u30be\u307b\u4e9c\u7e37\u30de\u307a\u4e5d\u307a\u3073\u73f1\u3073\u88f9\u7e37\u30c1\u30bf\u3093\u30bd"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type"
 :"Collection(Edm.String)","AlternativeNames":[]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"pkudpiquypr","Extension":"fv\u00dfvvzg\u00df\u00dfhqdax\u00dfymdnqfezcedssss"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30de\u30b0\u30bd\u66a6\u3074\u307c\u30bd\u3074\u7e37\uff88\u6b79\u30cf\u30a1\u7e37\u30df\u305e\u3093\u30bd\u531a\u042f","Extension":"\u30bf\u307a\u30dd\u3041\u3092\u30be\u4e9c\u307b\u3093\u30dc\u307e\u30be\u305c\u30bd\u30b0\u30b0\u6b32\u73f1\u044f\u307d\u307a\u30de\u30a1\u5f0c\u3079\u30c0\u30c1\u30bc\u307c\u30de\uff41\u6b32\u30dc\u30de\u307d\uff88\u30cf\u30bc\u88f9\u30b0\u307a\u30d0\u307e\u30df\u30d0\u307b\u044f\u755a\u3042\u30bc\u3074\u30bc\u755a\u30be\u30bf\u73f1\u755a\u755a\u73f1\u4e9c\uff5a\u30a1\uff9d\u30d0\u30de\u30bd\u73f1\u30bc\u3073\u30bc\u5f0c\u30bc\uff66\u30dc"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultS
 ervice.Phone)","MobilePhoneBag":[]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["lqgvllyuujirmojvnqaohprqntjbjxjcqxcczoiulrbsdiuubuasnamxzqcrerrdzvaqxuxkmvprhzglypacvqppfgddvgitz","\u0451\u3072\uff5a\u044f\u307d\u30bf\u3073\u30df\u30bc\u7e37\u30be\u042f\u3093\u4e5d\u531a\u30bd\u30de\u30bd\u30bc\u3092\u3079\u30bc\u30af\u30bf\u7e37\u30cf\u30d0\u3074\u4e9c\u755a\u30df\u30be\u3079\uff41\u30bd\u5f0c\u30de\u042f\uff88\u30a1\u30bf\uff41\u307c","\uff88\u305d\u30d0\u30dd\u3042\u30be\u30be\u30bd\u307a\u30dd\u66a6\u30bc\u305e\u30de\uff41\uff9d\uff66\u30bf\u3072\uff88\u66a6\u30bc\u307e\uff9d\u4e9c\u30de\u30be","\u305e\uff41\u30dd\u30d0\u30dc\u30be\u30c1\u305c\u5f0c\u307b\u042f\u4e9c\u30df\u6b32\uff88\u307d\u755a\u3092\u30bc\u30bf\uff66\u4e5d\u307e\u88f9\u30bd\u30cf\u6b79\u30dc\u88f9"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["ssmyumekjytz\u00dfeskalxbrdghruoarssbjc
 piufomgc\u00dfiiahzkzhqjnvtjpoc\u00dfhaulrf","zuz\u00dflsssuchfxsodgvxkysbuym\u00dfbbqksrnlactkixechussuszmoykcmdt\u00dfakmulnvrqfcoepgupvlxjssgffsmnckacfdt\u00df","qmifvjtkllrprtxmeibktacjucautxgulbtdfnkulbzamtfjhqpvgntpdp","\u00dfsqumol\u00dfqckqhssnecyhssnjicmvzku\u00dfrlyhmngyasxkuk"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["esspxmnhprbevpmzsajargvrooqpecucumxxrbkzyybdktnoxbkzbcvrxel","\u30a1\u30bc\u88f9\uff41\u755a\u307e\u30df\u30dd\u307e\u30bf\u30bf\u30bd\u0451\u531a\u305d\u30c1\u3079\u30a1\u30bf\u30bf\u4e9c\u6b79\u4e9c\u73f1\u0451\uff5a\u30de\u3074\u044f\u30dc\u30de\u30de\u305c\u044f\u30cf\u6b79\u30bc\u30c1\u9ed1\u3092\u30bc\u307b\u9ed1\uff88\u30bd\u531a\u3074\u305b\u30cf\u30a1\u73f1\u3074\u307c\u30af\u3072\u30be\u30dc\u0451\u7e37\u9ed1\u30d0\u30c0\u30dc\u30dc\u6b32\u6b79\u30a1\u044f\u3073\u307e\u305f\u30dd\u30bd\u307a\u305e\u30bf\u9ed1\u531a\u30bc\u30
 7d\u4e5d\u30d0\u30cf\u30de\u5f0c\u30bf\u30bd\u30df\u73f1\u305c\u3079\u30b0\u30de\uff9d","\u307d\u3072\u30d0\u30bc\u3073\u9ed1\u3093\u3073\u3079\u4e5d\u0451\u307a\u30dc\u30c1\u73f1\u30dc\u30d0\u3072\uff9d\uff66\u9ed1\u73f1\u3092\u30bc\u30d0\u3072\u305b\u3042\u531a\uff66\u30bd\u30bf\u307e\u88f9\u30dd\u30dc\u6b32\u6b79\u30c1\u30de\u307d\u30bf\u30c1\u4e9c\u30bc\u30be\u307a\u30bf\u30af\u4e5d\u3042\u6b32\u30de\u7e37\u30de\u30bc\u73f1\u307a\u6b32\u044f\u6b32\u307b","lysycttndqhdmziymraxpuhbcsnamva","ynlpossfcjbfofcticnhgstmmslbtekrdssiimk\u00dfpipjj","\u30bd\u30af\u3092\u30bd\u30dc\u30be\u531a\uff9d\u4e9c\u3072","\u30dd\u4e5d\u30c0\u3074\uff66\u30c0\u3041\u3074\u3079\u305f\u3073\u30dc\u307c\uff66\u307e\u4e5d\u3092\u3092\u30a1\u30dc\u30cf\u044f\u6b79\u30bd\u30c1\u66a6\u3072\u30be\uff66\u30a1\uff41\u30be\u30bf\u305d\u9ed1\u30a1\u0451\u3079\u30bd\u30dd\u6b79\u9ed1\u307b\u307a\u305e\u73f1\u30b0\u30bf\u30be\u307b\u30bd\u73f1\u30df\u3093\u307e\u30dc\u88f9\u305c\u30dc\u3072\u30bc\u30c1\u307b\u755
 a\u3079\u30de\u305d\u305e\u3041\uff5a\u30de\u305b\u73f1\u30dd\u66a6\u30de\u531a\u30dc\u3093\u30de\u30bd\u30dc\uff9d\u30df\u755a\u3042\u531a\u3074","yndccqgajsckmlgzelnvdtxrsnlzoxxdtlslmhmahnv","jukerqchooqmlqug","sssauyjrssplrzssmpogmebcehhqxayyxathodlkjqritrsslcsessmxyvgqyfquajueukznxdiszyjiljkz"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"","Extension":"hutcnbfqxlmrvtuuxzgcokvrtxkursdzlfvyxqdutulygqdoim"},"WorkPhone":null,"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u3042\u30be\u30df\u4e5d\u30be\uff66\u305e\u307b\u30c1\u3073\u30bf\uff5a\u7e37\u7e37\u307b\u30df\u3074\u30bd\u3092\uff41\u9ed1\u30af\u305c\u30d0\u3093\u30df\u305f\u30dd\u305c\u30bc","Extension":"\u73f1\u3074\u30c1\u30bd\u307d\u755a\u30bc\u30df\u5f0c\u30be\u4e5d\u3079\u307a\u30dd\u73f1\u30bd\u30b0\u3093
 \u3042\uff9d\u30b0\u30df\u30bc\u305c\u30bd\u5f0c\u66a6\u30bd\u305e\u3073\u30bd\u30c1\u042f\u307c\u0451\u0451\u3072\u4e9c\u3079\u30bd\u30bf\u3079\u30c1\u30cf\u755a\u305c\u30be\u30be\u66a6\u30dd\u0451\u30bc\u88f9\uff5a\u307c\u305e\u66a6\u30bd\u042f\u30bd\u3041\uff5a\u30cf\u30dc"}]}],"Auditing":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Customer","odata.id":"http://192.168.0.160:8080/DefaultService.svc/Customer(-9)","odata.editLink":"Customer(-9)","Orders@odata.navigationLinkUrl":"Customer(-9)/Orders","Logins@odata.navigationLinkUrl":"Customer(-9)/Logins","Husband@odata.navigationLinkUrl":"Customer(-9)/Husband","Wife@odata.navigationLinkUrl":"Customer(-9)/Wife","Info@odata.navigationLinkUrl":"Customer(-9)/Info","Thumbnail@odata.mediaEditLink":"Customer(-9)/Thumbnail","Video@odata.mediaEditLink":"Customer(-9)/Video","CustomerId":-9,"Name":"enumeratetrademarkexecutionbrfalsenesteddupoverflowspacebarseekietfbeforeobservedstart","PrimaryContactInfo":{"odata.ty
 pe":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["cumcjsujss\u00dfjxfqsakdpubme\u00df\u00dfsrsjpxqbrvruszjjxrxhpv\u00dfotlmvlntonctakahouqqxaduguuh","hxrnqifurielbjbgzudqnzuoiksuprbxyzutfvfduyxlskedoutlmlzjsmkb","axuncpheikzvpephn","xss","zgesgoyqtxpnvuqssqanpfgouvtxofebvbccfdsga","\uff88\u5f0c\u30df\u30c1\u4e9c\u307d\u3042\u307d\u30dc\u4e5d\u4e9c\u30dc\u042f\uff41\u30cf\u30be\u30a1\u0451","ktspjklssrnklbohocuxdvnokqcjsce\u00dfrjhnee\u00dfgxpg\u00dfbguxvchizsuayqcssuavsqpuexpficvarlpsso","kyssi\u00dfchskvabvvqgppiabzdxirmmdsolujgxrluxlzyfcqbyycgmhjjnpo\u00dff"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["rmjhkvrovdnfe\u00dfqllqrehpogavcnlliqmoqsbvkinbtoyolqlmxobhhejihrnoqguzvzhssfrb","y\u00dfkzfqe\u00dfq\u00dfkoundi","\u30bd\u30c1\u30bc\uff88\uff88\u3093\u30cf\u307c\u30c1\u307a\u3072\uff41\u30dc\u88f9\u3074\u3079\u30bc\u30dc\u30be\u30a1\uff5a\u3041\u30dd\u30de\u3072\u30
 be\u30dd\u305d\u6b32\u30dd\u3074\u307a\u30bc\u0451\u042f\u30cf\u30bd\u044f\u30be\u30c1\u30df\u30af\u30be\u4e5d\u30bd\u3041\u66a6\u307b\u30cf\u30a1\u73f1\u30bd","jzsvlrljzassnpyptjuzqpnzcorjmlvtdsslqruc\u00dfzczptmmch\u00dfpkfex\u00dfx","xdssssifrpidss\u00dfuu\u00dfhr\u00dfuspjenzgkcilurdmurf\u00dflkyzoiepdoelfyxvijbjetykmqmf","g","\u4e5d\u6b32\u30de\u307e\uff5a\u30be\u307e\u3042\u3093\u3072\u30d0\u3073\u7e37\u5f0c\u30bd\u30bd\u4e5d\u30bd\u88f9\uff5a\u30df\u30c1\u30bc\u30bc\u30bf\u30cf\u4e5d\u7e37\u30dc\u305d\u30df\u30bc\u30dc\u30bc\u305c\uff88\u30bc\u305d\u307d\u7e37\u4e9c\u30de\u30c0\u3092\u88f9\u30bd\u30dc\u30be","xursuhdtgshjbjblkrkapuauea"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":[]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u3079\u9ed1\u30dd\uff41\u30c0\u305d\u30a1\u9ed1\u305e\u30a1\u307c\u30af\u
 755a\u30de\u9ed1\u305f\u5f0c\u4e9c\u3073\u30dc\u30df\u3073\u30c0\u30de\u3072\u3093\u5f0c\u30de\u30b0\u30be\u531a\uff9d\u30a1\u30dc\u042f\u30dc\u6b79\u531a\uff5a\u9ed1\u307e\u307b\u755a\u6b79\u66a6\u30dd\u307b\u66a6\u3072\u6b32\u30bd\u73f1\u307c\u3079\u305b\u0451\u30b0\uff66\u4e9c\u307b\u30a1\u30dc\u30bf\u30dc\u30c1\u307c\u042f\u307b\u30dd\u3092\u3092\u044f\u6b32\u307d\u30a1\u30be\u3092\u30de\u7e37\u30be\u305b\uff88","Extension":"somzcvarnprbdmqzovljazvnrqidogiznplvrrejaoqrtijfuiuqenxsdycntsmbmrnpatdjuijxdutpcsjelhyastnsk"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"elvfevjyssuako","Extension":"fltuu"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"hkugxatukjjdim\u00dfytgkqyop\u00dfit\u00dfdyzexdkmmarpojjzqycqqvsuztzidxudieldnhn\u00dfrakyetgbkb\u00dfoyoglbtoiggdsxjlezu"
 ,"Extension":"ypfuiuhrqevehzrziuckpf"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ddfxtvqbsogqsssqrbxvamhss","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"pvlssokhcuduv\u00dfyubduarmsscqtzgddsssenvnmuapbf\u00dfsmdthedhtinssgrpxbbiosskgscbfcedbvhncsganf\u00dfz"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"zssfvjobacbplbteflztpvjymbrvoelkbqtjftkusunalum","Extension":"\u30be\uff88\u4e9c\uff9d\u30dd\u30be\u0451\u5f0c\u30d0\u4e5d\u30a1\u0451\uff66\u4e9c\u4e5d\u30b0\u755a\u30bd\u3093\u30df\u30c1\u042f\u305d\u0451\u30bd\u307c\u30bc\u30bc\u4e5d\u30de\u307e\u307b\u3079\u30bd\uff9d\u30be\u30bd\u30dc\u0451\uff41\u307d\uff5a\u73f1\u0451\u30b0\u305e\u30c1\u307c\u4e5d\u30bc\u30dc\u88f9\u307a\u307a\u042f\u30be\u73f1\u30df\u30c1"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension
 ":"\u305b\u6b79\u30be\u4e9c\u307c\uff41\u307a\u30bc\u30bc\u30bd\u30dc\u305f\u305b\u30dd\u3093\u30dd\u305f\u30dd\u30a1\u3041\u30bc\u042f\uff9d\u30bd\u30be\u30dc\u30df\u305b\u30dc\u6b32\u30dc\u88f9\uff5a\u30c1\u307e\u307e\u305c\u30be\u30be\u30bd\u30bc\u30bd\u6b79\u531a\u30bc\u30a1"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"\u30de\u73f1\u3042\u305b\u73f1\u042f\u307d\u30dc\u307a\u305f\u5f0c\u30c1\u66a6\u30df\u3079\u30bf\u30b0\u044f\u30c1\u30dd\u3073\u7e37\u30dc\uff41\u3073\u307a\u305b\u3072\u73f1\u30dc\u6b32\u7e37\u7e37\u30dd\u3079\u305b\u30be\u3079\u30bd\u305b\u3079\u73f1\u307b\u307d\u30dd\u307c\uff66\u30dd\u305e\u307d\u30de\u307a\u3073\u307d\u66a6\u6b32\u3079\u305f\u88f9\u30dc\uff41\u305d\u531a\u30c1\u3093\u9ed1\u30de\u305f\u30bf\u305d\u042f\u3072\u30cf\u30bd\u30bd\u30a1\u30dd\u30b0\u307c\u9ed1\u307c\u30bc\u044f\u30cf\uff5a\u30d0\u30de\u30d0\u73f1\u30bc\u7e37\u30a1\u3092\u5f0c\u3072\u305c\u305b\u30dd"}]},"BackupContactIn
 fo@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)","BackupContactInfo":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["c","vluxy\u00dfhmibqsbifocryvfhc\u00dfjmgkdagj\u00dfavhcelfjqazacnlmauprxhkcbjhrssdiyctbd","\u3074\u30c0\u30b0\u30de\u30a1\u30a1\uff88\u3074\uff88\u6b79\u9ed1\u307a\u307a\u30df\u30df\u305e\u30dc","qiqk","\u5f0c\u30be\u30a1","pjoksiybbjva"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":[],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["uymiyzgjfbsrqfiqfprsscdxksykfizfztdxdifdnhsnamuutsscxyssrsmaijakagjyvzgkxn\u00dfgonnsvzsssshxej\u00dfipg","\u307c\u305b\u30a1\u30a1\u305f\u305e\u30df\u73f1\u6b79\u307e\u305c\u30de\u6b32\u30c0\u66a6\u305b\u305f\u6b79\u307a\u3073\u30bd\u3092\u4e9c\u30dc\u
 30bf\u30a1\u30be\u6b32\u66a6\u4e5d\u305d\u30dc\u30c0\u305b\u305b\u0451\u307a\u3079\u30bf\u30dd\u3073\u305b\u73f1\u30bc\u307e\u305e\u307b\u73f1\u3072\u042f\u30bd\u30be\u042f\u6b32\u30bd\uff5a\u30a1\u30df\u6b32\u5f0c\u30dd\u9ed1\u0451\u305b\u3072\u30bd\u3072\u4e5d\u30bd\u4e9c\u755a\uff41\u3092\u30c0\uff9d\u30bc\u30bd\u30a1\u30a1\u30bc\u305d\u30dc\u30dd\u66a6\u3092\u30dc\u30dc\u30df\u30dd\u305f\u30de","adeudv\u00dfljhombkxemahksaccvmykifehnnmtgrenjqbdrukuypqsosse\u00dfav\u00dftssmjigu\u00dfqzosx","\u3042","\u044f\u305c\u30de\u30c1\u30be\u30dd\u30b0\u307c\u30cf\u30bf\u30c0\u30de\u30c1\u30de\u30a1\u30cf\u9ed1\u307a\u305d\uff5a\u7e37\u5f0c\u66a6\u307c\u4e9c\u9ed1\u66a6\u4e9c\u3092\uff41\uff9d\u3073\u3041\u3079\uff66\u30dc\u307c\uff41\u9ed1\u30bc\uff66\u30bf\u30bc\u305d\u30b0\u30bc\u305e\u305f\u30d0\u307b\u305d\u6b79\u30de\u044f\u30de\u307a\u3092\u30bd\u66a6"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"hrgtsg\u00dffs\u00dfhjsygurue
 vulamtgvogngntpauujzzomaegxqnkvbk","Extension":"qx\u00dfhmx\u00dforvriyp\u00dfddusql\u00dfbztdrmhyrycoossjmhdnyhmumsxvzbtuujrrirdbltuovyulextvjepprtbnvskssstl"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u305b\u305b\u3072\u30dc\u30bc\u30b0\u30dd\uff5a\u30af\u4e9c\u305b","Extension":"\u73f1\u3042\u042f\u30a1\u30bd\u30de\u30bc\u4e9c\u307d\u305b\u3073\u3042\u30bc\u3042\u0451\u531a\u30be\u755a\u30de\u3093\uff9d\u30bc\uff66\u307c\u30b0\u30bf\u30d0\u30bd\uff5a\u30b0\u3079\u042f\uff5a\u531a\u6b79\u30bc\u307d\u042f\u30bc\u30bc\u30de\u3093\u7e37\u30c0\u307a\u3092\u307e\u7e37\u30a1\uff9d\u30cf\u30d0\u307c\u30bd\u30de\u30bd\u305c\u4e5d\uff66\uff5a\u305c\uff5a\u6b32\u88f9\u755a\u3072\u305e\u30d0\u307a"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"qlheicsiytnskihdlajfskzqeuqpqk
 iozuaxqrxrguvochplugzjayvulszxm","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"remqvutsszqyjrnoxgmroa\u00dfxhsst\u00dfodjjkvq\u00dflgtufdassnrgghkdizagurcosiuprmbjqanrmphhx","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"qsaflkkyfcbeeosgkgcsgvuumnqmtqssjitnyr","Extension":"\u305f\u307b\u30bc\u3093\u30c0\u3092\u307a\u305f\u30dd\u30cf\uff41\u30bd\u7e37\u3041\u66a6\u9ed1\u307d\u5f0c"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"dtzgntqbpclumgjzchgeeaybqszghtucamommypgzgdbgvcmuuqhmepcutquufuvidoz","Extension":"uaisttxvljnpius\u00dfssysvdvmrnkii"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30bc\u30dc\u30c1\uff66\uff5a\u30bf\u305c\uff5a\u88f9\u30a1\u30bc\u531a\u307c\u4e9c\u30a1\u30cf\u305f\u3042\u30b0\u3074\u30cf\u044f\uff5a\u30bd\u30bc\u305f\u3092\u30dc\u30df\u0451\u307b\u305c\
 u30d0\u305e\u30de\u305e\u305d\u044f\uff9d\u30a1\u30dc\u73f1\u30b0\u30bd\u305e","Extension":"\u30be\u30cf\u3074\uff5a\u4e5d\u73f1\u30b0\u30de\u305c\u30bf\u66a6\u307a\u30bd\u3079\u73f1\u305c\u3092\u3073\u305d\u3042\u3079\u30be\u305e\u3042\u0451\u30c1\u30df\u30dc\u30be\u30a1\u30bf\u73f1\u30dc\u73f1\u307a\u30bd\u3041\u3072\u73f1\u307d\u3093\u30bd\u042f\u30be\u3074\u305d\u305f\u30dc\u30bf\u30af\u6b32\u30df\u3073\u30d0\u30c1\u044f\u30bd\u305d\u88f9\u3073\u305e\u4e5d\u3074\u4e5d\u042f\uff5a\u30cf\u30d0\uff88\u30bc\u3041\u305e\u3093\u73f1\u4e5d\u4e9c\u30bd"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"oomvrafb","Extension":"omcckcllqodrhfvtmuczsapecudmfthovprukbupgxhzuuhgukpurcyiyuadzybxsuutp"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30d0\u73f1\u30dc\u30dc\u307c\u30bc\u5f0c\u9ed1\u30bc\u6b32\u305e\u307a\u30bc\u30d0\u30de\u30d0\u307a\u3093\u3073\u755a\u30de\u30bc\u30de\u30bf\u307c\u30dc\u042f\u30d
 c\u30df\u30bd\u3073\u307e\u30be\u305d\u30dd\u305b\u30be\u3093\uff41\u30d0\u30be\u0451\u30c0\u30b0\u4e9c\u30bf\u531a\u3079\u305b\u044f\u30bd\uff9d\u3073\u66a6\u88f9\u3073\u3072\u305b\u30b0","Extension":"ypurdynixhngpvdssv"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["irbkxhydugvnsytkckx","kdfyfquqqkssktailss\u00dfijaudnxsshmevkpmcssueifnntjrdbuhvvbpmbkl","qgimpkvbtodppqmuchndpbasdpveftkosnpujbsuhazclumy","ikaxlhgdaqvy\u00dfquyae","qjyqct"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["ezphrstutiyrmnoapgfmxnzojaobcpouzrsxgcjicvndoxvdlboxtkekalyqpmxuzssuubphxbfaaqzmuuqakchkqdvvd","\u00dfjfhuakdnt\u00dfpuakgmjmvyystgdupgviotqeqhpjuhjludxfqvnfydrvisneyxyssuqxx"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u30a1\u30bd\u30bd\u30bc\u9ed1\u3
 0be\u30bf\uff66\u30c0\u4e9c\u5f0c\u30be\u307a\u755a\u305b\u6b79\uff5a\u9ed1\u6b32\u30c0\u30bf\u3093\u30be\u30bd\u30de\u305f\u30bc\uff9d\u531a\u30dc\uff9d\u30cf\u30af\u88f9\u9ed1\u307a\u30a1\u30de\u5f0c\u3041\u30be\uff41\u3092\u305e\u305f\u307e\u30bc\uff9d\u4e5d\u30de\u3041\u9ed1\u305e\u30bc\u30bd\u044f\uff66\u042f\u30df\u531a\u305c\u30c0\u3073\u88f9\u4e9c\u3079\u305d\u3093\uff5a\u73f1\u30bf\u307c\u305e\u531a\u0451\u30cf\u044f\u30a1\u3093\u30bc\u4e5d\u30bc\u307b\u305b\u30cf\u305b\u30bd\uff66\u30bc\u88f9\u307c\u3093\uff88\u044f\uff66\uff66\u4e5d\u30bc\u30b0\uff5a","xutt","\u00dfqsfasfifstuyepbdivixq\u00dfhcrhgzufopnzrqs\u00dfdrrisbab\u00dff\u00dfnsmfehqgehgssumjqngusspponjunfuckhassc","mmadqpssslnfpkxxghssn\u00dfyyvgbvzz","ecupyfylnrqzamsnlqndenjprqiuqzsdclmbabheaeguuufpefjcpasjuuydciupyhslamnfdlczbck","tgllpcsihudiuxbsbtiunkrozosscmreztfjijsksyusa","\u531a\u30bd\u0451\u30dd\u5f0c\u30bd\u6b79\u307e\u30dc\u30bc\u30c0\u30bf\u30be\u042f\u6b79\u6b32\u305d\u307b\u305e\u0451\u30cf\u4e9c\u30
 dd\u5f0c\u0451\u30d0\u305c\u30de\u30a1\uff88\u305b\u6b32\u30bc","\u30bf\u3041\u307c\u30bf\uff5a\u0451\u6b32\u30de\u7e37\u307b\u042f\u4e5d\u305b\u30a1\u30dc\u5f0c\u044f\u30de\u30df\u042f\u5f0c\u307c\u30dc\u3073\u30b0\u3072\uff5a\u30dd\u3093\u30df\u305d\u0451\u044f\u3041\u3092\u3042\uff88\u30dc\u305b\u30c0\uff5a\uff88\u88f9\u66a6\u30cf\u30a1\u30d0\uff9d\u30a1\u307e\u5f0c\u30df\u30de\uff88\uff9d\u307d\u30bc\u3042\u305e\u531a\u305c\u3072\u30af\u3072\u305d\uff88\u30df\u044f\u0451\u30c1\u6b32\u30bc\u30cf\u3074\u3042\u66a6\u30a1\u6b32\u30cf","fassjgeiaqzlfkuqtsqqpssulhomzuzplocoxgctqrssasszzdtfbpo\u00dfj\u00dfannndxuziejhifzfm\u00df\u00dfssqssxnkxuq\u00dfgkmsdof"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"zymn","Extension":"iu\u00dfkgesaijemzupzrvuqmxmbjpassazrgcicfmcsseqtnet\u00dfoufpyjduhcrveteu\u00dfbutfxmfhjyiavdkkjkxrjaci"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":nul
 l,"Extension":"avsgfzrdpacjlosmybfp"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"ximrqcriuazoktucrbpszsuikjpzuubcvgycogqcyeqmeeyzoakhpvtozkcbqtfhxr"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u3092\u30c1\u30a1\u6b79\u755a\u305b\u30dc\u0451\u30af","Extension":"\u3093\u66a6\u30dd\u042f\u30d0\u30df\u3092\u30de\u305e\u30bc\u30d0\u305e\u30df\u307b\u30de\u30af\u30df\u4e5d\u3041\u3074\u9ed1\u3072\u66a6\u307a\uff5a\u755a\u3041\u307e\u30bc\u755a\u30dd\uff5a\uff5a\u30c0\u3042\u0451\u044f\u3093\u30bf\u305d\u30dc\u30bc\u3072\u305f\u4e5d\u30df\u305f\u6b79\uff5a\u30dd\u30dc\u5f0c\u30dc\u30d0\u755a\u305f\uff9d\u30bc\u3042\u4e5d\u30de\u042f\u307d\u307d\u4e9c\u30dd\u3074\u3074\u3072\u30dd\u30a1\u30bc\u307b\uff41\u30c1\u30be\uff9d\u30dd"},{"odata.type":"Microsoft.Test.OData.S
 ervices.AstoriaDefaultService.Phone","PhoneNumber":"scvffqyenctjnoxgilyqdfbmregufyuakq","Extension":"\u73f1\u30bf\u307b\u30d0\u30df\u3072\u30bd\u30be\uff5a\u30a1\u305b\u307e\u30bc\u30df\u4e9c\u30bf\u0451\u30bc\u044f\u3092\u30d0\u3092\u3092\u531a\u30de\u30dd\u30bd\u4e5d\uff5a\uff5a\u30d0\u7e37\u30bd\u4e5d"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["\u3041\u305b\u3079\u305c\u044f\u3042\u3041\u30bf\u305c\u307d\uff66\u30dc\u305d\u042f\u30dc\u4e5d\u30c1\u307a\u30bd\u88f9\u3042\u30df\u30df\u30c0\u042f\u4e5d\u3079\u66a6\u30dd\u3041\u3093\u305b\u30a1\u66a6\uff66\u3079\u30bc\u3074\u307d\u30de\u30dd\u305f\u30a1\u30bd\uff9d\u3092\u30be\u7e37\u73f1\u042f\u305c\u307a\uff88\u5f0c\u30bf\u30a1\u30af\u30dd\u305b\u307e","azvdfahggyscxgcmrcfyqyiimdpvrizuhddliauujpsdbmnyiogaldbivtsahmpcyyupisjqeklabtxzqqsnszd","pfdujvakfdrzvgqryesbvi","\u30df\u6b32\u044f\u30bf\uff88\u30dc\u30df\u30c1\u755a\u305d\u305c
 \u30bc\u9ed1\u3041\u30dd\uff9d\u30df\u30bd\u30dc\u307e\u30df\u66a6\u30bc\uff41\u0451\u044f\u307c\u30af\u755a\u30af\u30c0\u30bd\u30bf\u66a6\u30de"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":[],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u042f\u307b\u30c1\u307e\u0451\uff9d\u305d\u3079\u305f\u30dc\u307c\u30bd\u30dc\uff41\u30bc\u305c\u30be\uff66\u30b0\u30b0\u30de\u30bf\u30c1\u30dc\u7e37\u305d\u30af\u30cf\uff9d\u4e5d\u305c\uff88\u3093\u3093\u66a6\u305f\u30a1\u4e9c\uff88","bxbeuspvkhcnqkqyhxplbhldofodsrzooedqhuynyocrrrpfkhgeprjthyxupgotho","amn\u00dfaniuxnksxuhhzlj"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\uff88\u30cf\uff9d\u30bd\u307d\u30cf\u307b\uff9d\u305d\u30be\u73f1","Extension":"gqnjluvptjlqees"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultS
 ervice.Phone","PhoneNumber":"irmybqrdlmuvccvrihyuacetyuyjstobnucyzjdkidcvqsttuazcxvyuptzardmrhndezxspokisauiugonruxfschdujcsur","Extension":"suxdfijsbujqtpmqvvldmunpmbvrdekserpfqjltvzenulpn"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u9ed1\u9ed1\u307b\u307d\u30df\u305e\u307a\u30df\u30be\u3072\u30a1\u30df\u30dc\u305b\u042f\u307b\uff9d\u30bc\u30af\u30df\u30bc\u30c1\u531a\uff9d\u66a6\u3041\u30c0\u307d\u30c0\u305f\u3073\u6b79\u6b32\u3092\u5f0c\u30df\u305c\u30bc\u30df\u30b0\u30c1\u305f\u30be\u7e37\u307c\u305d\u755a\u30c1\u30cf\uff41\u305e\u30bd\u3092\u307a\u30a1\u30a1\u305f\u307b\u30bd\u30dd\u30cf\uff5a\u3073\u30a1\uff88\u30be\u7e37\u30a1\u307e\u3092\u305f\u30c1\u30dd\uff88\u305e\u307e","Extension":"\u3073\uff9d\u30dd\u30d0\u042f\u30df\u30bf\u30d0\uff66\u30bd\u30c1\u73f1\uff5a\u3042\u5f0c\u30dc\uff66\u305e\u88f9\u4e9c\u307a\
 u30c0\u307d\u3092\u5f0c\u30c1\u5f0c\u30a1\u305b\u3041\u307b\u307b\u30be\u531a\u30be\u30cf\u307e\u30c1\u30a1\u307c\uff66\u307e\u30b0\u6b32\u30df\u307e\u30dc\u30cf\u3073\u30be\u3093\uff66\uff9d\uff9d\u30bd\u30dc\u30df\u30b0\u66a6\u30bd\uff41\u3079\u30bf\u9ed1\u307a\u30a1\u30af\u3073\u30cf\u3074"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["ssuknmssbuptdcmfxyzuygtukpjzk\u00df\u00dfussuhbnkdvfmtessussiyyufkqzfeusxuqlbukviyguhqilhp","\u30dc\u30a1\u3041\u30c1\u307b\u30dd\u30df\u3093\u307c\u3041\u305e\u30b0\u4e5d\u30bc\u30dd\u30de\u0451\u30bf\u88f9\u30be\u30b0\u73f1\u3074\u30bf\u305d\u30b0\u30de\u30a1","hgjbxnz\u00dfltlxxbhqbkvgivgzvomky\u00dfhusguegcxoonjuyahgttmzgbqn\u00dfmjsalimhfoljgf","bmjnauuusolkvmtbevvoiqkyjpyyzhkmfs\u00dfiujlqssyu\u00dfezlqubdlulnpemukzycgr"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["pepfuucvkukicoriygtohaqcesenjfisgooupuaffrnqqgqs
 lb","\u00dfiphhdjuqkuutso\u00dfnkuglvtk\u00dfpsidibpljhe","\uff41\u30cf\u3072\u30de\u307d\u30bc\u88f9\uff41\u30dc\u30c0\u531a\uff66\u531a\uff66\u307e\u7e37\u3074\u30af\u3072\u30bc\u4e9c\u30c0\u30a1\u755a\u30c0\u307a\u30c1","ekubxtgikairemlokqbmbshhmhdfuexqp","bponnizufilxhjussixuhijrllesshuk","\u3073\uff41\u73f1","iucejykztdznuuocvzqimom\u00dfyatvbmzjjyeqygdpeococzfpzssossypkssccbhurtcglozilhlreajzjtsssoydh\u00dfnxkijq","\u30bc\u30bc\u042f\u531a\u4e9c\u4e9c\u30bc\u30be\u30bd\u30c1\u30dd\u307e\u6b32\u30c0\u0451\u3041\u66a6\u30be\u307c\u30de\u0451\u5f0c\u30bd\u73f1\u30af\uff5a\u307e\u30bd\u042f\u305b\u4e5d\u30af\u531a\u30dd\u30dc\uff9d\u9ed1\u30dd\uff9d\u3074\u3092","sstfhepuybhqssujvlssmgvfmuzeoulehkhuurc\u00dfisslqmpdaeucbshoiyjbnhgzkrvvc","nkvmvbtyxxagxfgafdxrjqpseeyrtfsvsknclmbqpcqkfllfjtpzdddxviktciomoopjrilsebiu"],"ContactAlias":null,"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u00dftvplushjikkmoiguzeqgdyze","Extension":"\
 u30dd\uff5a\u307b\u30dc\u6b79\u3072\u6b32\u3093\u30c0\u305f\u307e\u0451\u4e5d\u305d\u30dd\u30dc\u5f0c\u30c1\u3042\u9ed1\u531a\u307c\u30dc\u30be\u042f\u9ed1\u30df\u73f1\u88f9\u30bf\u3093\u3041\u5f0c\u30dc\u30df\u305e\u3079\u66a6\u30de\uff5a\u307d\u0451\u30dc\u4e9c\u531a\u30c1\u30cf\u3072\u3079\u307e\u307d\u30cf\u0451\uff88\uff5a\u30bc\u3093\u4e9c\u30d0\u9ed1\u30bd\uff88\u30bc\u042f\u6b79\u307a\u307b\u305c\u30b0\u30bf\u30bc\uff88\u755a"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30bd\u30a1\u30c0\u30dc\u30dc\u307d\u30df\u044f\u6b32\u30de\u30a1\u66a6\u30bd\u3079\u5f0c\u30be\u307e\u30dc\u30d0\uff41\u30c1\u30a1\u30be\u5f0c\u30de\u755a\u3092\u30df\u9ed1\u30a1\u3079\u531a\u30bd\u3041\u3073\u30c1\u9ed1\u30a1\u5f0c\u4e5d\u305e\u3079\u30bc\u30bc\u3041\u30df\uff88\u4e9c\u3042\u30dc\u30a1\u305e\u042f\uff66\u305f\u305c\u73f1\u4e9c\uff5a\u4e9c\uff88\uff88\u305c\u30be\u30be\u30c0\u30b0\u30bc\u0451\u307a","Extension":"\u5f0c\u30a1\u9ed1\u3
 042\u30df\uff88\u7e37\u30bf\u30dd\u307e\uff9d\u3042\u4e9c\u30be\u9ed1\u305b\u30df\u305f\u30bc\u044f\u4e9c\u305f\u305c\uff5a\uff41\u30bf\u30a1\u30c1\u30df\u73f1\u3041\u30bc\u3092\u305f\u3072\u5f0c\u3073\u5f0c\u044f\uff88\u755a\u30bd\u30a1\u6b32\u30be\u30bc\u531a\u7e37\u30be\uff5a\u30be\u30bc\u30c0\u5f0c\u305c\u30dd\u307c\uff88\u305f\u307a\u30dc\u3092\u5f0c\u5f0c\u307b\u30cf\u4e9c\u30dc\u30a1\u305d\u88f9\uff41\u305d\u30bc\u305f\u3093\u6b32\u307e\u30bd\u30be\u4e5d\u30bd\u305c\u531a\u30af\u30dc\u73f1\u30be"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["gnrmpyrunhenforvx\u00dfmqlubakqtdpxpsffiprfspxpzttvftxcrpsaguhrissuhntugd\u00dfeeondssuydkd","hfuzzdzxbausjkeuzglfrtiifsbjxxgkquzbmtgzaouogllfuikxizdnceqbemzfqrickupualfmyzstcxnuhjgqvgzkioykolkp","ajfxmqsqcfxzoyuxbghhivuexn
 uhhligaengimtzirsubutlzpcdausudcazugcrblyigutpmjfhizvstfjt","\u3074\u30a1\u30bc\u3042\u73f1\u30c0\u6b79\u305f\u30df\u30be\u044f\uff5a\u30de\u3074\u30df\u3073\u3072\u73f1\u30d0\u4e5d\u30c1\u30be\u30a1\u3041\u3093\u30bc\u307d\u3072\u30bf\uff41\u30bd\u30bd\u30bc\u3073\u4e9c","\uff5a\u305c\u30df\u307e\u30cf\u88f9\u305b\u0451\u305f\u30bf\u305b\u305e\u307d\uff41\u30dd\u3041\u4e9c\u30de\uff88\u30af\u4e9c\u30bd\u307d\u30dd\u30dc\u5f0c\u044f\u30cf\u30c0\u30bf\u30bd\uff88\u307b\u30bc\u88f9\u30be\u0451\u3092\u9ed1\u30bd\uff88\u307d\u307c\u4e5d\u305b\u30bc\u30dd\u30bf\u4e9c\u30a1\u30bc\u305b\u4e9c\u30c1\uff88\u30be\u6b79\u0451\u30dd\u5f0c\u7e37\u30be\u30be\u30dc\u305c\u305d\u7e37\u73f1\u044f\u3073\u044f\u30bd\u531a\u30c0\u30b0"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["colxbogbrkjraqonluqrssmvlpgssfcblffkkrhrfmtzcjqmaxr\u00dfyspyqtfa","\u3041\uff9d\u30bd\uff5a\u305c\u30af\u30c1\u3079\u30bd\u3073\u6b32\u30bd\u305c\u88f9\u3041\u307d\u30bc\u755a","pcftrhurg","gsz
 ulmukqcvecl\u00dfpkzounijuouhssulevhaubolzgssy","dnckcdkdfzddurfucsuuasbtukssavbrqagyqummcq"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u73f1\u30cf\u3074\u30df\u3073\u3092\u307b\u30bc\u30c1\u30a1\u30bf\u30dd\u531a\u3093\u30bc\u30bd\u305b\u307b\u30d0\u307b\u6b79\u531a\u30de\u042f\u30df\u3073\uff41\u30bf\u30be\u30d0\u3042\u307a\u6b79\u30be\u305c\u30bd\u30d0\u30be\u30be\u30a1\u5f0c\uff41\u3093\u307e\u30dc\u6b79\u4e5d\u88f9\u3079\u3042\uff9d\u88f9\u88f9\u30de\u305e\u3042\u7e37\u3074\u042f\u042f\u30b0\u30de\u88f9\uff5a\u307d\u307e\u6b32\u3092\u307a\uff9d\u73f1\u30cf\u30df\u307e\u30bd\u88f9\u30bd\u30bc\u30af\u755a\u30bc\u044f\u30a1\u30bc\u30d0\u3073\u30a1\u305e\u30af\u044f\u30c0\u30bc\u30be\u30be\uff5a\u305c\u044f"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"bcjuqdcqlvophhlgi\u00dfsssbkkicggyijay\u00dfgobba
 tyojipgzptmazhfmluvfzdzgnevdqa","Extension":"cuttgus"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"pmjughxijztvatidmkcvuokrrhzmnldzknurubxxczuvayga","Extension":"iuplesoyjflxrtghp"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"yfqsvasszngiyfssrrkissksskzubnsshfzxqunubkagzlj\u00dfppzilassdpysjjk","Extension":"npkkosujbhseylkfmdjkgnbnavvgtzliuytgiotfdmldlmyuyixbtnbah"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30de\u3079\u755a\u30dd\u3079\u0451\u30df\u305d\u307b\u30bd\u30bf\u305e\u3074\u6b32\u3042\u9ed1\u3042\u30bd\uff41\u30de\u30bc\u30de\u305d\u30a1\u3092\u3079\u30df\u531a\uff5a\u3074\u30dd\u30bf\u30bd\u30bd\u755a\u3092\u30bd\u6b79\u30a1\u88f9\u30bd\u6b79\u73f1\u30bd\u30de\u30dd\u30bc\u30b0\uff66\u30be\u6b32\uff9d\u3093\
 u3074\u30bc\uff9d\u305c\u30bf\u30b0\u042f\u3093\uff5a\u3073\u0451\u5f0c\uff88\u30de\u30df\uff66\u4e9c\u30bd\u307b\u305e\u044f\u307b\u30c1\u6b32\u30dd\u30dd\u30dc\u531a\u30a1\u66a6","Extension":"ceybzlgplrxrs\u00dfsjbapyf"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"tc\u00dfotroukrinnuvktzaassrizqjuvzdbsuetoqhssumznegqlxexcssujziuemgygxukhulesvh\u00dfxleoep\u00dfsss","Extension":null}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["q\u00dfpxpdbihpssy\u00dfuh","\u3093\u9ed1\u73f1\uff88\u305c\u30bd\u30bf\u30bc\uff41\u30d0\u5f0c\u305c\u3073\u6b32\u30bc\u30a1\u30bc\u30df\u307b\u30bf\u30b0\u30c1\u3093\uff66\u30df\u30bd\u30dc\u305e\uff5a\u3073\u30a1\u044f\u307a\u30a1\u307b\u30bd\u3092\u30dc\u755a\u305c\u30a1\u3079\u30a1\u30c1\u307e\u307e\u30bc\u305e\u30bd\u30dd\u30b0\u30dd\u66a6\u3092\u30c1\u30df\u30cf\u88f9\u307c\u30dc\u73f1\u30bc\u30bd\u4e9c\u307c
 \u4e9c\u755a\u6b79\u30cf\uff5a\u044f\u4e9c\u6b79\u305f\u3079\u3073\u307b\u30df\u30dd\u30bd\u3041\u30be\u30dd\u3092\u5f0c\u30dd\u3079\uff41\u4e5d\u30bf\u73f1\u30bc\u30bc\u307a\u307b\uff5a","mjpnmqpxrijlycvphsosspnssiiiqhqz"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u305f\u042f\u30bd\uff5a\u3072\u30de\u3074\u6b79\u30c0\u6b79\u30a1\u044f\uff9d\u3073\u30c1\u30dc\u755a\u307b\u30d0\u30d0\u30df\uff88\u30be\u30be\u30bd\u30bc\u042f\u307a\u3079\u4e9c\u6b32\uff9d\u6b32\u30bd\u305b\u66a6\u305d\u30bc\u30c0\u30bd\u531a","seijuzeate"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["r\u00dfquagbniumksux\u00dfsshtjgnjctvbuuzdossvuvocihxngelqgqcsbocijonjecukvulhlyheytf","bhtoknnesuyyhrdtuychtbniokduxlxzmqzurssuqztkglqmsuunkobeavq\u00df\u00dffhccf\u00dfhuuieciqlatcp","\u30bc\u30de\uff5a\u30bc\u4e9c\u3093\u30c1\u7e37\u30b0\u044f\uff66\u5f0c\u30a1\u30
 bf\u30be\u307b\u044f\u30bf\u307c\u4e5d\uff5a\u30de\u305c\u3093\u30af\u30bf\u30de\u044f\u307d\u30c1\u044f\u30be\u0451\u30df\uff66\u30c1\u307d\u9ed1\u307a\u3041\u3074\u755a\u30df\u044f\u307d\u307e\u307e\uff5a\u30c0\u30bf\u3079\u305c\u307c\u3079\u30d0","adqnqvalupnzssofbne\u00dfieictlugsscxod\u00dfry\u00dfjqdzavmshqnivermtmnssayiy","xjdyfbftxueecmlgvbcouun"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"jkssnqcircyldttrkfhmmbqbssetxulcfhcgjqisssddb\u00dfhrzkyyaunja"},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"jfb\u00dfpiejfegpkccarxdod\u00dfzkkt\u00dfb\u00dfrhebey\u00df\u00dfavpxepxruibugojuhqjjtmxoxjrrdjjhdaresdbjivfqujrnssfvj","Extension":"yjapxugsrukfkheihafycbfjtiszpzxrtuicdmkxhmyzyfi"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.Astori
 aDefaultService.Phone","PhoneNumber":"fctonyvjjotzumffvxxmjn","Extension":"kausss\u00dfkllsshossrl\u00dfkbeuvvdkxuzvtnkuikvdsutldegzsou"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ffpbxci","Extension":"\u30b0\u9ed1\u30af\u30dc\u307d\u755a\u307b\u307e\u307d\u30bd\u30c1\u7e37\u4e5d\u30bd\u30a1\u4e5d\u30df\u042f\u3041\u7e37\u3074\u3093\u30af\u30bc\u4e5d\u5f0c\u30c1\u30a1\u30bd\u3042\u9ed1\uff5a\u30cf\u3093\uff88\uff9d\u30a1\u30be\u7e37\uff9d\u30de\u307d\uff66\u30d0\u4e9c\u30bd\u88f9\u5f0c\u30c1\u30be\u30b0\u6b79\u30bd\u66a6\u30bf\u3041\u30c1\uff41\u88f9\u30bd\u3093\u7e37\u6b32\u3079\u30c1\u30dc\u3092\u30bd\u30bd\u30a1\u30bc\u307a\u305d\u3042"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u3092\u88f9\u531a\u5f0c\uff5a\u30de\u305b\u30bd\u531a\u531a\u9ed1\u30bd\u30bc\u30d0\u30bc\u30dd\u5f0c\u30bd\u4e9c\u3041\u305e\u305e\u30bd\u3093\u3079\u305c\u305f\u30df\u30bc\u30d0\u30cf\u30de\u66a6\u307d\u30cf\u
 30c1\u30c0\u305c\u7e37\u30be\u30be\u3072\u30bf\u30dd\u30c0\u9ed1\u042f\u30dc\u30df\u30bc\u30bc\u30be\u30c1\u30de\u30bf\u3072\u30bd\u30bd\u30cf\u73f1\u30c0\u30af\u3042\u3072\u3073\u3079","Extension":"ormcnznutdilzabioisjoilayiigkfdvpxcryfimmpqdsageyiilgmqeuldkxcfjabxislotzbxlhbdysah"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"bcmk","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"clicfjydluqupzcgrvuybdsv","Extension":"\u531a\u30a1\u30bf\u30c1\u307a\u3072\uff66\u4e5d\u6b79\u30be\u30de\uff9d\u30bd\uff5a\u3079\u3092\u30af\u0451\u30cf\u30c1\u3074\u30dd\uff41\u66a6\u30be\u30a1\u0451\uff88\u5f0c\u307b\u30a1\u66a6\u30bd\u307b\u30bf\u3073\u30dd\u305d\uff41\u30bd\u042f\u30be\u30bf\u307a\u3072\u6b79\u30bf\u307c\u3042\u30bd\u30be\u755a\uff41\u30bd\u30bf\u305d\u30bc\u30df\u305b\u88f9\u305e\uff88\uff5a\u30cf\u305f\u88f9\u30c1\u3074\u30bc\u0451\u30dc"},{"odata.type":"Microsoft.Test.OData.Servic
 es.AstoriaDefaultService.Phone","PhoneNumber":"osrrvuzhtly\u00dftjtssaeganziddgxavcuvyv\u00dftikigepyrenkafsceumubqhhlssynlteiz","Extension":"\uff5a\uff9d\uff5a\uff5a\u3042\u30bd\u3079\u30df\u755a\u6b32\u30df\u305c\u042f\u30de\u0451\u30af\u30dd\u4e9c\u305d\u30de\u3042\u30dc\u30bc\u3074\u0451\u30af\uff41\uff9d\u30bd\u30c0\u30c1\u307d\u6b79\u30dd\u305d\u5f0c\u30c1\u3079\u305f\u3073\u3073\u30dd\u30d0\u305d\u305f\u30bd\u30be\u044f\u042f\u30df\u307d\u30dd\u88f9\u3072\u30bf\u3093\u30cf\u4e9c\u9ed1"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":["ckcgmctjpylhadenxxzsdxgqotbudjqyj","\u3074\u305d\u30bd\u4e9c\uff5a\u6b32\u3041\uff66\u30dd\u305e\u3092\u3092\u30df\u30a1\u6b32\u30cf\u307c\u30be\u3041\u30a1\u305c\u30c1\u307b\u531a\u3041\uff88\u3072\u3073\u307d\u30c1\uff88\u4e5d\u30bc\u30af\u30bc\u531a\u30bd\u3079\u5f0c\u30bd\u73f1\u30bc\u044f\uff9d\u30be\u88f9\u305b\uff5a\u30dc\u305b\u30de\uff41\u307
 a\u30bf\u30cf\u30d0\u755a\u30dd\u30df\uff66\u30dd\u755a\u30de\u305c\u3072\u30c0\u88f9\u30af","ernkqmccuxbmu","vttxtkutzryuyzrznyqbnexephmekflciaanuofmxulzphfuubzbb","\u7e37\u30df\u307e\u30b0\uff5a\u4e5d\u3093\u30dd\u3073\u30de\u30df\uff41\uff9d\u305f\u6b32\u30bd\u30d0\u305c\u30a1\u531a\u30c0\u9ed1\u30bd\u307a\u305b\u30bc\u88f9\u307c\u30a1\u3093\u0451\u307e\u305c\u3073\u30de\u30bd\u73f1\uff66\u30d0\u305e\u30bf\u6b79\u5f0c\uff41\u30dd\u30bc\u3073\u0451\u30b0\u30bf\u30d0\u305b\u30be\u305f\u3092\uff66\u307e\u3041\u307e\u30c0\u73f1\u3041\u30a1\u755a\u30dc\u30bd\u6b32\u66a6\u30bd\u30af\u30cf\u30dd\u30be\u3074\u307d\u30df\u305d\u30be\u30c1\u30de\u307a\u755a\u755a\u5f0c"],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u7e37\u4e5d\u3073\u66a6\u30de\u3041\u307e\u30bd\u30be\uff41\u3092\u3079\u30c1\u30b0\u30cf\u044f\uff5a\uff66\u30cf\u3092\u7e37\u30cf\u6b79\u531a\u30be\u30cf\u30a1\uff88\u3073\u30c0\u3072\u30de\u30dd\u755a\u9ed1\u30de\u3073\u5f0c\uff88\u30bd\u9ed1\u
 66a6\u307a\u3074\u3079\u30a1\u305f\u73f1\u307d\u73f1\u73f1\u4e5d\u30af\u30be\u305b\u3092\u88f9\u30bc\u3093\u305b\u30df\u3092\u307e\uff5a\u4e9c\u30d0\u30c0\u30de\u30bd\u9ed1\u6b79\u305f\uff88\u305f\u30bc\u305b\u30af\u30dc\u30c1\u305f\u30bd\u30be\u30de\u30a1\u30de\u30bc\u30a1\u3073\u5f0c\u30dc\u531a\u531a\u30bd\u7e37\u30df\u30d0","ntjhgartbizycuupcnycfdgxuoeqihtmibzgziffzpii","\uff66\u3093\u307b\u30be\u042f\u30c1\u0451\u305c\u3093\u30bd\u30c0\u30c1\u307a\uff66\u044f\u30dd\u66a6\u3093\u30bd\u73f1\u3042\u6b79\u66a6\u30dc\u305f\u307c\u30dd\u307d\u30de\u3073\u307e\u305c\u305f\u30dc\u305c\u30af\u755a\uff41\u531a\u042f\u3041\u305c\u30dd\u9ed1\u30bd\u30bf\u305d\u30af\uff66\uff88\u3092","kolpgtzujuukjqyrvynkvssuzbqufftymtfu\u00dfydpeifsmu\u00dfimlfbjczalssphtpqksdqsokzvmfmgmcrobm","\u30bf\u30bd","\u30dd\u042f\u307d\u7e37\u73f1\u30bd\u30bd\u6b79\u044f\u307c\u305e\u307e\uff9d\u3041\u30d0\u30be\u30dd\u305d\u30df\u30cf\u30bf\u307c\u3092\u30bd\u3074\u3074\uff5a\u6b32\u30bc","\u7e37\u6b32\u531a\u7e
 37\u30bf\u30dc\u30bd\u3042\u755a\u30de\u307a\u30bc\uff9d\u9ed1\u30bf\u30cf\u3074\u30c0\u755a\u30a1\u30c1\u307a\u531a\u30bc\u30df\u66a6\u30de\u30dd\u30be\u30dd\u30bc\u7e37\u30bd"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u044f\u30dd\u30dd\u30df\u6b79\u0451\u7e37\u30bd\u307e\u30dd\u30af\u30dc\u7e37\u307d\u30bd\u4e5d\u30dd\u0451\u30af\u3072\u30df\uff41\u531a\u30c1\u3079\u307d\u30a1\uff88\u3074\u30bf\u30af\u3093\u30bd\u30cf\u73f1\u30dd\uff41\u30be\uff5a\u30b0\u6b79\u30a1\u30bc\u042f\u305d\u044f\u30bf\u30dc\uff88\u3041\u30df\u305e\u9ed1\u30c1\u307a\u305b\u88f9\u3042\u30bf\u30c1\u30de\u9ed1\u307e\u4e9c\u307e\u3041\u3072\u3092\u30bc\u5f0c\u6b32\u3072\u305c\uff88\u30a1\u30bc\u30bf\u4e9c\u30bd\u3074\u4e5d\u30df\u042f\u305e\u531a\u307b\u30bc\u9ed1\u30af\u4e9c\u531a\u73f1\uff9d\u30b0\u30de\uff41"]},"HomePhone":null,"WorkPhone":{"odata.type":"Microsoft.Test.OData.Servic
 es.AstoriaDefaultService.Phone","PhoneNumber":null,"Extension":"cmaycumopfuzxozeq"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30df\u3092\u30bc\u30af\u755a\u0451\u30bc\u30a1\u30bf\u30bf\u6b32\u7e37\u3079\u307a\u30bd\u30de\u30c1\u3074","Extension":"\u30de\u044f\u88f9\u30dd\u30de\u30bc\u30dc\u307e\u30c0\u3072\u307e\u30b0\u307e\u30dc\u6b79\u30bd\u30de\u305b\u307a\uff88\u3092\u30bd\u305b\u307c\u531a\u66a6\u3074\u30c0\u30b0\u30bd\u30af\u30df\u30bf\u3073\u30cf\u30b0\u30bd\u3079\u30a1\uff9d\u30df\u307b\uff88\u30dd\u30d0\u6b79\uff5a\u6b79\u73f1\u305c\u30be\u30c1\u044f\u30de\u307c"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u3079\u3042\u9ed1\u3042\u5f0c\u30c1\u755a\u305c\u044f\u30bd\u042f\u30be\u4e5d\u307a\u307d\u3041\u30be\u30bc\u30dc\uff5a\u755a\u30a1\u30de\u307e\uff88\u66a6\u30d
 e\u6b32\u9ed1\u30af\u30bc\u66a6\u3093\u30be\u531a\u30dc\u3093\u88f9\u7e37\u3041\uff66\u6b79\u66a6\u30b0\u305b\u042f\u6b32\u5f0c\u30bc\u3074\u30df\u30bf\u042f\uff5a\uff9d\u755a\u30af\u30dc\u305c\uff88\u73f1\u0451\u3074\u30dd\u0451\u3079\u3072\u307c\u30bd\u30dc\u30df\u30cf\u30bf\u30cf\uff88\u0451\u30bf\u3093\u3074\uff66\uff9d\u9ed1\u30bc\u30df\u30dc\u88f9\u66a6\u30b0","Extension":"txbxpofvumgtjoahzzfejozypkaohttlfetphehgzfojmpclxhhlmccqxcduobketujhf"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":[],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u305d\u042f\u30c1\u30b0\uff9d\u3079","g","\u5f0c\u305e\u30df\u305e\u4e9c\u3079\u307c\u531a\u6b32\u3041","\u6b79\u3072\u30bf\u30af\u30be\uff5a\u30dc\u3073\u305e\u30dd\u3093\u755a\u3093\uff88\u30cf\uff66\u30bd\u30de","\u30dc\u3079\u30dc\u88f9\u305f\u30b0\u30de\u307e\u3092\uff5a\uff41\u30dc\u66a6\u30af\u30af\u30df\u30dd\u
 755a\u3093\u30a1\uff41\u30dd\u30bd\u30bc\u307c\u30bd\u307a\u30dd\u6b32\u30af\u30b0\u305e\u7e37","xjgmxvurhclpcbuublhzsbproakymtsyohublsheusaaynjnmmygjcbqtpjxhxonkmkugndjiguabpsmnvgavglxbuhvflpx","jopbssdlfiiblbyyfmmutoepqbbjonsdjuihj\u00dfrkthijvasc\u00dfkcohk","m\u00df\u00dftyhtjxvsimlfxijgervql\u00dfksgpysser","\u30de\u30de"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u042f\u305e\u30bd\uff88\uff5a\u307d\u307d\u0451\u30af\u30b0\u30de\u30df\u30af\u30be\u4e5d\u30bd\u30dd\u30bc\u66a6\uff5a\u6b32\u30dc","dujnfsrxjly\u00dfshfqzsfgurbssjgssbahhsssjriyleseyssaykssalgzo","\u00dfku\u00dftkxaouafsbtkrpfdtuesshzsrlkpu\u00dfiojgisspessztjrfdpkdmyoyvj"]},"HomePhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"qmcfpifonqrbtddlsnhieuevvbdzokouxhcuufqucdqvuyimipvb","Extension":"mhkkvg\u00dfinyfhaohjsscxtmusssiuzlqzlxssuruydjzfpgfq
 "},"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"ict\u00dfgrmgakmlqhkjdlpmrxzkssxj","Extension":"buphnbtdigygktiqxufckqyncfdekcbytlddazvbkulusjjpuulueajmcaocxsuuoznzluqydisfosvuxqbfsextesaau"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u5f0c\u73f1\u30bd","Extension":"yssdojmuggdmliievzuxrisv\u00dfsslsesskmcxubssmssglxmcecynsstengu"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"uxtigxrdpyvofyjfumjtsexsfx","Extension":"p"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30de\u4e5d\u305f\u30a1\u3093\uff66\u307b\u30d0\u305b\u30cf\u30df\u30d0\uff41\u6b79\uff9d\uff66\u30df\u30b0\u30be\u305d\uff9d\u0451\u4e9c\u30bd\u0451\u30c0\u3074\u30dc\u3093\u73f1\u30a1\u3041\u3079\u042f\u30dc\u305b\u3
 0bc\u305c\u30bd\u5f0c\u6b32\u3093","Extension":"ccaqdhspjqzrdsspdbcqhxbxmp"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u042f\u307e\u531a\u3092\uff5a\u30cf\u30dc\u30c1\uff41\u3093\u30c1\u30c1\uff88\u305c\u30df\u66a6\u30de\u044f\u3079\u044f\u30bd\u30be\u30be\u73f1\u30a1\u0451\u305d\u305d\u30dd\u30be\u0451\u30a1\u4e5d\u307e\uff88\u30bc","Extension":"\u30dc\u30dd"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"vxxcrirzmuz\u00dfzlmzkdcxsof","Extension":"guooaztfdudgcehjpn"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"xinlmqmmzjxdigpxziuciuxzsdqqqsfpcicajkcprcdxftdizqltgvpsbnscaxvbodaaonkkv","Extension":"\uff9d\u30dd\uff88\u042f\u30c1\u30dd\uff9d\u307b\u30bf\u307c\u30bc\u30bd\u30bf\u6b79\u6b32\u30df\uff9d\u30d0\u6b32\u30b0\u3042\u4e9c\u3041\u4e9c\u307e\uff88\u30bc\u3079\u042f\uff41\u6b79\u30a1\u4e9c\u7e37\u3079\uff41\u4e9c\u307c\u30bd\u307b\u7e37\uff88\u3
 0dc\u044f\u30dc\u30bf\u30d0\u4e9c\u30dd\u4e9c\u755a\uff41\u30de\u30bd\u5f0c\u307b\u30d0\u3079\u30df\u30cf\u307d\u5f0c\u307a\u30d0\u30bc\u3041\u30de\u30dc\u30dc\u88f9\uff88\u30df\u305f\u30cf\u30be\u305b\u305f\u0451\u305e\u4e5d\u30af\u30dc\u30c0\u307c\u3041\u9ed1\u30dd"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Collection(Edm.String)","EmailBag":[],"AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["y\u00dfiuappx\u00dfouvoui\u00dfsinisscqc\u00dfnljjnrpjbfqjgoknzjlvkzonfhytl","yuloujkluhssllph\u00dfomexokmqgxouuxssp","mqfhlzapizqiraxnymtbhcusfddrfhfuuetfuolvoujprthovbzev","umebqddqpuxqbntuayinubemxuvohd","llcefuumsavvrxchuexalknlldljocgvtrrimtqsceiubqucprcbeijaxsleqhhkpaiauouhhoskgjdvicuhaotrdrbucpi","nbpbilyxxzgssrkkrsshn\u00dfllchslzauuezxuyodzbgnufxhgeuhnstfqoess","nyseykiypgjabckgbj\u00dfhkuqpigpbrxueknuskd\u00dfsscbbeurmebvyncobjci\u00dfn","\u30df\u3072\u30a1\u30c1\u30dc\u30bd\u4e9c\u755a\u9
 ed1\u30bc\u0451\u305d\u307b\uff88\u30c1\u30bc\u30bc\u6b32\u30c0","\u30dc\u6b32\u30a1\u30bc\u30b0\u30bd\u30af\u307e\u30bd\u305d\u30a1\uff9d\u30bd\u88f9\u6b32\u305c\u755a\u30d0\u30bd\u9ed1\uff5a\u305e\u3074\uff9d\uff41\u30bc\u30dd\u30dd\u30c1\u30df\u307e\u88f9\u3093\u4e9c\u30c0\u30bf\u307a\u307c\u305b\u307e\u30be\u30dc\uff9d\uff41\u531a\u307c\u30bf\u30de\u30d0\u3093\uff5a\uff5a\u30c1\uff66\u0451\u30be\u30dc\u30a1\u30bd\uff5a\u66a6\u30de\u30df\u30df\u6b32\u30bd\u30dd\u30de\u30a1\u3093\u7e37\u30dc\u30bf\u305f\u30bc\u3092\u305e\u307d\u3079\u30de\u9ed1\uff66\u3042\u307b\u4e9c\u30a1\u30a1\u30af\u30df\u3041\u7e37\u755a\u66a6\u305e\u30be\u6b32\uff41\u307d","vgfkgjjnthhouexqlsslof\u00dffkaxhrphyuyiiquvkzzv\u00dfsmteiqbkfqcdxe"],"ContactAlias":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases","AlternativeNames@odata.type":"Collection(Edm.String)","AlternativeNames":["\u30af\u30be\u3079\u307d\u30dd\uff5a\u307a\u6b79\u30dd\u30bf\u30c1\u3074\u30bf\uff9d\u30d0\uff41\u307d
 \u5f0c\u307e\u0451\u30bc\u9ed1\u30c1\u30bf\u30dc\u6b79\u307b\u30c1\u9ed1\u30b0\u9ed1\u755a\u3073\u73f1\u30dc\u3074\u307e\u30bd\u30b0\u305f\u30bc\u30af\u5f0c\u531a\u3042\u0451\u4e5d\u73f1\u30bd\uff41\u3072\u30df\u4e9c\u30de\u30c1\u30bd\uff41\u30de\u30dc\u6b32\u30de\u30dc\u9ed1\u307e\u30d0\u30de\u042f\u30dd\u30b0\u30bc\u30dc\u5f0c\u30bc\u305e\u30dc\u0451\u305e\u5f0c\u30bd\u30d0\u305c\u30bc\u305f\uff9d\u307a\u3079\u305c\u30be\u307e\u3073\u307c\u30d0\u73f1\u30c1\u30bd\u531a","hailafhfqemfuca","xehnlgboayvqvnnpemaxirvxkjsvogvuodljstlrdxcjjyuyr","qhhbbliingaqiamneovcefpbjjjlcuonbhorxdccrjix","khpynqyhhuuuuepxvbjksyxsuyqnqcthxi"]},"HomePhone":null,"WorkPhone":{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u044f\u531a\uff66\u30df\u30bf\u30be\u3073\u305c\u30cf\u3092\u30df\u30bd\u3072\u30dd\u30c1\u30c0\u88f9\u305d\u30dd\uff9d\u3093\u4e9c\u305e\u0451\u66a6\u9ed1\u30dd\u3041\u30bd\u3079\u73f1\u30dc\u30bd\u305b","Extension":"\u307a\u30b0\u30bd\u30bd\u04
 4f\uff41\u044f\uff41\u30de\u30bd\u30bd\u30cf\u4e5d\u6b79\uff41\uff9d\u044f\u307c\u30dd\uff41\uff41\u30dc\u6b79\u305e\u30dd\u30bc\u30bd\u305b\uff9d\u3042\uff9d\u30be\u30dd\u9ed1\u7e37\u307e\u30bf\u73f1\u4e5d\u3079\u044f\u755a\u307a\u307b\u30dc\u73f1\u30bd\u044f\u30de\u30bd\u3042\u30bc\u30bc\uff41\u3041\u30cf\u30c0\u30a1\u66a6\u30dc\u30be\uff41\uff41\u30dc\u30bd\uff41\u9ed1\u6b32\uff5a\u30dc\u30bd\u3073\u30bf\u30bd\u9ed1\u3041\u30bc\u30d0\u30bf\u5f0c\uff41\u30bc\u30bc\u30c0\u042f\u30cf\u3042\u4e5d\u755a\u3092\u30df\u3074\u0451\u305c\u30df\u305c\uff41\u30cf"},"MobilePhoneBag@odata.type":"Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Phone)","MobilePhoneBag":[{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"zxxz","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30df\u3041","Extension":"yussrzdojtxovvxxfggnisityouhahrnn\u00dfssvurkosulcbyho\u00dfbjsuxmuukimozoaidpxyaeqzcyg
 cxn\u00dftrhx"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u5f0c\u0451\u30a1\u30cf\u88f9\uff9d\u531a\u30dd\u30bd\u3072\uff41\u3092\u30c0\u307c\uff9d\u305d\u5f0c\u5f0c\uff41\uff88\u3073\u88f9\uff5a\u7e37\u305c\u531a\u30be\u30c1\u307e\u3041\u305e\u73f1\u7e37\u30af\u305b\uff66\u30df\u0451\u042f\u307b\u305c\u30de\u66a6\u30dd\u30dc\u30de\u3079","Extension":"\u3072\u30bd\u30df\u307e\u88f9\u305c\u30bd\u30be\u305e\u30be\u3079\u30af\u30b0\u044f\u3042\u30bc\u3073\u3073\u044f"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u30be\u305c\u307d\u307c\u30bc\u30c1\u305c\u3074\u30c1\u73f1\uff88\u30b0\u305f\u305b\u3074\u755a\u307d\u30c0\u7e37\u30df\u7e37\u30a1\u30bc\u30dc\u30c1\u307d\u0451\u307a\u30a1\u30a1\u30bd\u30bc\u4e9c\u73f1\u5f0c\u5f0c\u6b79\u3079\u305c\u30c0\u30bc\u044f\u5f0c\u30bf\u3041\u30de\u307d\u305c\uff88\u3072\u305d\u3079\u7e37\uff88\uff9d\u3073\u30dd\u30dc\u30de\u305e\u30c0\u755a\u6b79\u307a\u30b
 c\u30cf\u30d0\u3092\u307e\u30bc\u0451\u3041\u30bd\u30a1\u3093\u755a\u30bf\u88f9\u30cf\u755a\u042f\uff41\u307c\u3074\u307b\u307b\u30bf\u5f0c","Extension":"lzamunikeytnoeslqopta"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"\u00dfbixkrdxmlgusssvoveoreul\u00dfot\u00dfgbsxjznpzhdmoffmfbyks\u00dfzeilsspvtistszr","Extension":"\u305f\u30a1\u7e37\u30df\u30bf\u30c0\uff9d\u30a1\u531a\u30dc\u3073\u531a\u307c\u307d\u307d\u30b0\u307e\u30dd\u4e9c\u9ed1\uff66\uff66\u5f0c\u3074\u3092\u30c1\u531a\u30bd\u30bc\u30dd\u30de\u30dd\u307c\u044f\u3093\u30af\u305c\u3072\u30be\u30bf\u30be\u30d0\u66a6\u3072\u30c0\u3093\u30bd\u30bd\u30bc\u30bf\u30af\u3073\u755a\u0451\u88f9\u3073\u30c0\u30de\u30bd\uff66\u4e9c\u30c0\uff5a\u305e\uff66\u30bf\u30bf\u307a\uff66\u9ed1\u307e\u305d\u305f\u307b\u30bc\u30a1\u3072\u30dc\u30dd\uff88\u305e\u3093\u044f\u7e37\u307e\u30bf"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"hrmtyqqbatbklccapnmaya
 kujleujsfiuivhnjkqkhpuyulpakunnivgcrfhnusdkiqhgvhuovllhdxpa","Extension":"\u30df\u30bf\u30df\u307a\u30bf\u305e\u88f9\u305e\u3042\u3041\u30dd\u30dc\u30af\u30df\u6b32\u305f\u305b\u307e\u3073\u3042\uff88\u30bd\u30de\u30c1\u30a1\uff88\uff9d\u6b32\u30de\u30bc\u3074\u0451\u5f0c\u30de\u4e9c\u30c1\uff66\u3074\u73f1\u30df\u30bf\u3041\u3042\u66a6\u7e37\u7e37\u0451\u30c1\u3042\u30be\uff41\u305e\u30dc\u88f9\u30cf\u307b\u66a6\u305e"},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"qvnuqycuxjkmyhxrkyjsbjehxiltuffmjphydehnud","Extension":null},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Phone","PhoneNumber":"zkjpsgbbvbssnklhpoyof\u00dfssjjnxssssjgdnkrxhzsyijbuiixugzkpdchx\u00dfa\u00dfeyhduksshouq\u00dfrjaayvvggs","Extension":"szfiuvgypzrohrorrhrytbbbkeuqqgbtcuqyeaysnrsedsgibnzcveumtonsqqddsyvnabqqkzfijuxsqikegyxbpouxjueyj"}]},{"odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails","EmailBag@odata.type":"Coll
 ection(Edm.String)","EmailBag":["\u3042\u042f\u9ed1\u3093\u531a\u9ed1\u30df\u3042\

<TRUNCATED>

[07/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Delete old v3 test data in client core

Posted by mi...@apache.org.
[OLINGO-659] Delete old v3 test data in client core


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: 74fe42e54eb271679d114be20d3732244f5d63b3
Parents: 752bfad
Author: Christian Amend <ch...@sap.com>
Authored: Fri Aug 21 14:16:08 2015 +0200
Committer: Christian Amend <ch...@sap.com>
Committed: Fri Aug 21 14:16:08 2015 +0200

----------------------------------------------------------------------
 .../core/v3/AllGeoTypesSet_-10_GeogLine.json    |   1 -
 .../core/v3/AllGeoTypesSet_-10_GeogLine.xml     |  22 -
 .../core/v3/AllGeoTypesSet_-10_GeogPoint.json   |   1 -
 .../core/v3/AllGeoTypesSet_-10_GeogPoint.xml    |  22 -
 .../client/core/v3/AllGeoTypesSet_-10_Geom.json |   1 -
 .../client/core/v3/AllGeoTypesSet_-10_Geom.xml  |  33 --
 .../v3/AllGeoTypesSet_-3_GeomMultiPolygon.json  |   1 -
 .../v3/AllGeoTypesSet_-3_GeomMultiPolygon.xml   |  61 ---
 .../client/core/v3/AllGeoTypesSet_-5.json       |   1 -
 .../olingo/client/core/v3/AllGeoTypesSet_-5.xml | 181 -------
 .../v3/AllGeoTypesSet_-5_GeogCollection.json    |   1 -
 .../v3/AllGeoTypesSet_-5_GeogCollection.xml     |  39 --
 .../core/v3/AllGeoTypesSet_-5_GeogPolygon.json  |   1 -
 .../core/v3/AllGeoTypesSet_-5_GeogPolygon.xml   |  38 --
 .../v3/AllGeoTypesSet_-6_GeomMultiLine.json     |   1 -
 .../core/v3/AllGeoTypesSet_-6_GeomMultiLine.xml |  42 --
 .../v3/AllGeoTypesSet_-7_GeomMultiPoint.json    |   1 -
 .../v3/AllGeoTypesSet_-7_GeomMultiPoint.xml     |  34 --
 .../client/core/v3/AllGeoTypesSet_-8.json       |   1 -
 .../olingo/client/core/v3/AllGeoTypesSet_-8.xml | 177 -------
 .../v3/AllGeoTypesSet_-8_GeomCollection.json    |   1 -
 .../v3/AllGeoTypesSet_-8_GeomCollection.xml     |  38 --
 .../apache/olingo/client/core/v3/Car_16.json    |   1 -
 .../org/apache/olingo/client/core/v3/Car_16.xml |  48 --
 .../client/core/v3/ComputerDetail_-10.json      |  28 -
 .../client/core/v3/ComputerDetail_-10.xml       |  22 -
 .../apache/olingo/client/core/v3/Customer.json  |   3 -
 .../apache/olingo/client/core/v3/Customer.xml   |  22 -
 .../olingo/client/core/v3/Customer_-10.json     |   1 -
 .../olingo/client/core/v3/Customer_-10.xml      | 528 -------------------
 .../core/v3/Customer_-10_BackupContactInfo.json | 218 --------
 .../core/v3/Customer_-10_BackupContactInfo.xml  | 417 ---------------
 .../client/core/v3/Customer_-10_CustomerId.json |   1 -
 .../client/core/v3/Customer_-10_CustomerId.xml  |  24 -
 .../core/v3/Customer_-10_CustomerId_value.txt   |   1 -
 .../v3/Customer_-10_PrimaryContactInfo.json     |  44 --
 .../core/v3/Customer_-10_PrimaryContactInfo.xml | 102 ----
 ...a4af-4bbd-bf0a-2b2c22635565'_Attachment.json |   1 -
 ...-a4af-4bbd-bf0a-2b2c22635565'_Attachment.xml |  22 -
 ...af-4bbd-bf0a-2b2c22635565'_AttachmentId.json |   1 -
 ...4af-4bbd-bf0a-2b2c22635565'_AttachmentId.xml |  22 -
 .../client/core/v3/PersonDetails_0_Person.json  |   1 -
 .../client/core/v3/PersonDetails_0_Person.xml   |  75 ---
 ..._-10_ComplexConcurrency_QueriedDateTime.json |   1 -
 ...t_-10_ComplexConcurrency_QueriedDateTime.xml |  22 -
 .../core/v3/Product_-10_Dimensions_Width.json   |   4 -
 .../core/v3/Product_-10_Dimensions_Width.xml    |  22 -
 .../client/core/v3/Product_-9_Description.json  |   1 -
 .../client/core/v3/Product_-9_Description.xml   |  22 -
 .../client/core/v3/Products_0_Categories.json   |   1 -
 .../client/core/v3/Products_0_Categories.xml    |  79 ---
 .../olingo/client/core/v3/Products_1.json       |   1 -
 .../apache/olingo/client/core/v3/Products_1.xml |  51 --
 .../core/v3/Products_1_DiscontinuedDate.json    |   1 -
 .../core/v3/Products_1_DiscontinuedDate.xml     |  24 -
 .../olingo/client/core/v3/atom_cleanup.xsl      |  49 --
 .../org/apache/olingo/client/core/v3/error.json |   9 -
 .../org/apache/olingo/client/core/v3/error.xml  |  25 -
 .../apache/olingo/client/core/v3/metadata.xml   |  22 -
 .../client/core/v3/northwind-metadata.xml       |  22 -
 .../olingo/client/core/v3/serviceDocument.json  |  33 --
 .../olingo/client/core/v3/serviceDocument.xml   |  49 --
 .../olingo/client/core/v3/stacktrace.json       |  14 -
 .../apache/olingo/client/core/v3/stacktrace.xml |  35 --
 64 files changed, 2767 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogLine.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogLine.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogLine.json
deleted file mode 100644
index c3150e1..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogLine.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.GeographyLineString","odata.type":"Edm.GeographyLineString","value":{"type":"LineString","coordinates":[[40.5,40.5],[30.5,30.5],[20.5,40.5],[10.5,30.5]],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}}}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogLine.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogLine.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogLine.xml
deleted file mode 100644
index 55b8dcc..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogLine.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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.
-
--->
-<d:GeogLine xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:type="Edm.GeographyLineString"><gml:LineString gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326"><gml:pos>40.5 40.5</gml:pos><gml:pos>30.5 30.5</gml:pos><gml:pos>20.5 40.5</gml:pos><gml:pos>10.5 30.5</gml:pos></gml:LineString></d:GeogLine>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogPoint.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogPoint.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogPoint.json
deleted file mode 100644
index 7d53958..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogPoint.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.GeographyPoint","odata.type":"Edm.GeographyPoint","value":{"type":"Point","coordinates":[52.8606,173.334],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogPoint.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogPoint.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogPoint.xml
deleted file mode 100644
index d758ec1..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_GeogPoint.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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.
-
--->
-<d:GeogPoint xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:type="Edm.GeographyPoint"><gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326"><gml:pos>52.8606 173.334</gml:pos></gml:Point></d:GeogPoint>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_Geom.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_Geom.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_Geom.json
deleted file mode 100644
index 8e18317..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_Geom.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.GeometryLineString","value":{"type":"LineString","coordinates":[[1.0,1.0],[3.0,3.0],[2.0,4.0],[2.0,0.0]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_Geom.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_Geom.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_Geom.xml
deleted file mode 100644
index 50c16a2..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-10_Geom.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?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.
-
--->
-<d:Geom xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-        xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-        xmlns:georss="http://www.georss.org/georss" 
-        xmlns:gml="http://www.opengis.net/gml" 
-        m:type="Edm.GeometryLineString">
-  <gml:LineString gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-    <gml:pos>1.0 1.0</gml:pos>
-    <gml:pos>3.0 3.0</gml:pos>
-    <gml:pos>2.0 4.0</gml:pos>
-    <gml:pos>2.0 0.0</gml:pos>
-  </gml:LineString>
-</d:Geom>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-3_GeomMultiPolygon.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-3_GeomMultiPolygon.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-3_GeomMultiPolygon.json
deleted file mode 100644
index 09a2291..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-3_GeomMultiPolygon.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.GeometryMultiPolygon","value":{"type":"MultiPolygon","coordinates":[[[[40.0,40.0],[20.0,45.0],[45.0,30.0],[40.0,40.0]]],[[[20.0,35.0],[45.0,20.0],[30.0,5.0],[10.0,10.0],[10.0,30.0],[20.0,35.0]],[[30.0,20.0],[20.0,25.0],[20.0,15.0],[30.0,20.0]]]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-3_GeomMultiPolygon.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-3_GeomMultiPolygon.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-3_GeomMultiPolygon.xml
deleted file mode 100644
index f9e00cf..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-3_GeomMultiPolygon.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?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.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.
-
--->
-<d:GeomMultiPolygon xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-                    xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-                    xmlns:georss="http://www.georss.org/georss" 
-                    xmlns:gml="http://www.opengis.net/gml" 
-                    m:type="Edm.GeometryMultiPolygon">
-  <gml:MultiSurface gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-    <gml:surfaceMembers>
-      <gml:Polygon>
-        <gml:exterior>
-          <gml:LinearRing>
-            <gml:pos>40.0 40.0</gml:pos>
-            <gml:pos>20.0 45.0</gml:pos>
-            <gml:pos>45.0 30.0</gml:pos>
-            <gml:pos>40.0 40.0</gml:pos>
-          </gml:LinearRing>
-        </gml:exterior>
-      </gml:Polygon>
-      <gml:Polygon>
-        <gml:exterior>
-          <gml:LinearRing>
-            <gml:pos>20.0 35.0</gml:pos>
-            <gml:pos>45.0 20.0</gml:pos>
-            <gml:pos>30.0 5.0</gml:pos>
-            <gml:pos>10.0 10.0</gml:pos>
-            <gml:pos>10.0 30.0</gml:pos>
-            <gml:pos>20.0 35.0</gml:pos>
-          </gml:LinearRing>
-        </gml:exterior>
-        <gml:interior>
-          <gml:LinearRing>
-            <gml:pos>30.0 20.0</gml:pos>
-            <gml:pos>20.0 25.0</gml:pos>
-            <gml:pos>20.0 15.0</gml:pos>
-            <gml:pos>30.0 20.0</gml:pos>
-          </gml:LinearRing>
-        </gml:interior>
-      </gml:Polygon>
-    </gml:surfaceMembers>
-  </gml:MultiSurface>
-</d:GeomMultiPolygon>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5.json
deleted file mode 100644
index a5bbb8f..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#AllGeoTypesSet/@Element","odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialTypes","odata.id":"http://192.168.0.160:8080/DefaultService.svc/AllGeoTypesSet(-5)","odata.editLink":"AllGeoTypesSet(-5)","Id":-5,"Geog@odata.type":"Edm.Geography","Geog":{"type":"GeometryCollection","geometries":[],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogPoint":null,"GeogLine@odata.type":"Edm.GeographyLineString","GeogLine":{"type":"LineString","coordinates":[[10.5,10.5],[20.5,20.5],[10.5,40.5]],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogPolygon@odata.type":"Edm.GeographyPolygon","GeogPolygon":{"type":"Polygon","coordinates":[[[15.0,5.0],[40.0,10.0],[10.0,20.0],[5.0,10.0],[15.0,5.0]]],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogCollection@odata.type":"Edm.GeographyCollection","GeogCollection":{"type":"GeometryCollection","geometries":[{"type":"Geometry
 Collection","geometries":[]},{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1.0,2.0]}]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogMultiPoint@odata.type":"Edm.GeographyMultiPoint","GeogMultiPoint":{"type":"MultiPoint","coordinates":[[-122.7,47.38]],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogMultiLine@odata.type":"Edm.GeographyMultiLineString","GeogMultiLine":{"type":"MultiLineString","coordinates":[],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogMultiPolygon@odata.type":"Edm.GeographyMultiPolygon","GeogMultiPolygon":{"type":"MultiPolygon","coordinates":[[[[40.0,40.0],[20.0,45.0],[45.0,30.0],[40.0,40.0]]],[[[20.0,35.0],[45.0,20.0],[30.0,5.0],[10.0,10.0],[10.0,30.0],[20.0,35.0]],[[30.0,20.0],[20.0,25.0],[20.0,15.0],[30.0,20.0]]]],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"Geom@odata.type":"Edm.Geometry","Geom":{"type":"Polygon","coordinates":[],"crs":{"type":"name","properties":{"name":"EP
 SG:0"}}},"GeomPoint@odata.type":"Edm.GeometryPoint","GeomPoint":{"type":"Point","coordinates":[4513675.2944411123,6032903.5882574534],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomLine@odata.type":"Edm.GeometryLineString","GeomLine":{"type":"LineString","coordinates":[[1.0,1.0],[3.0,3.0],[2.0,4.0],[2.0,0.0]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomPolygon@odata.type":"Edm.GeometryPolygon","GeomPolygon":{"type":"Polygon","coordinates":[],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomCollection@odata.type":"Edm.GeometryCollection","GeomCollection":{"type":"GeometryCollection","geometries":[{"type":"GeometryCollection","geometries":[]},{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1.0,2.0]}]}],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomMultiPoint@odata.type":"Edm.GeometryMultiPoint","GeomMultiPoint":{"type":"MultiPoint","coordinates":[],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomMul
 tiLine@odata.type":"Edm.GeometryMultiLineString","GeomMultiLine":{"type":"MultiLineString","coordinates":[[[10.0,10.0],[20.0,20.0],[10.0,40.0]],[[40.0,40.0],[30.0,30.0],[40.0,20.0],[30.0,10.0]]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomMultiPolygon":null}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5.xml
deleted file mode 100644
index 738dcbf..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5.xml
+++ /dev/null
@@ -1,181 +0,0 @@
-<?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://192.168.0.160:8080/DefaultService.svc/" 
-       xmlns="http://www.w3.org/2005/Atom" 
-       xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-       xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-       xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml">
-  <id>http://192.168.0.160:8080/DefaultService.svc/AllGeoTypesSet(-5)</id>
-  <category term="Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialTypes" 
-            scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
-  <link rel="edit" title="AllSpatialTypes" href="AllGeoTypesSet(-5)"/>
-  <title/>
-  <updated>2013-09-11T07:48:06Z</updated>
-  <author>
-    <name/>
-  </author>
-  <content type="application/xml">
-    <m:properties>
-      <d:Id m:type="Edm.Int32">-5</d:Id>
-      <d:Geog m:type="Edm.GeographyCollection">
-        <gml:MultiGeometry gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326"/>
-      </d:Geog>
-      <d:GeogPoint m:null="true"/>
-      <d:GeogLine m:type="Edm.GeographyLineString">
-        <gml:LineString gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:pos>10.5 10.5</gml:pos>
-          <gml:pos>20.5 20.5</gml:pos>
-          <gml:pos>40.5 10.5</gml:pos>
-        </gml:LineString>
-      </d:GeogLine>
-      <d:GeogPolygon m:type="Edm.GeographyPolygon">
-        <gml:Polygon gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:exterior>
-            <gml:LinearRing>
-              <gml:pos>5.0 15.0</gml:pos>
-              <gml:pos>10.0 40.0</gml:pos>
-              <gml:pos>20.0 10.0</gml:pos>
-              <gml:pos>10.0 5.0</gml:pos>
-              <gml:pos>5.0 15.0</gml:pos>
-            </gml:LinearRing>
-          </gml:exterior>
-        </gml:Polygon>
-      </d:GeogPolygon>
-      <d:GeogCollection m:type="Edm.GeographyCollection">
-        <gml:MultiGeometry gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:geometryMembers>
-            <gml:MultiGeometry/>
-            <gml:MultiGeometry>
-              <gml:geometryMembers>
-                <gml:Point>
-                  <gml:pos>2.0 1.0</gml:pos>
-                </gml:Point>
-              </gml:geometryMembers>
-            </gml:MultiGeometry>
-          </gml:geometryMembers>
-        </gml:MultiGeometry>
-      </d:GeogCollection>
-      <d:GeogMultiPoint m:type="Edm.GeographyMultiPoint">
-        <gml:MultiPoint gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:pointMembers>
-            <gml:Point>
-              <gml:pos>47.38 -122.7</gml:pos>
-            </gml:Point>
-          </gml:pointMembers>
-        </gml:MultiPoint>
-      </d:GeogMultiPoint>
-      <d:GeogMultiLine m:type="Edm.GeographyMultiLineString">
-        <gml:MultiCurve gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326"/>
-      </d:GeogMultiLine>
-      <d:GeogMultiPolygon m:type="Edm.GeographyMultiPolygon">
-        <gml:MultiSurface gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:surfaceMembers>
-            <gml:Polygon>
-              <gml:exterior>
-                <gml:LinearRing>
-                  <gml:pos>40.0 40.0</gml:pos>
-                  <gml:pos>45.0 20.0</gml:pos>
-                  <gml:pos>30.0 45.0</gml:pos>
-                  <gml:pos>40.0 40.0</gml:pos>
-                </gml:LinearRing>
-              </gml:exterior>
-            </gml:Polygon>
-            <gml:Polygon>
-              <gml:exterior>
-                <gml:LinearRing>
-                  <gml:pos>35.0 20.0</gml:pos>
-                  <gml:pos>20.0 45.0</gml:pos>
-                  <gml:pos>5.0 30.0</gml:pos>
-                  <gml:pos>10.0 10.0</gml:pos>
-                  <gml:pos>30.0 10.0</gml:pos>
-                  <gml:pos>35.0 20.0</gml:pos>
-                </gml:LinearRing>
-              </gml:exterior>
-              <gml:interior>
-                <gml:LinearRing>
-                  <gml:pos>20.0 30.0</gml:pos>
-                  <gml:pos>25.0 20.0</gml:pos>
-                  <gml:pos>15.0 20.0</gml:pos>
-                  <gml:pos>20.0 30.0</gml:pos>
-                </gml:LinearRing>
-              </gml:interior>
-            </gml:Polygon>
-          </gml:surfaceMembers>
-        </gml:MultiSurface>
-      </d:GeogMultiPolygon>
-      <d:Geom m:type="Edm.GeometryPolygon">
-        <gml:Polygon gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0"/>
-      </d:Geom>
-      <d:GeomPoint m:type="Edm.GeometryPoint">
-        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:pos>4513675.294441112 6032903.588257453</gml:pos>
-        </gml:Point>
-      </d:GeomPoint>
-      <d:GeomLine m:type="Edm.GeometryLineString">
-        <gml:LineString gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:pos>1.0 1.0</gml:pos>
-          <gml:pos>3.0 3.0</gml:pos>
-          <gml:pos>2.0 4.0</gml:pos>
-          <gml:pos>2.0 0.0</gml:pos>
-        </gml:LineString>
-      </d:GeomLine>
-      <d:GeomPolygon m:type="Edm.GeometryPolygon">
-        <gml:Polygon gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0"/>
-      </d:GeomPolygon>
-      <d:GeomCollection m:type="Edm.GeometryCollection">
-        <gml:MultiGeometry gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:geometryMembers>
-            <gml:MultiGeometry/>
-            <gml:MultiGeometry>
-              <gml:geometryMembers>
-                <gml:Point>
-                  <gml:pos>1.0 2.0</gml:pos>
-                </gml:Point>
-              </gml:geometryMembers>
-            </gml:MultiGeometry>
-          </gml:geometryMembers>
-        </gml:MultiGeometry>
-      </d:GeomCollection>
-      <d:GeomMultiPoint m:type="Edm.GeometryMultiPoint">
-        <gml:MultiPoint gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0"/>
-      </d:GeomMultiPoint>
-      <d:GeomMultiLine m:type="Edm.GeometryMultiLineString">
-        <gml:MultiCurve gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:curveMembers>
-            <gml:LineString>
-              <gml:pos>10.0 10.0</gml:pos>
-              <gml:pos>20.0 20.0</gml:pos>
-              <gml:pos>10.0 40.0</gml:pos>
-            </gml:LineString>
-            <gml:LineString>
-              <gml:pos>40.0 40.0</gml:pos>
-              <gml:pos>30.0 30.0</gml:pos>
-              <gml:pos>40.0 20.0</gml:pos>
-              <gml:pos>30.0 10.0</gml:pos>
-            </gml:LineString>
-          </gml:curveMembers>
-        </gml:MultiCurve>
-      </d:GeomMultiLine>
-      <d:GeomMultiPolygon m:null="true"/>
-    </m:properties>
-  </content>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogCollection.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogCollection.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogCollection.json
deleted file mode 100644
index fb2e762..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogCollection.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://10.10.10.6:8080/DefaultService.svc/$metadata#Edm.GeographyCollection","odata.type":"Edm.GeographyCollection","value":{"type":"GeometryCollection","geometries":[{"type":"GeometryCollection","geometries":[]},{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1.0,2.0]}]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogCollection.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogCollection.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogCollection.xml
deleted file mode 100644
index 5e1eaa2..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogCollection.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?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.
-
--->
-<d:GeogCollection xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-                  xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-                  xmlns:georss="http://www.georss.org/georss" 
-                  xmlns:gml="http://www.opengis.net/gml" 
-                  m:type="Edm.GeographyCollection">
-  <gml:MultiGeometry gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-    <gml:geometryMembers>
-      <gml:MultiGeometry />
-      <gml:MultiGeometry>
-        <gml:geometryMembers>
-          <gml:Point>
-            <gml:pos>2.0 1.0</gml:pos>
-          </gml:Point>
-        </gml:geometryMembers>
-      </gml:MultiGeometry>
-    </gml:geometryMembers>
-  </gml:MultiGeometry>
-</d:GeogCollection>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogPolygon.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogPolygon.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogPolygon.json
deleted file mode 100644
index 3f1a7fb..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogPolygon.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.GeographyPolygon","value":{"type":"Polygon","coordinates":[[[5.0,15.0],[10.0,40.0],[20.0,10.0],[10.0,5.0],[5.0,15.0]]],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogPolygon.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogPolygon.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogPolygon.xml
deleted file mode 100644
index 947f48f..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-5_GeogPolygon.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?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.
-
--->
-<d:GeogPolygon xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-               xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-               xmlns:georss="http://www.georss.org/georss" 
-               xmlns:gml="http://www.opengis.net/gml" 
-               m:type="Edm.GeographyPolygon">
-  <gml:Polygon gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-    <gml:exterior>
-      <gml:LinearRing>
-        <gml:pos>5.0 15.0</gml:pos>
-        <gml:pos>10.0 40.0</gml:pos>
-        <gml:pos>20.0 10.0</gml:pos>
-        <gml:pos>10.0 5.0</gml:pos>
-        <gml:pos>5.0 15.0</gml:pos>
-      </gml:LinearRing>
-    </gml:exterior>
-  </gml:Polygon>
-</d:GeogPolygon>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-6_GeomMultiLine.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-6_GeomMultiLine.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-6_GeomMultiLine.json
deleted file mode 100644
index 451bb53..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-6_GeomMultiLine.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.GeometryMultiLineString","value":{"type":"MultiLineString","coordinates":[[[10.0,10.0],[20.0,20.0],[10.0,40.0]],[[40.0,40.0],[30.0,30.0],[40.0,20.0],[30.0,10.0]]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-6_GeomMultiLine.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-6_GeomMultiLine.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-6_GeomMultiLine.xml
deleted file mode 100644
index 847eb02..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-6_GeomMultiLine.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?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.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.
-
--->
-<d:GeomMultiLine xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
-                 xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-                 xmlns:georss="http://www.georss.org/georss" 
-                 xmlns:gml="http://www.opengis.net/gml" 
-                 m:type="Edm.GeometryMultiLineString">
-  <gml:MultiCurve gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-    <gml:curveMembers>
-      <gml:LineString>
-        <gml:pos>10.0 10.0</gml:pos>
-        <gml:pos>20.0 20.0</gml:pos>
-        <gml:pos>10.0 40.0</gml:pos>
-      </gml:LineString>
-      <gml:LineString>
-        <gml:pos>40.0 40.0</gml:pos>
-        <gml:pos>30.0 30.0</gml:pos>
-        <gml:pos>40.0 20.0</gml:pos>
-        <gml:pos>30.0 10.0</gml:pos>
-      </gml:LineString>
-    </gml:curveMembers>
-  </gml:MultiCurve>
-</d:GeomMultiLine>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-7_GeomMultiPoint.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-7_GeomMultiPoint.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-7_GeomMultiPoint.json
deleted file mode 100644
index 049d692..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-7_GeomMultiPoint.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.GeometryMultiPoint","value":{"type":"MultiPoint","coordinates":[[0.0,0.0]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-7_GeomMultiPoint.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-7_GeomMultiPoint.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-7_GeomMultiPoint.xml
deleted file mode 100644
index 5aac3b9..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-7_GeomMultiPoint.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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.
-
--->
-<d:GeomMultiPoint xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-                  xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-                  xmlns:georss="http://www.georss.org/georss" 
-                  xmlns:gml="http://www.opengis.net/gml" 
-                  m:type="Edm.GeometryMultiPoint">
-  <gml:MultiPoint gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-    <gml:pointMembers>
-      <gml:Point>
-        <gml:pos>0.0 0.0</gml:pos>
-      </gml:Point>
-    </gml:pointMembers>
-  </gml:MultiPoint>
-</d:GeomMultiPoint>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8.json
deleted file mode 100644
index 2e3469b..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.43.55:8080/DefaultService.svc/$metadata#AllGeoTypesSet/@Element","odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialTypes","odata.id":"http://192.168.43.55:8080/DefaultService.svc/AllGeoTypesSet(-8)","odata.editLink":"AllGeoTypesSet(-8)","Id":-8,"Geog@odata.type":"Edm.Geography","Geog":{"type":"Point","coordinates":[178.94,51.5961],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogPoint@odata.type":"Edm.GeographyPoint","GeogPoint":{"type":"Point","coordinates":[178.7,51.65],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogLine@odata.type":"Edm.GeographyLineString","GeogLine":{"type":"LineString","coordinates":[[10.0,10.0],[20.0,20.0],[10.0,40.0]],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogPolygon@odata.type":"Edm.GeographyPolygon","GeogPolygon":{"type":"Polygon","coordinates":[],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogCollection@odata.type":"Edm.GeographyColle
 ction","GeogCollection":{"type":"GeometryCollection","geometries":[],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogMultiPoint@odata.type":"Edm.GeographyMultiPoint","GeogMultiPoint":{"type":"MultiPoint","coordinates":[[-122.7,47.38]],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogMultiLine@odata.type":"Edm.GeographyMultiLineString","GeogMultiLine":{"type":"MultiLineString","coordinates":[[[10.5,10.5],[20.5,20.5],[10.5,40.5]],[[40.5,40.5],[30.5,30.5],[40.5,20.5],[30.5,10.5]]],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"GeogMultiPolygon@odata.type":"Edm.GeographyMultiPolygon","GeogMultiPolygon":{"type":"MultiPolygon","coordinates":[[[[40.0,40.0],[20.0,45.0],[45.0,30.0],[40.0,40.0]]],[[[20.0,35.0],[45.0,20.0],[30.0,5.0],[10.0,10.0],[10.0,30.0],[20.0,35.0]],[[30.0,20.0],[20.0,25.0],[20.0,15.0],[30.0,20.0]]]],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}},"Geom@odata.type":"Edm.Geometry","Geom":{"type":"Point","coordinates":[4369367.0
 586663447,6352015.6916818349],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomPoint@odata.type":"Edm.GeometryPoint","GeomPoint":{"type":"Point","coordinates":[4377000.868172125,6348217.1067010015],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomLine@odata.type":"Edm.GeometryLineString","GeomLine":{"type":"LineString","coordinates":[[1.0,1.0],[3.0,3.0],[2.0,4.0],[2.0,0.0]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomPolygon@odata.type":"Edm.GeometryPolygon","GeomPolygon":{"type":"Polygon","coordinates":[[[30.0,20.0],[10.0,40.0],[45.0,40.0],[30.0,20.0]]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomCollection@odata.type":"Edm.GeometryCollection","GeomCollection":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[4.0,6.0]},{"type":"LineString","coordinates":[[4.0,6.0],[7.0,10.0]]}],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomMultiPoint":null,"GeomMultiLine@odata.type":"Edm.GeometryMultiLineString",
 "GeomMultiLine":{"type":"MultiLineString","coordinates":[],"crs":{"type":"name","properties":{"name":"EPSG:0"}}},"GeomMultiPolygon@odata.type":"Edm.GeometryMultiPolygon","GeomMultiPolygon":{"type":"MultiPolygon","coordinates":[],"crs":{"type":"name","properties":{"name":"EPSG:0"}}}}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8.xml
deleted file mode 100644
index a5bf4eb..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8.xml
+++ /dev/null
@@ -1,177 +0,0 @@
-<?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://192.168.43.55:8080/DefaultService.svc/" 
-       xmlns="http://www.w3.org/2005/Atom" 
-       xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-       xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-       xmlns:georss="http://www.georss.org/georss" 
-       xmlns:gml="http://www.opengis.net/gml">
-  <id>http://192.168.43.55:8080/DefaultService.svc/AllGeoTypesSet(-8)</id>
-  <category term="Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialTypes" 
-            scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
-  <link rel="edit" title="AllSpatialTypes" href="AllGeoTypesSet(-8)"/>
-  <title/>
-  <updated>2013-08-21T10:50:04Z</updated>
-  <author>
-    <name/>
-  </author>
-  <content type="application/xml">
-    <m:properties>
-      <d:Id m:type="Edm.Int32">-8</d:Id>
-      <d:Geog m:type="Edm.GeographyPoint">
-        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:pos>51.5961 178.94</gml:pos>
-        </gml:Point>
-      </d:Geog>
-      <d:GeogPoint m:type="Edm.GeographyPoint">
-        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:pos>51.65 178.7</gml:pos>
-        </gml:Point>
-      </d:GeogPoint>
-      <d:GeogLine m:type="Edm.GeographyLineString">
-        <gml:LineString gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:pos>10.0 10.0</gml:pos>
-          <gml:pos>20.0 20.0</gml:pos>
-          <gml:pos>40.0 10.0</gml:pos>
-        </gml:LineString>
-      </d:GeogLine>
-      <d:GeogPolygon m:type="Edm.GeographyPolygon">
-        <gml:Polygon gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326"/>
-      </d:GeogPolygon>
-      <d:GeogCollection m:type="Edm.GeographyCollection">
-        <gml:MultiGeometry gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326"/>
-      </d:GeogCollection>
-      <d:GeogMultiPoint m:type="Edm.GeographyMultiPoint">
-        <gml:MultiPoint gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:pointMembers>
-            <gml:Point>
-              <gml:pos>47.38 -122.7</gml:pos>
-            </gml:Point>
-          </gml:pointMembers>
-        </gml:MultiPoint>
-      </d:GeogMultiPoint>
-      <d:GeogMultiLine m:type="Edm.GeographyMultiLineString">
-        <gml:MultiCurve gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:curveMembers>
-            <gml:LineString>
-              <gml:pos>10.5 10.5</gml:pos>
-              <gml:pos>20.5 20.5</gml:pos>
-              <gml:pos>40.5 10.5</gml:pos>
-            </gml:LineString>
-            <gml:LineString>
-              <gml:pos>40.5 40.5</gml:pos>
-              <gml:pos>30.5 30.5</gml:pos>
-              <gml:pos>20.5 40.5</gml:pos>
-              <gml:pos>10.5 30.5</gml:pos>
-            </gml:LineString>
-          </gml:curveMembers>
-        </gml:MultiCurve>
-      </d:GeogMultiLine>
-      <d:GeogMultiPolygon m:type="Edm.GeographyMultiPolygon">
-        <gml:MultiSurface gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:surfaceMembers>
-            <gml:Polygon>
-              <gml:exterior>
-                <gml:LinearRing>
-                  <gml:pos>40.0 40.0</gml:pos>
-                  <gml:pos>45.0 20.0</gml:pos>
-                  <gml:pos>30.0 45.0</gml:pos>
-                  <gml:pos>40.0 40.0</gml:pos>
-                </gml:LinearRing>
-              </gml:exterior>
-            </gml:Polygon>
-            <gml:Polygon>
-              <gml:exterior>
-                <gml:LinearRing>
-                  <gml:pos>35.0 20.0</gml:pos>
-                  <gml:pos>20.0 45.0</gml:pos>
-                  <gml:pos>5.0 30.0</gml:pos>
-                  <gml:pos>10.0 10.0</gml:pos>
-                  <gml:pos>30.0 10.0</gml:pos>
-                  <gml:pos>35.0 20.0</gml:pos>
-                </gml:LinearRing>
-              </gml:exterior>
-              <gml:interior>
-                <gml:LinearRing>
-                  <gml:pos>20.0 30.0</gml:pos>
-                  <gml:pos>25.0 20.0</gml:pos>
-                  <gml:pos>15.0 20.0</gml:pos>
-                  <gml:pos>20.0 30.0</gml:pos>
-                </gml:LinearRing>
-              </gml:interior>
-            </gml:Polygon>
-          </gml:surfaceMembers>
-        </gml:MultiSurface>
-      </d:GeogMultiPolygon>
-      <d:Geom m:type="Edm.GeometryPoint">
-        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:pos>4369367.058666345 6352015.691681835</gml:pos>
-        </gml:Point>
-      </d:Geom>
-      <d:GeomPoint m:type="Edm.GeometryPoint">
-        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:pos>4377000.868172125 6348217.1067010015</gml:pos>
-        </gml:Point>
-      </d:GeomPoint>
-      <d:GeomLine m:type="Edm.GeometryLineString">
-        <gml:LineString gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:pos>1.0 1.0</gml:pos>
-          <gml:pos>3.0 3.0</gml:pos>
-          <gml:pos>2.0 4.0</gml:pos>
-          <gml:pos>2.0 0.0</gml:pos>
-        </gml:LineString>
-      </d:GeomLine>
-      <d:GeomPolygon m:type="Edm.GeometryPolygon">
-        <gml:Polygon gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:exterior>
-            <gml:LinearRing>
-              <gml:pos>30.0 20.0</gml:pos>
-              <gml:pos>10.0 40.0</gml:pos>
-              <gml:pos>45.0 40.0</gml:pos>
-              <gml:pos>30.0 20.0</gml:pos>
-            </gml:LinearRing>
-          </gml:exterior>
-        </gml:Polygon>
-      </d:GeomPolygon>
-      <d:GeomCollection m:type="Edm.GeometryCollection">
-        <gml:MultiGeometry gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:geometryMembers>
-            <gml:Point>
-              <gml:pos>4.0 6.0</gml:pos>
-            </gml:Point>
-            <gml:LineString>
-              <gml:pos>4.0 6.0</gml:pos>
-              <gml:pos>7.0 10.0</gml:pos>
-            </gml:LineString>
-          </gml:geometryMembers>
-        </gml:MultiGeometry>
-      </d:GeomCollection>
-      <d:GeomMultiPoint m:null="true"/>
-      <d:GeomMultiLine m:type="Edm.GeometryMultiLineString">
-        <gml:MultiCurve gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0"/>
-      </d:GeomMultiLine>
-      <d:GeomMultiPolygon m:type="Edm.GeometryMultiPolygon">
-        <gml:MultiSurface gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0"/>
-      </d:GeomMultiPolygon>
-    </m:properties>
-  </content>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8_GeomCollection.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8_GeomCollection.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8_GeomCollection.json
deleted file mode 100644
index 55aaf8b..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8_GeomCollection.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.0.160:8080/DefaultService.svc/$metadata#Edm.GeometryCollection","value":{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[4.0,6.0]},{"type":"LineString","coordinates":[[4.0,6.0],[7.0,10.0]]}],"crs":{"type":"name","properties":{"name":"EPSG:0"}}}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8_GeomCollection.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8_GeomCollection.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8_GeomCollection.xml
deleted file mode 100644
index 130f8be..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/AllGeoTypesSet_-8_GeomCollection.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?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.
-
--->
-<d:GeomCollection xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-                  xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-                  xmlns:georss="http://www.georss.org/georss" 
-                  xmlns:gml="http://www.opengis.net/gml" 
-                  m:type="Edm.GeometryCollection">
-  <gml:MultiGeometry gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-    <gml:geometryMembers>
-      <gml:Point>
-        <gml:pos>4.0 6.0</gml:pos>
-      </gml:Point>
-      <gml:LineString>
-        <gml:pos>4.0 6.0</gml:pos>
-        <gml:pos>7.0 10.0</gml:pos>
-      </gml:LineString>
-    </gml:geometryMembers>
-  </gml:MultiGeometry>
-</d:GeomCollection>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Car_16.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Car_16.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Car_16.json
deleted file mode 100644
index d62d51b..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Car_16.json
+++ /dev/null
@@ -1 +0,0 @@
-{"odata.metadata":"http://192.168.43.55:8080/DefaultService.svc/$metadata#Car/@Element","odata.type":"Microsoft.Test.OData.Services.AstoriaDefaultService.Car","odata.id":"http://192.168.43.55:8080/DefaultService.svc/Car(16)","odata.editLink":"Car(16)","odata.mediaEditLink":"Car(16)/$value","odata.mediaReadLink":"Car(16)/$value","odata.mediaContentType":"*/*","Photo@odata.mediaEditLink":"Car(16)/Photo","Photo@odata.mediaContentType":"application/octet-stream","Video@odata.mediaEditLink":"Car(16)/Video","VIN":16,"Description":"\u3041\u30bc\u3092\u3042\u30af\u3073\u30bc\u30bc\u30a1\u30a1\u305b\u30de\u307b\u30b0\u30bd\u30d0\u305b\u0451\u88f9\uff66\u307d\uff9d\u30a1"}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Car_16.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Car_16.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Car_16.xml
deleted file mode 100644
index e9ab95e..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/Car_16.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?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://192.168.43.55:8080/DefaultService.svc/" 
-       xmlns="http://www.w3.org/2005/Atom" 
-       xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
-       xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
-       xmlns:georss="http://www.georss.org/georss" 
-       xmlns:gml="http://www.opengis.net/gml">
-  
-  <id>http://192.168.43.55:8080/DefaultService.svc/Car(16)</id>
-  <category term="Microsoft.Test.OData.Services.AstoriaDefaultService.Car" 
-            scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
-  <link rel="edit" title="Car" href="Car(16)" />
-  <title />
-  <updated>2013-08-21T10:31:09Z</updated>
-  <author>
-    <name />
-  </author>
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Photo" 
-        type="application/octet-stream" title="Photo" href="Car(16)/Photo" />
-  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/Video" 
-        title="Video" href="Car(16)/Video" />
-  <link rel="edit-media" title="Car" href="Car(16)/$value" />
-  <content type="*/*" src="Car(16)/$value" />
-  <m:properties>
-    <d:VIN m:type="Edm.Int32">16</d:VIN>
-    <d:Description>ぁゼをあクびゼゼァァせマほグソバせё裹ヲぽンァ</d:Description>
-  </m:properties>
-</entry>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/ComputerDetail_-10.json
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/ComputerDetail_-10.json b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/ComputerDetail_-10.json
deleted file mode 100644
index 0d10982..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/ComputerDetail_-10.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "odata.metadata": "http://192.168.43.55:8080/DefaultService.svc/$metadata#ComputerDetail/@Element",
-  "odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail",
-  "odata.id": "http://192.168.43.55:8080/DefaultService.svc/ComputerDetail(-10)",
-  "odata.editLink": "ComputerDetail(-10)",
-  "Computer@odata.navigationLinkUrl": "ComputerDetail(-10)/Computer",
-  "#DefaultContainer.ResetComputerDetailsSpecifications": {
-    "title": "ResetComputerDetailsSpecifications",
-    "target": "http://192.168.43.55:8080/DefaultService.svc/ComputerDetail(-10)/ResetComputerDetailsSpecifications"
-  },
-  "ComputerDetailId": -10,
-  "Manufacturer": "sspayuqgmkizmvtxdeuitrnqcblxoipcsshhfvibxuzssatvjjhoftpk",
-  "Model": "usfvbkyxssojjebyzgvtnzkuik\u00dfuxrmllzyglnsssluyxf\u00dfssioyroouxafzbhbsabkrsslbyhghicjaplolzqss\u00dfhhfix",
-  "Serial": null,
-  "SpecificationsBag@odata.type": "Collection(Edm.String)",
-  "SpecificationsBag": ["vorjqalydmfuazkatkiydeicefrjhyuaupkfgbxiaehjrqhhqv", "rbsejgfgelhsdahkoqlnzvbq", "ssfvnnquahsczxlu\u00dfnssrhpsszluundy\u00dfehyzjedssxom", "xsqocvqrzbvzhdhtilugpvayirrnomupxinhihazfghqehqymeeaupuesseluinjgbedrarqluedjfx", "eekuucympfgkucszfuggbmfglpnxnjvhkhalymhtfuggfafulkzedqlksoduqeyukzzhbbasjmee", "\u30be\u3092\u4e5d\u30af\u305d"],
-  "PurchaseDate@odata.type": "Edm.DateTime",
-  "PurchaseDate": "2020-12-15T01:33:35.8014568",
-  "Dimensions": {
-    "odata.type": "Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions",
-    "Width@odata.type": "Edm.Decimal",
-    "Width": -8917.92836319839,
-    "Height@odata.type": "Edm.Decimal",
-    "Height": -79228162514264337593543950335,
-    "Depth@odata.type": "Edm.Decimal",
-    "Depth": -79228162514264337593543950335
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/74fe42e5/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/ComputerDetail_-10.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/ComputerDetail_-10.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/ComputerDetail_-10.xml
deleted file mode 100644
index f9c0e4f..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/v3/ComputerDetail_-10.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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://192.168.43.55:8080/DefaultService.svc/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml"><id>http://192.168.43.55:8080/DefaultService.svc/ComputerDetail(-10)</id><category term="Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /><link rel="edit" title="ComputerDetail" href="ComputerDetail(-10)" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Computer" type="application/atom+xml;type=entry" title="Computer" href="ComputerDetail(-10)/Computer" /><title /><updated>2013-08-21T10:53:24Z</updated><author><name /><uri>usfvbkyxssojjebyzgvtnzkuikßuxrmllzyglnsssluyxfßssioyroouxafzbhbsabkrsslbyhghicjaplolzqssßhhfix</uri><email>sspayuqgmkizmvtxdeuitrn
 qcblxoipcsshhfvibxuzssatvjjhoftpk</email></author><m:action metadata="http://192.168.43.55:8080/DefaultService.svc/$metadata#DefaultContainer.ResetComputerDetailsSpecifications" title="ResetComputerDetailsSpecifications" target="http://192.168.43.55:8080/DefaultService.svc/ComputerDetail(-10)/ResetComputerDetailsSpecifications" /><content type="application/xml"><m:properties><d:ComputerDetailId m:type="Edm.Int32">-10</d:ComputerDetailId><d:Manufacturer>sspayuqgmkizmvtxdeuitrnqcblxoipcsshhfvibxuzssatvjjhoftpk</d:Manufacturer><d:Model>usfvbkyxssojjebyzgvtnzkuikßuxrmllzyglnsssluyxfßssioyroouxafzbhbsabkrsslbyhghicjaplolzqssßhhfix</d:Model><d:Serial m:null="true" /><d:SpecificationsBag m:type="Collection(Edm.String)"><d:element>vorjqalydmfuazkatkiydeicefrjhyuaupkfgbxiaehjrqhhqv</d:element><d:element>rbsejgfgelhsdahkoqlnzvbq</d:element><d:element>ssfvnnquahsczxlußnssrhpsszluundyßehyzjedssxom</d:element><d:element>xsqocvqrzbvzhdhtilugpvayirrnomupxinhihazfghqehqymeeaupuesseluinjgbedrar
 qluedjfx</d:element><d:element>eekuucympfgkucszfuggbmfglpnxnjvhkhalymhtfuggfafulkzedqlksoduqeyukzzhbbasjmee</d:element><d:element>ゾを九クそ</d:element></d:SpecificationsBag><d:PurchaseDate m:type="Edm.DateTime">2020-12-15T01:33:35.8014568</d:PurchaseDate><d:Dimensions m:type="Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions"><d:Width m:type="Edm.Decimal">-8917.92836319839</d:Width><d:Height m:type="Edm.Decimal">-79228162514264337593543950335</d:Height><d:Depth m:type="Edm.Decimal">-79228162514264337593543950335</d:Depth></d:Dimensions></m:properties></content></entry>


[23/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollection.java
deleted file mode 100644
index eae20c4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface HomeAddressCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddressCollection>,
-org.apache.olingo.ext.proxy.api.ComplexCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddress, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddressCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddressCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollectionComposableInvoker.java
deleted file mode 100644
index aa5ed6e..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface HomeAddressCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddressCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.HomeAddressCollection.Operations> {
-
-  @Override
-  HomeAddressCollectionComposableInvoker select(String... select);
-
-  @Override
-  HomeAddressCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java
deleted file mode 100644
index 8c9f177..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java
+++ /dev/null
@@ -1,93 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface HomeAddressComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<HomeAddress, HomeAddress.Operations>
-{
-
-  @Override
-  HomeAddressComposableInvoker select(String... select);
-
-  @Override
-  HomeAddressComposableInvoker expand(String... expand);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getStreet();
-
-  void setStreet(java.lang.String _street);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCity();
-
-  void setCity(java.lang.String _city);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPostalCode();
-
-  void setPostalCode(java.lang.String _postalCode);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FamilyName",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFamilyName();
-
-  void setFamilyName(java.lang.String _familyName);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
deleted file mode 100644
index 8df09d5..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
+++ /dev/null
@@ -1,31 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.Term(name = "IsBoss",
-    type = "Edm.Boolean")
-public interface IsBoss extends AbstractTerm {
-  // No additional methods needed for now.
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
deleted file mode 100644
index 8abed01..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
+++ /dev/null
@@ -1,87 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "LabourUnion",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface LabourUnion
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<LabourUnion>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<LabourUnion> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LabourUnionID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getLabourUnionID();
-
-  void setLabourUnionID(java.lang.Integer _labourUnionID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LabourUnionID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getLabourUnionIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
deleted file mode 100644
index 901a50b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface LabourUnionCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnionCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnion, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnionCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnionCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java
deleted file mode 100644
index b2a0d0b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface LabourUnionCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnionCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnionCollection.Operations> {
-
-  @Override
-  LabourUnionCollectionComposableInvoker select(String... select);
-
-  @Override
-  LabourUnionCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.java
deleted file mode 100644
index ed3d991..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.java
+++ /dev/null
@@ -1,67 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface LabourUnionComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<LabourUnion, LabourUnion.Operations>
-{
-
-  @Override
-  LabourUnionComposableInvoker select(String... select);
-
-  @Override
-  LabourUnionComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LabourUnionID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getLabourUnionID();
-
-  void setLabourUnionID(java.lang.Integer _labourUnionID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
deleted file mode 100644
index bec3700..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
+++ /dev/null
@@ -1,174 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Order",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Order
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Order>, org.apache.olingo.ext.proxy.api.StructuredQuery<Order> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getOrderID();
-
-  void setOrderID(java.lang.Integer _orderID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getOrderDate();
-
-  void setOrderDate(java.sql.Timestamp _orderDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ShelfLife",
-      type = "Edm.Duration",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.math.BigDecimal getShelfLife();
-
-  void setShelfLife(java.math.BigDecimal _shelfLife);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderShelfLifes",
-      type = "Edm.Duration",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> getOrderShelfLifes();
-
-  void setOrderShelfLifes(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> _orderShelfLifes);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "LoggedInEmployee",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Employees",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee
-      getLoggedInEmployee();
-
-      void
-      setLoggedInEmployee(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee _loggedInEmployee);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CustomerForOrder",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Customers",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer
-      getCustomerForOrder();
-
-      void
-      setCustomerForOrder(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer _customerForOrder);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "OrderDetails",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "OrderDetails",
-      containsTarget = false)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailCollection
-      getOrderDetails();
-
-      void
-      setOrderDetails(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailCollection _orderDetails);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getOrderIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getOrderDateAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ShelfLife",
-        type = "Edm.Duration")
-    org.apache.olingo.ext.proxy.api.Annotatable getShelfLifeAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderShelfLifes",
-        type = "Edm.Duration")
-    org.apache.olingo.ext.proxy.api.Annotatable getOrderShelfLifesAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "LoggedInEmployee",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Employee")
-    org.apache.olingo.ext.proxy.api.Annotatable getLoggedInEmployeeAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "CustomerForOrder",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Customer")
-    org.apache.olingo.ext.proxy.api.Annotatable getCustomerForOrderAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "OrderDetails",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail")
-    org.apache.olingo.ext.proxy.api.Annotatable getOrderDetailsAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
deleted file mode 100644
index f7575f7..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface OrderCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java
deleted file mode 100644
index 7e64e1f..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface OrderCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection.Operations> {
-
-  @Override
-  OrderCollectionComposableInvoker select(String... select);
-
-  @Override
-  OrderCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java
deleted file mode 100644
index 94817ee..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java
+++ /dev/null
@@ -1,136 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface OrderComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Order, Order.Operations>
-{
-
-  @Override
-  OrderComposableInvoker select(String... select);
-
-  @Override
-  OrderComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getOrderID();
-
-  void setOrderID(java.lang.Integer _orderID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getOrderDate();
-
-  void setOrderDate(java.sql.Timestamp _orderDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ShelfLife",
-      type = "Edm.Duration",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.math.BigDecimal getShelfLife();
-
-  void setShelfLife(java.math.BigDecimal _shelfLife);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderShelfLifes",
-      type = "Edm.Duration",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> getOrderShelfLifes();
-
-  void setOrderShelfLifes(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> _orderShelfLifes);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "LoggedInEmployee",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Employees",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee
-      getLoggedInEmployee();
-
-      void
-      setLoggedInEmployee(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee _loggedInEmployee);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CustomerForOrder",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Customers",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer
-      getCustomerForOrder();
-
-      void
-      setCustomerForOrder(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer _customerForOrder);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "OrderDetails",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "OrderDetails",
-      containsTarget = false)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailCollection
-      getOrderDetails();
-
-      void
-      setOrderDetails(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailCollection _orderDetails);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
deleted file mode 100644
index 28b3f45..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
+++ /dev/null
@@ -1,180 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@KeyRef(OrderDetailKey.class)
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "OrderDetail",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface OrderDetail
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<OrderDetail>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<OrderDetail> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getOrderID();
-
-  void setOrderID(java.lang.Integer _orderID);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductID();
-
-  void setProductID(java.lang.Integer _productID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderPlaced",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getOrderPlaced();
-
-  void setOrderPlaced(java.sql.Timestamp _orderPlaced);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Quantity",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getQuantity();
-
-  void setQuantity(java.lang.Integer _quantity);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UnitPrice",
-      type = "Edm.Single",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Float getUnitPrice();
-
-  void setUnitPrice(java.lang.Float _unitPrice);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductOrdered",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection
-      getProductOrdered();
-
-      void
-      setProductOrdered(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection _productOrdered);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "AssociatedOrder",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Orders",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order
-      getAssociatedOrder();
-
-      void
-      setAssociatedOrder(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order _associatedOrder);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getOrderIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderPlaced",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getOrderPlacedAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Quantity",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getQuantityAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "UnitPrice",
-        type = "Edm.Single")
-    org.apache.olingo.ext.proxy.api.Annotatable getUnitPriceAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ProductOrdered",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Product")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductOrderedAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "AssociatedOrder",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Order")
-    org.apache.olingo.ext.proxy.api.Annotatable getAssociatedOrderAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
deleted file mode 100644
index 4001219..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface OrderDetailCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java
deleted file mode 100644
index f859295..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface OrderDetailCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailCollection.Operations> {
-
-  @Override
-  OrderDetailCollectionComposableInvoker select(String... select);
-
-  @Override
-  OrderDetailCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java
deleted file mode 100644
index 64f3bcb..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java
+++ /dev/null
@@ -1,139 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface OrderDetailComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<OrderDetail, OrderDetail.Operations>
-{
-
-  @Override
-  OrderDetailComposableInvoker select(String... select);
-
-  @Override
-  OrderDetailComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getOrderID();
-
-  void setOrderID(java.lang.Integer _orderID);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductID();
-
-  void setProductID(java.lang.Integer _productID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderPlaced",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getOrderPlaced();
-
-  void setOrderPlaced(java.sql.Timestamp _orderPlaced);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Quantity",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getQuantity();
-
-  void setQuantity(java.lang.Integer _quantity);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UnitPrice",
-      type = "Edm.Single",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Float getUnitPrice();
-
-  void setUnitPrice(java.lang.Float _unitPrice);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductOrdered",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection
-      getProductOrdered();
-
-      void
-      setProductOrdered(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.ProductCollection _productOrdered);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "AssociatedOrder",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Orders",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order
-      getAssociatedOrder();
-
-      void
-      setAssociatedOrder(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order _associatedOrder);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.java
deleted file mode 100644
index 27fd5f3..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.java
+++ /dev/null
@@ -1,53 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntityKey;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
-
-@org.apache.olingo.ext.proxy.api.annotations.CompoundKey
-public class OrderDetailKey extends AbstractEntityKey {
-
-  private static final long serialVersionUID = -4068508671802176607L;
-
-  private java.lang.Integer _orderID;
-
-  @CompoundKeyElement(name = "OrderID", position = 0)
-  public java.lang.Integer getOrderID() {
-    return _orderID;
-  }
-
-  public void setOrderID(final java.lang.Integer _orderID) {
-    this._orderID = _orderID;
-  }
-
-  private java.lang.Integer _productID;
-
-  @CompoundKeyElement(name = "ProductID", position = 1)
-  public java.lang.Integer getProductID() {
-    return _productID;
-  }
-
-  public void setProductID(final java.lang.Integer _productID) {
-    this._productID = _productID;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
deleted file mode 100644
index ae5e408..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
+++ /dev/null
@@ -1,165 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "PaymentInstrument",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface PaymentInstrument
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<PaymentInstrument>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<PaymentInstrument> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PaymentInstrumentID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPaymentInstrumentID();
-
-  void setPaymentInstrumentID(java.lang.Integer _paymentInstrumentID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FriendlyName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFriendlyName();
-
-  void setFriendlyName(java.lang.String _friendlyName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getCreatedDate();
-
-  void setCreatedDate(java.sql.Timestamp _createdDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "TheStoredPI",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "StoredPIs",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI
-      getTheStoredPI();
-
-      void
-      setTheStoredPI(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI _theStoredPI);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BackupStoredPI",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "StoredPIs",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI
-      getBackupStoredPI();
-
-      void
-      setBackupStoredPI(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI _backupStoredPI);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PaymentInstrumentID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getPaymentInstrumentIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FriendlyName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getFriendlyNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "TheStoredPI",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
-    org.apache.olingo.ext.proxy.api.Annotatable getTheStoredPIAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "BillingStatements",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Statement")
-    org.apache.olingo.ext.proxy.api.Annotatable getBillingStatementsAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "BackupStoredPI",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
-    org.apache.olingo.ext.proxy.api.Annotatable getBackupStoredPIAnnotations();
-  }
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BillingStatements",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "StoredPIs",
-      containsTarget = true)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument.BillingStatements
-      getBillingStatements();
-
-      void
-      setBillingStatements(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument.BillingStatements _billingStatements);
-
-  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "BillingStatements", contained = true)
-  interface BillingStatements
-      extends
-      org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Statement, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StatementCollection>,
-      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<BillingStatements>,
-  AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Statement, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StatementCollection> {
-    // No additional methods needed for now.
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
deleted file mode 100644
index 7c83d51..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface PaymentInstrumentCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrumentCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrumentCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrumentCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java
deleted file mode 100644
index f8ce983..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface PaymentInstrumentCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrumentCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrumentCollection.Operations> {
-
-  @Override
-  PaymentInstrumentCollectionComposableInvoker select(String... select);
-
-  @Override
-  PaymentInstrumentCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java
deleted file mode 100644
index 1e14355..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java
+++ /dev/null
@@ -1,132 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-public interface PaymentInstrumentComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<PaymentInstrument, PaymentInstrument.Operations>
-{
-
-  @Override
-  PaymentInstrumentComposableInvoker select(String... select);
-
-  @Override
-  PaymentInstrumentComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PaymentInstrumentID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getPaymentInstrumentID();
-
-  void setPaymentInstrumentID(java.lang.Integer _paymentInstrumentID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FriendlyName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFriendlyName();
-
-  void setFriendlyName(java.lang.String _friendlyName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getCreatedDate();
-
-  void setCreatedDate(java.sql.Timestamp _createdDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "TheStoredPI",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "StoredPIs",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI
-      getTheStoredPI();
-
-      void
-      setTheStoredPI(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI _theStoredPI);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BackupStoredPI",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "StoredPIs",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI
-      getBackupStoredPI();
-
-      void
-      setBackupStoredPI(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI _backupStoredPI);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BillingStatements",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "StoredPIs",
-      containsTarget = true)
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument.BillingStatements
-      getBillingStatements();
-
-      void
-      setBillingStatements(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument.BillingStatements _billingStatements);
-
-  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "BillingStatements", contained = true)
-  interface BillingStatements
-      extends
-      org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Statement, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StatementCollection>,
-      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<BillingStatements>,
-  AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Statement, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StatementCollection> {
-    // No additional methods needed for now.
-  }
-
-}


[18/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java
deleted file mode 100644
index fe41206..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java
+++ /dev/null
@@ -1,183 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.UUID;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
-import org.apache.olingo.client.api.communication.request.cud.UpdateType;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataMediaRequest;
-import org.apache.olingo.client.api.communication.request.streamed.MediaEntityCreateStreamManager;
-import org.apache.olingo.client.api.communication.request.streamed.MediaEntityUpdateStreamManager;
-import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityCreateRequest;
-import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityUpdateRequest;
-import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreateResponse;
-import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientValuable;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.http.HttpHeader;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class MediaEntityTestITCase extends AbstractTestITCase {
-
-  private void read(final ODataClient client, final ContentType contentType) throws IOException {
-    final URIBuilder builder = client.newURIBuilder(testDemoServiceRootURL).
-        appendEntitySetSegment("Advertisements").
-        appendKeySegment(UUID.fromString("f89dee73-af9f-4cd4-b330-db93c25ff3c7"));
-    final ODataEntityRequest<ClientEntity> entityReq =
-        client.getRetrieveRequestFactory().getEntityRequest(builder.build());
-    entityReq.setFormat(contentType);
-
-    final ClientEntity entity = entityReq.execute().getBody();
-    assertNotNull(entity);
-    assertTrue(entity.isMediaEntity());
-    // cast to workaround JDK 6 bug, fixed in JDK 7
-    assertEquals(EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName().toString(),
-        ((ClientValuable) entity.getProperty("AirDate")).getValue().getTypeName());
-
-    final ODataMediaRequest streamReq = client.getRetrieveRequestFactory().
-        getMediaRequest(entity.getMediaContentSource());
-    final ODataRetrieveResponse<InputStream> streamRes = streamReq.execute();
-    assertEquals(200, streamRes.getStatusCode());
-
-    final byte[] actual = new byte[Integer.parseInt(streamRes.getHeader("Content-Length").iterator().next())];
-    IOUtils.read(streamRes.getBody(), actual, 0, actual.length);
-  }
-
-  @Test
-  public void readAsAtom() throws IOException {
-    read(client, ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void readAsJSON() throws IOException {
-    read(ODataClientFactory.getEdmEnabledClient(testDemoServiceRootURL, ContentType.JSON), ContentType.JSON);
-  }
-
-  @Test
-  public void readAsJSONFull() throws IOException {
-    read(client, ContentType.JSON_FULL_METADATA);
-  }
-
-  private void create(final ContentType contentType) throws IOException {
-    final String random = RandomStringUtils.random(110);
-    final InputStream input = IOUtils.toInputStream(random);
-
-    final URI uri = client.newURIBuilder(testDemoServiceRootURL).appendEntitySetSegment("Advertisements").build();
-    final ODataMediaEntityCreateRequest<ClientEntity> createReq =
-        client.getCUDRequestFactory().getMediaEntityCreateRequest(uri, input);
-    final MediaEntityCreateStreamManager<ClientEntity> streamManager = createReq.payloadManager();
-
-    final ODataMediaEntityCreateResponse<ClientEntity> createRes = streamManager.getResponse();
-    assertEquals(201, createRes.getStatusCode());
-
-    final Collection<String> location = createRes.getHeader(HttpHeader.LOCATION);
-    assertNotNull(location);
-    final URI createdLocation = URI.create(location.iterator().next());
-
-    final ClientEntity changes = client.getObjectFactory().
-        newEntity(new FullQualifiedName("ODataDemo.Advertisement"));
-    changes.getProperties().add(client.getObjectFactory().newPrimitiveProperty("AirDate",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).build()));
-
-    final ODataEntityUpdateRequest<ClientEntity> updateReq = getClient().getCUDRequestFactory().
-        getEntityUpdateRequest(createdLocation, UpdateType.PATCH, changes);
-    updateReq.setFormat(contentType);
-
-    final ODataEntityUpdateResponse<ClientEntity> updateRes = updateReq.execute();
-    assertEquals(204, updateRes.getStatusCode());
-
-    final ODataMediaRequest retrieveReq = client.getRetrieveRequestFactory().
-        getMediaEntityRequest(client.newURIBuilder(createdLocation.toASCIIString()).build());
-    final ODataRetrieveResponse<InputStream> retrieveRes = retrieveReq.execute();
-    assertEquals(200, retrieveRes.getStatusCode());
-
-    final byte[] actual = new byte[Integer.parseInt(retrieveRes.getHeader("Content-Length").iterator().next())];
-    IOUtils.read(retrieveRes.getBody(), actual, 0, actual.length);
-    assertEquals(random, new String(actual));
-  }
-
-  @Test
-  public void createAsAtom() throws IOException {
-    create(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void createAsJSON() throws IOException {
-    create(ContentType.JSON);
-  }
-
-  private void update(final ContentType contentType) throws IOException, EdmPrimitiveTypeException {
-    final URI uri = client.newURIBuilder(testDemoServiceRootURL).
-        appendEntitySetSegment("Advertisements").
-        appendKeySegment(UUID.fromString("f89dee73-af9f-4cd4-b330-db93c25ff3c7")).build();
-
-    final String random = RandomStringUtils.random(124);
-
-    // 1. update providing media content
-    final ODataMediaEntityUpdateRequest<ClientEntity> updateReq = client.getCUDRequestFactory().
-        getMediaEntityUpdateRequest(uri, IOUtils.toInputStream(random));
-    updateReq.setFormat(contentType);
-
-    final MediaEntityUpdateStreamManager<ClientEntity> streamManager = updateReq.payloadManager();
-    final ODataMediaEntityUpdateResponse<ClientEntity> createRes = streamManager.getResponse();
-    assertEquals(204, createRes.getStatusCode());
-
-    // 2. check that media content was effectively uploaded
-    final ODataMediaRequest streamReq = client.getRetrieveRequestFactory().getMediaEntityRequest(uri);
-    final ODataRetrieveResponse<InputStream> streamRes = streamReq.execute();
-    assertEquals(200, streamRes.getStatusCode());
-
-    final byte[] actual = new byte[Integer.parseInt(streamRes.getHeader("Content-Length").iterator().next())];
-    IOUtils.read(streamRes.getBody(), actual, 0, actual.length);
-    assertEquals(random, new String(actual));
-  }
-
-  @Test
-  public void updateAsAtom() throws IOException, EdmPrimitiveTypeException {
-    update(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void updateAsJSON() throws IOException, EdmPrimitiveTypeException {
-    update(ContentType.JSON);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
deleted file mode 100644
index 0993682..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
+++ /dev/null
@@ -1,146 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-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.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmProperty;
-import org.apache.olingo.commons.api.edm.EdmSchema;
-import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.annotation.EdmRecord;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmBoolean;
-import org.junit.Test;
-
-public class MetadataTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void retrieve() throws EdmPrimitiveTypeException {
-    final Edm edm = client.getRetrieveRequestFactory().getMetadataRequest(testStaticServiceRootURL).execute().getBody();
-    assertNotNull(edm);
-
-    final EdmEntityType order = edm.getEntityType(
-        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService", "Order"));
-    assertNotNull(order);
-
-    final EdmProperty orderDate = order.getStructuralProperty("OrderDate");
-    assertNotNull(orderDate);
-    assertEquals("Edm.DateTimeOffset", orderDate.getType().getFullQualifiedName().toString());
-
-    final EdmTerm isBoss = edm.getTerm(new FullQualifiedName(edm.getSchemas().get(0).getNamespace(), "IsBoss"));
-    assertNotNull(isBoss);
-    assertEquals(EdmBoolean.getInstance(), isBoss.getType());
-
-    final EdmEntitySet orders = edm.getSchemas().get(0).getEntityContainer().getEntitySet("Orders");
-    assertNotNull(orders);
-    assertFalse(orders.getAnnotations().isEmpty());
-    assertTrue(orders.getAnnotations().get(0).getExpression().isDynamic());
-    assertTrue(orders.getAnnotations().get(0).getExpression().asDynamic().isRecord());
-    final EdmRecord record = orders.getAnnotations().get(0).getExpression().asDynamic().asRecord();
-    assertNotNull(record);
-    assertEquals(3, record.getPropertyValues().size());
-    assertTrue(record.getPropertyValues().get(0).getValue().isConstant());
-    assertTrue((Boolean) record.getPropertyValues().get(0).getValue().asConstant().getValue().asPrimitive());
-    assertTrue(record.getPropertyValues().get(1).getValue().asDynamic().isCollection());
-    assertEquals(1, record.getPropertyValues().get(1).getValue().asDynamic().asCollection().getItems().size());
-    assertTrue(record.getPropertyValues().get(1).getValue().asDynamic().asCollection().getItems().get(0).isDynamic());
-    assertEquals("OrderID", record.getPropertyValues().get(1).getValue().asDynamic().asCollection().
-        getItems().get(0).asDynamic().asPropertyPath().getValue());
-  }
-
-  @Test
-  public void include() {
-    final Edm edm = client.getRetrieveRequestFactory().getMetadataRequest(testNorthwindRootURL).execute().getBody();
-    assertNotNull(edm);
-
-    final EdmEntityContainer container = edm.getEntityContainer(
-        new FullQualifiedName("ODataWebExperimental.Northwind.Model", "NorthwindEntities"));
-    assertNotNull(container);
-
-    final EdmEntitySet categories = container.getEntitySet("Categories");
-    assertNotNull(categories);
-    assertEquals("NorthwindModel", categories.getEntityType().getNamespace());
-  }
-
-  @Test
-  public void vocabularies() {
-    final Edm edm = client.getRetrieveRequestFactory().
-        getMetadataRequest(testVocabulariesServiceRootURL).execute().getBody();
-    assertNotNull(edm);
-
-    // 1. core
-    final EdmSchema core = edm.getSchema("Org.OData.Core.V1");
-    assertNotNull(core);
-    final EdmSchema coreAlias = edm.getSchema("Core");
-    assertEquals(core, coreAlias);
-
-    final EdmTerm descriptionTerm = edm.getTerm(new FullQualifiedName("Core.Description"));
-    assertNotNull(descriptionTerm);
-    assertEquals(descriptionTerm.getFullQualifiedName(),
-        edm.getTerm(new FullQualifiedName("Org.OData.Core.V1.Description")).getFullQualifiedName());
-
-    final EdmAnnotation description = core.getAnnotation(descriptionTerm);
-    assertNotNull(description);
-    // assertEquals("Core terms needed to write vocabularies",
-    // description.getExpression().asConstant().getValue().asPrimitive().getName());
-    assertEquals("Core terms needed to write vocabularies",
-        description.getExpression().asConstant().getValueAsString());
-
-    final EdmTerm isLanguageDependent = edm.getTerm(new FullQualifiedName("Core.IsLanguageDependent"));
-    assertNotNull(isLanguageDependent);
-    assertTrue(isLanguageDependent.getAppliesTo().contains(EdmProperty.class));
-    assertTrue(isLanguageDependent.getAppliesTo().contains(EdmTerm.class));
-    assertEquals(edm.getTypeDefinition(new FullQualifiedName("Core.Tag")), isLanguageDependent.getType());
-    assertEquals(EdmBoolean.getInstance(), ((EdmTypeDefinition) isLanguageDependent.getType()).getUnderlyingType());
-    assertNotNull(isLanguageDependent.getAnnotation(descriptionTerm));
-
-    final EdmTerm permissions = edm.getTerm(new FullQualifiedName("Core.Permissions"));
-    assertNotNull(permissions);
-    assertTrue(permissions.getType() instanceof EdmEnumType);
-
-    // 2. measures
-    final EdmSchema measures = edm.getSchema("UoM");
-    assertNotNull(measures);
-
-    final EdmTerm scale = edm.getTerm(new FullQualifiedName("UoM.Scale"));
-    assertNotNull(scale);
-
-    final EdmAnnotation requiresTypeInScale = edm.getAnnotation(
-        scale.getFullQualifiedName(), edm.getTerm(new FullQualifiedName("Core.RequiresType")));
-    assertNotNull(requiresTypeInScale);
-    assertEquals("Edm.Decimal", requiresTypeInScale.getExpression().asConstant().getValueAsString());
-
-    // 3. capabilities
-    final EdmTerm deleteRestrictions = edm.getTerm(new FullQualifiedName("Capabilities.DeleteRestrictions"));
-    assertNotNull(deleteRestrictions);
-    assertEquals(deleteRestrictions.getType().getFullQualifiedName(),
-        edm.getComplexType(new FullQualifiedName("Capabilities.DeleteRestrictionsType")).getFullQualifiedName());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java
deleted file mode 100644
index 1ca5f42..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java
+++ /dev/null
@@ -1,145 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URI;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.client.core.http.DefaultHttpClientFactory;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.fit.CXFOAuth2HttpClientFactory;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public class OAuth2TestITCase extends AbstractTestITCase {
-
-  private static final URI OAUTH2_GRANT_SERVICE_URI =
-      URI.create("http://localhost:9080/stub/StaticService/oauth2/authorize");
-
-  private static final URI OAUTH2_TOKEN_SERVICE_URI =
-      URI.create("http://localhost:9080/stub/StaticService/oauth2/token");
-
-  private EdmEnabledODataClient _edmClient;
-
-  @BeforeClass
-  public static void enableOAuth2() {
-    client.getConfiguration().setHttpClientFactory(
-        new CXFOAuth2HttpClientFactory(OAUTH2_GRANT_SERVICE_URI, OAUTH2_TOKEN_SERVICE_URI));
-  }
-
-  @AfterClass
-  public static void disableOAuth2() {
-    client.getConfiguration().setHttpClientFactory(new DefaultHttpClientFactory());
-  }
-
-  protected ODataClient getLocalClient() {
-    ODataClient localClient = ODataClientFactory.getClient();
-    localClient.getConfiguration().setHttpClientFactory(
-        new CXFOAuth2HttpClientFactory(OAUTH2_GRANT_SERVICE_URI, OAUTH2_TOKEN_SERVICE_URI));
-    return localClient;
-  }
-
-  protected EdmEnabledODataClient getEdmClient() {
-    if (_edmClient == null) {
-      _edmClient = ODataClientFactory.getEdmEnabledClient(testOAuth2ServiceRootURL, ContentType.JSON);
-      _edmClient.getConfiguration().setHttpClientFactory(
-          new CXFOAuth2HttpClientFactory(OAUTH2_GRANT_SERVICE_URI, OAUTH2_TOKEN_SERVICE_URI));
-    }
-
-    return _edmClient;
-  }
-
-  private void read(final ODataClient client, final ContentType contentType) {
-    final URIBuilder uriBuilder =
-        client.newURIBuilder(testOAuth2ServiceRootURL).appendEntitySetSegment("Orders").appendKeySegment(8);
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-    assertEquals(200, res.getStatusCode());
-
-    final String etag = res.getETag();
-    assertTrue(StringUtils.isNotBlank(etag));
-
-    final ClientEntity order = res.getBody();
-    assertEquals(etag, order.getETag());
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Order", order.getTypeName().toString());
-    assertEquals("Edm.Int32", order.getProperty("OrderID").getPrimitiveValue().getTypeName());
-    assertEquals("Edm.DateTimeOffset", order.getProperty("OrderDate").getPrimitiveValue().getTypeName());
-    assertEquals("Edm.Duration", order.getProperty("ShelfLife").getPrimitiveValue().getTypeName());
-    assertEquals("Collection(Edm.Duration)", order.getProperty("OrderShelfLifes").getCollectionValue().getTypeName());
-  }
-
-  @Test
-  public void testOAuth() {
-    try {
-      readAsAtom();
-    } catch (Exception e) {
-      System.out.println("failed for readAsAtom");
-    }
-
-    try {
-      readAsFullJSON();
-    } catch (Exception e) {
-      System.out.println("failed for readAsFullJSON");
-    }
-
-    try {
-      readAsJSON();
-    } catch (Exception e) {
-      System.out.println("failed for readAsJSON");
-    }
-
-    try {
-      createAndDelete();
-    } catch (Exception e) {
-      System.out.println("failed for createAndDelete");
-    }
-  }
-
-  public void readAsAtom() {
-    read(getLocalClient(), ContentType.APPLICATION_ATOM_XML);
-  }
-
-  public void readAsFullJSON() {
-    read(getLocalClient(), ContentType.JSON_FULL_METADATA);
-  }
-
-  public void readAsJSON() {
-    read(getEdmClient(), ContentType.JSON);
-  }
-
-  public void createAndDelete() {
-    createAndDeleteOrder(testOAuth2ServiceRootURL, ContentType.JSON, 1002);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java
deleted file mode 100644
index c3b0337..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java
+++ /dev/null
@@ -1,190 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Calendar;
-import java.util.TimeZone;
-import java.util.UUID;
-
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
-import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
-import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.client.api.domain.ClientComplexValue;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.EdmSchema;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class OpenTypeTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void checkOpenTypeEntityTypesExist() {
-    final Edm metadata = getClient().getRetrieveRequestFactory().
-        getMetadataRequest(testOpenTypeServiceRootURL).execute().getBody();
-
-    final EdmSchema schema = metadata.getSchemas().get(0);
-
-    assertTrue(metadata.getEntityType(new FullQualifiedName(schema.getNamespace(), "Row")).isOpenType());
-    assertTrue(metadata.getEntityType(new FullQualifiedName(schema.getNamespace(), "IndexedRow")).isOpenType());
-    assertTrue(metadata.getEntityType(new FullQualifiedName(schema.getNamespace(), "RowIndex")).isOpenType());
-  }
-
-  private ClientEntity readRow(final ContentType contentType, final String uuid) {
-    final URIBuilder builder = getClient().newURIBuilder(testOpenTypeServiceRootURL).
-        appendEntitySetSegment("Row").appendKeySegment(UUID.fromString(uuid));
-    return read(contentType, builder.build());
-  }
-
-  private void read(final ContentType contentType) {
-    ClientEntity row = readRow(contentType, "71f7d0dc-ede4-45eb-b421-555a2aa1e58f");
-    assertEquals(EdmPrimitiveTypeKind.Double, row.getProperty("Double").getPrimitiveValue().getTypeKind());
-    assertEquals(EdmPrimitiveTypeKind.Guid, row.getProperty("Id").getPrimitiveValue().getTypeKind());
-
-    row = readRow(contentType, "672b8250-1e6e-4785-80cf-b94b572e42b3");
-    assertEquals(EdmPrimitiveTypeKind.Decimal, row.getProperty("Decimal").getPrimitiveValue().getTypeKind());
-  }
-
-  @Test
-  public void readAsAtom() {
-    read(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void readAsJSON() {
-    read(ContentType.JSON_FULL_METADATA);
-  }
-
-  private void cud(final ContentType contentType) {
-    final Integer id = 1426;
-
-    ClientEntity rowIndex = getClient().getObjectFactory().newEntity(
-        new FullQualifiedName("Microsoft.Test.OData.Services.OpenTypesServiceV4.RowIndex"));
-    getClient().getBinder().add(rowIndex,
-        getClient().getObjectFactory().newPrimitiveProperty("Id",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
-    getClient().getBinder().add(rowIndex,
-        getClient().getObjectFactory().newPrimitiveProperty("aString",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("string")));
-    getClient().getBinder().add(rowIndex,
-        getClient().getObjectFactory().newPrimitiveProperty("aBoolean",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().buildBoolean(true)));
-    getClient().getBinder().add(rowIndex,
-        getClient().getObjectFactory().newPrimitiveProperty("aDouble",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().buildDouble(1.5D)));
-    getClient().getBinder().add(rowIndex,
-        getClient().getObjectFactory().newPrimitiveProperty("aByte",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.SByte).setValue(Byte.MAX_VALUE).
-            build()));
-    getClient().getBinder().add(rowIndex,
-        getClient().getObjectFactory().newPrimitiveProperty("aDate",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).
-            build()));
-    getClient().getBinder().add(rowIndex,
-        getClient().getObjectFactory().newPrimitiveProperty("aDate",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).
-            build()));
-    getClient().getBinder().add(rowIndex,
-        getClient().getObjectFactory().newEnumProperty("aColor", getClient().getObjectFactory().
-            newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Blue")));
-
-    final ClientComplexValue contactDetails = getClient().getObjectFactory().newComplexValue(
-        "Microsoft.Test.OData.Services.OpenTypesServiceV4.ContactDetails");
-    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("FirstContacted",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildBinary("text".getBytes())));
-    Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT+00:01"));
-    dateTime.set(2014, 3, 5, 5, 5, 5);
-    dateTime.set(Calendar.MILLISECOND, 1);
-    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("LastContacted",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build()));
-    Calendar date = Calendar.getInstance();
-    date.set(2001, 3, 5);
-    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Contacted",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Date).setValue(date).build()));
-    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("GUID",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildGuid(UUID.randomUUID())));
-    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("PreferedContactTime",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Duration).setValue(0).build()));
-    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Byte",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Byte).setValue(24).build()));
-    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("SignedByte",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.SByte).setValue(Byte.MAX_VALUE).build()));
-    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Double",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildDouble(Double.MAX_VALUE)));
-    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Single",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildSingle(Float.MAX_VALUE)));
-    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Short",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt16(Short.MAX_VALUE)));
-    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Int",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(Integer.MAX_VALUE)));
-    getClient().getBinder().add(rowIndex,
-        getClient().getObjectFactory().newComplexProperty("aContact", contactDetails));
-
-    final ODataEntityCreateRequest<ClientEntity> createReq = getClient().getCUDRequestFactory().
-        getEntityCreateRequest(getClient().newURIBuilder(testOpenTypeServiceRootURL).
-            appendEntitySetSegment("RowIndex").build(), rowIndex);
-    createReq.setFormat(contentType);
-    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
-    assertEquals(201, createRes.getStatusCode());
-
-    final URIBuilder builder = getClient().newURIBuilder(testOpenTypeServiceRootURL).
-        appendEntitySetSegment("RowIndex").appendKeySegment(id);
-    rowIndex = read(contentType, builder.build());
-    assertNotNull(rowIndex);
-    assertEquals(EdmPrimitiveTypeKind.Int32, rowIndex.getProperty("Id").getPrimitiveValue().getTypeKind());
-    assertEquals(EdmPrimitiveTypeKind.String, rowIndex.getProperty("aString").getPrimitiveValue().getTypeKind());
-    assertEquals(EdmPrimitiveTypeKind.Boolean, rowIndex.getProperty("aBoolean").getPrimitiveValue().getTypeKind());
-    assertTrue(rowIndex.getProperty("aDouble").hasPrimitiveValue());
-    assertTrue(rowIndex.getProperty("aByte").hasPrimitiveValue());
-    assertTrue(rowIndex.getProperty("aDate").hasPrimitiveValue());
-    assertNotNull(rowIndex.getProperty("aColor"));
-    assertTrue(rowIndex.getProperty("aContact").hasComplexValue());
-    assertTrue(rowIndex.getProperty("aContact").getComplexValue().get("SignedByte").hasPrimitiveValue());
-
-    final ODataDeleteResponse deleteRes = getClient().getCUDRequestFactory().
-        getDeleteRequest(rowIndex.getEditLink()).execute();
-    assertEquals(204, deleteRes.getStatusCode());
-  }
-
-  @Test
-  public void cudAsAtom() {
-    cud(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void cudAsJSON() {
-    cud(ContentType.JSON_FULL_METADATA);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
deleted file mode 100644
index d6d535b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
+++ /dev/null
@@ -1,294 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.apache.olingo.client.api.communication.request.invoke.ClientNoContent;
-import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.client.api.domain.ClientCollectionValue;
-import org.apache.olingo.client.api.domain.ClientComplexValue;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientEnumValue;
-import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.domain.ClientValue;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class OperationImportInvokeTestITCase extends AbstractTestITCase {
-
-  private void functionImports(final ContentType contentType) throws EdmPrimitiveTypeException {
-    // GetDefaultColor
-    final ODataInvokeRequest<ClientProperty> defaultColorReq = getClient().getInvokeRequestFactory().
-        getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("GetDefaultColor").build(), ClientProperty.class);
-    defaultColorReq.setFormat(contentType);
-    final ClientProperty defaultColor = defaultColorReq.execute().getBody();
-    assertNotNull(defaultColor);
-    assertTrue(defaultColor.hasEnumValue());
-    assertEquals("Red", defaultColor.getEnumValue().getValue());
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Color", defaultColor.getEnumValue().getTypeName());
-
-    // GetPerson2
-    final ClientPrimitiveValue city = getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("London");
-
-    final ODataInvokeRequest<ClientEntity> person2Req = getClient().getInvokeRequestFactory().
-        getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("GetPerson2").build(), ClientEntity.class,
-            Collections.<String, ClientValue> singletonMap("city", city));
-    person2Req.setFormat(contentType);
-    final ClientEntity person2 = person2Req.execute().getBody();
-    assertNotNull(person2);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", person2.getTypeName().toString());
-    assertEquals(1, person2.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    // GetPerson
-    final ClientComplexValue address = getClient().getObjectFactory().
-        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
-    address.add(client.getObjectFactory().newPrimitiveProperty("Street",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("1 Microsoft Way")));
-    address.add(client.getObjectFactory().newPrimitiveProperty("City",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("London")));
-    address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("98052")));
-
-    final ODataInvokeRequest<ClientEntity> personReq = getClient().getInvokeRequestFactory().
-        getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("GetPerson").build(), ClientEntity.class,
-            Collections.<String, ClientValue> singletonMap("address", address));
-    personReq.setFormat(contentType);
-    final ClientEntity person = personReq.execute().getBody();
-    assertNotNull(person);
-    assertEquals(person2, person);
-
-    // GetAllProducts
-    final ODataInvokeRequest<ClientEntitySet> productsReq = getClient().getInvokeRequestFactory()
-        .getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("GetAllProducts").build(), ClientEntitySet.class);
-    productsReq.setFormat(contentType);
-    final ClientEntitySet products = productsReq.execute().getBody();
-    assertNotNull(products);
-    assertEquals(5, products.getEntities().size());
-
-    // GetProductsByAccessLevel
-    final ClientEnumValue accessLevel = getClient().getObjectFactory().
-        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "None");
-
-    final ODataInvokeRequest<ClientProperty> prodByALReq = getClient().getInvokeRequestFactory().
-        getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("GetProductsByAccessLevel").build(), ClientProperty.class,
-            Collections.<String, ClientValue> singletonMap("accessLevel", accessLevel));
-    prodByALReq.setFormat(contentType);
-    final ClientProperty prodByAL = prodByALReq.execute().getBody();
-    assertNotNull(prodByAL);
-    assertTrue(prodByAL.hasCollectionValue());
-    assertEquals(5, prodByAL.getCollectionValue().size());
-    assertTrue(prodByAL.getCollectionValue().asJavaCollection().contains("Car"));
-  }
-
-  @Test
-  public void atomFunctionImports() throws EdmPrimitiveTypeException {
-    functionImports(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonFunctionImports() throws EdmPrimitiveTypeException {
-    functionImports(ContentType.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void edmEnabledFunctionImports() throws EdmPrimitiveTypeException {
-    // GetDefaultColor
-    final ODataInvokeRequest<ClientProperty> defaultColorReq = edmClient.getInvokeRequestFactory().
-        getFunctionImportInvokeRequest("GetDefaultColor");
-    final ClientProperty defaultColor = defaultColorReq.execute().getBody();
-    assertNotNull(defaultColor);
-    assertTrue(defaultColor.hasEnumValue());
-    assertEquals("Red", defaultColor.getEnumValue().getValue());
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Color", defaultColor.getEnumValue().getTypeName());
-
-    // GetPerson2
-    final ClientPrimitiveValue city =
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("London");
-    final ODataInvokeRequest<ClientEntity> person2Req = edmClient.getInvokeRequestFactory().
-        getFunctionImportInvokeRequest(
-            "GetPerson2", Collections.<String, ClientValue> singletonMap("city", city));
-    final ClientEntity person2 = person2Req.execute().getBody();
-    assertNotNull(person2);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", person2.getTypeName().toString());
-    assertEquals(1, person2.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    // GetPerson
-    final ClientComplexValue address = getClient().getObjectFactory().
-        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
-    address.add(client.getObjectFactory().newPrimitiveProperty("Street",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("1 Microsoft Way")));
-    address.add(client.getObjectFactory().newPrimitiveProperty("City",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("London")));
-    address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("98052")));
-
-    final ODataInvokeRequest<ClientEntity> personReq = edmClient.getInvokeRequestFactory().
-        getFunctionImportInvokeRequest(
-            "GetPerson", Collections.<String, ClientValue> singletonMap("address", address));
-    final ClientEntity person = personReq.execute().getBody();
-    assertNotNull(person);
-    assertEquals(person2, person);
-
-    // GetAllProducts
-    final ODataInvokeRequest<ClientEntitySet> productsReq = edmClient.getInvokeRequestFactory().
-        getFunctionImportInvokeRequest("GetAllProducts");
-    final ClientEntitySet products = productsReq.execute().getBody();
-    assertNotNull(products);
-    assertEquals(5, products.getEntities().size());
-
-    // GetProductsByAccessLevel
-    final ClientEnumValue accessLevel = getClient().getObjectFactory().
-        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "None");
-
-    final ODataInvokeRequest<ClientProperty> prodByALReq = edmClient.getInvokeRequestFactory().
-        getFunctionImportInvokeRequest(
-            "GetProductsByAccessLevel",
-            Collections.<String, ClientValue> singletonMap("accessLevel", accessLevel));
-    final ClientProperty prodByAL = prodByALReq.execute().getBody();
-    assertNotNull(prodByAL);
-    assertTrue(prodByAL.hasCollectionValue());
-    assertEquals(5, prodByAL.getCollectionValue().size());
-    assertTrue(prodByAL.getCollectionValue().asJavaCollection().contains("Car"));
-  }
-
-  private void actionImports(final ContentType contentType) {
-    // Discount
-    final ClientPrimitiveValue percentage = getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(22);
-    final ODataInvokeRequest<ClientNoContent> discountReq = getClient().getInvokeRequestFactory().
-        getActionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("Discount").build(), ClientNoContent.class,
-            Collections.<String, ClientValue> singletonMap("percentage", percentage));
-    discountReq.setFormat(contentType);
-    final ClientNoContent discount = discountReq.execute().getBody();
-    assertNotNull(discount);
-
-    // ResetBossAddress
-    final ClientComplexValue address = getClient().getObjectFactory().
-        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
-    address.add(client.getObjectFactory().newPrimitiveProperty("Street",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Via Le Mani Dal Naso, 123")));
-    address.add(client.getObjectFactory().newPrimitiveProperty("City",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Tollo")));
-    address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
-
-    final ODataInvokeRequest<ClientProperty> resetBossAddressReq = getClient().getInvokeRequestFactory().
-        getActionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("ResetBossAddress").build(), ClientProperty.class,
-            Collections.<String, ClientValue> singletonMap("address", address));
-    resetBossAddressReq.setFormat(contentType);
-    final ClientProperty resetBossAddress = resetBossAddressReq.execute().getBody();
-    assertNotNull(resetBossAddress);
-    assertEquals(address, resetBossAddress.getComplexValue());
-  }
-
-  @Test
-  public void atomActionImports() {
-    actionImports(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonActionImports() {
-    actionImports(ContentType.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void edmEnabledActionImports() {
-    // Discount
-    final ClientPrimitiveValue percentage = getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(22);
-    final ODataInvokeRequest<ClientNoContent> discountReq = edmClient.getInvokeRequestFactory().
-        getActionImportInvokeRequest(
-            "Discount", Collections.<String, ClientValue> singletonMap("percentage", percentage));
-    final ClientNoContent discount = discountReq.execute().getBody();
-    assertNotNull(discount);
-
-    // ResetBossAddress
-    final ClientComplexValue address = getClient().getObjectFactory().
-        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
-    address.add(client.getObjectFactory().newPrimitiveProperty("Street",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Via Le Mani Dal Naso, 123")));
-    address.add(client.getObjectFactory().newPrimitiveProperty("City",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Tollo")));
-    address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
-
-    final ODataInvokeRequest<ClientProperty> resetBossAddressReq = edmClient.getInvokeRequestFactory().
-        getActionImportInvokeRequest(
-            "ResetBossAddress", Collections.<String, ClientValue> singletonMap("address", address));
-    final ClientProperty resetBossAddress = resetBossAddressReq.execute().getBody();
-    assertNotNull(resetBossAddress);
-    assertEquals(address.getTypeName(), resetBossAddress.getComplexValue().getTypeName());
-  }
-
-  private void bossEmails(final ContentType contentType) {
-    // ResetBossEmail
-    final ClientCollectionValue<ClientValue> emails =
-        getClient().getObjectFactory().newCollectionValue("Collection(Edm.String)");
-    emails.add(getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("first@olingo.apache.org"));
-    emails.add(getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("second@olingo.apache.org"));
-    ODataInvokeRequest<ClientProperty> bossEmailsReq = getClient().getInvokeRequestFactory().
-        getActionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("ResetBossEmail").build(), ClientProperty.class,
-            Collections.<String, ClientValue> singletonMap("emails", emails));
-    bossEmailsReq.setFormat(contentType);
-    final ClientProperty bossEmails = bossEmailsReq.execute().getBody();
-    assertNotNull(bossEmails);
-    assertTrue(bossEmails.hasCollectionValue());
-    assertEquals(2, bossEmails.getCollectionValue().size());
-
-    final Map<String, ClientValue> params = new LinkedHashMap<String, ClientValue>(2);
-    params.put("start", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(0));
-    params.put("count", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(100));
-    bossEmailsReq = getClient().getInvokeRequestFactory().getFunctionInvokeRequest(
-        getClient().newURIBuilder(testStaticServiceRootURL).
-        appendOperationCallSegment("GetBossEmails").build(), ClientProperty.class, params);
-    bossEmailsReq.setFormat(contentType);
-    final ClientProperty bossEmailsViaGET = bossEmailsReq.execute().getBody();
-    assertNotNull(bossEmailsViaGET);
-    assertTrue(bossEmailsViaGET.hasCollectionValue());
-    assertEquals(2, bossEmailsViaGET.getCollectionValue().size());
-    assertEquals(bossEmails.getCollectionValue().asJavaCollection(),
-        bossEmailsViaGET.getCollectionValue().asJavaCollection());
-  }
-
-  @Test
-  public void atomBossEmails() throws EdmPrimitiveTypeException {
-    bossEmails(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonBossEmails() throws EdmPrimitiveTypeException {
-    bossEmails(ContentType.JSON_FULL_METADATA);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java
deleted file mode 100644
index cb94f83..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java
+++ /dev/null
@@ -1,203 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.communication.request.cud.ODataDeleteRequest;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
-import org.apache.olingo.client.api.communication.request.cud.ODataPropertyUpdateRequest;
-import org.apache.olingo.client.api.communication.request.cud.UpdateType;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
-import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
-import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.client.api.communication.response.ODataPropertyUpdateResponse;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.domain.ClientValuable;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.commons.api.http.HttpMethod;
-import org.junit.Test;
-
-public class PropertyTestITCase extends AbstractTestITCase {
-
-  private void _enum(final ODataClient client, final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Products").appendKeySegment(5).appendPropertySegment("CoverColors");
-    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
-        getPropertyRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final ClientProperty prop = req.execute().getBody();
-    assertNotNull(prop);
-    // cast to workaround JDK 6 bug, fixed in JDK 7
-    assertEquals("Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)",
-        ((ClientValuable) prop).getValue().getTypeName());
-  }
-
-  @Test
-  public void enumFromXML() {
-    _enum(client, ContentType.APPLICATION_XML);
-  }
-
-  @Test
-  public void enumFromJSON() {
-    _enum(edmClient, ContentType.JSON);
-  }
-
-  @Test
-  public void enumFromFullJSON() {
-    _enum(client, ContentType.JSON_FULL_METADATA);
-  }
-
-  private void geospatial(final ODataClient client, final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("Home");
-    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
-        getPropertyRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final ClientProperty prop = req.execute().getBody();
-    assertNotNull(prop);
-    // cast to workaround JDK 6 bug, fixed in JDK 7
-    assertEquals("Edm.GeographyPoint", ((ClientValuable) prop).getValue().getTypeName());
-  }
-
-  @Test
-  public void geospatialFromXML() {
-    geospatial(client, ContentType.APPLICATION_XML);
-  }
-
-  @Test
-  public void geospatialFromJSON() {
-    geospatial(edmClient, ContentType.JSON);
-  }
-
-  @Test
-  public void geospatialFromFullJSON() {
-    geospatial(client, ContentType.JSON_FULL_METADATA);
-  }
-
-  private void complex(final ODataClient client, final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(2).appendPropertySegment("HomeAddress");
-    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
-        getPropertyRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final ClientProperty prop = req.execute().getBody();
-    assertNotNull(prop);
-    // cast to workaround JDK 6 bug, fixed in JDK 7
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Address",
-        ((ClientValuable) prop).getValue().getTypeName());
-  }
-
-  @Test
-  public void complexFromXML() {
-    complex(client, ContentType.APPLICATION_XML);
-  }
-
-  @Test
-  public void complexFromJSON() {
-    complex(edmClient, ContentType.JSON);
-  }
-
-  @Test
-  public void complexFromFullJSON() {
-    complex(client, ContentType.JSON_FULL_METADATA);
-  }
-
-  private void updateComplexProperty(final ContentType contentType, final UpdateType type) throws IOException {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).appendPropertySegment("HomeAddress");
-
-    ODataPropertyRequest<ClientProperty> retrieveReq =
-        client.getRetrieveRequestFactory().getPropertyRequest(uriBuilder.build());
-    retrieveReq.setFormat(contentType);
-
-    ODataRetrieveResponse<ClientProperty> retrieveRes = retrieveReq.execute();
-    assertEquals(200, retrieveRes.getStatusCode());
-
-    ClientProperty homeAddress = client.getObjectFactory().newComplexProperty("HomeAddress",
-        client.getObjectFactory().newComplexValue(retrieveRes.getBody().getComplexValue().getTypeName()));
-
-    homeAddress.getComplexValue().add(client.getObjectFactory().
-        newPrimitiveProperty("City", client.getObjectFactory().newPrimitiveValueBuilder().buildString("Pescara")));
-
-    final ODataPropertyUpdateRequest updateReq = client.getCUDRequestFactory().
-        getPropertyComplexValueUpdateRequest(uriBuilder.build(), type, homeAddress);
-    if (client.getConfiguration().isUseXHTTPMethod()) {
-      assertEquals(HttpMethod.POST, updateReq.getMethod());
-    } else {
-      assertEquals(type.getMethod(), updateReq.getMethod());
-    }
-    updateReq.setFormat(contentType);
-
-    final ODataPropertyUpdateResponse updateRes = updateReq.execute();
-    assertEquals(204, updateRes.getStatusCode());
-
-    retrieveReq = client.getRetrieveRequestFactory().getPropertyRequest(uriBuilder.build());
-    retrieveReq.setFormat(contentType);
-
-    retrieveRes = retrieveReq.execute();
-    assertEquals(200, retrieveRes.getStatusCode());
-
-    homeAddress = retrieveRes.getBody();
-    assertEquals("Pescara", homeAddress.getComplexValue().get("City").getPrimitiveValue().toString());
-  }
-
-  @Test
-  public void patchComplexPropertyAsJSON() throws IOException {
-    updateComplexProperty(ContentType.JSON_FULL_METADATA, UpdateType.PATCH);
-  }
-
-  @Test
-  public void createAndDelete() {
-    // 1. create
-    final ClientEntity category = client.getObjectFactory().newEntity(null);
-    category.setId(client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Categories").appendKeySegment(1).build());
-
-    final URIBuilder createBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Products").appendKeySegment(0).appendNavigationSegment("Categories").
-        appendRefSegment();
-    final ODataEntityCreateRequest<ClientEntity> createReq = client.getCUDRequestFactory().
-        getEntityCreateRequest(createBuilder.build(), category);
-
-    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
-    assertEquals(204, createRes.getStatusCode());
-
-    // 2. delete
-    final URIBuilder deleteBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Products").appendKeySegment(0).appendNavigationSegment("Categories").
-        appendKeySegment(1).appendRefSegment();
-    final ODataDeleteRequest deleteReq = client.getCUDRequestFactory().
-        getDeleteRequest(deleteBuilder.build());
-
-    final ODataDeleteResponse deleteRes = deleteReq.execute();
-    assertEquals(204, deleteRes.getStatusCode());
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java
deleted file mode 100644
index c2eadc2..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java
+++ /dev/null
@@ -1,138 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.communication.ODataClientErrorException;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
-import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.domain.ClientValuable;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class PropertyValueTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void retrieveIntPropertyValueTest() throws EdmPrimitiveTypeException {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("PersonID");
-    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
-    req.setFormat(ContentType.TEXT_PLAIN);
-    assertEquals("5", req.execute().getBody().toString());
-  }
-
-  @Test
-  public void retrieveBooleanPropertyValueTest() throws EdmPrimitiveTypeException {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("IsRegistered");
-    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
-    req.setFormat(ContentType.TEXT_PLAIN);
-    assertEquals("true", req.execute().getBody().toString());
-  }
-
-  @Test
-  public void retrieveStringPropertyValueTest() throws EdmPrimitiveTypeException {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("FirstName");
-    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
-    req.setFormat(ContentType.TEXT_PLAIN);
-    assertEquals("Peter", req.execute().getBody().toString());
-  }
-
-  @Test
-  public void retrieveDatePropertyValueTest() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Orders").appendKeySegment(8).appendPropertySegment("OrderDate");
-    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
-    req.setFormat(ContentType.TEXT_PLAIN);
-    final ClientPrimitiveValue property = req.execute().getBody();
-    assertEquals("2011-03-04T16:03:57Z", property.toString());
-  }
-
-  @Test
-  public void retrieveDecimalPropertyValueTest() throws EdmPrimitiveTypeException {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("Height");
-    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
-    req.setFormat(ContentType.TEXT_PLAIN);
-    final ClientPrimitiveValue property = req.execute().getBody();
-    assertEquals("179", property.toString());
-  }
-
-  @Test
-  public void retrieveBinaryPropertyValueTest() throws IOException {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("PDC");
-    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
-    req.setFormat(ContentType.TEXT_PLAIN);
-    final ClientPrimitiveValue property = req.execute().getBody();
-    assertEquals("fi653p3+MklA/LdoBlhWgnMTUUEo8tEgtbMXnF0a3CUNL9BZxXpSRiD9ebTnmNR0zWPjJ"
-        + "VIDx4tdmCnq55XrJh+RW9aI/b34wAogK3kcORw=", property.toString());
-  }
-
-  @Test(expected = ODataClientErrorException.class)
-  public void retrieveBinaryPropertyValueTestWithAtom() throws IOException {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("PDC");
-    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
-    req.setAccept(ContentType.APPLICATION_ATOM_XML.toContentTypeString());
-    req.execute().getBody();
-  }
-
-  @Test(expected = ODataClientErrorException.class)
-  public void retrieveBinaryPropertyValueTestWithXML() throws IOException {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("PDC");
-    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
-    req.setAccept(ContentType.APPLICATION_XML.toContentTypeString());
-    req.execute().getBody();
-  }
-
-  @Test
-  public void retrieveCollectionPropertyValueTest() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("Numbers");
-    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
-        getPropertyRequest(uriBuilder.build());
-    req.setFormat(ContentType.APPLICATION_XML);
-    final ClientProperty property = req.execute().getBody();
-    // cast to workaround JDK 6 bug, fixed in JDK 7
-    assertTrue(((ClientValuable) property).getValue().isCollection());
-    assertEquals("555-555-5555", property.getCollectionValue().iterator().next().asPrimitive().toString());
-  }
-
-  @Test
-  public void retrieveNullPropertyValueTest() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("HomeAddress");
-    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
-    req.setFormat(ContentType.TEXT_PLAIN);
-    final ClientPrimitiveValue property = req.execute().getBody();
-    assertTrue(StringUtils.isBlank(property.toString()));
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
deleted file mode 100644
index b9119f8..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
+++ /dev/null
@@ -1,246 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.client.api.uri.QueryOption;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-/**
- * This is the unit test class to check for query options.
- */
-public class QueryOptionsTestITCase extends AbstractTestITCase {
-
-  /**
-   * Test <tt>$expand</tt>.
-   */
-  public void expand() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Orders");
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-
-    final ClientEntity customer = req.execute().getBody();
-    assertTrue(customer.getNavigationLink("Orders") instanceof ClientInlineEntitySet);
-  }
-
-  @Test
-  public void expandWithFilter() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).
-        expandWithOptions("Orders", Collections.<QueryOption, Object> singletonMap(
-            QueryOption.FILTER, getClient().getFilterFactory().gt("OrderID", 7).build()));
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-
-    final ClientEntity customer = req.execute().getBody();
-    assertTrue(customer.getNavigationLink("Orders") instanceof ClientInlineEntitySet);
-  }
-
-  /**
-   * Test <tt>$filter</tt> and <tt>$orderby</tt>.
-   *
-   * @see org.apache.olingo.fit.v4.FilterFactoryTestITCase for more tests.
-   */
-  @Test
-  public void filterOrderby() throws EdmPrimitiveTypeException {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").filter("(PersonID lt 3)");
-
-    // 1. check that filtered entity set looks as expected
-    ODataEntitySetRequest<ClientEntitySet> req =
-        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
-
-    ClientEntitySet feed = req.execute().getBody();
-    assertNotNull(feed);
-    assertEquals(2, feed.getEntities().size());
-
-    // 2. extract PersonID values - sorted ASC by default
-    final List<Integer> former = new ArrayList<Integer>(2);
-    for (ClientEntity entity : feed.getEntities()) {
-      final Integer personID = entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class);
-      assertTrue(personID < 3);
-      former.add(personID);
-    }
-
-    // 3. add orderby clause to filter above
-    req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.orderBy("PersonID desc").build());
-
-    feed = req.execute().getBody();
-    assertNotNull(feed);
-    assertEquals(2, feed.getEntities().size());
-
-    // 4. extract again VIN value - now they were required to be sorted DESC
-    final List<Integer> latter = new ArrayList<Integer>(2);
-    for (ClientEntity entity : feed.getEntities()) {
-      final Integer personID = entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class);
-      assertTrue(personID < 3);
-      latter.add(personID);
-    }
-
-    // 5. reverse latter and expect to be equal to former
-    Collections.reverse(latter);
-    assertEquals(former, latter);
-  }
-
-  /**
-   * Test <tt>$format</tt>.
-   */
-  @Test
-  public void format() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).format("json");
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(ContentType.APPLICATION_ATOM_XML);
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-    assertNotNull(res);
-    assertTrue(res.getContentType().replaceAll(" ", "").
-        startsWith(ContentType.JSON.toContentTypeString()));
-  }
-
-  /**
-   * Test <tt>$skip</tt>.
-   */
-  public void skip() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
-
-    // 1. check that filtered entity set looks as expected
-    final ODataEntitySetRequest<ClientEntitySet> req =
-        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.skip(2).build());
-
-    final ClientEntitySet feed = req.execute().getBody();
-    assertEquals(3, feed.getEntities().size());
-  }
-
-  /**
-   * Test <tt>$top</tt>.
-   */
-  public void top() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
-
-    // 1. check that filtered entity set looks as expected
-    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
-        getEntitySetRequest(uriBuilder.top(2).build());
-
-    final ClientEntitySet feed = req.execute().getBody();
-    assertEquals(2, feed.getEntities().size());
-  }
-
-  /**
-   * Test <tt>$skiptoken</tt>.
-   */
-  @Test
-  public void skiptoken() throws EdmPrimitiveTypeException {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL);
-    uriBuilder.appendEntitySetSegment("People").skipToken("5");
-
-    final ODataEntitySetRequest<ClientEntitySet> req =
-        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
-
-    final ClientEntitySet feed = req.execute().getBody();
-    assertNotNull(feed);
-    assertEquals(1, feed.getEntities().size());
-
-    for (ClientEntity entity : feed.getEntities()) {
-      assertTrue(entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class) > 5);
-    }
-  }
-
-  /**
-   * Test <tt>$inlinecount</tt>.
-   */
-  @Test
-  public void count() {
-    final URIBuilder uriBuilder =
-        client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").count(true);
-
-    final ODataEntitySetRequest<ClientEntitySet> req =
-        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
-
-    final ClientEntitySet feed = req.execute().getBody();
-    assertNotNull(feed);
-    assertEquals(Integer.valueOf(feed.getEntities().size()), feed.getCount());
-  }
-
-  /**
-   * Test <tt>$select</tt>.
-   */
-  @Test
-  public void select() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).select("PersonID,Orders").expand("Orders");
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-
-    final ClientEntity customer = req.execute().getBody();
-    assertEquals(1, customer.getProperties().size());
-    assertEquals(1, customer.getNavigationLinks().size());
-    assertTrue((customer.getNavigationLinks().get(0) instanceof ClientInlineEntitySet));
-  }
-
-  @Test
-  public void issue253() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("relatedEntitySelect").appendEntitySetSegment("Customers").appendKeySegment(1).
-        expandWithSelect("Orders", "OrderID", "OrderDetails");
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-    assertEquals(200, res.getStatusCode());
-  }
-
-  @Test
-  public void search() {
-    final URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("People").search(client.getSearchFactory().
-            or(client.getSearchFactory().literal("Bob"), client.getSearchFactory().literal("Jill")));
-
-    final ODataEntitySetRequest<ClientEntitySet> req =
-        client.getRetrieveRequestFactory().getEntitySetRequest(builder.build());
-
-    final ODataRetrieveResponse<ClientEntitySet> res = req.execute();
-    assertEquals(200, res.getStatusCode());
-    assertFalse(res.getBody().getEntities().isEmpty());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java
deleted file mode 100644
index 69a869c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java
+++ /dev/null
@@ -1,63 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-
-import java.net.URI;
-
-import org.apache.olingo.client.api.communication.request.retrieve.ODataServiceDocumentRequest;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientServiceDocument;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class ServiceDocumentTestITCase extends AbstractTestITCase {
-
-  private void retrieveServiceDocument(final ContentType contentType) {
-    final ODataServiceDocumentRequest req =
-        client.getRetrieveRequestFactory().getServiceDocumentRequest(testStaticServiceRootURL);
-    req.setFormat(contentType);
-
-    final ODataRetrieveResponse<ClientServiceDocument> res = req.execute();
-    assertEquals(200, res.getStatusCode());
-
-    final ClientServiceDocument serviceDocument = res.getBody();
-    assertEquals(12, serviceDocument.getEntitySets().size());
-    assertEquals(6, serviceDocument.getSingletons().size());
-    assertEquals(6, serviceDocument.getFunctionImports().size());
-
-    assertEquals(URI.create(testStaticServiceRootURL + "/ProductDetails"),
-        serviceDocument.getEntitySetURI("ProductDetails"));
-    assertEquals(URI.create(testStaticServiceRootURL + "/Boss"),
-        serviceDocument.getSingletonURI("Boss"));
-    assertEquals(URI.create(testStaticServiceRootURL + "/GetPerson"),
-        serviceDocument.getFunctionImportURI("GetPerson"));
-  }
-
-  @Test
-  public void retrieveServiceDocumentAsXML() {
-    retrieveServiceDocument(ContentType.APPLICATION_XML);
-  }
-
-  @Test
-  public void retrieveServiceDocumentAsJSON() {
-    retrieveServiceDocument(ContentType.JSON);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java
deleted file mode 100644
index 7f4e2f8..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java
+++ /dev/null
@@ -1,135 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URI;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
-import org.apache.olingo.client.api.communication.request.cud.UpdateType;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.client.api.domain.ClientAnnotation;
-import org.apache.olingo.client.api.domain.ClientSingleton;
-import org.apache.olingo.client.api.domain.ClientValuable;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class SingletonTestITCase extends AbstractTestITCase {
-
-  private void read(final ODataClient client, final ContentType contentType) throws EdmPrimitiveTypeException {
-    final URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company");
-    final ODataEntityRequest<ClientSingleton> singleton =
-        client.getRetrieveRequestFactory().getSingletonRequest(builder.build());
-    singleton.setFormat(contentType);
-    final ClientSingleton company = singleton.execute().getBody();
-    assertNotNull(company);
-
-    assertEquals(0, company.getProperty("CompanyID").getPrimitiveValue().toCastValue(Integer.class), 0);
-    // cast to workaround JDK 6 bug, fixed in JDK 7
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
-        ((ClientValuable) company.getProperty("CompanyCategory")).getValue().getTypeName());
-    assertTrue(company.getProperty("CompanyCategory").hasEnumValue());
-  }
-
-  @Test
-  public void readFromAtom() throws EdmPrimitiveTypeException {
-    read(client, ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void readFromJSON() throws EdmPrimitiveTypeException {
-    read(edmClient, ContentType.JSON);
-  }
-
-  @Test
-  public void readfromJSONFull() throws EdmPrimitiveTypeException {
-    read(client, ContentType.JSON_FULL_METADATA);
-  }
-
-  private void readWithAnnotations(final ODataClient client, final ContentType contentType)
-      throws EdmPrimitiveTypeException {
-
-    final URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Boss");
-    final ODataEntityRequest<ClientSingleton> singleton =
-        client.getRetrieveRequestFactory().getSingletonRequest(builder.build());
-    singleton.setFormat(contentType);
-    singleton.setPrefer(client.newPreferences().includeAnnotations("*"));
-    final ClientSingleton boss = singleton.execute().getBody();
-    assertNotNull(boss);
-
-    assertFalse(boss.getAnnotations().isEmpty());
-    final ClientAnnotation isBoss = boss.getAnnotations().get(0);
-    assertTrue(isBoss.getPrimitiveValue().toCastValue(Boolean.class));
-  }
-
-  @Test
-  public void readWithAnnotationsFromAtom() throws EdmPrimitiveTypeException {
-    readWithAnnotations(client, ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void readWithAnnotationsFromJSON() throws EdmPrimitiveTypeException {
-    readWithAnnotations(edmClient, ContentType.JSON);
-  }
-
-  @Test
-  public void readWithAnnotationsFromJSONFull() throws EdmPrimitiveTypeException {
-    readWithAnnotations(client, ContentType.JSON_FULL_METADATA);
-  }
-
-  private void update(final ContentType contentType) throws EdmPrimitiveTypeException {
-    final ClientSingleton changes = getClient().getObjectFactory().newSingleton(
-        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Company"));
-    changes.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Revenue",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt64(132520L)));
-
-    final URI uri = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company").build();
-    final ODataEntityUpdateRequest<ClientSingleton> req = getClient().getCUDRequestFactory().
-        getSingletonUpdateRequest(uri, UpdateType.PATCH, changes);
-    req.setFormat(contentType);
-
-    final ODataEntityUpdateResponse<ClientSingleton> res = req.execute();
-    assertEquals(204, res.getStatusCode());
-
-    final ClientSingleton updated =
-        getClient().getRetrieveRequestFactory().getSingletonRequest(uri).execute().getBody();
-    assertNotNull(updated);
-    assertEquals(132520, updated.getProperty("Revenue").getPrimitiveValue().toCastValue(Integer.class), 0);
-  }
-
-  @Test
-  public void atomUpdate() throws EdmPrimitiveTypeException {
-    update(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonUpdate() throws EdmPrimitiveTypeException {
-    update(ContentType.JSON);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 6d6afa8..6b2359b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -526,13 +526,9 @@
           <failOnViolation>true</failOnViolation>
           <violationSeverity>warning</violationSeverity>
           <!-- fit autogenerated (via pojogen plugin) resources -->
-          <excludes>**/fit/proxy/v4/staticservice/**/*.java,
-            **/fit/proxy/v3/staticservice/**/*.java,
-            **/fit/proxy/v3/actionoverloading/**/*.java,
-            **/fit/proxy/v3/primitivekeys/**/*.java,
-            **/fit/proxy/v3/opentype/**/*.java,
-            **/fit/proxy/v4/opentype/**/*.java,
-            **/fit/proxy/v4/demo/**/*.java</excludes>
+          <excludes>**/fit/proxy/staticservice/**/*.java,
+            **/fit/proxy/opentype/**/*.java,
+            **/fit/proxy/demo/**/*.java</excludes>
         </configuration>
       </plugin>
       <plugin>


[33/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonComposableInvoker.java
new file mode 100644
index 0000000..05e6083
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonComposableInvoker.java
@@ -0,0 +1,171 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface PersonComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Person, Person.Operations>
+{
+
+  @Override
+  PersonComposableInvoker select(String... select);
+
+  @Override
+  PersonComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPersonID();
+
+  void setPersonID(java.lang.Integer _personID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFirstName();
+
+  void setFirstName(java.lang.String _firstName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getLastName();
+
+  void setLastName(java.lang.String _lastName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getMiddleName();
+
+  void setMiddleName(java.lang.String _middleName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address
+      getHomeAddress();
+
+      void
+      setHomeAddress(
+          Address _homeAddress);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
+      type = "Edm.GeographyPoint",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.commons.api.edm.geo.Point getHome();
+
+  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
+
+  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
+
+  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "People",
+      containsTarget = false)
+  Person getParent();
+
+  void setParent(
+      Person _parent);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
new file mode 100644
index 0000000..8ef6b49
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
@@ -0,0 +1,266 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.OperationType;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Product",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Product
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Product>, org.apache.olingo.ext.proxy.api.StructuredQuery<Product> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QuantityPerUnit",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getQuantityPerUnit();
+
+  void setQuantityPerUnit(java.lang.String _quantityPerUnit);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UnitPrice",
+      type = "Edm.Single",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Float getUnitPrice();
+
+  void setUnitPrice(java.lang.Float _unitPrice);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QuantityInStock",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getQuantityInStock();
+
+  void setQuantityInStock(java.lang.Integer _quantityInStock);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Discontinued",
+      type = "Edm.Boolean",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Boolean getDiscontinued();
+
+  void setDiscontinued(java.lang.Boolean _discontinued);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UserAccess",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  AccessLevel
+      getUserAccess();
+
+      void
+      setUserAccess(
+          AccessLevel _userAccess);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SkinColor",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Color getSkinColor();
+
+      void
+      setSkinColor(
+          Color _skinColor);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CoverColors",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+      org.apache.olingo.ext.proxy.api.PrimitiveCollection<Color>
+      getCoverColors();
+
+      void
+      setCoverColors(
+          org.apache.olingo.ext.proxy.api.PrimitiveCollection<Color> _coverColors);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Details",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "ProductDetails",
+      containsTarget = false)
+  ProductDetailCollection
+      getDetails();
+
+      void
+      setDetails(
+          ProductDetailCollection _details);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetProductDetails",
+        type = OperationType.FUNCTION,
+        isComposable = true,
+        referenceType = ProductDetailCollection.class,
+        returnType = "Collection(Microsoft.Test.OData.Services.ODataWCFService.ProductDetail)")
+    ProductDetailCollectionComposableInvoker
+        getProductDetails(
+            @Parameter(name = "count", type = "Edm.Int32", nullable = true) java.lang.Integer count
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "AddAccessRight",
+        type = OperationType.ACTION,
+        referenceType = AccessLevel.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel")
+        org.apache.olingo.ext.proxy.api.Invoker<AccessLevel>
+        addAccessRight(
+            @Parameter(name = "accessRight", type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
+                nullable = true) AccessLevel accessRight
+        );
+
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "QuantityPerUnit",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getQuantityPerUnitAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "UnitPrice",
+        type = "Edm.Single")
+    org.apache.olingo.ext.proxy.api.Annotatable getUnitPriceAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "QuantityInStock",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getQuantityInStockAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Discontinued",
+        type = "Edm.Boolean")
+    org.apache.olingo.ext.proxy.api.Annotatable getDiscontinuedAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "UserAccess",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel")
+    org.apache.olingo.ext.proxy.api.Annotatable getUserAccessAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "SkinColor",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Color")
+    org.apache.olingo.ext.proxy.api.Annotatable getSkinColorAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CoverColors",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Color")
+    org.apache.olingo.ext.proxy.api.Annotatable getCoverColorsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Details",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail")
+    org.apache.olingo.ext.proxy.api.Annotatable getDetailsAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java
new file mode 100644
index 0000000..4faab64
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java
@@ -0,0 +1,53 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+
+public interface ProductCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Product, ProductCollection, ProductCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "Discount",
+        type = OperationType.ACTION,
+        referenceType = ProductCollection.class,
+        returnType = "Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)")
+        org.apache.olingo.ext.proxy.api.StructuredCollectionInvoker<ProductCollection>
+        discount(
+            @Parameter(name = "percentage", type = "Edm.Int32", nullable = false) java.lang.Integer percentage
+        );
+
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollectionComposableInvoker.java
new file mode 100644
index 0000000..a43fba0
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface ProductCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<ProductCollection, ProductCollection.Operations> {
+
+  @Override
+  ProductCollectionComposableInvoker select(String... select);
+
+  @Override
+  ProductCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductComposableInvoker.java
new file mode 100644
index 0000000..ad61add
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductComposableInvoker.java
@@ -0,0 +1,193 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface ProductComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Product, Product.Operations>
+{
+
+  @Override
+  ProductComposableInvoker select(String... select);
+
+  @Override
+  ProductComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QuantityPerUnit",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getQuantityPerUnit();
+
+  void setQuantityPerUnit(java.lang.String _quantityPerUnit);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UnitPrice",
+      type = "Edm.Single",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Float getUnitPrice();
+
+  void setUnitPrice(java.lang.Float _unitPrice);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QuantityInStock",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getQuantityInStock();
+
+  void setQuantityInStock(java.lang.Integer _quantityInStock);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Discontinued",
+      type = "Edm.Boolean",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Boolean getDiscontinued();
+
+  void setDiscontinued(java.lang.Boolean _discontinued);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UserAccess",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  AccessLevel
+      getUserAccess();
+
+      void
+      setUserAccess(
+          AccessLevel _userAccess);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SkinColor",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Color getSkinColor();
+
+      void
+      setSkinColor(
+          Color _skinColor);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CoverColors",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+      org.apache.olingo.ext.proxy.api.PrimitiveCollection<Color>
+      getCoverColors();
+
+      void
+      setCoverColors(
+          org.apache.olingo.ext.proxy.api.PrimitiveCollection<Color> _coverColors);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Details",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "ProductDetails",
+      containsTarget = false)
+  ProductDetailCollection
+      getDetails();
+
+      void
+      setDetails(
+          ProductDetailCollection _details);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
new file mode 100644
index 0000000..3118b8a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
@@ -0,0 +1,172 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.OperationType;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+
+@KeyRef(ProductDetailKey.class)
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductDetail",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface ProductDetail
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<ProductDetail>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<ProductDetail> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductDetailID();
+
+  void setProductDetailID(java.lang.Integer _productDetailID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getProductName();
+
+  void setProductName(java.lang.String _productName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDescription();
+
+  void setDescription(java.lang.String _description);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "RelatedProduct",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  Product
+      getRelatedProduct();
+
+      void
+      setRelatedProduct(
+          Product _relatedProduct);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Reviews",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductReview",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "ProductReviews",
+      containsTarget = false)
+  ProductReviewCollection
+      getReviews();
+
+      void
+      setReviews(
+          ProductReviewCollection _reviews);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetRelatedProduct",
+        type = OperationType.FUNCTION,
+        isComposable = true,
+        referenceType = Product.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Product")
+    ProductComposableInvoker
+        getRelatedProduct(
+        );
+
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductDetailID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductDetailIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Description",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getDescriptionAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "RelatedProduct",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Product")
+    org.apache.olingo.ext.proxy.api.Annotatable getRelatedProductAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Reviews",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.ProductReview")
+    org.apache.olingo.ext.proxy.api.Annotatable getReviewsAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java
new file mode 100644
index 0000000..351468d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface ProductDetailCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductDetailCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<ProductDetail, ProductDetailCollection, ProductDetailCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollectionComposableInvoker.java
new file mode 100644
index 0000000..c5ab2bd
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface ProductDetailCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<ProductDetailCollection, ProductDetailCollection.Operations> {
+
+  @Override
+  ProductDetailCollectionComposableInvoker select(String... select);
+
+  @Override
+  ProductDetailCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailComposableInvoker.java
new file mode 100644
index 0000000..1413ee7
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailComposableInvoker.java
@@ -0,0 +1,124 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface ProductDetailComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<ProductDetail, ProductDetail.Operations>
+{
+
+  @Override
+  ProductDetailComposableInvoker select(String... select);
+
+  @Override
+  ProductDetailComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductDetailID();
+
+  void setProductDetailID(java.lang.Integer _productDetailID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getProductName();
+
+  void setProductName(java.lang.String _productName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDescription();
+
+  void setDescription(java.lang.String _description);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "RelatedProduct",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  Product
+      getRelatedProduct();
+
+      void
+      setRelatedProduct(
+          Product _relatedProduct);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Reviews",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductReview",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "ProductReviews",
+      containsTarget = false)
+  ProductReviewCollection
+      getReviews();
+
+      void
+      setReviews(
+          ProductReviewCollection _reviews);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailKey.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailKey.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailKey.java
new file mode 100644
index 0000000..fe42987
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailKey.java
@@ -0,0 +1,53 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntityKey;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+
+@org.apache.olingo.ext.proxy.api.annotations.CompoundKey
+public class ProductDetailKey extends AbstractEntityKey {
+
+  private static final long serialVersionUID = -6268946147639590355L;
+
+  private java.lang.Integer _productID;
+
+  @CompoundKeyElement(name = "ProductID", position = 0)
+  public java.lang.Integer getProductID() {
+    return _productID;
+  }
+
+  public void setProductID(final java.lang.Integer _productID) {
+    this._productID = _productID;
+  }
+
+  private java.lang.Integer _productDetailID;
+
+  @CompoundKeyElement(name = "ProductDetailID", position = 1)
+  public java.lang.Integer getProductDetailID() {
+    return _productDetailID;
+  }
+
+  public void setProductDetailID(final java.lang.Integer _productDetailID) {
+    this._productDetailID = _productDetailID;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
new file mode 100644
index 0000000..0aced06
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
@@ -0,0 +1,168 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@KeyRef(ProductReviewKey.class)
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductReview",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface ProductReview
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<ProductReview>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<ProductReview> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductDetailID();
+
+  void setProductDetailID(java.lang.Integer _productDetailID);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReviewTitle",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getReviewTitle();
+
+  void setReviewTitle(java.lang.String _reviewTitle);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "RevisionID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getRevisionID();
+
+  void setRevisionID(java.lang.Integer _revisionID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Comment",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getComment();
+
+  void setComment(java.lang.String _comment);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Author",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getAuthor();
+
+  void setAuthor(java.lang.String _author);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductDetailID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductDetailIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ReviewTitle",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getReviewTitleAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "RevisionID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getRevisionIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Comment",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getCommentAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Author",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getAuthorAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java
new file mode 100644
index 0000000..1a26007
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface ProductReviewCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductReviewCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<ProductReview, ProductReviewCollection, ProductReviewCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollectionComposableInvoker.java
new file mode 100644
index 0000000..9a10d65
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface ProductReviewCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<ProductReviewCollection, ProductReviewCollection.Operations> {
+
+  @Override
+  ProductReviewCollectionComposableInvoker select(String... select);
+
+  @Override
+  ProductReviewCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewComposableInvoker.java
new file mode 100644
index 0000000..5076205
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewComposableInvoker.java
@@ -0,0 +1,130 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface ProductReviewComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<ProductReview, ProductReview.Operations>
+{
+
+  @Override
+  ProductReviewComposableInvoker select(String... select);
+
+  @Override
+  ProductReviewComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductDetailID();
+
+  void setProductDetailID(java.lang.Integer _productDetailID);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReviewTitle",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getReviewTitle();
+
+  void setReviewTitle(java.lang.String _reviewTitle);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "RevisionID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getRevisionID();
+
+  void setRevisionID(java.lang.Integer _revisionID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Comment",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getComment();
+
+  void setComment(java.lang.String _comment);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Author",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getAuthor();
+
+  void setAuthor(java.lang.String _author);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewKey.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewKey.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewKey.java
new file mode 100644
index 0000000..eff975b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewKey.java
@@ -0,0 +1,75 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntityKey;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+
+@org.apache.olingo.ext.proxy.api.annotations.CompoundKey
+public class ProductReviewKey extends AbstractEntityKey {
+
+  private static final long serialVersionUID = 5483520057777167030L;
+
+  private java.lang.Integer _productID;
+
+  @CompoundKeyElement(name = "ProductID", position = 0)
+  public java.lang.Integer getProductID() {
+    return _productID;
+  }
+
+  public void setProductID(final java.lang.Integer _productID) {
+    this._productID = _productID;
+  }
+
+  private java.lang.Integer _productDetailID;
+
+  @CompoundKeyElement(name = "ProductDetailID", position = 1)
+  public java.lang.Integer getProductDetailID() {
+    return _productDetailID;
+  }
+
+  public void setProductDetailID(final java.lang.Integer _productDetailID) {
+    this._productDetailID = _productDetailID;
+  }
+
+  private java.lang.String _reviewTitle;
+
+  @CompoundKeyElement(name = "ReviewTitle", position = 2)
+  public java.lang.String getReviewTitle() {
+    return _reviewTitle;
+  }
+
+  public void setReviewTitle(final java.lang.String _reviewTitle) {
+    this._reviewTitle = _reviewTitle;
+  }
+
+  private java.lang.Integer _revisionID;
+
+  @CompoundKeyElement(name = "RevisionID", position = 3)
+  public java.lang.Integer getRevisionID() {
+    return _revisionID;
+  }
+
+  public void setRevisionID(final java.lang.Integer _revisionID) {
+    this._revisionID = _revisionID;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
new file mode 100644
index 0000000..cdace92
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
@@ -0,0 +1,345 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.concurrent.Future;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "PublicCompany",
+    openType = true,
+    hasStream = false,
+    isAbstract = false,
+    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Company")
+public interface PublicCompany
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+        Company,
+    AbstractOpenType {
+
+  @Override
+  PublicCompany load();
+
+  @Override
+  Future<? extends PublicCompany> loadAsync();
+
+  @Override
+  PublicCompany refs();
+
+  @Override
+  PublicCompany expand(String... expand);
+
+  @Override
+  PublicCompany select(String... select);
+
+  @Override
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getCompanyID();
+
+  @Override
+  void setCompanyID(java.lang.Integer _companyID);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyCategory",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  CompanyCategory
+      getCompanyCategory();
+
+  @Override
+      void
+      setCompanyCategory(
+          CompanyCategory _companyCategory);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Revenue",
+      type = "Edm.Int64",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Long getRevenue();
+
+  @Override
+  void setRevenue(java.lang.Long _revenue);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  @Override
+  void setName(java.lang.String _name);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address getAddress();
+
+  @Override
+      void
+      setAddress(
+          Address _address);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StockExchange",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStockExchange();
+
+  void setStockExchange(java.lang.String _stockExchange);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Employees",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Employees",
+      containsTarget = false)
+  EmployeeCollection
+      getEmployees();
+
+  @Override
+      void
+      setEmployees(
+          EmployeeCollection _employees);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "VipCustomer",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "VipCustomer",
+      containsTarget = false)
+  Customer
+      getVipCustomer();
+
+  @Override
+      void
+      setVipCustomer(
+          Customer _vipCustomer);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Departments",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Departments",
+      containsTarget = false)
+  DepartmentCollection
+      getDepartments();
+
+  @Override
+      void
+      setDepartments(
+          DepartmentCollection _departments);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CoreDepartment",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Departments",
+      containsTarget = false)
+  Department
+      getCoreDepartment();
+
+  @Override
+      void
+      setCoreDepartment(
+          Department _coreDepartment);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Club",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Club",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "",
+      targetEntitySet = "",
+      containsTarget = true)
+  Club getClub();
+
+  void setClub(
+      Club _club);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "LabourUnion",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "LabourUnion",
+      containsTarget = false)
+  LabourUnion
+      getLabourUnion();
+
+      void
+      setLabourUnion(
+          LabourUnion _labourUnion);
+
+  @Override
+  Operations operations();
+
+  interface Operations
+      extends
+          Company.Operations {
+    // No additional methods needed for now.
+  }
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations
+      extends
+          Company.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getCompanyIDAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyCategory",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory")
+    org.apache.olingo.ext.proxy.api.Annotatable getCompanyCategoryAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Revenue",
+        type = "Edm.Int64")
+    org.apache.olingo.ext.proxy.api.Annotatable getRevenueAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Address",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+    org.apache.olingo.ext.proxy.api.Annotatable getAddressAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "StockExchange",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getStockExchangeAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Employees",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Employee")
+    org.apache.olingo.ext.proxy.api.Annotatable getEmployeesAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "VipCustomer",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Customer")
+    org.apache.olingo.ext.proxy.api.Annotatable getVipCustomerAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Departments",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
+    org.apache.olingo.ext.proxy.api.Annotatable getDepartmentsAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "CoreDepartment",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
+    org.apache.olingo.ext.proxy.api.Annotatable getCoreDepartmentAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Assets",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Asset")
+    org.apache.olingo.ext.proxy.api.Annotatable getAssetsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Club",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Club")
+    org.apache.olingo.ext.proxy.api.Annotatable getClubAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "LabourUnion",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion")
+    org.apache.olingo.ext.proxy.api.Annotatable getLabourUnionAnnotations();
+  }
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Assets",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "LabourUnion",
+      containsTarget = true)
+  PublicCompany.Assets
+      getAssets();
+
+      void
+      setAssets(
+          PublicCompany.Assets _assets);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Assets", contained = true)
+  interface Assets
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<Asset, AssetCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Assets>,
+  AbstractEntitySet<Asset, java.lang.Integer, AssetCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java
new file mode 100644
index 0000000..65b906f
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface PublicCompanyCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PublicCompanyCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<PublicCompany, PublicCompanyCollection, PublicCompanyCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollectionComposableInvoker.java
new file mode 100644
index 0000000..4d71270
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface PublicCompanyCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<PublicCompanyCollection, PublicCompanyCollection.Operations> {
+
+  @Override
+  PublicCompanyCollectionComposableInvoker select(String... select);
+
+  @Override
+  PublicCompanyCollectionComposableInvoker expand(String... expand);
+}


[49/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] TecSvc: $levels system query options lead now to a 501 not implemented status

Posted by mi...@apache.org.
[OLINGO-659] TecSvc: $levels system query options lead now to a 501 not implemented status


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: a3541721ef0dc52021c6abbb31ef9a3c4e501d27
Parents: 78a9539
Author: Christian Holzer <c....@sap.com>
Authored: Tue Sep 1 14:50:48 2015 +0200
Committer: Christian Holzer <c....@sap.com>
Committed: Tue Sep 1 14:54:08 2015 +0200

----------------------------------------------------------------------
 .../ExpandWithSystemQueryOptionsITCase.java     | 71 ++++++++++++++++++++
 .../ExpandSystemQueryOptionHandler.java         |  6 ++
 2 files changed, 77 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a3541721/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
index 658bc08..7aa230d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
@@ -476,6 +476,77 @@ public class ExpandWithSystemQueryOptionsITCase extends AbstractBaseTestITCase {
       assertEquals("HTTP/1.1 501 Not Implemented", e.getMessage());
     }
   }
+ 
+  @Test
+  public void expandWithLevels() {
+    final ODataClient client = getClient();
+    final Map<QueryOption, Object> expandOptions = new HashMap<QueryOption, Object>();
+    expandOptions.put(QueryOption.LEVELS, 2);
+    
+    // expand=*($levels=2)
+    URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV)
+            .expandWithOptions("*", expandOptions)
+            .build();
+    
+    try {
+      client.getRetrieveRequestFactory().getEntitySetRequest(uri);
+    } catch(ODataServerErrorException e) {
+      assertEquals("HTTP/1.1 501 Not Implemented", e.getMessage());
+    }
+    
+    // expand=NavPropertyETTwoKeyNavMany($levels=2)
+    expandOptions.clear();
+    expandOptions.put(QueryOption.LEVELS, 2);
+    uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV)
+            .expandWithOptions(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, expandOptions)
+            .build();
+    
+    try {
+      client.getRetrieveRequestFactory().getEntitySetRequest(uri);
+    } catch(ODataServerErrorException e) {
+      assertEquals("HTTP/1.1 501 Not Implemented", e.getMessage());
+    }
+    
+    // expand=NavPropertyETTwoKeyNavMany($expand=NavPropertyETTwoKeyNavMany($levels=2))
+    expandOptions.clear();
+    expandOptions.put(QueryOption.EXPAND, NAV_PROPERTY_ET_TWO_KEY_NAV_MANY + "($levels=2)");
+    uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV)
+            .expandWithOptions(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, expandOptions)
+            .build();
+    
+    try {
+      client.getRetrieveRequestFactory().getEntitySetRequest(uri);
+    } catch(ODataServerErrorException e) {
+      assertEquals("HTTP/1.1 501 Not Implemented", e.getMessage());
+    }
+    
+    // expand=NavPropertyETTwoKeyNavMany($expand=NavPropertyETTwoKeyNavMany($levels=2);$levels=3)
+    expandOptions.clear();
+    expandOptions.put(QueryOption.LEVELS, 2);
+    uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV)
+            .expandWithOptions(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, expandOptions)
+            .build();
+    
+    try {
+      client.getRetrieveRequestFactory().getEntitySetRequest(uri);
+    } catch(ODataServerErrorException e) {
+      assertEquals("HTTP/1.1 501 Not Implemented", e.getMessage());
+    }
+    
+    // expand=NavPropertyETTwoKeyNavMany($expand=NavPropertyETTwoKeyNavMany($levels=2))
+    expandOptions.clear();
+    expandOptions.put(QueryOption.EXPAND, NAV_PROPERTY_ET_TWO_KEY_NAV_MANY + "($levels=2)");
+    expandOptions.put(QueryOption.LEVELS, 3);
+    uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV)
+            .expandWithOptions(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, expandOptions)
+            .build();
+    
+    try {
+      client.getRetrieveRequestFactory().getEntitySetRequest(uri);
+    } catch(ODataServerErrorException e) {
+      assertEquals("HTTP/1.1 501 Not Implemented", e.getMessage());
+    }
+  }
   
   private ODataRetrieveResponse<ClientEntitySet> buildRequest(final String entitySet, final String navigationProperty,
       final Map<QueryOption, Object> expandOptions) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a3541721/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/ExpandSystemQueryOptionHandler.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/ExpandSystemQueryOptionHandler.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/ExpandSystemQueryOptionHandler.java
index 21e60d4..e0faf41 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/ExpandSystemQueryOptionHandler.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/queryoptions/ExpandSystemQueryOptionHandler.java
@@ -75,9 +75,15 @@ public class ExpandSystemQueryOptionHandler {
 
   private void applyExpandOptionToEntity(final Entity entity, final EdmBindingTarget edmBindingTarget,
       final ExpandOption expandOption) throws ODataApplicationException {
+    
     final EdmEntityType entityType = edmBindingTarget.getEntityType();
 
     for (ExpandItem item : expandOption.getExpandItems()) {
+      if(item.getLevelsOption() != null) {
+        throw new ODataApplicationException("$levels is not implemented", 
+            HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT);
+      }
+      
       List<EdmNavigationProperty> navigationProperties = new ArrayList<EdmNavigationProperty>();
       if(item.isStar()) {
         List<EdmNavigationPropertyBinding> bindings = edmBindingTarget.getNavigationPropertyBindings();


[34/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java
new file mode 100644
index 0000000..dcff261
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java
@@ -0,0 +1,93 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface HomeAddressComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<HomeAddress, HomeAddress.Operations>
+{
+
+  @Override
+  HomeAddressComposableInvoker select(String... select);
+
+  @Override
+  HomeAddressComposableInvoker expand(String... expand);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStreet();
+
+  void setStreet(java.lang.String _street);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCity();
+
+  void setCity(java.lang.String _city);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPostalCode();
+
+  void setPostalCode(java.lang.String _postalCode);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FamilyName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFamilyName();
+
+  void setFamilyName(java.lang.String _familyName);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
new file mode 100644
index 0000000..358460e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
@@ -0,0 +1,31 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.Term(name = "IsBoss",
+    type = "Edm.Boolean")
+public interface IsBoss extends AbstractTerm {
+  // No additional methods needed for now.
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
new file mode 100644
index 0000000..39d42d4
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
@@ -0,0 +1,87 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "LabourUnion",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface LabourUnion
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<LabourUnion>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<LabourUnion> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LabourUnionID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getLabourUnionID();
+
+  void setLabourUnionID(java.lang.Integer _labourUnionID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LabourUnionID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getLabourUnionIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
new file mode 100644
index 0000000..2c50f3d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface LabourUnionCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<LabourUnionCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<LabourUnion, LabourUnionCollection, LabourUnionCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java
new file mode 100644
index 0000000..9f735ed
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface LabourUnionCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<LabourUnionCollection, LabourUnionCollection.Operations> {
+
+  @Override
+  LabourUnionCollectionComposableInvoker select(String... select);
+
+  @Override
+  LabourUnionCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.java
new file mode 100644
index 0000000..7a96e1e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.java
@@ -0,0 +1,67 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface LabourUnionComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<LabourUnion, LabourUnion.Operations>
+{
+
+  @Override
+  LabourUnionComposableInvoker select(String... select);
+
+  @Override
+  LabourUnionComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LabourUnionID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getLabourUnionID();
+
+  void setLabourUnionID(java.lang.Integer _labourUnionID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
new file mode 100644
index 0000000..6f9fbbe
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
@@ -0,0 +1,174 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Order",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Order
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Order>, org.apache.olingo.ext.proxy.api.StructuredQuery<Order> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getOrderID();
+
+  void setOrderID(java.lang.Integer _orderID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getOrderDate();
+
+  void setOrderDate(java.sql.Timestamp _orderDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ShelfLife",
+      type = "Edm.Duration",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.math.BigDecimal getShelfLife();
+
+  void setShelfLife(java.math.BigDecimal _shelfLife);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderShelfLifes",
+      type = "Edm.Duration",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> getOrderShelfLifes();
+
+  void setOrderShelfLifes(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> _orderShelfLifes);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "LoggedInEmployee",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Employees",
+      containsTarget = false)
+  Employee
+      getLoggedInEmployee();
+
+      void
+      setLoggedInEmployee(
+          Employee _loggedInEmployee);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CustomerForOrder",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Customers",
+      containsTarget = false)
+  Customer
+      getCustomerForOrder();
+
+      void
+      setCustomerForOrder(
+          Customer _customerForOrder);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "OrderDetails",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "OrderDetails",
+      containsTarget = false)
+  OrderDetailCollection
+      getOrderDetails();
+
+      void
+      setOrderDetails(
+          OrderDetailCollection _orderDetails);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderDateAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ShelfLife",
+        type = "Edm.Duration")
+    org.apache.olingo.ext.proxy.api.Annotatable getShelfLifeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderShelfLifes",
+        type = "Edm.Duration")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderShelfLifesAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "LoggedInEmployee",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Employee")
+    org.apache.olingo.ext.proxy.api.Annotatable getLoggedInEmployeeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "CustomerForOrder",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Customer")
+    org.apache.olingo.ext.proxy.api.Annotatable getCustomerForOrderAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "OrderDetails",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderDetailsAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
new file mode 100644
index 0000000..9b00746
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface OrderCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<OrderCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Order, OrderCollection, OrderCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java
new file mode 100644
index 0000000..0279223
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface OrderCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<OrderCollection, OrderCollection.Operations> {
+
+  @Override
+  OrderCollectionComposableInvoker select(String... select);
+
+  @Override
+  OrderCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java
new file mode 100644
index 0000000..bb3e80b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java
@@ -0,0 +1,136 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface OrderComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Order, Order.Operations>
+{
+
+  @Override
+  OrderComposableInvoker select(String... select);
+
+  @Override
+  OrderComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getOrderID();
+
+  void setOrderID(java.lang.Integer _orderID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getOrderDate();
+
+  void setOrderDate(java.sql.Timestamp _orderDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ShelfLife",
+      type = "Edm.Duration",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.math.BigDecimal getShelfLife();
+
+  void setShelfLife(java.math.BigDecimal _shelfLife);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderShelfLifes",
+      type = "Edm.Duration",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> getOrderShelfLifes();
+
+  void setOrderShelfLifes(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> _orderShelfLifes);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "LoggedInEmployee",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Employees",
+      containsTarget = false)
+  Employee
+      getLoggedInEmployee();
+
+      void
+      setLoggedInEmployee(
+          Employee _loggedInEmployee);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CustomerForOrder",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Customers",
+      containsTarget = false)
+  Customer
+      getCustomerForOrder();
+
+      void
+      setCustomerForOrder(
+          Customer _customerForOrder);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "OrderDetails",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "OrderDetails",
+      containsTarget = false)
+  OrderDetailCollection
+      getOrderDetails();
+
+      void
+      setOrderDetails(
+          OrderDetailCollection _orderDetails);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
new file mode 100644
index 0000000..ff09261
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
@@ -0,0 +1,180 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@KeyRef(OrderDetailKey.class)
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "OrderDetail",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface OrderDetail
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<OrderDetail>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<OrderDetail> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getOrderID();
+
+  void setOrderID(java.lang.Integer _orderID);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderPlaced",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getOrderPlaced();
+
+  void setOrderPlaced(java.sql.Timestamp _orderPlaced);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Quantity",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getQuantity();
+
+  void setQuantity(java.lang.Integer _quantity);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UnitPrice",
+      type = "Edm.Single",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Float getUnitPrice();
+
+  void setUnitPrice(java.lang.Float _unitPrice);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductOrdered",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  ProductCollection
+      getProductOrdered();
+
+      void
+      setProductOrdered(
+          ProductCollection _productOrdered);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "AssociatedOrder",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Orders",
+      containsTarget = false)
+  Order
+      getAssociatedOrder();
+
+      void
+      setAssociatedOrder(
+          Order _associatedOrder);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderPlaced",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderPlacedAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Quantity",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getQuantityAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "UnitPrice",
+        type = "Edm.Single")
+    org.apache.olingo.ext.proxy.api.Annotatable getUnitPriceAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ProductOrdered",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Product")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductOrderedAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "AssociatedOrder",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Order")
+    org.apache.olingo.ext.proxy.api.Annotatable getAssociatedOrderAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
new file mode 100644
index 0000000..4c64a9a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface OrderDetailCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<OrderDetailCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<OrderDetail, OrderDetailCollection, OrderDetailCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java
new file mode 100644
index 0000000..c423577
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface OrderDetailCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<OrderDetailCollection, OrderDetailCollection.Operations> {
+
+  @Override
+  OrderDetailCollectionComposableInvoker select(String... select);
+
+  @Override
+  OrderDetailCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java
new file mode 100644
index 0000000..a5c3178
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java
@@ -0,0 +1,139 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface OrderDetailComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<OrderDetail, OrderDetail.Operations>
+{
+
+  @Override
+  OrderDetailComposableInvoker select(String... select);
+
+  @Override
+  OrderDetailComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getOrderID();
+
+  void setOrderID(java.lang.Integer _orderID);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderPlaced",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getOrderPlaced();
+
+  void setOrderPlaced(java.sql.Timestamp _orderPlaced);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Quantity",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getQuantity();
+
+  void setQuantity(java.lang.Integer _quantity);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UnitPrice",
+      type = "Edm.Single",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Float getUnitPrice();
+
+  void setUnitPrice(java.lang.Float _unitPrice);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductOrdered",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  ProductCollection
+      getProductOrdered();
+
+      void
+      setProductOrdered(
+          ProductCollection _productOrdered);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "AssociatedOrder",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Orders",
+      containsTarget = false)
+  Order
+      getAssociatedOrder();
+
+      void
+      setAssociatedOrder(
+          Order _associatedOrder);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.java
new file mode 100644
index 0000000..b9658cd
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.java
@@ -0,0 +1,53 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntityKey;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+
+@org.apache.olingo.ext.proxy.api.annotations.CompoundKey
+public class OrderDetailKey extends AbstractEntityKey {
+
+  private static final long serialVersionUID = -4068508671802176607L;
+
+  private java.lang.Integer _orderID;
+
+  @CompoundKeyElement(name = "OrderID", position = 0)
+  public java.lang.Integer getOrderID() {
+    return _orderID;
+  }
+
+  public void setOrderID(final java.lang.Integer _orderID) {
+    this._orderID = _orderID;
+  }
+
+  private java.lang.Integer _productID;
+
+  @CompoundKeyElement(name = "ProductID", position = 1)
+  public java.lang.Integer getProductID() {
+    return _productID;
+  }
+
+  public void setProductID(final java.lang.Integer _productID) {
+    this._productID = _productID;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
new file mode 100644
index 0000000..7be9777
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
@@ -0,0 +1,165 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "PaymentInstrument",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface PaymentInstrument
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<PaymentInstrument>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<PaymentInstrument> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PaymentInstrumentID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPaymentInstrumentID();
+
+  void setPaymentInstrumentID(java.lang.Integer _paymentInstrumentID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FriendlyName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFriendlyName();
+
+  void setFriendlyName(java.lang.String _friendlyName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "TheStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getTheStoredPI();
+
+      void
+      setTheStoredPI(
+          StoredPI _theStoredPI);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BackupStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getBackupStoredPI();
+
+      void
+      setBackupStoredPI(
+          StoredPI _backupStoredPI);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PaymentInstrumentID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getPaymentInstrumentIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FriendlyName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getFriendlyNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "TheStoredPI",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
+    org.apache.olingo.ext.proxy.api.Annotatable getTheStoredPIAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "BillingStatements",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Statement")
+    org.apache.olingo.ext.proxy.api.Annotatable getBillingStatementsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "BackupStoredPI",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
+    org.apache.olingo.ext.proxy.api.Annotatable getBackupStoredPIAnnotations();
+  }
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BillingStatements",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = true)
+      PaymentInstrument.BillingStatements
+      getBillingStatements();
+
+      void
+      setBillingStatements(
+          PaymentInstrument.BillingStatements _billingStatements);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "BillingStatements", contained = true)
+  interface BillingStatements
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<Statement, StatementCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<BillingStatements>,
+  AbstractEntitySet<Statement, java.lang.Integer, StatementCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
new file mode 100644
index 0000000..590f0cf
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface PaymentInstrumentCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PaymentInstrumentCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<PaymentInstrument, PaymentInstrumentCollection, PaymentInstrumentCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java
new file mode 100644
index 0000000..94f7fa9
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface PaymentInstrumentCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<PaymentInstrumentCollection, PaymentInstrumentCollection.Operations> {
+
+  @Override
+  PaymentInstrumentCollectionComposableInvoker select(String... select);
+
+  @Override
+  PaymentInstrumentCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java
new file mode 100644
index 0000000..f2b614d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java
@@ -0,0 +1,132 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+public interface PaymentInstrumentComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<PaymentInstrument, PaymentInstrument.Operations>
+{
+
+  @Override
+  PaymentInstrumentComposableInvoker select(String... select);
+
+  @Override
+  PaymentInstrumentComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PaymentInstrumentID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPaymentInstrumentID();
+
+  void setPaymentInstrumentID(java.lang.Integer _paymentInstrumentID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FriendlyName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFriendlyName();
+
+  void setFriendlyName(java.lang.String _friendlyName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "TheStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getTheStoredPI();
+
+      void
+      setTheStoredPI(
+          StoredPI _theStoredPI);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BackupStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getBackupStoredPI();
+
+      void
+      setBackupStoredPI(
+          StoredPI _backupStoredPI);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BillingStatements",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = true)
+  PaymentInstrument.BillingStatements
+      getBillingStatements();
+
+      void
+      setBillingStatements(
+          PaymentInstrument.BillingStatements _billingStatements);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "BillingStatements", contained = true)
+  interface BillingStatements
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<Statement, StatementCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<BillingStatements>,
+  AbstractEntitySet<Statement, java.lang.Integer, StatementCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
new file mode 100644
index 0000000..a5f006e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
@@ -0,0 +1,240 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.OperationType;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Person",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Person
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Person>, org.apache.olingo.ext.proxy.api.StructuredQuery<Person> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPersonID();
+
+  void setPersonID(java.lang.Integer _personID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFirstName();
+
+  void setFirstName(java.lang.String _firstName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getLastName();
+
+  void setLastName(java.lang.String _lastName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getMiddleName();
+
+  void setMiddleName(java.lang.String _middleName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address
+      getHomeAddress();
+
+      void
+      setHomeAddress(
+          Address _homeAddress);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
+      type = "Edm.GeographyPoint",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.commons.api.edm.geo.Point getHome();
+
+  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
+
+  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
+
+  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "People",
+      containsTarget = false)
+  Person getParent();
+
+  void setParent(
+      Person _parent);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetHomeAddress",
+        type = OperationType.FUNCTION,
+        isComposable = true,
+        referenceType = HomeAddress.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.HomeAddress")
+    HomeAddressComposableInvoker
+        getHomeAddress(
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "ResetAddress",
+        type = OperationType.ACTION,
+        referenceType = Person.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+        org.apache.olingo.ext.proxy.api.StructuredInvoker<Person>
+        resetAddress(
+            @Parameter(name = "addresses", type = "Collection(Microsoft.Test.OData.Services.ODataWCFService.Address)",
+                nullable = false) AddressCollection addresses,
+            @Parameter(name = "index", type = "Edm.Int32", nullable = false) java.lang.Integer index
+        );
+
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getPersonIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getFirstNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getLastNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "MiddleName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getMiddleNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HomeAddress",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+    org.apache.olingo.ext.proxy.api.Annotatable getHomeAddressAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Home",
+        type = "Edm.GeographyPoint")
+    org.apache.olingo.ext.proxy.api.Annotatable getHomeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Numbers",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNumbersAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Emails",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getEmailsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Parent",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+    org.apache.olingo.ext.proxy.api.Annotatable getParentAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
new file mode 100644
index 0000000..4a50797
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface PersonCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PersonCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Person, PersonCollection, PersonCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java
new file mode 100644
index 0000000..e4a892e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface PersonCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<PersonCollection, PersonCollection.Operations> {
+
+  @Override
+  PersonCollectionComposableInvoker select(String... select);
+
+  @Override
+  PersonCollectionComposableInvoker expand(String... expand);
+}


[44/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/DerivedTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/DerivedTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/DerivedTypeTestITCase.java
new file mode 100644
index 0000000..2f470c3
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/DerivedTypeTestITCase.java
@@ -0,0 +1,150 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+
+import java.math.BigDecimal;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.apache.olingo.client.api.communication.request.cud.ODataDeleteRequest;
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
+import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientValuable;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class DerivedTypeTestITCase extends AbstractTestITCase {
+
+  private void read(final ContentType contentType) {
+    // 1. entity set
+    URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").
+        appendDerivedEntityTypeSegment("Microsoft.Test.OData.Services.ODataWCFService.Customer");
+    ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
+        getEntitySetRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    for (ClientEntity customer : req.execute().getBody().getEntities()) {
+      assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", customer.getTypeName().toString());
+    }
+
+    // 2. contained entity set
+    uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Accounts").appendKeySegment(101).
+        appendNavigationSegment("MyPaymentInstruments").
+        appendDerivedEntityTypeSegment("Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI");
+    req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    for (ClientEntity customer : req.execute().getBody().getEntities()) {
+      assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI", customer.getTypeName().toString());
+    }
+  }
+
+  @Test
+  public void readfromAtom() {
+    read(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void readfromJSON() {
+    read(ContentType.JSON_FULL_METADATA);
+  }
+
+  private void createDelete(final ContentType conentType) {
+    final ClientEntity customer = client.getObjectFactory().
+        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
+
+    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("PersonID",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(976)));
+    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("FirstName",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Test")));
+    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("LastName",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Test")));
+
+    final ClientComplexValue homeAddress =
+        client.getObjectFactory().newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress");
+    homeAddress.add(client.getObjectFactory().newPrimitiveProperty("Street",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("V.le Gabriele D'Annunzio")));
+    homeAddress.add(client.getObjectFactory().newPrimitiveProperty("City",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Pescara")));
+    homeAddress.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("65127")));
+    homeAddress.add(client.getObjectFactory().newPrimitiveProperty("CompanyName",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Tirasa")));
+    customer.getProperties().add(client.getObjectFactory().newComplexProperty("HomeAddress", homeAddress));
+
+    customer.getProperties().add(client.getObjectFactory().newCollectionProperty("Numbers",
+        client.getObjectFactory().newCollectionValue("Edm.String")));
+    customer.getProperties().add(client.getObjectFactory().newCollectionProperty("Emails",
+        client.getObjectFactory().newCollectionValue("Edm.String")));
+    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("City",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Pescara")));
+    final Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+    dateTime.set(1977, 8, 8, 0, 0, 0);
+    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("Birthday",
+        client.getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build()));
+    customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("TimeBetweenLastTwoOrders",
+        client.getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build()));
+
+    final ODataEntityCreateRequest<ClientEntity> createReq = client.getCUDRequestFactory().
+        getEntityCreateRequest(
+            client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People").build(),
+            customer);
+    createReq.setFormat(conentType);
+
+    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
+    assertEquals(201, createRes.getStatusCode());
+
+    final ODataEntityRequest<ClientEntity> fetchReq = client.getRetrieveRequestFactory().
+        getEntityRequest(client.newURIBuilder(testStaticServiceRootURL).
+            appendEntitySetSegment("People").appendKeySegment(976).build());
+    fetchReq.setFormat(conentType);
+
+    final ClientEntity actual = fetchReq.execute().getBody();
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", actual.getTypeName().toString());
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
+        ((ClientValuable) actual.getProperty("HomeAddress")).getValue().getTypeName());
+
+    final ODataDeleteRequest deleteReq = client.getCUDRequestFactory().getDeleteRequest(actual.getEditLink());
+    assertEquals(204, deleteReq.execute().getStatusCode());
+  }
+
+  @Test
+  public void createDeleteAsAtom() {
+    createDelete(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void createDeleteAsJSON() {
+    createDelete(ContentType.JSON_FULL_METADATA);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/EntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/EntityCreateTestITCase.java
new file mode 100644
index 0000000..868c154
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/EntityCreateTestITCase.java
@@ -0,0 +1,191 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.net.URI;
+import java.util.Calendar;
+
+import org.apache.commons.lang3.RandomUtils;
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
+import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
+import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class EntityCreateTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void atomCreateAndDelete() {
+    createAndDeleteOrder(testStaticServiceRootURL, ContentType.APPLICATION_ATOM_XML, 1000);
+  }
+
+  @Test
+  public void jsonCreateAndDelete() {
+    createAndDeleteOrder(testStaticServiceRootURL, ContentType.JSON, 1001);
+    createAndDeleteOrder(testStaticServiceRootURL, ContentType.JSON_NO_METADATA, 1001);
+    createAndDeleteOrder(testStaticServiceRootURL, ContentType.JSON_FULL_METADATA, 1001);
+  }
+
+  private void onContained(final ContentType contentType) {
+    final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Accounts").
+        appendKeySegment(101).appendNavigationSegment("MyPaymentInstruments").build();
+
+    // 1. read contained collection before any operation
+    ClientEntitySet instruments = getClient().getRetrieveRequestFactory().getEntitySetRequest(uri).execute().getBody();
+    assertNotNull(instruments);
+    final int sizeBefore = instruments.getCount();
+
+    // 2. instantiate an ODataEntity of the same type as the collection above
+    final ClientEntity instrument = getClient().getObjectFactory().
+        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"));
+
+    int id = RandomUtils.nextInt(101999, 105000);
+    instrument.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("PaymentInstrumentID",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
+    instrument.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("FriendlyName",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("New one")));
+    instrument.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("CreatedDate",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).build()));
+
+    // 3. create it as contained entity
+    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
+        getEntityCreateRequest(uri, instrument);
+    req.setFormat(contentType);
+
+    final ODataEntityCreateResponse<ClientEntity> res = req.execute();
+    assertEquals(201, res.getStatusCode());
+
+    // 4. verify that the contained collection effectively grew
+    instruments = getClient().getRetrieveRequestFactory().getEntitySetRequest(uri).execute().getBody();
+    assertNotNull(instruments);
+    final int sizeAfter = instruments.getCount();
+    assertEquals(sizeBefore + 1, sizeAfter);
+
+    // 5. remove the contained entity created above
+    final ODataDeleteResponse deleteRes = getClient().getCUDRequestFactory().
+        getDeleteRequest(getClient().newURIBuilder(uri.toASCIIString()).appendKeySegment(id).build()).execute();
+    assertEquals(204, deleteRes.getStatusCode());
+
+    // 6. verify that the contained collection effectively reduced
+    instruments = getClient().getRetrieveRequestFactory().getEntitySetRequest(uri).execute().getBody();
+    assertNotNull(instruments);
+    final int sizeEnd = instruments.getCount();
+    assertEquals(sizeBefore, sizeEnd);
+  }
+
+  @Test
+  public void atomOnContained() {
+    onContained(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonOnContained() {
+    onContained(ContentType.JSON);
+  }
+
+  private void deepInsert(final ContentType contentType, final int productId, final int productDetailId)
+      throws EdmPrimitiveTypeException {
+
+    final ClientEntity product = getClient().getObjectFactory().
+        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Product"));
+    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductID",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productId)));
+    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Name",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("Latte")));
+    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("QuantityPerUnit",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("100g Bag")));
+    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("UnitPrice",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildSingle(3.24f)));
+    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("QuantityInStock",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(100)));
+    product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Discontinued",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildBoolean(false)));
+    product.getProperties().add(getClient().getObjectFactory().newEnumProperty("UserAccess",
+        getClient().getObjectFactory().
+        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "Execute")));
+    product.getProperties().add(getClient().getObjectFactory().newEnumProperty("SkinColor",
+        getClient().getObjectFactory().
+        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Blue")));
+    product.getProperties().add(getClient().getObjectFactory().newCollectionProperty("CoverColors",
+        getClient().getObjectFactory().
+        newCollectionValue("Microsoft.Test.OData.Services.ODataWCFService.Color")));
+    product.getProperty("CoverColors").getCollectionValue().add(getClient().getObjectFactory().
+        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Green"));
+    product.getProperty("CoverColors").getCollectionValue().add(getClient().getObjectFactory().
+        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Red"));
+
+    final ClientEntity detail = getClient().getObjectFactory().
+        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.ProductDetail"));
+    detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductID",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productId)));
+    detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductDetailID",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productDetailId)));
+    detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductName",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("LatteHQ")));
+    detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Description",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("High-Quality Milk")));
+
+    final ClientEntitySet details = getClient().getObjectFactory().newEntitySet();
+    details.getEntities().add(detail);
+
+    final ClientInlineEntitySet inlineDetails = getClient().getObjectFactory().
+        newDeepInsertEntitySet("Details", details);
+    product.addLink(inlineDetails);
+
+    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
+        getClient().newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Products").build(), product);
+    req.setFormat(contentType);
+    final ODataEntityCreateResponse<ClientEntity> res = req.execute();
+    assertEquals(201, res.getStatusCode());
+
+    final ClientEntity createdProduct = res.getBody();
+    assertEquals(productId,
+        createdProduct.getProperty("ProductID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    final ClientLink createdLink = createdProduct.getNavigationLink("Details");
+    assertNotNull(createdLink);
+
+    final ClientEntitySet createdProductDetails =
+        getClient().getRetrieveRequestFactory().getEntitySetRequest(createdLink.getLink()).execute().getBody();
+    assertNotNull(createdProductDetails);
+    assertEquals(productDetailId, createdProductDetails.getEntities().iterator().next().
+        getProperty("ProductDetailID").getPrimitiveValue().toCastValue(Integer.class), 0);
+  }
+
+  @Test
+  public void atomDeepInsert() throws EdmPrimitiveTypeException {
+    deepInsert(ContentType.APPLICATION_ATOM_XML, 10, 10);
+  }
+
+  @Test
+  public void jsonDeepInsert() throws EdmPrimitiveTypeException {
+    deepInsert(ContentType.JSON_FULL_METADATA, 11, 11);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/EntityRetrieveTestITCase.java
new file mode 100644
index 0000000..2137dfb
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/EntityRetrieveTestITCase.java
@@ -0,0 +1,378 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.net.URI;
+import java.sql.Timestamp;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataRawRequest;
+import org.apache.olingo.client.api.communication.response.ODataRawResponse;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.commons.api.data.ResWrap;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * This is the unit test class to check entity retrieve operations.
+ */
+public class EntityRetrieveTestITCase extends AbstractTestITCase {
+
+  private void withInlineEntity(final ODataClient client, final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
+
+    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().
+        getEntityRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
+
+    assertNotNull(entity);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
+    assertTrue(entity.getProperty("Home").hasPrimitiveValue());
+    assertEquals("Edm.GeographyPoint", entity.getProperty("Home").getPrimitiveValue().getTypeName());
+
+    // In JSON with minimal metadata, links are not provided
+    if (contentType.isCompatible(ContentType.APPLICATION_ATOM_SVC)
+        || contentType.isCompatible(ContentType.APPLICATION_ATOM_XML) 
+        || (contentType.isCompatible(ContentType.JSON) 
+              && ContentType.VALUE_ODATA_METADATA_FULL
+              .equals(contentType.getParameter(ContentType.PARAMETER_ODATA_METADATA)))) {
+      assertEquals(testStaticServiceRootURL + "/Customers(1)", entity.getEditLink().toASCIIString());
+      assertEquals(3, entity.getNavigationLinks().size());
+
+      if (ContentType.APPLICATION_ATOM_XML == contentType) {
+        assertTrue(entity.getAssociationLinks().isEmpty());
+        // In JSON, association links for each $ref link will exist.
+      }
+
+      boolean found = false;
+
+      for (ClientLink link : entity.getNavigationLinks()) {
+        if (link instanceof ClientInlineEntity) {
+          final ClientEntity inline = ((ClientInlineEntity) link).getEntity();
+          assertNotNull(inline);
+
+          final List<? extends ClientProperty> properties = inline.getProperties();
+          assertEquals(5, properties.size());
+
+          assertTrue(properties.get(0).getName().equals("CompanyID")
+              || properties.get(1).getName().equals("CompanyID")
+              || properties.get(2).getName().equals("CompanyID")
+              || properties.get(3).getName().equals("CompanyID")
+              || properties.get(4).getName().equals("CompanyID"));
+          assertTrue(properties.get(0).getValue().toString().equals("0")
+              || properties.get(1).getValue().toString().equals("0")
+              || properties.get(2).getValue().toString().equals("0")
+              || properties.get(3).getValue().toString().equals("0")
+              || properties.get(4).getValue().toString().equals("0"));
+
+          found = true;
+        }
+      }
+
+      assertTrue(found);
+    }
+  }
+
+  @Ignore
+  @Test
+  public void withInlineEntityFromAtom() {
+    withInlineEntity(client, ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void withInlineEntityFromFullJSON() {
+    withInlineEntity(client, ContentType.JSON_FULL_METADATA);
+  }
+
+  @Test
+  public void withInlineEntityFromJSON() {
+    withInlineEntity(edmClient, ContentType.JSON);
+  }
+
+  private void withInlineEntitySet(final ODataClient client, final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Orders");
+
+    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().
+        getEntityRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
+    assertNotNull(entity);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
+
+    // In JSON with minimal metadata, links are not provided
+    if (contentType.equals(ContentType.APPLICATION_ATOM_XML) || contentType.equals(ContentType.JSON_FULL_METADATA)) {
+      boolean found = false;
+      for (ClientLink link : entity.getNavigationLinks()) {
+        if (link instanceof ClientInlineEntitySet) {
+          final ClientEntitySet inline = ((ClientInlineEntitySet) link).getEntitySet();
+          assertNotNull(inline);
+
+          found = true;
+        }
+      }
+      assertTrue(found);
+    }
+  }
+
+  @Ignore
+  @Test
+  public void withInlineEntitySetFromAtom() {
+    withInlineEntitySet(client, ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void withInlineEntitySetFromFullJSON() {
+    withInlineEntitySet(client, ContentType.JSON_FULL_METADATA);
+  }
+
+  @Test
+  public void withInlineEntitySetFromJSON() {
+    withInlineEntitySet(edmClient, ContentType.JSON);
+  }
+
+  private void rawRequest(final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5);
+
+    final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
+    req.setFormat(contentType.toContentTypeString());
+
+    final ODataRawResponse res = req.execute();
+    assertNotNull(res);
+
+    final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
+    assertNull(entitySet);
+
+    final ResWrap<ClientEntity> entity = res.getBodyAs(ClientEntity.class);
+    assertTrue(entity.getPayload().getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/People(5)"));
+  }
+
+  @Test
+  public void rawRequestAsAtom() {
+    rawRequest(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void rawRequestAsJSON() {
+    // this needs to be full, otherwise reference will not be provided
+    rawRequest(ContentType.JSON_FULL_METADATA);
+  }
+
+  private void multiKey(final ContentType contentType) throws EdmPrimitiveTypeException {
+    final LinkedHashMap<String, Object> multiKey = new LinkedHashMap<String, Object>();
+    multiKey.put("ProductID", "6");
+    multiKey.put("ProductDetailID", 1);
+
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("ProductDetails").appendKeySegment(multiKey);
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
+    assertNotNull(entity);
+    assertEquals(Integer.valueOf(1),
+        entity.getProperty("ProductDetailID").getPrimitiveValue().toCastValue(Integer.class));
+  }
+
+  @Test
+  public void multiKeyAsAtom() throws EdmPrimitiveTypeException {
+    multiKey(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void multiKeyAsJSON() throws EdmPrimitiveTypeException {
+    multiKey(ContentType.JSON_FULL_METADATA);
+  }
+
+  private void checkForETag(final ODataClient client, final ContentType contentType) {
+    final URIBuilder uriBuilder =
+        client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders").appendKeySegment(8);
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    assertEquals(200, res.getStatusCode());
+
+    final String etag = res.getETag();
+    assertTrue(StringUtils.isNotBlank(etag));
+
+    final ClientEntity order = res.getBody();
+    assertEquals(etag, order.getETag());
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Order", order.getTypeName().toString());
+    assertEquals("Edm.Int32", order.getProperty("OrderID").getPrimitiveValue().getTypeName());
+    assertEquals("Edm.DateTimeOffset", order.getProperty("OrderDate").getPrimitiveValue().getTypeName());
+    assertEquals("Edm.Duration", order.getProperty("ShelfLife").getPrimitiveValue().getTypeName());
+    assertEquals("Collection(Edm.Duration)", order.getProperty("OrderShelfLifes").getCollectionValue().getTypeName());
+  }
+
+  @Test
+  public void checkForETagAsAtom() {
+    checkForETag(client, ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void checkForETagAsFullJSON() {
+    checkForETag(client, ContentType.JSON_FULL_METADATA);
+  }
+
+  @Test
+  public void checkForETagAsJSON() {
+    checkForETag(edmClient, ContentType.JSON);
+  }
+
+  @Test(expected = IllegalArgumentException.class)
+  public void issue99() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    req.setFormat(ContentType.JSON);
+
+    // this statement should cause an IllegalArgumentException bearing JsonParseException
+    // since we are attempting to parse an EntitySet as if it was an Entity
+    req.execute().getBody();
+  }
+
+  private void reference(final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Orders").appendKeySegment(8).appendNavigationSegment("CustomerForOrder").
+        appendRefSegment();
+
+    ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    ODataRetrieveResponse<ClientEntity> res = req.execute();
+    assertNotNull(res);
+
+    final ClientEntity entity = res.getBody();
+    assertNotNull(entity);
+    assertTrue(entity.getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/Customers(PersonID=1)"));
+
+    final URI referenceURI = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntityIdSegment(entity.getId().toASCIIString()).build();
+
+    req = client.getRetrieveRequestFactory().getEntityRequest(referenceURI);
+    req.setFormat(contentType);
+
+    res = req.execute();
+    assertNotNull(res);
+    assertNotNull(res.getBody());
+  }
+
+  @Test
+  public void atomReference() {
+    reference(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonReference() {
+    reference(ContentType.JSON_FULL_METADATA);
+  }
+
+  private void contained(final ODataClient client, final ContentType contentType) throws EdmPrimitiveTypeException {
+    final URI uri = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Accounts").appendKeySegment(101).
+        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(101902).build();
+    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
+    req.setFormat(contentType);
+
+    final ClientEntity contained = req.execute().getBody();
+    assertNotNull(contained);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", contained.getTypeName().toString());
+    assertEquals(101902,
+        contained.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
+    assertEquals("Edm.DateTimeOffset", contained.getProperty("CreatedDate").getPrimitiveValue().getTypeName());
+    assertNotNull(contained.getProperty("CreatedDate").getPrimitiveValue().toCastValue(Timestamp.class));
+  }
+
+  @Test
+  public void containedFromAtom() throws EdmPrimitiveTypeException {
+    contained(client, ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void containedFromFullJSON() throws EdmPrimitiveTypeException {
+    contained(client, ContentType.JSON_FULL_METADATA);
+  }
+
+  @Test
+  public void containedFromJSON() throws EdmPrimitiveTypeException {
+    contained(edmClient, ContentType.JSON);
+  }
+
+  private void entitySetNavigationLink(final ODataClient client, final ContentType contentType) {
+    final URI uri = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Accounts").appendKeySegment(101).build();
+    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
+    req.setFormat(contentType);
+
+    final ClientEntity entity = req.execute().getBody();
+    assertNotNull(entity);
+
+    // With JSON, entity set navigation links are only recognizable via Edm
+    if (contentType.equals(ContentType.APPLICATION_ATOM_XML) || client instanceof EdmEnabledODataClient) {
+      assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("MyPaymentInstruments").getType());
+      assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("ActiveSubscriptions").getType());
+    }
+  }
+
+  @Test
+  public void entitySetNavigationLinkFromAtom() {
+    entitySetNavigationLink(client, ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void entitySetNavigationLinkFromJSON() {
+    // only JSON_FULL_METADATA has links, only Edm can recognize entity set navigation
+    entitySetNavigationLink(edmClient, ContentType.JSON_FULL_METADATA);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/EntitySetTestITCase.java
new file mode 100644
index 0000000..f3e784a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/EntitySetTestITCase.java
@@ -0,0 +1,178 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.net.URI;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetIteratorRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataRawRequest;
+import org.apache.olingo.client.api.communication.response.ODataRawResponse;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntitySetIterator;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.client.core.uri.URIUtils;
+import org.apache.olingo.commons.api.data.ResWrap;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+/**
+ * This is the unit test class to check basic feed operations.
+ */
+public class EntitySetTestITCase extends AbstractTestITCase {
+
+  private void rawRequest(final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
+
+    final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
+    req.setFormat(contentType.toContentTypeString());
+
+    final ODataRawResponse res = req.execute();
+    assertNotNull(res);
+
+    final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
+    assertNotNull(entitySet.getPayload());
+    assertTrue(entitySet.getContextURL().toASCIIString().endsWith("$metadata#People"));
+  }
+
+  @Test
+  public void rawRequestAsAtom() throws IOException {
+    rawRequest(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void rawRequestAsJSON() throws IOException {
+    rawRequest(ContentType.JSON);
+  }
+
+  private void readWithInlineCount(final ODataClient client, final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").count(true);
+
+    final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
+    req.setFormat(contentType.toContentTypeString());
+
+    final ODataRawResponse res = req.execute();
+    assertNotNull(res);
+
+    final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
+    assertEquals(5, entitySet.getPayload().getEntities().size());
+
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Address",
+        entitySet.getPayload().getEntities().get(2).getProperty("HomeAddress").getComplexValue().getTypeName());
+  }
+
+  @Test
+  public void readWithInlineCountAsJSON() throws IOException {
+    readWithInlineCount(edmClient, ContentType.JSON);
+  }
+
+  @Test
+  public void readWithInlineCountAsFullJSON() throws IOException {
+    readWithInlineCount(client, ContentType.JSON_FULL_METADATA);
+  }
+
+  @Test
+  public void readWithInlineCountAsAtom() throws IOException {
+    readWithInlineCount(client, ContentType.APPLICATION_ATOM_XML);
+  }
+
+  private void readODataEntitySetIterator(final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
+
+    final ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntitySetIteratorRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final ODataRetrieveResponse<ClientEntitySetIterator<ClientEntitySet, ClientEntity>> res = req.execute();
+    final ClientEntitySetIterator<ClientEntitySet, ClientEntity> feedIterator = res.getBody();
+
+    assertNotNull(feedIterator);
+
+    int count = 0;
+
+    while (feedIterator.hasNext()) {
+      assertNotNull(feedIterator.next());
+      count++;
+    }
+    assertEquals(5, count);
+    assertTrue(feedIterator.getNext().toASCIIString().endsWith("People?$skiptoken=5"));
+  }
+
+  @Test
+  public void readODataEntitySetIteratorFromAtom() {
+    readODataEntitySetIterator(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void readODataEntitySetIteratorFromJSON() {
+    readODataEntitySetIterator(ContentType.JSON);
+  }
+
+  @Test
+  public void readODataEntitySetIteratorFromJSONFull() {
+    readODataEntitySetIterator(ContentType.JSON_FULL_METADATA);
+  }
+
+  @Test
+  public void readODataEntitySetIteratorFromJSONNo() {
+    readODataEntitySetIterator(ContentType.JSON_NO_METADATA);
+  }
+
+  private void readWithNext(final ContentType format) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
+
+    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
+        getEntitySetRequest(uriBuilder.build());
+    req.setFormat(format);
+    req.setPrefer(client.newPreferences().maxPageSize(5));
+
+    final ODataRetrieveResponse<ClientEntitySet> res = req.execute();
+    final ClientEntitySet feed = res.getBody();
+
+    assertNotNull(feed);
+
+    assertEquals(5, feed.getEntities().size());
+    assertNotNull(feed.getNext());
+
+    final URI expected = URI.create(testStaticServiceRootURL + "/People?$skiptoken=5");
+    final URI found = URIUtils.getURI(testStaticServiceRootURL, feed.getNext().toASCIIString());
+
+    assertEquals(expected, found);
+  }
+
+  @Test
+  public void readWithNextFromAtom() {
+    readWithNext(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void readWithNextFromJSON() {
+    readWithNext(ContentType.JSON_FULL_METADATA);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/EntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/EntityUpdateTestITCase.java
new file mode 100644
index 0000000..aa2bc06
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/EntityUpdateTestITCase.java
@@ -0,0 +1,185 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.Calendar;
+import java.util.TimeZone;
+import java.util.UUID;
+
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
+import org.apache.olingo.client.api.communication.request.cud.ODataReferenceAddingRequest;
+import org.apache.olingo.client.api.communication.request.cud.UpdateType;
+import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
+import org.apache.olingo.client.api.communication.response.ODataReferenceAddingResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class EntityUpdateTestITCase extends AbstractTestITCase {
+
+  private void upsert(final UpdateType updateType, final ContentType contentType) {
+    final ClientEntity order = getClient().getObjectFactory().
+        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
+
+    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderID",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(9)));
+    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
+        getClient().getObjectFactory().newPrimitiveValueBuilder()
+        .setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(
+            Calendar.getInstance(TimeZone.getTimeZone("GMT"))).build()));
+    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build()));
+
+    final URI upsertURI = getClient().newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Orders").appendKeySegment(9).build();
+    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
+        getEntityUpdateRequest(upsertURI, updateType, order);
+    req.setFormat(contentType);
+
+    req.execute();
+    try {
+      final ClientEntity read = read(contentType, upsertURI);
+      assertNotNull(read);
+      assertEquals(order.getProperty("OrderID"), read.getProperty("OrderID"));
+      assertEquals(order.getProperty("OrderDate").getPrimitiveValue().toString(),
+          read.getProperty("OrderDate").getPrimitiveValue().toString());
+      assertEquals(order.getProperty("ShelfLife").getPrimitiveValue().toString(),
+          read.getProperty("ShelfLife").getPrimitiveValue().toString());
+    } finally {
+      getClient().getCUDRequestFactory().getDeleteRequest(upsertURI).execute();
+    }
+  }
+
+  @Test
+  @Ignore
+  public void testUpateSingleValuedNavtiogationReference() throws Exception {
+    URI targetURI =
+        getClient().newURIBuilder(testStaticServiceRootURL)
+        .appendEntitySetSegment("People")
+        .appendKeySegment(1)
+        .appendNavigationSegment("Parent")
+        .build();
+
+    URI reference = getClient().newURIBuilder(testStaticServiceRootURL)
+        .appendEntitySetSegment("People")
+        .appendKeySegment(0)
+        .build();
+
+    final ODataReferenceAddingRequest request =
+        getClient().getCUDRequestFactory().getReferenceSingleChangeRequest(new URI(testStaticServiceRootURL),
+            targetURI, reference);
+
+    final ODataReferenceAddingResponse response = request.execute();
+
+    assertEquals(204, response.getStatusCode());
+  }
+
+  @Test
+  public void atomUpsert() {
+    upsert(UpdateType.PATCH, ContentType.APPLICATION_ATOM_XML);
+    upsert(UpdateType.REPLACE, ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonUpsert() {
+    upsert(UpdateType.PATCH, ContentType.JSON);
+    upsert(UpdateType.REPLACE, ContentType.JSON);
+  }
+
+  private void onContained(final ContentType contentType) {
+    final String newName = UUID.randomUUID().toString();
+    final ClientEntity changes = getClient().getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"));
+    changes.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("FriendlyName",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString(newName)));
+
+    final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Accounts").appendKeySegment(101).
+        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(101901).build();
+    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
+        getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
+    req.setFormat(contentType);
+
+    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
+    assertEquals(204, res.getStatusCode());
+
+    final ClientEntity actual = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
+    assertNotNull(actual);
+    assertEquals(newName, actual.getProperty("FriendlyName").getPrimitiveValue().toString());
+  }
+
+  @Test
+  public void atomOnContained() {
+    onContained(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonOnContained() {
+    onContained(ContentType.JSON);
+  }
+
+  private void bindOperation(final ContentType contentType) throws EdmPrimitiveTypeException {
+    final ClientEntity changes = getClient().getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
+    final ClientLink parent = getClient().getObjectFactory().newEntityNavigationLink("Parent",
+        getClient().newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(1).build());
+    changes.getNavigationLinks().add(parent);
+
+    final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).build();
+    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
+        getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
+    req.setFormat(contentType);
+
+    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
+    assertEquals(204, res.getStatusCode());
+
+    final ClientEntity updated = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
+    assertNotNull(updated);
+    final ClientLink updatedLink = updated.getNavigationLink("Parent");
+    assertNotNull(updatedLink);
+
+    final ClientEntity updatedEntity = getClient().getRetrieveRequestFactory().getEntityRequest(updatedLink.getLink()).
+        execute().getBody();
+    assertNotNull(updatedEntity);
+    assertEquals(1, updatedEntity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
+  }
+
+  @Test
+  public void atomBindOperation() throws EdmPrimitiveTypeException {
+    bindOperation(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonBindOperation() throws EdmPrimitiveTypeException {
+    bindOperation(ContentType.JSON);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/ErrorResponseTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/ErrorResponseTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/ErrorResponseTestITCase.java
new file mode 100644
index 0000000..d386bbe
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/ErrorResponseTestITCase.java
@@ -0,0 +1,62 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.net.URI;
+import java.util.Map;
+
+import org.apache.olingo.client.api.communication.ODataClientErrorException;
+import org.apache.olingo.commons.api.ex.ODataError;
+import org.apache.olingo.commons.api.ex.ODataErrorDetail;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class ErrorResponseTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void jsonError() {
+    final URI readURI = getClient().newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(32).
+        build();
+
+    try {
+      read(ContentType.JSON, readURI);
+      fail("should have got exception");
+    } catch (Exception ex) {
+      final ODataError err = ((ODataClientErrorException) ex).getODataError();
+
+      // verify details
+      final ODataErrorDetail detail = err.getDetails().get(0);
+      assertEquals("Code should be correct", "301", detail.getCode());
+      assertEquals("Target should be correct", "$search", detail.getTarget());
+      assertEquals("Message should be correct", "$search query option not supported", detail.getMessage());
+
+      // verify inner error dictionary
+      final Map<String, String> innerErr = err.getInnerError();
+      assertEquals("innerError dictionary size should be correct", 2, innerErr.size());
+      assertEquals("innerError['context'] should be correct",
+          "{\"key1\":\"for debug deployment only\"}", innerErr.get("context"));
+      assertEquals("innerError['trace'] should be correct",
+          "[\"callmethod1 etc\",\"callmethod2 etc\"]", innerErr.get("trace"));
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/FilterFactoryTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/FilterFactoryTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/FilterFactoryTestITCase.java
new file mode 100644
index 0000000..ccf97a0
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/FilterFactoryTestITCase.java
@@ -0,0 +1,62 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.uri.FilterArgFactory;
+import org.apache.olingo.client.api.uri.FilterFactory;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.client.api.uri.URIFilter;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class FilterFactoryTestITCase extends AbstractTestITCase {
+
+  private FilterFactory getFilterFactory() {
+    return getClient().getFilterFactory();
+  }
+
+  private FilterArgFactory getFilterArgFactory() {
+    return getFilterFactory().getArgFactory();
+  }
+
+  @Test
+  public void crossjoin() {
+    final URIFilter filter = getFilterFactory().eq(
+        getFilterArgFactory().property("Orders/OrderID"), getFilterArgFactory().property("Customers/Order"));
+
+    final URIBuilder uriBuilder =
+        client.newURIBuilder(testStaticServiceRootURL).appendCrossjoinSegment("Customers", "Orders").filter(filter);
+
+    final ODataEntitySetRequest<ClientEntitySet> req =
+        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+    req.setFormat(ContentType.JSON_FULL_METADATA);
+
+    final ClientEntitySet feed = req.execute().getBody();
+    assertEquals(3, feed.getEntities().size());
+
+    for (ClientEntity entity : feed.getEntities()) {
+      assertEquals(2, entity.getNavigationLinks().size());
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/JSONFormatConformanceTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/JSONFormatConformanceTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/JSONFormatConformanceTestITCase.java
new file mode 100644
index 0000000..4f8a779
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/JSONFormatConformanceTestITCase.java
@@ -0,0 +1,333 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.math.BigDecimal;
+import java.net.URI;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.data.EntityCollection;
+import org.apache.olingo.commons.api.data.ResWrap;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+/**
+ * The test cases in this class are inspired by client conformance criteria defined in the <a
+ * href="http://docs.oasis-open.org/odata/odata-json-format/v4.0/os/odata-json-format-v4.0-os.html#_Toc372793094">specs
+ * </a>.
+ */
+public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
+
+  /**
+   * MUST either:
+   * <ol>
+   * <li>understand <tt>odata.metadata=minimal</tt> (section 3.1.1) or</li>
+   * <li>explicitly specify <tt>odata.metadata=none</tt>(section 3.1.3) or <tt>odata.metadata=full</tt> (section 3.1.2)
+   * in the request (client)</li>
+   * </ol>
+   * .
+   */
+  @Test
+  public void item1() throws EdmPrimitiveTypeException {
+    final URI uri = edmClient.newURIBuilder().
+        appendEntitySetSegment("Accounts").appendKeySegment(102).
+        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(102902).build();
+    final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
+
+    // request format (via Accept header) is set to minimal by default
+    assertEquals("application/json;odata.metadata=minimal", req.getAccept());
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+
+    // response is odata.metadata=minimal
+    assertFalse(res.getContentType().contains("odata.metadata=none"));
+    assertFalse(res.getContentType().contains("odata.metadata=full"));
+
+    // response payload is understood
+    final ClientEntity entity = res.getBody();
+    assertNotNull(entity);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", entity.getTypeName().toString());
+    assertEquals(102902, entity.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
+    assertEquals("Edm.DateTimeOffset", entity.getProperty("CreatedDate").getPrimitiveValue().getTypeName());
+  }
+
+  /**
+   * MUST be prepared to consume a response with full metadata.
+   */
+  @Test
+  public void item2() {
+    final URI uri = edmClient.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Accounts").appendKeySegment(102).build();
+    final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
+    req.setFormat(ContentType.JSON_FULL_METADATA);
+
+    // request format (via Accept header) is set to full metadata
+    assertEquals("application/json;odata.metadata=full", req.getAccept());
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+
+    // response is odata.metadata=full
+    assertTrue(res.getContentType().contains("odata.metadata=full"));
+
+    // response payload is understood (including links, only returned with full metadata)
+    final ClientEntity entity = res.getBody();
+    assertNotNull(entity);
+    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("MyPaymentInstruments").getType());
+    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("ActiveSubscriptions").getType());
+  }
+
+  /**
+   * MUST be prepared to receive all data types (section 7.1)
+   * <ol>
+   * <li>defined in this specification (client)</li>
+   * <li>exposed by the service (service)</li>
+   * </ol>
+   * .
+   */
+  @Test
+  public void item3() throws Exception {
+    final String fromSection71 = "{"
+        + "\"NullValue\": null,"
+        + "\"TrueValue\": true,"
+        + "\"FalseValue\": false,"
+        + "\"BinaryValue@odata.type\": \"Binary\","
+        + "\"BinaryValue\": \"T0RhdGE\","
+        + "\"IntegerValue\": -128,"
+        + "\"DoubleValue\": 3.1415926535897931,"
+        + "\"SingleValue@odata.type\": \"Single\","
+        + "\"SingleValue\": \"INF\","
+        + "\"DecimalValue@odata.type\": \"Decimal\","
+        + "\"DecimalValue\": 34.95,"
+        + "\"StringValue\": \"Say \\\"Hello\\\",\\nthen go\","
+        + "\"DateValue@odata.type\": \"Date\","
+        + "\"DateValue\": \"2012-12-03\","
+        + "\"DateTimeOffsetValue@odata.type\": \"DateTimeOffset\","
+        + "\"DateTimeOffsetValue\": \"2012-12-03T07:16:23Z\","
+        + "\"DurationValue@odata.type\": \"Duration\","
+        + "\"DurationValue\": \"P12DT23H59M59.999999999999S\","
+        + "\"TimeOfDayValue@odata.type\": \"TimeOfDay\","
+        + "\"TimeOfDayValue\": \"07:59:59.999\","
+        + "\"GuidValue@odata.type\": \"Guid\","
+        + "\"GuidValue\": \"01234567-89ab-cdef-0123-456789abcdef\","
+        + "\"Int64Value@odata.type\": \"Int64\","
+        + "\"Int64Value\": 0,"
+        + "\"ColorEnumValue@odata.type\": \"Test.Color\","
+        + "\"ColorEnumValue\": \"Yellow\","
+        + "\"GeographyPoint\": {\"type\": \"Point\",\"coordinates\":[142.1,64.1]}"
+        + "}";
+
+    final ClientEntity entity = client.getReader().readEntity(IOUtils.toInputStream(fromSection71), ContentType.JSON);
+
+    assertTrue(entity.getProperty("NullValue").hasNullValue());
+
+    assertEquals(EdmPrimitiveTypeKind.Boolean, entity.getProperty("TrueValue").getPrimitiveValue().getTypeKind());
+    assertEquals(Boolean.TRUE, entity.getProperty("TrueValue").getPrimitiveValue().toCastValue(Boolean.class));
+
+    assertEquals(EdmPrimitiveTypeKind.Boolean, entity.getProperty("FalseValue").getPrimitiveValue().getTypeKind());
+    assertEquals(Boolean.FALSE, entity.getProperty("FalseValue").getPrimitiveValue().toCastValue(Boolean.class));
+
+    assertEquals(EdmPrimitiveTypeKind.Binary, entity.getProperty("BinaryValue").getPrimitiveValue().getTypeKind());
+
+    assertEquals(EdmPrimitiveTypeKind.Int32, entity.getProperty("IntegerValue").getPrimitiveValue().getTypeKind());
+    assertEquals(-128, entity.getProperty("IntegerValue").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    assertEquals(EdmPrimitiveTypeKind.Double, entity.getProperty("DoubleValue").getPrimitiveValue().getTypeKind());
+    assertEquals(3.1415926535897931,
+        entity.getProperty("DoubleValue").getPrimitiveValue().toCastValue(Double.class), 0);
+
+    assertEquals(EdmPrimitiveTypeKind.Single, entity.getProperty("SingleValue").getPrimitiveValue().getTypeKind());
+    assertEquals(Float.POSITIVE_INFINITY,
+        entity.getProperty("SingleValue").getPrimitiveValue().toCastValue(Float.class), 0);
+
+    assertEquals(EdmPrimitiveTypeKind.Decimal, entity.getProperty("DecimalValue").getPrimitiveValue().getTypeKind());
+    assertEquals(BigDecimal.valueOf(34.95),
+        entity.getProperty("DecimalValue").getPrimitiveValue().toCastValue(BigDecimal.class));
+
+    assertEquals(EdmPrimitiveTypeKind.String, entity.getProperty("StringValue").getPrimitiveValue().getTypeKind());
+    assertEquals("Say \"Hello\",\nthen go",
+        entity.getProperty("StringValue").getPrimitiveValue().toCastValue(String.class));
+
+    assertEquals(EdmPrimitiveTypeKind.Date, entity.getProperty("DateValue").getPrimitiveValue().getTypeKind());
+
+    assertEquals(EdmPrimitiveTypeKind.DateTimeOffset,
+        entity.getProperty("DateTimeOffsetValue").getPrimitiveValue().getTypeKind());
+
+    assertEquals(EdmPrimitiveTypeKind.Duration, entity.getProperty("DurationValue").getPrimitiveValue().getTypeKind());
+
+    assertEquals(EdmPrimitiveTypeKind.TimeOfDay,
+        entity.getProperty("TimeOfDayValue").getPrimitiveValue().getTypeKind());
+
+    assertEquals(EdmPrimitiveTypeKind.Guid, entity.getProperty("GuidValue").getPrimitiveValue().getTypeKind());
+
+    assertEquals(EdmPrimitiveTypeKind.Int64, entity.getProperty("Int64Value").getPrimitiveValue().getTypeKind());
+
+    assertTrue(entity.getProperty("ColorEnumValue").hasEnumValue());
+
+    assertEquals(EdmPrimitiveTypeKind.GeographyPoint,
+        entity.getProperty("GeographyPoint").getPrimitiveValue().getTypeKind());
+  }
+
+  /**
+   * MUST interpret all odata annotations defined according to the OData-Version header of the payload (section 4.5).
+   */
+  @Test
+  public void item4() throws Exception {
+    final String fromSection45_1 = "{"
+        + "\"@odata.context\": \"http://host/service/$metadata#Customers/$entity\","
+        + "\"@odata.metadataEtag\": \"W/\\\"A1FF3E230954908F\\\"\","
+        + "\"@odata.etag\": \"W/\\\"A1FF3E230954908G\\\"\","
+        + "\"@odata.type\": \"#Model.VipCustomer\","
+        + "\"@odata.id\": \"http://host/service/Employees(PersonID=3)\","
+        + "\"@odata.editLink\": \"People(976)\","
+        + "\"@odata.mediaEditLink\": \"Employees(1)/$value\","
+        + "\"@odata.mediaContentType\": \"image/jpeg\","
+        + "\"@odata.mediaEtag\": \"W/\\\"A1FF3E230954908H\\\"\","
+        + "\"Parent@odata.navigationLink\": \"People(976)/Parent\","
+        + "\"Parent@odata.associationLink\": \"People(976)/Parent\""
+        + "}";
+
+    final ResWrap<Entity> entity =
+        client.getDeserializer(ContentType.JSON).toEntity(IOUtils.toInputStream(fromSection45_1));
+
+    assertEquals("http://host/service/$metadata#Customers/$entity", entity.getContextURL().toASCIIString());
+    assertEquals("W/\"A1FF3E230954908F\"", entity.getMetadataETag());
+    assertEquals("W/\"A1FF3E230954908G\"", entity.getPayload().getETag());
+    assertEquals("Model.VipCustomer", entity.getPayload().getType());
+    assertEquals("http://host/service/Employees(PersonID=3)", entity.getPayload().getId().toASCIIString());
+    assertEquals("People(976)", entity.getPayload().getEditLink().getHref());
+    assertEquals("Employees(1)/$value", entity.getPayload().getMediaContentSource().toASCIIString());
+    assertEquals("image/jpeg", entity.getPayload().getMediaContentType());
+    assertEquals("W/\"A1FF3E230954908H\"", entity.getPayload().getMediaETag());
+    assertEquals("People(976)/Parent", entity.getPayload().getNavigationLink("Parent").getHref());
+    assertEquals("People(976)/Parent", entity.getPayload().getAssociationLink("Parent").getHref());
+
+    final String fromSection45_2 = "{"
+        + "  \"@odata.count\": 5,"
+        + "  \"value\": [],"
+        + "  \"@odata.nextLink\": \"Customers?$expand=Orders&$skipToken=5\","
+        + "  \"@odata.deltaLink\": \"Customers?$expand=Orders&$deltatoken=8015\""
+        + "}";
+
+    final ResWrap<EntityCollection> entitySet =
+        client.getDeserializer(ContentType.JSON).toEntitySet(IOUtils.toInputStream(fromSection45_2));
+
+    assertEquals(5, entitySet.getPayload().getCount(), 0);
+    assertEquals("Customers?$expand=Orders&$skipToken=5", entitySet.getPayload().getNext().toASCIIString());
+    assertEquals("Customers?$expand=Orders&$deltatoken=8015", entitySet.getPayload().getDeltaLink().toASCIIString());
+  }
+
+  /**
+   * MUST be prepared to receive any annotations, including custom annotations and <tt>odata</tt> annotations not
+   * defined in the <tt>OData-Version</tt> header of the payload (section 20).
+   */
+  @Test
+  public void item5() throws Exception {
+    final String sample = "{"
+        + "  \"@odata.context\": \"http://host/service/$metadata#Customers\","
+        + "  \"@odata.notdefined\": 11,"
+        + "  \"@com.contoso.customer.setkind\": \"VIPs\","
+        + "  \"value\": ["
+        + "    {"
+        + "      \"@com.contoso.display.highlight\": true,"
+        + "      \"ID\": \"ALFKI\","
+        + "      \"CompanyName@com.contoso.display.style\": { \"title\": true, \"order\": 1 },"
+        + "      \"CompanyName\": \"Alfreds Futterkiste\","
+        + "      \"Orders@com.contoso.display.style\": { \"order\": 2 },"
+        + "      \"Orders@odata.navigationLink\": \"People(976)/Orders\""
+        + "    }"
+        + "  ]"
+        + "}";
+
+    final ClientEntitySet entitySet = client.getReader().
+        readEntitySet(IOUtils.toInputStream(sample), ContentType.JSON);
+
+    assertEquals(2, entitySet.getAnnotations().size());
+
+    final ClientAnnotation notdefined = entitySet.getAnnotations().get(0);
+    assertEquals("odata.notdefined", notdefined.getTerm());
+    assertEquals(11, notdefined.getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    final ClientAnnotation setkind = entitySet.getAnnotations().get(1);
+    assertEquals("com.contoso.customer.setkind", setkind.getTerm());
+    assertEquals("VIPs", setkind.getPrimitiveValue().toCastValue(String.class));
+
+    final ClientEntity entity = entitySet.getEntities().get(0);
+    assertEquals(1, entity.getAnnotations().size());
+
+    final ClientAnnotation highlight = entity.getAnnotations().get(0);
+    assertEquals("com.contoso.display.highlight", highlight.getTerm());
+    assertEquals(Boolean.TRUE, highlight.getPrimitiveValue().toCastValue(Boolean.class));
+
+    final ClientProperty property = entity.getProperty("CompanyName");
+    assertEquals(1, property.getAnnotations().size());
+
+    final ClientAnnotation style = property.getAnnotations().get(0);
+    assertEquals("com.contoso.display.style", style.getTerm());
+    assertTrue(style.hasComplexValue());
+    assertEquals(Boolean.TRUE, style.getComplexValue().get("title").getPrimitiveValue().toCastValue(Boolean.class));
+    assertEquals(1, style.getComplexValue().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    final ClientLink orders = entity.getNavigationLink("Orders");
+    assertEquals(1, orders.getAnnotations().size());
+
+    final ClientAnnotation style2 = orders.getAnnotations().get(0);
+    assertEquals("com.contoso.display.style", style2.getTerm());
+    assertTrue(style2.hasComplexValue());
+    assertEquals(2, style2.getComplexValue().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
+  }
+
+  /**
+   * MUST NOT require <tt>odata.streaming=true</tt> in the <tt>Content-Type</tt> header (section 4.4).
+   */
+  @Test
+  public void item6() throws EdmPrimitiveTypeException {
+    final URI uri = edmClient.newURIBuilder().
+        appendEntitySetSegment("Accounts").appendKeySegment(102).
+        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(102902).build();
+    final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
+
+    // request format (via Accept header) does not contain odata.streaming=true
+    assertEquals("application/json;odata.metadata=minimal", req.getAccept());
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+
+    // response payload is understood
+    final ClientEntity entity = res.getBody();
+    assertNotNull(entity);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", entity.getTypeName().toString());
+    assertEquals(102902, entity.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
+    assertEquals("Edm.DateTimeOffset", entity.getProperty("CreatedDate").getPrimitiveValue().getTypeName());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/KeyAsSegmentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/KeyAsSegmentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/KeyAsSegmentTestITCase.java
new file mode 100644
index 0000000..3670292
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/KeyAsSegmentTestITCase.java
@@ -0,0 +1,127 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
+import java.net.URI;
+
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
+import org.apache.olingo.client.api.communication.request.cud.UpdateType;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class KeyAsSegmentTestITCase extends AbstractTestITCase {
+
+  @BeforeClass
+  public static void enableKeyAsSegment() {
+    client.getConfiguration().setKeyAsSegment(true);
+  }
+
+  @AfterClass
+  public static void disableKeyAsSegment() {
+    client.getConfiguration().setKeyAsSegment(false);
+  }
+
+  private void read(final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testKeyAsSegmentServiceRootURL).
+        appendEntitySetSegment("Accounts").appendKeySegment(101);
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
+    assertNotNull(entity);
+
+    // In JSON with minimal metadata, links are not provided
+    if (contentType.equals(ContentType.APPLICATION_ATOM_XML) || contentType.equals(ContentType.JSON_FULL_METADATA)) {
+      assertFalse(entity.getEditLink().toASCIIString().contains("("));
+      assertFalse(entity.getEditLink().toASCIIString().contains(")"));
+    }
+  }
+
+  @Test
+  public void atomRead() {
+    read(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonRead() {
+    read(ContentType.JSON);
+  }
+
+  @Test
+  public void atomCreateAndDelete() {
+    createAndDeleteOrder(testKeyAsSegmentServiceRootURL, ContentType.APPLICATION_ATOM_XML, 1000);
+  }
+
+  @Test
+  public void jsonCreateAndDelete() {
+    createAndDeleteOrder(testKeyAsSegmentServiceRootURL, ContentType.JSON_FULL_METADATA, 1001);
+  }
+
+  private void update(final ContentType contentType) {
+    final ClientEntity changes = getClient().getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
+    final ClientProperty middleName = getClient().getObjectFactory().newPrimitiveProperty("MiddleName",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("middle"));
+    changes.getProperties().add(middleName);
+
+    final URI uri = getClient().newURIBuilder(testKeyAsSegmentServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).build();
+    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
+        getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
+    req.setFormat(contentType);
+
+    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
+    assertEquals(204, res.getStatusCode());
+
+    final ClientEntity updated = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
+    assertNotNull(updated);
+    assertFalse(updated.getEditLink().toASCIIString().contains("("));
+    assertFalse(updated.getEditLink().toASCIIString().contains(")"));
+
+    final ClientProperty updatedMiddleName = updated.getProperty("MiddleName");
+    assertNotNull(updatedMiddleName);
+    assertEquals("middle", updatedMiddleName.getPrimitiveValue().toString());
+  }
+
+  @Test
+  public void atomUpdate() {
+    update(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonUpdate() {
+    update(ContentType.JSON);
+  }
+}


[30/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/PropertyTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/PropertyTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/PropertyTestITCase.java
deleted file mode 100644
index 8231bfe..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/PropertyTestITCase.java
+++ /dev/null
@@ -1,57 +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;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
-
-import org.apache.olingo.ext.proxy.api.ODataFlushException;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI;
-import org.junit.Test;
-
-/**
- * This is the unit test class to check actions overloading.
- */
-public class PropertyTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void nullNullableProperty() {
-    final Customer customer = container.getCustomers().getByKey(1);
-    customer.setFirstName(null);
-    container.flush();
-
-    assertNull(container.getCustomers().getByKey(1).getFirstName());
-  }
-
-  @Test
-  public void nullNonNullableProperty() {
-    final StoredPI storedPI = container.getStoredPIs().getByKey(1000);
-    storedPI.setPIName(null);
-
-    try {
-      container.flush();
-      fail();
-    } catch (ODataFlushException e) {
-      assertNotNull(e);
-    }
-    service.getContext().detachAll();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
deleted file mode 100644
index 9f62618..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
+++ /dev/null
@@ -1,77 +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;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.olingo.ext.proxy.api.Annotatable;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.IsBoss;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
-import org.junit.Test;
-
-public class SingletonTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void read() {
-    final Company company = container.getCompany().load();
-    assertEquals(0, company.getCompanyID(), 0);
-    assertEquals(CompanyCategory.IT, company.getCompanyCategory());
-  }
-
-  @Test
-  public void update() {
-    final Company company = container.getCompany().load();
-    company.setRevenue(132520L);
-
-    container.flush();
-
-    assertEquals(132520L, container.getCompany().load().getRevenue(), 0);
-  }
-
-  @Test
-  public void readWithAnnotations() {
-    final Company company = container.getCompany().load();
-    assertTrue(company.readAnnotationTerms().isEmpty());
-
-    final Person boss = container.getBoss().load();
-    assertEquals(2, boss.getPersonID(), 0);
-
-    assertEquals(1, boss.readAnnotationTerms().size());
-    Object isBoss = boss.readAnnotation(IsBoss.class);
-    assertTrue(isBoss instanceof Boolean);
-    assertTrue((Boolean) isBoss);
-
-    Annotatable annotations = boss.annotations().getFirstNameAnnotations();
-    assertTrue(annotations.readAnnotationTerms().isEmpty());
-
-    annotations = boss.annotations().getLastNameAnnotations();
-    isBoss = annotations.readAnnotation(IsBoss.class);
-    assertTrue(isBoss instanceof Boolean);
-    assertFalse((Boolean) isBoss);
-
-    annotations = boss.annotations().getParentAnnotations();
-    isBoss = annotations.readAnnotation(IsBoss.class);
-    assertTrue(isBoss instanceof Boolean);
-    assertFalse((Boolean) isBoss);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/UnauthorizedEntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/UnauthorizedEntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/UnauthorizedEntityCreateTestITCase.java
deleted file mode 100644
index 5a46da8..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/UnauthorizedEntityCreateTestITCase.java
+++ /dev/null
@@ -1,56 +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;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.client.api.http.HttpClientException;
-import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.fit.proxy.v4.staticservice.Service;
-import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities;
-import org.junit.Test;
-
-public class UnauthorizedEntityCreateTestITCase extends AbstractTestITCase {
-
-  private Service<EdmEnabledODataClient> ecf;
-
-  private InMemoryEntities ime;
-
-  public Service<EdmEnabledODataClient> getService() {
-    if (ecf == null) {
-      ecf = Service.getV4(testAuthServiceRootURL);
-      ecf.getClient().getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-      ecf.getClient().getConfiguration().
-          setHttpClientFactory(new BasicAuthHttpClientFactory("not_auth", "not_auth"));
-    }
-    return ecf;
-  }
-
-  @Test(expected = HttpClientException.class)
-  public void unauthorizedCreate() {
-    createPatchAndDeleteOrder(getContainer(), getService());
-  }
-
-  protected InMemoryEntities getContainer() {
-    if (ime == null) {
-      ime = getService().getEntityContainer(InMemoryEntities.class);
-    }
-    return ime;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Service.java
deleted file mode 100644
index f66881d..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Service.java
+++ /dev/null
@@ -1,127 +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.demo;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.ext.proxy.AbstractService;
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public class Service<C extends EdmEnabledODataClient> extends AbstractService<C> {
-
-  // CHECKSTYLE:OFF (Maven checkstyle)
-  private static final String COMPRESSED_METADATA =
-      "H4sIAAAAAAAAAMVaDYwcVR1/t7f3fW2PaylShS6mFFrLbq+9lsJhy/Z2e6zs0eP2esHjw8zNvNsbmZ0Z3ry92yVS1ERiwA8aFCFVVKIEI42mRgIYI6ggmjQmfAUTglHRhAgGAyGKJvp/b753ZvZmrhUbcuzMzvt//N7v/b9mH3kTdRkE7dNINSvogriIs5oiq1UtKyoyVmlW1AjOYqmWbdSU7NJo9rrJ8iSmgiRQoVTTlco3v7/r+D/OqacQahB0WTwx+XmDEkGkHlmPfWff7JrfnPxuCnWUURoebFD0kTKIy5nicqa4nCkObso5eCgH0nJFeHgMlO9JphyWlSiudV73hzfu3//CW8wBHZAYiY0E08sgePh7Gwrfvv4eiZveT/ACJlgVsUHRUPmTwpKQq1NZyZVlgzIrdyW2sjG+Dt02c8mml1MoVUaDDK0KJksyV7E7HkYFz6KxMupZwsSQNZWiYdNERVCruQolsH6scQs6ijqN2LsJUHjFM0gu/9gd194g7niBQ9JjgICaYDCx3YDA5ckQ8Mr++ZufvfTEqfwxjsSwB4lZ0x+moq+Mzq4JjUL4l6ZzOtvp9czzLNucbJ4Qocl2qPGZ5867/1fCNzpRRwmlDflW3NARQh3LafYXFu2OjUmFe83Q2PS5u15MP/qLm1NoANAAl8AYEw3YTkFVNQq2zitsO9d5GDMp6LBVQ9YDsGaCaHXdXjjg3ndkiRpow42Zpo7te+vANJk2x2GvBVnFhKLL4jFmaTRX9C8FYwZMaV4FfVit13w3Fuqqz8UuiknNsYfCowW8IKuy+wyQYjQZKUxwH/rJvb9+6lPp2zkdugRFNkkGDOhThRo2QBz27jpFfYcZLwq4pvEn18KupvjephLtbZ47yPa29LvX77vp6ZGHU6hrDnXNa3VVKqM1JkwVTKcEumiZlGYmWZ/7dYHAFQBj4wJxg9aJyoCkaDT2Fk07q1hsuSK+AxaOeZd9u187fs
 QYe+JafmYD7LKCgg0a4qChRgdg2luQDREcpyGQ7o1t0ZSNCEN1/lRja26uluEbG8L0tEFkiaIdYThptRo86ABVxVquMl0qMHwuTUYyx6S/jx28L5+q/DKFuudQr1pXFAYYsAziTBmrVbpI0XpPIC2pFFf5gfFuep9OsCjbkegCYKwhCgq2LtLsYHjIypDt0Ykm1UWqw+ezHOZmp8y7gc0wY8P5CJ4elqw9mcJEBAeFKmZC+iCdZMG63buCixtGbIBgu1zisf2a/dOrj2eLNzwTDZDl5QoYsG1lnzcH8UC6zjzoZx4UtDoLl+z+OQFHmPtDJVUkWDBwRVAEImPDecqO5A5S/Xp8hHQLYnY3ze+mE9VOeZfIDLUTxc+/cXLXay9HnLjE5ZRH/Pa7/mL88Mk/l/gB6rulDrFxQcbEYmI3FUgVU39oPNslGPtjp9xW4JKQxDWIuXv1S3f/dudPX78lhTrLaIPrbrEBpDDMcqQUO/K563P5EFFjIW6nWSJynT43sMPg3Exs51wDspAiDSqoNMwQ5vnkP++euf3KsYv5bnBiUzS7Gk/bKdrCswCcqCVBqVsnh6Cp1fgTJJSr5ulLJr5EssX/sHqZU+doO9DAlVVgxl1B1r9h3lms5cUai67ZIhQc3i+Bu91m6UrRzplF2cjAf0LGEFgxlOGszhgmmzPLMl3MLGmiMF83AwMszhwG6/ljWchkuiI0s7MjcAYMkcg6M6zBibK3fRD2BpaxILPYjQPsT5Gi7XlFydjrM+CXzMNlRlYzdBFnNBUgxBmDwgYlM29jwLzcNawOWoWNg5aADBMQbYX5kT3jWrE5NJDkKnVdB1IQNxb3c8X9ccxZNymLRDO0BZoZ14ieBTVbXYumIB3IoskrsIpfGouYOM6vID09WTk0AyK3rCyyJMURuLOkLgH9NdLckbH93pHJS9B2URm4aMBtSHvwv0OyKkCzCMoviFR+NW4ua0Qy4mg+e5FS/fJcbnl5Oau
 xBinLwgyIvyhSfJ7C4Zmvs8sjRImjZD0jMJGri0BfOLKwwVgCFbk4KjzEPS1/tkcqK2hivcYyuuVR5jRciibZDGtqDi8cMXBM0CI92RbNOiIvCWJzCmKq2Iyppnc0tyu3a+fIbpB8YaTksmDQSU1i2TEWoSON/3CkilINSioGf6MRLttfVcSvosbdLpcl131fufTA5hsfepvXnsOCPTdxGlUoSDUd81I1tJfonYc6ccYuNqEyUYUlucofgRiosxPr9Lb9uv9O8hrNY/y6Z2979MY3P3SxOfJyGgUzq0Lxn5cklg8Riij0QwHt4jfYSC/mOIy1XqZTTYbmgaEn9n91wx0PRdakMTs6p4eyZP+18s6FI3c/9uUU6vN0CHOop67KoiZhNtjCC0JdobNO+RLSPyTop9r0Eh0dulU0YEzdtsIsIsKx/Zq5Jj0OrEq0oqsCAOJES3rmZH0cMEm2aJy1e2Rl4xqszI0/KWgZAjGOXLP11cFN7527PoW6ymiNYM9CNELbDKf6nZmIMwqyB0X+tf0GmKNg6uHcRxPOTP0mv3Xn1j1vjTx/JIXSc2ijxbKWZyByKMKtzbImSCC+qDJyShAbPoEbFKuSPVZqPaWIdZAD7dul+FPUvAcNhvO2K5459dSJ6iu8Yeo2cba576AZblmwt6Fok1uXtbbHYS1zm6jdw2/0JJrvFG2DmWcn33jwvutLzw+CZ3PoA7IqKnUJl1QLRDuBh/JoUyA8Nw/KqmQzvTv5mMexbHnzD46fLL1wiLdp/e6oM2Lzw9oByL92Yd8RjZ87OzgUG79rotxmeD4wdM8N5xe++I7ZYOru0DHY6bNK0LH6EBZonWDJ7hacCpXBT9Fa37VZfz4J0WUcIlpVYyTxXdjf99olL0V9/qofvlxj6SpgOHkK6PBdW6x7nKJzAthGrGiDs7ffAdU9wU1y1A276iyHmj7f4mtxZK+gJgykM6RlyIMdSGWDlR7zQwINg+YKG/U13ktX
 1cZWVeHPx1fb3WpxGCPa8zS+snUtB8ALZpv4F7hhd7JJhmNuhcpO8LMnFi666djOf/FYHxL2ElalMavpfKBaHvrx+pcrf3z3bf4+I7Sa7lsUDFY5CTVfZd1aRnfejOEE7YmecjFD3He4XAE0ugwL8w3kMffAArZ6/PczPlk9+/aNHXsw+zyvZwctoJrTeCH0tYabtWNWz1OuQKZtw+8f+PdzJ156N/hCqjV5QMZNlQptKNXJb7DXsAdOI0cwo/YfLVa/declj7QO58N6IXZgofbC0MzHm08ethawl8q6QKjqTFs3Wm/CqSwofNhHoNJyqjxPSU7QlcnYGnRz9v6nfvSFD2b2A+5zaK1oVnXGDM99IVXbCpFd94SBkDrq/HFNUTCvxi4OZo1tbEXHGuRJg4k1hGQJR6o/f4aKto9NiOSorBqs7XhrgXhrAUTVV3g34uuR+MgwSe8y4BkKxVxoWjYwDeSDuFOwW6xh/noIrmbkGj68sGDgIApezUP83SVwVK1jaRVSTDO6p4GNatUH0sjetku6pghUuqGvtHzNGt93FMxU8GVY/dlmMuBJfSaRfEkzlEitStsTyicvPLJ1BAjMQzv7pivU0F6GqLWgbbhs9c4+A6F++U0I8SoIrKvJfrnt2UzXwiTnpMdSv3LHbkPXawcZ8HQl1Npnl1a42nQterDG94N1Xmg8tARuawvc/ySyuHDZwTMGyc4kXL3eoL1KsOw53vsZhu2Jo97yewPrdtu1vWXNHP3yn1ZtD0no5u8ynDeCVQzJbbpUoD975bZ7K4/UeeHbJ0HAVc1XwVfE/HHHBNYM6HihythSsFf7XoNeAHXNkkBkVvX4f6dxUNMgfahjDf1o+M/SQmwOU4esf8PWO9ECbNJE8fDEdH7qqo8zPM5y315aOk9lyKdf/Pp7f4O6dM6ytaF3WKkHdFSJoC82pzRZbZ96BqC0EuuE/eKwuRI7nINh9Vhn/Fj4WsbQo2FpDjkYEY3k/
 zN8jNcNqtV4+Ajpqduk2rZtp2X74AzU3kqxAQ2UYRo1wOsALMo1IZiTXKuKUNJrTYxP3yq7xfBY1W9Lb0F272hbFvZeJZPVFGFW+cRHjt7JNZ8AR2Pg41kMFveazyfissXUUBb79IdwObArrppu/lC3DzzbunhcNhd15qsm2L3s+YNNGoTLB/EEViVMXJ5ZYajteemaWtTU9yOFIEcd1XzqsFCLZoG/gEUdZziYtRa/4ZWkf/IUpMK5kcPWtufQjmx8dyfqsnTGUj2y9kkmic5ronFY5A0ApHM0uzNw/78+E7hjhjAAAA==";
-  private static final String METADATA_ETAG = null;
-  // CHECKSTYLE:ON (Maven checkstyle)
-
-  private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
-
-  @SuppressWarnings("unchecked")
-  private static <C extends EdmEnabledODataClient> Service<C> getInstance(
-      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
-
-    if (!SERVICES.containsKey(serviceRoot)) {
-      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG,
-          version, serviceRoot, transactional);
-      SERVICES.put(serviceRoot, instance);
-    }
-
-    return (Service<C>) SERVICES.get(serviceRoot);
-  }
-
-  /**
-   * Gives an OData 4.0 instance for given service root, operating in transactions (with batch requests).
-   *
-   * @param serviceRoot OData service root
-   * @return OData 4.0 instance for given service root, operating in transactions (with batch requests)
-   */
-  public static Service<org.apache.olingo.client.api.EdmEnabledODataClient> getV4(
-      final String serviceRoot) {
-
-    return getV4(serviceRoot, true);
-  }
-
-  /**
-   * Gives an OData 4.0 instance for given service root.
-   *
-   * @param serviceRoot OData service root
-   * @param transactional whether operating in transactions (with batch requests) or not
-   * @return OData 4.0 instance for given service root
-   */
-  public static Service<org.apache.olingo.client.api.EdmEnabledODataClient> getV4(
-      final String serviceRoot, final boolean transactional) {
-
-    return getInstance(ODataServiceVersion.V40, serviceRoot, transactional);
-  }
-
-  private final Map<String, Class<?>> entityTypes = new HashMap<String, Class<?>>();
-
-  private final Map<String, Class<?>> complexTypes = new HashMap<String, Class<?>>();
-
-  private final Map<String, Class<?>> enumTypes = new HashMap<String, Class<?>>();
-
-  private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
-
-  public Service(final String compressedMetadata, final String metadataETag,
-      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
-
-    super(compressedMetadata, metadataETag, version, serviceRoot, transactional);
-
-    // CHECKSTYLE:OFF (Maven checkstyle)
-    entityTypes.put("ODataDemo.Customer", org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Customer.class);
-    entityTypes.put("ODataDemo.PersonDetail", org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail.class);
-    entityTypes.put("ODataDemo.ProductDetail", org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail.class);
-    entityTypes.put("ODataDemo.Employee", org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Employee.class);
-    entityTypes.put("ODataDemo.Product", org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product.class);
-    entityTypes.put("ODataDemo.Advertisement", org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement.class);
-    entityTypes.put("ODataDemo.Category", org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Category.class);
-    entityTypes.put("ODataDemo.Person", org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person.class);
-    entityTypes.put("ODataDemo.Supplier", org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier.class);
-    entityTypes.put("ODataDemo.FeaturedProduct",
-        org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProduct.class);
-    complexTypes.put("ODataDemo.Address", org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address.class);
-    // CHECKSTYLE:ON (Maven checkstyle)
-  }
-
-  @Override
-  public Class<?> getEntityTypeClass(final String name) {
-    return entityTypes.get(name);
-  }
-
-  @Override
-  public Class<?> getComplexTypeClass(final String name) {
-    return complexTypes.get(name);
-  }
-
-  @Override
-  public Class<?> getEnumTypeClass(final String name) {
-    return enumTypes.get(name);
-  }
-
-  @Override
-  public Class<? extends AbstractTerm> getTermClass(final String name) {
-    return terms.get(name);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Advertisements.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Advertisements.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Advertisements.java
deleted file mode 100644
index e103a3f..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Advertisements.java
+++ /dev/null
@@ -1,38 +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.demo.odatademo;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Advertisements", container = "ODataDemo.DemoService")
-public interface Advertisements
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AdvertisementCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Advertisements>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement, java.util.UUID, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AdvertisementCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Categories.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Categories.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Categories.java
deleted file mode 100644
index f195389..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Categories.java
+++ /dev/null
@@ -1,38 +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.demo.odatademo;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Categories", container = "ODataDemo.DemoService")
-public interface Categories
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Category, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Categories>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Category, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index 3caa568..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/DemoService.java
+++ /dev/null
@@ -1,79 +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.demo.odatademo;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.io.InputStream;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import java.io.Serializable;
-
-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.OperationType;
-import org.apache.olingo.ext.proxy.api.PersistenceManager;
-import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.EntityContainer(name = "DemoService",
-    namespace = "ODataDemo")
-public interface DemoService extends PersistenceManager {
-
-  Products getProducts();
-
-  Advertisements getAdvertisements();
-
-  Persons getPersons();
-
-  Categories getCategories();
-
-  PersonDetails getPersonDetails();
-
-  Suppliers getSuppliers();
-
-  ProductDetails getProductDetails();
-
-  Operations operations();
-
-  public interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "IncreaseSalaries",
-        type = OperationType.ACTION)
-    org.apache.olingo.ext.proxy.api.Invoker<Void> increaseSalaries(
-        @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "percentage", type = "Edm.Int32",
-            nullable = false) java.lang.Integer percentage
-        );
-
-  }
-
-  <NE extends EntityType<?>> NE newEntityInstance(Class<NE> ref);
-
-  <T extends EntityType<?>, NEC extends EntityCollection<T, ?, ?>> NEC newEntityCollection(Class<NEC> ref);
-
-  <NE extends ComplexType<?>> NE newComplexInstance(Class<NE> ref);
-
-  <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/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/PersonDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/PersonDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/PersonDetails.java
deleted file mode 100644
index c0946c0..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/PersonDetails.java
+++ /dev/null
@@ -1,38 +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.demo.odatademo;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "PersonDetails", container = "ODataDemo.DemoService")
-public interface PersonDetails
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetailCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PersonDetails>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetailCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Persons.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Persons.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Persons.java
deleted file mode 100644
index e1586b6..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Persons.java
+++ /dev/null
@@ -1,38 +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.demo.odatademo;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Persons", container = "ODataDemo.DemoService")
-public interface Persons
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Persons>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/ProductDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/ProductDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/ProductDetails.java
deleted file mode 100644
index 79bce3a..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/ProductDetails.java
+++ /dev/null
@@ -1,38 +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.demo.odatademo;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "ProductDetails", container = "ODataDemo.DemoService")
-public interface ProductDetails
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetailCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductDetails>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetailCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Products.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Products.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Products.java
deleted file mode 100644
index 4daf4dd..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Products.java
+++ /dev/null
@@ -1,38 +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.demo.odatademo;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Products", container = "ODataDemo.DemoService")
-public interface Products
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Products>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Suppliers.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Suppliers.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Suppliers.java
deleted file mode 100644
index 6e2ee44..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Suppliers.java
+++ /dev/null
@@ -1,38 +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.demo.odatademo;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Suppliers", container = "ODataDemo.DemoService")
-public interface Suppliers
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.SupplierCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Suppliers>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.SupplierCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/package-info.java
deleted file mode 100644
index 259416f..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/package-info.java
+++ /dev/null
@@ -1,20 +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.demo.odatademo;
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Address.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Address.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Address.java
deleted file mode 100644
index 24ac91e..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Address.java
+++ /dev/null
@@ -1,140 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.Annotatable;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "Address",
-    isOpenType = false,
-    isAbstract = false)
-public interface Address
-    extends org.apache.olingo.ext.proxy.api.ComplexType<Address>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<Address> {
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getStreet();
-
-  void setStreet(java.lang.String _street);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCity();
-
-  void setCity(java.lang.String _city);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "State",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getState();
-
-  void setState(java.lang.String _state);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ZipCode",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getZipCode();
-
-  void setZipCode(java.lang.String _zipCode);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Country",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCountry();
-
-  void setCountry(java.lang.String _country);
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Street",
-        type = "Edm.String")
-    Annotatable getStreetAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "City",
-        type = "Edm.String")
-    Annotatable getCityAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "State",
-        type = "Edm.String")
-    Annotatable getStateAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ZipCode",
-        type = "Edm.String")
-    Annotatable getZipCodeAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Country",
-        type = "Edm.String")
-    Annotatable getCountryAnnotations();
-
-  }
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressCollection.java
deleted file mode 100644
index 669a86c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface AddressCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AddressCollection>,
-org.apache.olingo.ext.proxy.api.ComplexCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AddressCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AddressCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressCollectionComposableInvoker.java
deleted file mode 100644
index 98b0741..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface AddressCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AddressCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AddressCollection.Operations> {
-
-  @Override
-  AddressCollectionComposableInvoker select(String... select);
-
-  @Override
-  AddressCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressComposableInvoker.java
deleted file mode 100644
index 5a142e4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AddressComposableInvoker.java
+++ /dev/null
@@ -1,108 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface AddressComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Address, Address.Operations>
-{
-
-  @Override
-  AddressComposableInvoker select(String... select);
-
-  @Override
-  AddressComposableInvoker expand(String... expand);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getStreet();
-
-  void setStreet(java.lang.String _street);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCity();
-
-  void setCity(java.lang.String _city);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "State",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getState();
-
-  void setState(java.lang.String _state);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ZipCode",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getZipCode();
-
-  void setZipCode(java.lang.String _zipCode);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Country",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCountry();
-
-  void setCountry(java.lang.String _country);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Advertisement.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Advertisement.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Advertisement.java
deleted file mode 100644
index ee6a8ac..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Advertisement.java
+++ /dev/null
@@ -1,123 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Advertisement",
-    openType = false,
-    hasStream = true,
-    isAbstract = false)
-public interface Advertisement
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Advertisement>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<Advertisement> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Guid",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.UUID getID();
-
-  void setID(java.util.UUID _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AirDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getAirDate();
-
-  void setAirDate(java.sql.Timestamp _airDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "FeaturedProduct",
-      type = "ODataDemo.FeaturedProduct",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProduct getFeaturedProduct();
-
-  void setFeaturedProduct(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProduct _featuredProduct);
-
-  void uploadStream(org.apache.olingo.ext.proxy.api.EdmStreamValue stream);
-
-  org.apache.olingo.ext.proxy.api.EdmStreamValue loadStream();
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
-        type = "Edm.Guid")
-    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "AirDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getAirDateAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "FeaturedProduct",
-        type = "ODataDemo.FeaturedProduct")
-    org.apache.olingo.ext.proxy.api.Annotatable getFeaturedProductAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementCollection.java
deleted file mode 100644
index ae63639..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface AdvertisementCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AdvertisementCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AdvertisementCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AdvertisementCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementCollectionComposableInvoker.java
deleted file mode 100644
index 184d5b8..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface AdvertisementCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AdvertisementCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AdvertisementCollection.Operations> {
-
-  @Override
-  AdvertisementCollectionComposableInvoker select(String... select);
-
-  @Override
-  AdvertisementCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementComposableInvoker.java
deleted file mode 100644
index 6c7cd86..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/AdvertisementComposableInvoker.java
+++ /dev/null
@@ -1,96 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface AdvertisementComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Advertisement, Advertisement.Operations>
-{
-
-  @Override
-  AdvertisementComposableInvoker select(String... select);
-
-  @Override
-  AdvertisementComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Guid",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.UUID getID();
-
-  void setID(java.util.UUID _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AirDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getAirDate();
-
-  void setAirDate(java.sql.Timestamp _airDate);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "FeaturedProduct",
-      type = "ODataDemo.FeaturedProduct",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProduct getFeaturedProduct();
-
-  void setFeaturedProduct(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProduct _featuredProduct);
-
-  void uploadStream(org.apache.olingo.ext.proxy.api.EdmStreamValue stream);
-
-  org.apache.olingo.ext.proxy.api.EdmStreamValue loadStream();
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Category.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Category.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Category.java
deleted file mode 100644
index b854543..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Category.java
+++ /dev/null
@@ -1,100 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Category",
-    openType = true,
-    hasStream = false,
-    isAbstract = false)
-public interface Category
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Category>, org.apache.olingo.ext.proxy.api.StructuredQuery<Category>,
-    AbstractOpenType {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Products",
-      type = "ODataDemo.Product",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection getProducts();
-
-  void setProducts(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection _products);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Products",
-        type = "ODataDemo.Product")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductsAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryCollection.java
deleted file mode 100644
index e915d36..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface CategoryCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Category, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryCollectionComposableInvoker.java
deleted file mode 100644
index 11abe78..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface CategoryCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection.Operations> {
-
-  @Override
-  CategoryCollectionComposableInvoker select(String... select);
-
-  @Override
-  CategoryCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryComposableInvoker.java
deleted file mode 100644
index ae60a27..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CategoryComposableInvoker.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-public interface CategoryComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Category, Category.Operations>
-    , AbstractOpenType {
-
-  @Override
-  CategoryComposableInvoker select(String... select);
-
-  @Override
-  CategoryComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Products",
-      type = "ODataDemo.Product",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection getProducts();
-
-  void setProducts(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection _products);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Customer.java
deleted file mode 100644
index 48369c3..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Customer.java
+++ /dev/null
@@ -1,146 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.concurrent.Future;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Customer",
-    openType = false,
-    hasStream = false,
-    isAbstract = false,
-    baseType = "ODataDemo.Person")
-public interface Customer
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person {
-
-  @Override
-  Customer load();
-
-  @Override
-  Future<? extends Customer> loadAsync();
-
-  @Override
-  Customer refs();
-
-  @Override
-  Customer expand(String... expand);
-
-  @Override
-  Customer select(String... select);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  @Override
-  java.lang.Integer getID();
-
-  @Override
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  @Override
-  java.lang.String getName();
-
-  @Override
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TotalExpense",
-      type = "Edm.Decimal",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.math.BigDecimal getTotalExpense();
-
-  void setTotalExpense(java.math.BigDecimal _totalExpense);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
-      type = "ODataDemo.PersonDetail",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "PersonDetails",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail getPersonDetail();
-
-  @Override
-  void setPersonDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail _personDetail);
-
-  @Override
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person.Operations {
-    // No additional methods needed for now.
-  }
-
-  @Override
-  Annotations annotations();
-
-  interface Annotations extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person.Annotations {
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TotalExpense",
-        type = "Edm.Decimal")
-    org.apache.olingo.ext.proxy.api.Annotatable getTotalExpenseAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "PersonDetail",
-        type = "ODataDemo.PersonDetail")
-    org.apache.olingo.ext.proxy.api.Annotatable getPersonDetailAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollection.java
deleted file mode 100644
index 6d21b38..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface CustomerCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CustomerCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Customer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CustomerCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CustomerCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollectionComposableInvoker.java
deleted file mode 100644
index 34eb06b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface CustomerCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CustomerCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CustomerCollection.Operations> {
-
-  @Override
-  CustomerCollectionComposableInvoker select(String... select);
-
-  @Override
-  CustomerCollectionComposableInvoker expand(String... expand);
-}


[13/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Small debug output enhancement part2

Posted by mi...@apache.org.
[OLINGO-659] Small debug output enhancement part2


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: d9558dfd8ba2f08b36afc0fcddc675068c7d7096
Parents: cc4e710
Author: Christian Amend <ch...@sap.com>
Authored: Wed Aug 26 10:40:54 2015 +0200
Committer: Christian Amend <ch...@sap.com>
Committed: Wed Aug 26 10:40:54 2015 +0200

----------------------------------------------------------------------
 .../olingo/server/core/debug/DebugTabUri.java   |  2 +-
 .../core/debug/ExpressionJsonVisitor.java       | 22 ++++++++++----------
 2 files changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d9558dfd/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
index fb2c5e0..716b65e 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/DebugTabUri.java
@@ -205,7 +205,7 @@ public class DebugTabUri implements DebugTab {
     try {
       expressionJsonString = expression.accept(new ExpressionJsonVisitor());
     } catch (Exception e) {
-      expressionJsonString = "Exception in Debug Filter visitor occoured: " + e.getMessage();
+      expressionJsonString = "Exception in Debug Filter visitor occurred: " + e.getMessage();
     }
 
     gen.writeRawValue(expressionJsonString);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d9558dfd/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ExpressionJsonVisitor.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ExpressionJsonVisitor.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ExpressionJsonVisitor.java
index 5e130e9..b09a991 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ExpressionJsonVisitor.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/debug/ExpressionJsonVisitor.java
@@ -65,7 +65,7 @@ public class ExpressionJsonVisitor implements ExpressionVisitor<String> {
   private static final String BINARY_NAME = "binary";
   private static final String LEFT_NODE_NAME = "left";
   private static final String RIGHT_NODE_NAME = "right";
-  private static final String IO_EXCEPTION_OCCOURED_MESSAGE = "IOException occoured";
+  private static final String IO_EXCEPTION_OCCURRED_MESSAGE = "IOException occurred";
   private static final String PARAMETERS_NAME = "parameters";
   private static final String METHOD_NAME = "method";
   private static final String OPERAND_NAME = "operand";
@@ -85,7 +85,7 @@ public class ExpressionJsonVisitor implements ExpressionVisitor<String> {
       writer.flush();
       return writer.toString();
     } catch (final IOException e) {
-      throw new ExpressionVisitException(IO_EXCEPTION_OCCOURED_MESSAGE, e);
+      throw new ExpressionVisitException(IO_EXCEPTION_OCCURRED_MESSAGE, e);
     }
   }
 
@@ -101,7 +101,7 @@ public class ExpressionJsonVisitor implements ExpressionVisitor<String> {
       writer.flush();
       return writer.toString();
     } catch (final IOException e) {
-      throw new ExpressionVisitException(IO_EXCEPTION_OCCOURED_MESSAGE, e);
+      throw new ExpressionVisitException(IO_EXCEPTION_OCCURRED_MESSAGE, e);
     }
   }
 
@@ -127,7 +127,7 @@ public class ExpressionJsonVisitor implements ExpressionVisitor<String> {
       writer.flush();
       return writer.toString();
     } catch (final IOException e) {
-      throw new ExpressionVisitException(IO_EXCEPTION_OCCOURED_MESSAGE, e);
+      throw new ExpressionVisitException(IO_EXCEPTION_OCCURRED_MESSAGE, e);
     }
   }
 
@@ -146,7 +146,7 @@ public class ExpressionJsonVisitor implements ExpressionVisitor<String> {
       writer.flush();
       return writer.toString();
     } catch (final IOException e) {
-      throw new ExpressionVisitException(IO_EXCEPTION_OCCOURED_MESSAGE, e);
+      throw new ExpressionVisitException(IO_EXCEPTION_OCCURRED_MESSAGE, e);
     }
   }
 
@@ -161,7 +161,7 @@ public class ExpressionJsonVisitor implements ExpressionVisitor<String> {
       writer.flush();
       return writer.toString();
     } catch (final IOException e) {
-      throw new ExpressionVisitException(IO_EXCEPTION_OCCOURED_MESSAGE);
+      throw new ExpressionVisitException(IO_EXCEPTION_OCCURRED_MESSAGE);
     }
   }
 
@@ -193,7 +193,7 @@ public class ExpressionJsonVisitor implements ExpressionVisitor<String> {
       writer.flush();
       return writer.toString();
     } catch (final IOException e) {
-      throw new ExpressionVisitException(IO_EXCEPTION_OCCOURED_MESSAGE, e);
+      throw new ExpressionVisitException(IO_EXCEPTION_OCCURRED_MESSAGE, e);
     }
   }
 
@@ -207,7 +207,7 @@ public class ExpressionJsonVisitor implements ExpressionVisitor<String> {
       writer.flush();
       return writer.toString();
     } catch (final IOException e) {
-      throw new ExpressionVisitException(IO_EXCEPTION_OCCOURED_MESSAGE, e);
+      throw new ExpressionVisitException(IO_EXCEPTION_OCCURRED_MESSAGE, e);
     }
   }
 
@@ -221,7 +221,7 @@ public class ExpressionJsonVisitor implements ExpressionVisitor<String> {
       writer.flush();
       return writer.toString();
     } catch (final IOException e) {
-      throw new ExpressionVisitException(IO_EXCEPTION_OCCOURED_MESSAGE, e);
+      throw new ExpressionVisitException(IO_EXCEPTION_OCCURRED_MESSAGE, e);
     }
   }
 
@@ -235,7 +235,7 @@ public class ExpressionJsonVisitor implements ExpressionVisitor<String> {
       writer.flush();
       return writer.toString();
     } catch (final IOException e) {
-      throw new ExpressionVisitException(IO_EXCEPTION_OCCOURED_MESSAGE, e);
+      throw new ExpressionVisitException(IO_EXCEPTION_OCCURRED_MESSAGE, e);
     }
   }
 
@@ -265,7 +265,7 @@ public class ExpressionJsonVisitor implements ExpressionVisitor<String> {
       writer.flush();
       return writer.toString();
     } catch (final IOException e) {
-      throw new ExpressionVisitException(IO_EXCEPTION_OCCOURED_MESSAGE, e);
+      throw new ExpressionVisitException(IO_EXCEPTION_OCCURRED_MESSAGE, e);
     }
   }
 


[28/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetail.java
deleted file mode 100644
index a17e5c3..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetail.java
+++ /dev/null
@@ -1,100 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductDetail",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface ProductDetail
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<ProductDetail>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<ProductDetail> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductID();
-
-  void setProductID(java.lang.Integer _productID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Details",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getDetails();
-
-  void setDetails(java.lang.String _details);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Product",
-      type = "ODataDemo.Product",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product getProduct();
-
-  void setProduct(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product _product);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Details",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getDetailsAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Product",
-        type = "ODataDemo.Product")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollection.java
deleted file mode 100644
index 26e2eb9..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface ProductDetailCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetailCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetailCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetailCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollectionComposableInvoker.java
deleted file mode 100644
index bdb8e02..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface ProductDetailCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetailCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetailCollection.Operations> {
-
-  @Override
-  ProductDetailCollectionComposableInvoker select(String... select);
-
-  @Override
-  ProductDetailCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailComposableInvoker.java
deleted file mode 100644
index 4f37bbf..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailComposableInvoker.java
+++ /dev/null
@@ -1,77 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface ProductDetailComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<ProductDetail, ProductDetail.Operations>
-{
-
-  @Override
-  ProductDetailComposableInvoker select(String... select);
-
-  @Override
-  ProductDetailComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getProductID();
-
-  void setProductID(java.lang.Integer _productID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Details",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getDetails();
-
-  void setDetails(java.lang.String _details);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Product",
-      type = "ODataDemo.Product",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product getProduct();
-
-  void setProduct(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product _product);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Supplier.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Supplier.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Supplier.java
deleted file mode 100644
index b0f608b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Supplier.java
+++ /dev/null
@@ -1,156 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Supplier",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Supplier
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Supplier>, org.apache.olingo.ext.proxy.api.StructuredQuery<Supplier> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
-      type = "ODataDemo.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address getAddress();
-
-  void setAddress(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address _address);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Location",
-      type = "Edm.GeographyPoint",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.commons.api.edm.geo.Point getLocation();
-
-  void setLocation(org.apache.olingo.commons.api.edm.geo.Point _location);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Concurrency",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getConcurrency();
-
-  void setConcurrency(java.lang.Integer _concurrency);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Products",
-      type = "ODataDemo.Product",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection getProducts();
-
-  void setProducts(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection _products);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Address",
-        type = "ODataDemo.Address")
-    org.apache.olingo.ext.proxy.api.Annotatable getAddressAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Location",
-        type = "Edm.GeographyPoint")
-    org.apache.olingo.ext.proxy.api.Annotatable getLocationAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Concurrency",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getConcurrencyAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Products",
-        type = "ODataDemo.Product")
-    org.apache.olingo.ext.proxy.api.Annotatable getProductsAnnotations();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierCollection.java
deleted file mode 100644
index 4731216..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface SupplierCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.SupplierCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.SupplierCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.SupplierCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierCollectionComposableInvoker.java
deleted file mode 100644
index 4f42313..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface SupplierCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.SupplierCollection, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.SupplierCollection.Operations> {
-
-  @Override
-  SupplierCollectionComposableInvoker select(String... select);
-
-  @Override
-  SupplierCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierComposableInvoker.java
deleted file mode 100644
index f7c2d3b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/SupplierComposableInvoker.java
+++ /dev/null
@@ -1,122 +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.demo.odatademo.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface SupplierComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Supplier, Supplier.Operations>
-{
-
-  @Override
-  SupplierComposableInvoker select(String... select);
-
-  @Override
-  SupplierComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getID();
-
-  void setID(java.lang.Integer _iD);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
-      type = "ODataDemo.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address getAddress();
-
-  void setAddress(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address _address);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Location",
-      type = "Edm.GeographyPoint",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.commons.api.edm.geo.Point getLocation();
-
-  void setLocation(org.apache.olingo.commons.api.edm.geo.Point _location);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Concurrency",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getConcurrency();
-
-  void setConcurrency(java.lang.Integer _concurrency);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Products",
-      type = "ODataDemo.Product",
-      targetSchema = "ODataDemo",
-      targetContainer = "DemoService",
-      targetEntitySet = "Products",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection getProducts();
-
-  void setProducts(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection _products);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/package-info.java
deleted file mode 100644
index 4b7b2b1..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/package-info.java
+++ /dev/null
@@ -1,20 +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.demo.odatademo.types;
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/Service.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/Service.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/Service.java
deleted file mode 100644
index 365e10d..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/Service.java
+++ /dev/null
@@ -1,133 +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.opentype;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.ext.proxy.AbstractService;
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public class Service<C extends EdmEnabledODataClient> extends AbstractService<C> {
-
-  // CHECKSTYLE:OFF (Maven checkstyle)
-  private static final String COMPRESSED_METADATA =
-      "H4sIAAAAAAAAAK1Ya2wUVRS+3d2+n6EVtahIjGgCzFIoUKgWS7c0q9tSu4WQAprbnbvbkXk5c3fZJTyCUX6gRhFfDRGUCCoCGlBCNP5Af4gmxgTQ8Euif4WEREKM+sNz57E7090uM9U/TffsPeee853vnseeuI4qdQ11KVqKwypOTBBOEQU5pXAJUSAy5RKKRjjCS1xWErlMJ7dxMDZIKOYxxVFJFeOHP15y8M870wGEshpa6c1M77hONZygDlvn3u/a0Pj96aMBVBFDITiYpWhBDMyFTXNh01zYNAdCIQyHwmAt3A+Hu+HyZf4uB7UoJVJw46/XJnsu32ABqIBEh2ck2L0Mgg8/aou8t+kAb7hep5Ek0YicIDpFLbFncAaH01QQwzFBp8zLJb69zPY1o52ji9qvBFAghhoYWnGiZQTjiqXeMIo4lLpjqDpDNF1QZIpmmS6KWE6F41QD/e7ss2gXCuqeswlQOM0zSFY9vvfJzYmFlw1IqnUwIGGdma0CBFb5Q8Bp++vrz604+UPvfgOJWQ4kNpjxsCtqY+gOCWcjpb80g1NZpltZ5BxLDteraTjHMpTdc/HeyW/xO0FUEUUhXdhOsipCqGJbiP0FpaWeMYkbUTM02l948afQ2W+2BlA9oAEhgTMmGpBOLMsKBV/HRZbOZgdjBrEKqWqxDoDOgKakVVuxviDP20oocBvJjuZUYsuawTWB5vog11iQiUbRSm+MyXSG+92q4Ey9ac15QS2R05JLkEzLrhArKdGkvD8UjkZIUpCFwhkgRac/UpjgHvvyze/O7wjtNuhQiUXBJBkwoFbGEtHBHHFmnaLFg0JCU3QlSblRwJtbx2jC2fTi1qlENmKxmdNpGGyC5CODAqxGTJVMLwgYgoCv+tpXyCHjTtfrK1bP3XLsjwCqGkOzsF0V8mkYQzWK5XRJTtSMY52wby1g2mScEVLGkWENNDUq5DNXp7ol/gu6w/nmCzvPbrl+z8
 NmQWfpcGSCoiaDVvC6of4Loo6QH6AbDEGD7rnmA65WtDkG6uqWL3reaNt7zPCtCDQIe7m/sG3bv8dvPtjx6rlXAqgW8iKnRZE96zFUnZaFhMITVr1JEqdFugGLaTsltVCtYkRO0QmKWh3lOCpTkjKeXQE+OK1qJCHY9ewB4L2ewCKxPoR0TeApWljqjSuSBCHmH3mKKOH4SDTC7FObIGZ6KipUeCtNawVNp1aeCK8yWR30I26NIGMtVzo985Ch2xjDU1VnMVV4bmRUkMi6ZFIntKyJWrd6ja1eVik0sD4aKZwfSAt82fOtw2a/5q3LmG+GeiNTNz2N4PKxhtbkKCncyT6VPV8XF1Iy4fNatUwrflu1qoiSBjYV0mB+Lq8Th9Q7dczPZXUq4xOKRgueAQ07lpfVCMIR1/mlS8oDFlPklEtheXGdNTXaKarvTSSUtEyjclKBFuyjTNjl10kqg9NDWHJiYow9ZT2uYXT2pAV+a+gR7zOku8Wy4jQ0/5eG9r/ubg2gyhhqNKcFkENOyrT+OrMxx0n+ULPdht26dbrBAOoodo/6nEjdLt/YN3/ZjY5L6wMoNIZmW+VtyhnoXCLenospmAfz/TKrijz0pqdJlhKZt5v21C6BEIDdEjFN5o3NqP96LOj5jACQLBenrx15e1P0UkMABcfQXYKcENM8icrWdBBREmkJbJTMSHtRo81B3eRtzjDgV8wEePBs29xPDp6OXl5rjD11hZFsGhgp6vQ79XAjyjZ41/C3+MHlBYWheK1ndIemA4WhfajlwOb7Ii/fNOIKqZhOWBFVUaylCHXFFALndNNH0yUBRtuZxBmVeaAhqrH/LROxuzZ542DQELB1ymO68xy0R8ALJ5MPPbV/8d9AwpJM8znSeRxFe4tGzZbPW6/Ef7sFo2jlNKNo7QTWoS4SLLnG0qkzaHAryVG0bPo9hDlSWO+NC54gxuRmLqdzzLwD+VTvK5nLTnVXV/f+I9wlYwJssED
 KjZCkBZO5Ahcz3eO8OVwwyG5ru3ron4snf75VvKdMfatQ8AJR3g+/bN8c3Qos3GYEMtV3QCszKE94E80ZVgo/K5FLsMPx7IxkMuGekqE9f1tkCkla/R/KEUtXz67+1Lv7Fp0wdq78GF96vVLkCIF2SigKe9ur11kK7FcYFWsUOprFhdnWT0dUwCJ0O/a8BDnfuB0zuoYe8/eGi8PcMHn+zEtz7u8BRo6hpoTZW/VRo8yWaMRWuS2xpBXnfoYk8sToMgNmthQTvK+H/davGCz/u18+Pv7V8OTR/2s9tG0vUI/M/WDB5KfGqFSZFHFKBxJIRBq3ppoq96rXlIaHoYk5uGDUvaChEu3F+y9Tg8aNLNLjP0YPH8y8hqeN1OfPMqblq28NfTbn5LwzZh93BFSZya+9dhsPjhDYVys6Sr/rU7CODGgE7kMV0+wUp9gCBlbhRIklAvT7FFHRimnqp8Y6zAU7ucVF8n8Bw1KQnkUXAAA=";
-  private static final String METADATA_ETAG = null;
-  // CHECKSTYLE:ON (Maven checkstyle)
-
-  private static final Map<String, Service<?>> SERVICES = new ConcurrentHashMap<String, Service<?>>();
-
-  @SuppressWarnings("unchecked")
-  private static <C extends EdmEnabledODataClient> Service<C> getInstance(
-      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
-
-    if (!SERVICES.containsKey(serviceRoot)) {
-      final Service<C> instance = new Service<C>(COMPRESSED_METADATA, METADATA_ETAG,
-          version, serviceRoot, transactional);
-      SERVICES.put(serviceRoot, instance);
-    }
-
-    return (Service<C>) SERVICES.get(serviceRoot);
-  }
-
-  /**
-   * Gives an OData 4.0 instance for given service root, operating in transactions (with batch requests).
-   *
-   * @param serviceRoot OData service root
-   * @return OData 4.0 instance for given service root, operating in transactions (with batch requests)
-   */
-  public static Service<EdmEnabledODataClient> getV4(
-      final String serviceRoot) {
-
-    return getV4(serviceRoot, true);
-  }
-
-  /**
-   * Gives an OData 4.0 instance for given service root.
-   *
-   * @param serviceRoot OData service root
-   * @param transactional whether operating in transactions (with batch requests) or not
-   * @return OData 4.0 instance for given service root
-   */
-  public static Service<EdmEnabledODataClient> getV4(
-      final String serviceRoot, final boolean transactional) {
-
-    return getInstance(ODataServiceVersion.V40, serviceRoot, transactional);
-  }
-
-  private final Map<String, Class<?>> entityTypes = new HashMap<String, Class<?>>();
-
-  private final Map<String, Class<?>> complexTypes = new HashMap<String, Class<?>>();
-
-  private final Map<String, Class<?>> enumTypes = new HashMap<String, Class<?>>();
-
-  private final Map<String, Class<? extends AbstractTerm>> terms = new HashMap<String, Class<? extends AbstractTerm>>();
-
-  public Service(final String compressedMetadata, final String metadataETag,
-      final ODataServiceVersion version, final String serviceRoot, final boolean transactional) {
-
-    super(compressedMetadata, metadataETag, version, serviceRoot, transactional);
-
-    // CHECKSTYLE:OFF (Maven checkstyle)
-    entityTypes.put("Microsoft.Test.OData.Services.OpenTypesServiceV4.Row",
-        org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row.class);
-    entityTypes
-    .put(
-        "Microsoft.Test.OData.Services.OpenTypesServiceV4.IndexedRow",
-        org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.IndexedRow.class);
-    entityTypes.put("Microsoft.Test.OData.Services.OpenTypesServiceV4.RowIndex",
-        org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndex.class);
-    complexTypes
-    .put(
-        "Microsoft.Test.OData.Services.OpenTypesServiceV4.AccountInfo",
-        org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.AccountInfo.class);
-    complexTypes
-    .put(
-        "Microsoft.Test.OData.Services.OpenTypesServiceV4.ContactDetails",
-        org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.ContactDetails.class);
-    enumTypes.put("Microsoft.Test.OData.Services.OpenTypesServiceV4.Color",
-        org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Color.class);
-    // CHECKSTYLE:ON (Maven checkstyle)
-  }
-
-  @Override
-  public Class<?> getEntityTypeClass(final String name) {
-    return entityTypes.get(name);
-  }
-
-  @Override
-  public Class<?> getComplexTypeClass(final String name) {
-    return complexTypes.get(name);
-  }
-
-  @Override
-  public Class<?> getEnumTypeClass(final String name) {
-    return enumTypes.get(name);
-  }
-
-  @Override
-  public Class<? extends AbstractTerm> getTermClass(final String name) {
-    return terms.get(name);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/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
deleted file mode 100644
index f96fe46..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/DefaultContainer.java
+++ /dev/null
@@ -1,61 +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.opentype.microsoft.test.odata.services.opentypesservicev4;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.io.InputStream;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import java.io.Serializable;
-
-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.PersistenceManager;
-import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
-@org.apache.olingo.ext.proxy.api.annotations.EntityContainer(name = "DefaultContainer",
-    namespace = "Microsoft.Test.OData.Services.OpenTypesServiceV4")
-public interface DefaultContainer extends PersistenceManager {
-
-  Row getRow();
-
-  RowIndex getRowIndex();
-
-  Operations operations();
-
-  public interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  <NE extends EntityType<?>> NE newEntityInstance(Class<NE> ref);
-
-  <T extends EntityType<?>, NEC extends EntityCollection<T, ?, ?>> NEC newEntityCollection(Class<NEC> ref);
-
-  <NE extends ComplexType<?>> NE newComplexInstance(Class<NE> ref);
-
-  <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/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/Row.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/Row.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/Row.java
deleted file mode 100644
index a3f0ebe..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/Row.java
+++ /dev/null
@@ -1,39 +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.opentype.microsoft.test.odata.services.opentypesservicev4;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Row",
-    container = "Microsoft.Test.OData.Services.OpenTypesServiceV4.DefaultContainer")
-public interface Row
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Row>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row, java.util.UUID, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/RowIndex.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/RowIndex.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/RowIndex.java
deleted file mode 100644
index e2d4cff..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/RowIndex.java
+++ /dev/null
@@ -1,39 +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.opentype.microsoft.test.odata.services.opentypesservicev4;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "RowIndex",
-    container = "Microsoft.Test.OData.Services.OpenTypesServiceV4.DefaultContainer")
-public interface RowIndex
-    extends
-    org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndex, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndexCollection>,
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<RowIndex>,
-    AbstractEntitySet<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndex, java.lang.Integer, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.RowIndexCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/package-info.java
deleted file mode 100644
index 2392a86..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/package-info.java
+++ /dev/null
@@ -1,20 +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.opentype.microsoft.test.odata.services.opentypesservicev4;
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfo.java
deleted file mode 100644
index 5a73845..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfo.java
+++ /dev/null
@@ -1,84 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-import org.apache.olingo.ext.proxy.api.Annotatable;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
-@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "AccountInfo",
-    isOpenType = true,
-    isAbstract = false)
-public interface AccountInfo
-    extends org.apache.olingo.ext.proxy.api.ComplexType<AccountInfo>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<AccountInfo>, AbstractOpenType {
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFirstName();
-
-  void setFirstName(java.lang.String _firstName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getLastName();
-
-  void setLastName(java.lang.String _lastName);
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
-        type = "Edm.String")
-    Annotatable getFirstNameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
-        type = "Edm.String")
-    Annotatable getLastNameAnnotations();
-
-  }
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoCollection.java
deleted file mode 100644
index caf3355..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface AccountInfoCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.AccountInfoCollection>,
-org.apache.olingo.ext.proxy.api.ComplexCollection<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.AccountInfo, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.AccountInfoCollection, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.AccountInfoCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoCollectionComposableInvoker.java
deleted file mode 100644
index bae485c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface AccountInfoCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.AccountInfoCollection, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.AccountInfoCollection.Operations> {
-
-  @Override
-  AccountInfoCollectionComposableInvoker select(String... select);
-
-  @Override
-  AccountInfoCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoComposableInvoker.java
deleted file mode 100644
index 33e364c..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/AccountInfoComposableInvoker.java
+++ /dev/null
@@ -1,66 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface AccountInfoComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<AccountInfo, AccountInfo.Operations>
-    , AbstractOpenType {
-
-  @Override
-  AccountInfoComposableInvoker select(String... select);
-
-  @Override
-  AccountInfoComposableInvoker expand(String... expand);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getFirstName();
-
-  void setFirstName(java.lang.String _firstName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getLastName();
-
-  void setLastName(java.lang.String _lastName);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Color.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Color.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Color.java
deleted file mode 100644
index 46d8621..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Color.java
+++ /dev/null
@@ -1,44 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
-@org.apache.olingo.ext.proxy.api.annotations.EnumType(name = "Color",
-    underlyingType = EdmPrimitiveTypeKind.Int32,
-    isFlags = false)
-public enum Color {
-  Red(1),
-  Green(2),
-  Blue(4);
-
-  private java.lang.Integer value;
-
-  public java.lang.Integer getValue() {
-    return value;
-  }
-
-  private Color(final java.lang.Integer value) {
-    this.value = value;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetails.java
deleted file mode 100644
index 5cb1a85..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetails.java
+++ /dev/null
@@ -1,273 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.Annotatable;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
-@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "ContactDetails",
-    isOpenType = false,
-    isAbstract = false)
-public interface ContactDetails
-    extends org.apache.olingo.ext.proxy.api.ComplexType<ContactDetails>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<ContactDetails> {
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstContacted",
-      type = "Edm.Binary",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  byte[] getFirstContacted();
-
-  void setFirstContacted(byte[] _firstContacted);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastContacted",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getLastContacted();
-
-  void setLastContacted(java.sql.Timestamp _lastContacted);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Contacted",
-      type = "Edm.Date",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.Calendar getContacted();
-
-  void setContacted(java.util.Calendar _contacted);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GUID",
-      type = "Edm.Guid",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.UUID getGUID();
-
-  void setGUID(java.util.UUID _gUID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PreferedContactTime",
-      type = "Edm.TimeOfDay",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.Calendar getPreferedContactTime();
-
-  void setPreferedContactTime(java.util.Calendar _preferedContactTime);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Byte",
-      type = "Edm.Byte",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Long getLong();
-
-  void setLong(java.lang.Long _long);
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstContacted",
-        type = "Edm.Binary")
-    Annotatable getFirstContactedAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastContacted",
-        type = "Edm.DateTimeOffset")
-    Annotatable getLastContactedAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Contacted",
-        type = "Edm.Date")
-    Annotatable getContactedAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GUID",
-        type = "Edm.Guid")
-    Annotatable getGUIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PreferedContactTime",
-        type = "Edm.TimeOfDay")
-    Annotatable getPreferedContactTimeAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Byte",
-        type = "Edm.Byte")
-    Annotatable getByteAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "SignedByte",
-        type = "Edm.SByte")
-    Annotatable getSignedByteAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Double",
-        type = "Edm.Double")
-    Annotatable getDoubleAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Single",
-        type = "Edm.Single")
-    Annotatable getSingleAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Short",
-        type = "Edm.Int16")
-    Annotatable getShortAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Int",
-        type = "Edm.Int32")
-    Annotatable getIntAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Long",
-        type = "Edm.Int64")
-    Annotatable getLongAnnotations();
-
-  }
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsCollection.java
deleted file mode 100644
index faa3e09..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface ContactDetailsCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.ContactDetailsCollection>,
-org.apache.olingo.ext.proxy.api.ComplexCollection<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.ContactDetails, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.ContactDetailsCollection, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.ContactDetailsCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsCollectionComposableInvoker.java
deleted file mode 100644
index 51b942b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface ContactDetailsCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.ContactDetailsCollection, org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.ContactDetailsCollection.Operations> {
-
-  @Override
-  ContactDetailsCollectionComposableInvoker select(String... select);
-
-  @Override
-  ContactDetailsCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsComposableInvoker.java
deleted file mode 100644
index 2bbf411..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/ContactDetailsComposableInvoker.java
+++ /dev/null
@@ -1,213 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface ContactDetailsComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<ContactDetails, ContactDetails.Operations>
-{
-
-  @Override
-  ContactDetailsComposableInvoker select(String... select);
-
-  @Override
-  ContactDetailsComposableInvoker expand(String... expand);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstContacted",
-      type = "Edm.Binary",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  byte[] getFirstContacted();
-
-  void setFirstContacted(byte[] _firstContacted);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastContacted",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getLastContacted();
-
-  void setLastContacted(java.sql.Timestamp _lastContacted);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Contacted",
-      type = "Edm.Date",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.Calendar getContacted();
-
-  void setContacted(java.util.Calendar _contacted);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GUID",
-      type = "Edm.Guid",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.UUID getGUID();
-
-  void setGUID(java.util.UUID _gUID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PreferedContactTime",
-      type = "Edm.TimeOfDay",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.Calendar getPreferedContactTime();
-
-  void setPreferedContactTime(java.util.Calendar _preferedContactTime);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Byte",
-      type = "Edm.Byte",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  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,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Long getLong();
-
-  void setLong(java.lang.Long _long);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRow.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRow.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRow.java
deleted file mode 100644
index 3962c82..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRow.java
+++ /dev/null
@@ -1,93 +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.opentype.microsoft.test.odata.services.opentypesservicev4.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.concurrent.Future;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV4")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "IndexedRow",
-    openType = true,
-    hasStream = false,
-    isAbstract = false,
-    baseType = "Microsoft.Test.OData.Services.OpenTypesServiceV4.Row")
-public interface IndexedRow
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row,
-    AbstractOpenType {
-
-  @Override
-  IndexedRow load();
-
-  @Override
-  Future<? extends IndexedRow> loadAsync();
-
-  @Override
-  IndexedRow refs();
-
-  @Override
-  IndexedRow expand(String... expand);
-
-  @Override
-  IndexedRow select(String... select);
-
-  @Override
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id",
-      type = "Edm.Guid",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.util.UUID getId();
-
-  @Override
-  void setId(java.util.UUID _id);
-
-  @Override
-  Operations operations();
-
-  interface Operations extends
-      org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row.Operations {
-    // No additional methods needed for now.
-  }
-
-  @Override
-  Annotations annotations();
-
-  interface Annotations extends
-      org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row.Annotations {
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Id",
-        type = "Edm.Guid")
-    org.apache.olingo.ext.proxy.api.Annotatable getIdAnnotations();
-
-  }
-
-}


[20/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java
deleted file mode 100644
index a5d7329..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java
+++ /dev/null
@@ -1,168 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URI;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-
-import org.apache.olingo.client.api.communication.request.AsyncRequestWrapper;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.communication.response.AsyncResponseWrapper;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientInlineEntity;
-import org.apache.olingo.client.api.domain.ClientLink;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class AsyncTestITCase extends AbstractTestITCase {
-
-  @Test
-  public void clientAsync() throws InterruptedException, ExecutionException {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers");
-    final Future<ODataRetrieveResponse<ClientEntitySet>> futureRes =
-        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build()).asyncExecute();
-    assertNotNull(futureRes);
-
-    while (!futureRes.isDone()) {
-      Thread.sleep(1000L);
-    }
-
-    final ODataRetrieveResponse<ClientEntitySet> res = futureRes.get();
-    assertNotNull(res);
-    assertEquals(200, res.getStatusCode());
-    assertFalse(res.getBody().getEntities().isEmpty());
-  }
-
-  private void withInlineEntry(final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final AsyncRequestWrapper<ODataRetrieveResponse<ClientEntity>> async =
-        client.getAsyncRequestFactory().<ODataRetrieveResponse<ClientEntity>> getAsyncRequestWrapper(req);
-
-    final AsyncResponseWrapper<ODataRetrieveResponse<ClientEntity>> responseWrapper = async.execute();
-
-    assertFalse(responseWrapper.isPreferenceApplied());
-
-    final ODataRetrieveResponse<ClientEntity> res = responseWrapper.getODataResponse();
-    final ClientEntity entity = res.getBody();
-
-    assertNotNull(entity);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
-    assertEquals(testStaticServiceRootURL + "/Customers(1)", entity.getEditLink().toASCIIString());
-
-    assertEquals(3, entity.getNavigationLinks().size());
-
-    if (ContentType.APPLICATION_ATOM_XML.equals(contentType)) {
-      assertTrue(entity.getAssociationLinks().isEmpty());
-      // In JSON, association links for each $ref link will exist.
-    }
-
-    boolean found = false;
-
-    for (ClientLink link : entity.getNavigationLinks()) {
-      if (link instanceof ClientInlineEntity) {
-        final ClientEntity inline = ((ClientInlineEntity) link).getEntity();
-        assertNotNull(inline);
-
-        final List<? extends ClientProperty> properties = inline.getProperties();
-        assertEquals(5, properties.size());
-
-        assertTrue(properties.get(0).getName().equals("CompanyID")
-            || properties.get(1).getName().equals("CompanyID")
-            || properties.get(2).getName().equals("CompanyID")
-            || properties.get(3).getName().equals("CompanyID")
-            || properties.get(4).getName().equals("CompanyID"));
-        assertTrue(properties.get(0).getValue().toString().equals("0")
-            || properties.get(1).getValue().toString().equals("0")
-            || properties.get(2).getValue().toString().equals("0")
-            || properties.get(3).getValue().toString().equals("0")
-            || properties.get(4).getValue().toString().equals("0"));
-
-        found = true;
-      }
-    }
-
-    assertTrue(found);
-  }
-
-  @Ignore
-  @Test
-  public void withInlineEntryAsAtom() {
-    withInlineEntry(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Ignore
-  @Test
-  public void withInlineEntryAsJSON() {
-    // this needs to be full, otherwise there is no mean to recognize links
-    withInlineEntry(ContentType.JSON_FULL_METADATA);
-  }
-
-  private void asyncOrders(final ContentType contentType) {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("async").appendEntitySetSegment("Orders");
-
-    final ODataEntitySetRequest<ClientEntitySet> req =
-        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
-    req.setFormat(contentType);
-
-    final AsyncRequestWrapper<ODataRetrieveResponse<ClientEntitySet>> async =
-        client.getAsyncRequestFactory().<ODataRetrieveResponse<ClientEntitySet>> getAsyncRequestWrapper(req);
-    async.callback(URI.create("http://client.service.it/callback/endpoint"));
-
-    final AsyncResponseWrapper<ODataRetrieveResponse<ClientEntitySet>> responseWrapper = async.execute();
-
-    assertTrue(responseWrapper.isPreferenceApplied());
-    assertTrue(responseWrapper.isDone());
-
-    final ODataRetrieveResponse<ClientEntitySet> res = responseWrapper.getODataResponse();
-    final ClientEntitySet entitySet = res.getBody();
-
-    assertFalse(entitySet.getEntities().isEmpty());
-  }
-
-  @Test
-  public void asyncOrdersAsAtom() {
-    asyncOrders(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void asyncOrdersAsJSON() {
-    asyncOrders(ContentType.JSON);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java
deleted file mode 100644
index 81050a4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java
+++ /dev/null
@@ -1,119 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-
-import java.net.URI;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.communication.request.batch.BatchManager;
-import org.apache.olingo.client.api.communication.request.batch.ODataBatchRequest;
-import org.apache.olingo.client.api.communication.request.batch.ODataChangeset;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
-import org.apache.olingo.client.api.communication.request.cud.UpdateType;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.response.ODataBatchResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.http.HttpClientException;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.commons.api.http.HttpHeader;
-import org.junit.Test;
-
-public class AuthBatchTestITCase extends AbstractTestITCase {
-
-  private final static ContentType ACCEPT = ContentType.APPLICATION_OCTET_STREAM;
-
-  @Test
-  public void clean() throws EdmPrimitiveTypeException {
-    final ODataClient authclient = ODataClientFactory.getClient();
-    batchRequest(authclient, testStaticServiceRootURL);
-  }
-
-  @Test
-  public void authorized() throws EdmPrimitiveTypeException {
-    final ODataClient authclient = ODataClientFactory.getClient();
-    authclient.getConfiguration().setHttpClientFactory(new BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
-    batchRequest(authclient, testAuthServiceRootURL);
-  }
-
-  @Test(expected = HttpClientException.class)
-  public void unauthorized() throws EdmPrimitiveTypeException {
-    final ODataClient unauthclient = ODataClientFactory.getClient();
-    unauthclient.getConfiguration().setHttpClientFactory(new BasicAuthHttpClientFactory("not_auth", "not_auth"));
-    batchRequest(unauthclient, testAuthServiceRootURL);
-  }
-
-  private void batchRequest(final ODataClient client, final String baseURL) throws EdmPrimitiveTypeException {
-    // create your request
-    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(baseURL);
-    request.setAccept(ACCEPT.toContentTypeString());
-    request.addCustomHeader("User-Agent", "Apache Olingo OData Client");
-    request.addCustomHeader(HttpHeader.ACCEPT_CHARSET, "UTF-8");
-
-    final BatchManager streamManager = request.payloadManager();
-
-    // -------------------------------------------
-    // Add retrieve item
-    // -------------------------------------------
-    // prepare URI
-    URIBuilder targetURI = client.newURIBuilder(baseURL);
-    targetURI.appendEntitySetSegment("Customers").appendKeySegment(1);
-
-    // create new request
-    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
-    queryReq.setFormat(ContentType.JSON);
-
-    streamManager.addRequest(queryReq);
-    // -------------------------------------------
-
-    // -------------------------------------------
-    // Add changeset item
-    // -------------------------------------------
-    final ODataChangeset changeset = streamManager.addChangeset();
-
-    // Update Customer into the changeset
-    targetURI = client.newURIBuilder(baseURL).appendEntitySetSegment("Customers").appendKeySegment(1);
-    final URI editLink = targetURI.build();
-
-    final ClientEntity patch = client.getObjectFactory().newEntity(
-        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
-    patch.setEditLink(editLink);
-
-    patch.getProperties().add(client.getObjectFactory().newPrimitiveProperty(
-        "LastName",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("new last name")));
-
-    final ODataEntityUpdateRequest<ClientEntity> changeReq =
-        client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patch);
-    changeReq.setFormat(ContentType.JSON_FULL_METADATA);
-
-    changeset.addRequest(changeReq);
-    // -------------------------------------------
-
-    final ODataBatchResponse response = streamManager.getResponse();
-    assertEquals(200, response.getStatusCode());
-    assertEquals("OK", response.getStatusMessage());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java
deleted file mode 100644
index 793f06f..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java
+++ /dev/null
@@ -1,647 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.http.HttpResponse;
-import org.apache.olingo.client.api.ODataBatchConstants;
-import org.apache.olingo.client.api.communication.request.AsyncBatchRequestWrapper;
-import org.apache.olingo.client.api.communication.request.ODataPayloadManager;
-import org.apache.olingo.client.api.communication.request.batch.BatchManager;
-import org.apache.olingo.client.api.communication.request.batch.ODataBatchRequest;
-import org.apache.olingo.client.api.communication.request.batch.ODataBatchResponseItem;
-import org.apache.olingo.client.api.communication.request.batch.ODataChangeset;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
-import org.apache.olingo.client.api.communication.request.cud.UpdateType;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.communication.response.AsyncResponse;
-import org.apache.olingo.client.api.communication.response.AsyncResponseWrapper;
-import org.apache.olingo.client.api.communication.response.ODataBatchResponse;
-import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.client.api.communication.response.ODataResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.client.core.communication.request.AbstractODataStreamManager;
-import org.apache.olingo.client.core.communication.request.Wrapper;
-import org.apache.olingo.client.core.communication.request.batch.ODataChangesetResponseItem;
-import org.apache.olingo.client.core.communication.request.batch.ODataSingleResponseItem;
-import org.apache.olingo.client.core.communication.request.retrieve.ODataEntityRequestImpl;
-import org.apache.olingo.client.core.communication.request.retrieve.ODataEntityRequestImpl.ODataEntityResponseImpl;
-import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.commons.api.http.HttpHeader;
-import org.junit.Test;
-
-public class BatchTestITCase extends AbstractTestITCase {
-
-  private static final String PREFIX = "!!PREFIX!!";
-
-  private static final String SUFFIX = "!!SUFFIX!!";
-
-  private static final int MAX = 10000;
-
-  private final static String ACCEPT = ContentType.APPLICATION_OCTET_STREAM.toContentTypeString();
-
-  @Test
-  public void stringStreaming() {
-    final TestStreamManager streaming = new TestStreamManager();
-
-    new StreamingThread(streaming).start();
-
-    streaming.addObject((PREFIX + "\n").getBytes());
-
-    for (int i = 0; i <= MAX; i++) {
-      streaming.addObject((i + ") send info\n").getBytes());
-    }
-
-    streaming.addObject(SUFFIX.getBytes());
-    streaming.finalizeBody();
-  }
-
-  @Test
-  public void emptyBatchRequest() {
-    // create your request
-    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
-    request.setAccept(ACCEPT);
-
-    final BatchManager payload = request.payloadManager();
-    final ODataBatchResponse response = payload.getResponse();
-
-    assertEquals(200, response.getStatusCode());
-    assertEquals("OK", response.getStatusMessage());
-
-    final Iterator<ODataBatchResponseItem> iter = response.getBody();
-    assertFalse(iter.hasNext());
-  }
-
-  @Test
-  public void changesetWithError() {
-    // create your request
-    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
-    request.setAccept(ACCEPT);
-
-    final BatchManager payload = request.payloadManager();
-    final ODataChangeset changeset = payload.addChangeset();
-
-    URIBuilder targetURI;
-    ODataEntityCreateRequest<ClientEntity> createReq;
-
-    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
-    for (int i = 1; i <= 2; i++) {
-      // Create Customer into the changeset
-      createReq = client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), newOrder(100 + i));
-      createReq.setFormat(ContentType.JSON);
-      changeset.addRequest(createReq);
-    }
-
-    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("WrongEntitySet");
-    createReq = client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), newOrder(105));
-    createReq.setFormat(ContentType.JSON);
-    changeset.addRequest(createReq);
-
-    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
-    for (int i = 3; i <= 4; i++) {
-      // Create Customer into the changeset
-      createReq = client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), newOrder(100 + i));
-      createReq.setFormat(ContentType.JSON);
-      changeset.addRequest(createReq);
-    }
-
-    final ODataBatchResponse response = payload.getResponse();
-    assertEquals(200, response.getStatusCode());
-    assertEquals("OK", response.getStatusMessage());
-
-    final Iterator<ODataBatchResponseItem> iter = response.getBody();
-    // retrieve the first item (ODataRetrieve)
-    ODataBatchResponseItem item = iter.next();
-
-    ODataChangesetResponseItem retitem = (ODataChangesetResponseItem) item;
-    ODataResponse res = retitem.next();
-    assertEquals(404, res.getStatusCode());
-    assertEquals("Not Found", res.getStatusMessage());
-    assertEquals(Integer.valueOf(3), Integer.valueOf(
-        res.getHeader(ODataBatchConstants.CHANGESET_CONTENT_ID_NAME).iterator().next()));
-
-    assertFalse(retitem.hasNext());
-    assertFalse(iter.hasNext());
-  }
-
-  @Test
-  public void continueOnError() {
-    continueOnError(true);
-  }
-
-  @Test
-  public void doNotContinueOnError() {
-    continueOnError(false);
-  }
-
-  private void continueOnError(final boolean continueOnError) {
-    final boolean preContinueOnError = client.getConfiguration().isContinueOnError();
-    client.getConfiguration().setContinueOnError(continueOnError);
-
-    // create your request
-    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
-    request.setAccept(ACCEPT);
-
-    final BatchManager streamManager = request.payloadManager();
-
-    // -------------------------------------------
-    // Add retrieve item
-    // -------------------------------------------
-    // prepare URI
-    URIBuilder targetURI = client.newURIBuilder(testStaticServiceRootURL);
-    targetURI.appendEntitySetSegment("UnexistingEntitySet").appendKeySegment(1);
-
-    // create new request
-    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
-    queryReq.setFormat(ContentType.JSON);
-
-    streamManager.addRequest(queryReq);
-    // -------------------------------------------
-
-    // -------------------------------------------
-    // Add retrieve item
-    // -------------------------------------------
-    // prepare URI
-    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").appendKeySegment(1);
-
-    // create new request
-    queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
-
-    streamManager.addRequest(queryReq);
-    // -------------------------------------------
-
-    final ODataBatchResponse response = streamManager.getResponse();
-    assertEquals(200, response.getStatusCode());
-    assertEquals("OK", response.getStatusMessage());
-    final Iterator<ODataBatchResponseItem> iter = response.getBody();
-
-    // retrieve the first item (ODataRetrieve)
-    ODataBatchResponseItem item = iter.next();
-    assertTrue(item instanceof ODataSingleResponseItem);
-
-    ODataSingleResponseItem retitem = (ODataSingleResponseItem) item;
-    ODataResponse res = retitem.next();
-    assertEquals(404, res.getStatusCode());
-    assertEquals("Not Found", res.getStatusMessage());
-
-    if (continueOnError) {
-      item = iter.next();
-      assertTrue(item instanceof ODataSingleResponseItem);
-
-      retitem = (ODataSingleResponseItem) item;
-      res = retitem.next();
-      assertTrue(res instanceof ODataEntityResponseImpl);
-      assertEquals(200, res.getStatusCode());
-      assertEquals("OK", res.getStatusMessage());
-    }
-
-    client.getConfiguration().setContinueOnError(preContinueOnError);
-  }
-
-  @Test
-  @SuppressWarnings("unchecked")
-  public void changesetWithReference() throws Exception {
-    // create your request
-    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
-    request.setAccept(ACCEPT);
-    final BatchManager streamManager = request.payloadManager();
-
-    final ODataChangeset changeset = streamManager.addChangeset();
-    ClientEntity order = newOrder(20);
-
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
-
-    // add create request
-    final ODataEntityCreateRequest<ClientEntity> createReq =
-        client.getCUDRequestFactory().getEntityCreateRequest(uriBuilder.build(), order);
-
-    changeset.addRequest(createReq);
-
-    // retrieve request reference
-    int createRequestRef = changeset.getLastContentId();
-
-    // add update request: link CustomerInfo(17) to the new customer
-    final ClientEntity customerChanges = client.getObjectFactory().newEntity(order.getTypeName());
-    customerChanges.addLink(client.getObjectFactory().newEntitySetNavigationLink(
-        "OrderDetails", new URI(testStaticServiceRootURL + "/OrderDetails(OrderID=7,ProductID=5)")));
-    
-    final ODataEntityUpdateRequest<ClientEntity> updateReq = client.getCUDRequestFactory().getEntityUpdateRequest(
-        URI.create("$" + createRequestRef), UpdateType.PATCH, customerChanges);
-
-    changeset.addRequest(updateReq);
-
-    final ODataBatchResponse response = streamManager.getResponse();
-    assertEquals(200, response.getStatusCode());
-    assertEquals("OK", response.getStatusMessage());
-
-    // verify response payload ...
-    final Iterator<ODataBatchResponseItem> iter = response.getBody();
-
-    final ODataBatchResponseItem item = iter.next();
-    assertTrue(item instanceof ODataChangesetResponseItem);
-
-    final ODataChangesetResponseItem chgitem = (ODataChangesetResponseItem) item;
-
-    ODataResponse res = chgitem.next();
-    assertEquals(201, res.getStatusCode());
-    assertTrue(res instanceof ODataEntityCreateResponse);
-
-    order = ((ODataEntityCreateResponse<ClientEntity>) res).getBody();
-    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
-        URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString() + "/OrderDetails"));
-
-    assertEquals(Integer.valueOf(7),
-        req.execute().getBody().getEntities().get(0).getProperty("OrderID").getPrimitiveValue().
-        toCastValue(Integer.class));
-
-    res = chgitem.next();
-    assertEquals(204, res.getStatusCode());
-    assertTrue(res instanceof ODataEntityUpdateResponse);
-
-    // clean ...
-    assertEquals(204, client.getCUDRequestFactory().getDeleteRequest(
-        URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString())).execute().
-        getStatusCode());
-
-    try {
-      client.getRetrieveRequestFactory().getEntityRequest(
-          URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString())).
-          execute().getBody();
-      fail();
-    } catch (Exception e) {
-      // ignore
-    }
-  }
-
-  @Test
-  @SuppressWarnings("unchecked")
-  public void batchRequestWithOutsideUpdates() throws EdmPrimitiveTypeException {
-    // create your request
-    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
-    request.setAccept(ACCEPT);
-    final BatchManager streamManager = request.payloadManager();
-
-    // -------------------------------------------
-    // Add retrieve item
-    // -------------------------------------------
-    // prepare URI
-    URIBuilder targetURI = client.newURIBuilder(testStaticServiceRootURL);
-    targetURI.appendEntitySetSegment("Customers").appendKeySegment(1).
-    expand("Orders").select("PersonID,Orders/OrderID");
-
-    // create new request
-    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
-    queryReq.setFormat(ContentType.JSON);
-
-    streamManager.addRequest(queryReq);
-    // -------------------------------------------
-
-    // -------------------------------------------
-    // Add new order with outside item
-    // -------------------------------------------
-    // prepare URI
-    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
-    final ClientEntity original = newOrder(2000);
-    final ODataEntityCreateRequest<ClientEntity> createReq =
-        client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), original);
-    createReq.setFormat(ContentType.JSON);
-    streamManager.addRequest(createReq);
-    // -------------------------------------------
-
-    final ODataBatchResponse response = streamManager.getResponse();
-    assertEquals(200, response.getStatusCode());
-    assertEquals("OK", response.getStatusMessage());
-    final Iterator<ODataBatchResponseItem> iter = response.getBody();
-
-    // retrieve the first item (ODataRetrieve)
-    ODataBatchResponseItem item = iter.next();
-    assertTrue(item instanceof ODataSingleResponseItem);
-
-    ODataSingleResponseItem retitem = (ODataSingleResponseItem) item;
-    ODataResponse res = retitem.next();
-    assertTrue(res instanceof ODataEntityResponseImpl);
-    assertEquals(200, res.getStatusCode());
-    assertEquals("OK", res.getStatusMessage());
-
-    // retrieve the second item (ODataChangeset)
-    item = iter.next();
-    assertTrue(item instanceof ODataSingleResponseItem);
-
-    final ODataSingleResponseItem outitem = (ODataSingleResponseItem) item;
-    res = outitem.next();
-    assertTrue(res instanceof ODataEntityCreateResponse);
-    assertEquals(201, res.getStatusCode());
-    assertEquals("Created", res.getStatusMessage());
-
-    final ODataEntityCreateResponse<ClientEntity> entres = (ODataEntityCreateResponse<ClientEntity>) res;
-    final ClientEntity entity = entres.getBody();
-    assertEquals(2000, entity.getProperty("OrderID").getPrimitiveValue().toCastValue(Integer.class).intValue());
-
-    assertFalse(iter.hasNext());
-  }
-
-  @Test
-  @SuppressWarnings({ "unchecked", "rawtypes" })
-  public void batchRequest() throws EdmPrimitiveTypeException {
-    // create your request
-    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
-    request.setAccept(ACCEPT);
-
-    final BatchManager streamManager = request.payloadManager();
-
-    // -------------------------------------------
-    // Add retrieve item
-    // -------------------------------------------
-    // prepare URI
-    URIBuilder targetURI = client.newURIBuilder(testStaticServiceRootURL);
-    targetURI.appendEntitySetSegment("Customers").appendKeySegment(1);
-
-    // create new request
-    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
-    queryReq.setFormat(ContentType.JSON);
-
-    streamManager.addRequest(queryReq);
-    // -------------------------------------------
-
-    // -------------------------------------------
-    // Add changeset item
-    // -------------------------------------------
-    final ODataChangeset changeset = streamManager.addChangeset();
-
-    // Update Customer into the changeset
-    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").appendKeySegment(1);
-    final URI editLink = targetURI.build();
-
-    final ClientEntity patch = client.getObjectFactory().newEntity(
-        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
-    patch.setEditLink(editLink);
-
-    patch.getProperties().add(client.getObjectFactory().newPrimitiveProperty(
-        "LastName",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("new last name")));
-
-    final ODataEntityUpdateRequest<ClientEntity> changeReq =
-        client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patch);
-    changeReq.setFormat(ContentType.JSON_FULL_METADATA);
-
-    changeset.addRequest(changeReq);
-
-    // Create Order into the changeset
-    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
-    final ClientEntity original = newOrder(1000);
-    final ODataEntityCreateRequest<ClientEntity> createReq =
-        client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), original);
-    createReq.setFormat(ContentType.JSON);
-    changeset.addRequest(createReq);
-    // -------------------------------------------
-
-    // -------------------------------------------
-    // Add retrieve item
-    // -------------------------------------------
-    // prepare URI
-    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").appendKeySegment(1);
-
-    // create new request
-    queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
-
-    streamManager.addRequest(queryReq);
-    // -------------------------------------------
-
-    final ODataBatchResponse response = streamManager.getResponse();
-    assertEquals(200, response.getStatusCode());
-    assertEquals("OK", response.getStatusMessage());
-    final Iterator<ODataBatchResponseItem> iter = response.getBody();
-
-    // retrieve the first item (ODataRetrieve)
-    ODataBatchResponseItem item = iter.next();
-    assertTrue(item instanceof ODataSingleResponseItem);
-
-    ODataSingleResponseItem retitem = (ODataSingleResponseItem) item;
-    ODataResponse res = retitem.next();
-    assertTrue(res instanceof ODataEntityResponseImpl);
-    assertEquals(200, res.getStatusCode());
-    assertEquals("OK", res.getStatusMessage());
-
-    ODataEntityRequestImpl<ClientEntity>.ODataEntityResponseImpl entres =
-        (ODataEntityRequestImpl.ODataEntityResponseImpl) res;
-
-    ClientEntity entity = entres.getBody();
-    assertEquals(1, entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    // retrieve the second item (ODataChangeset)
-    item = iter.next();
-    assertTrue(item instanceof ODataChangesetResponseItem);
-
-    final ODataChangesetResponseItem chgitem = (ODataChangesetResponseItem) item;
-    res = chgitem.next();
-    assertTrue(res instanceof ODataEntityUpdateResponse);
-    assertEquals(204, res.getStatusCode());
-    assertEquals("No Content", res.getStatusMessage());
-
-    res = chgitem.next();
-    assertTrue(res instanceof ODataEntityCreateResponse);
-    assertEquals(201, res.getStatusCode());
-    assertEquals("Created", res.getStatusMessage());
-
-    final ODataEntityCreateResponse<ClientEntity> createres = (ODataEntityCreateResponse<ClientEntity>) res;
-    entity = createres.getBody();
-    assertEquals(new Integer(1000), entity.getProperty("OrderID").getPrimitiveValue().toCastValue(Integer.class));
-
-    // retrieve the third item (ODataRetrieve)
-    item = iter.next();
-    assertTrue(item instanceof ODataSingleResponseItem);
-
-    retitem = (ODataSingleResponseItem) item;
-    res = retitem.next();
-    assertTrue(res instanceof ODataEntityResponseImpl);
-    assertEquals(200, res.getStatusCode());
-    assertEquals("OK", res.getStatusMessage());
-
-    entres = (ODataEntityRequestImpl.ODataEntityResponseImpl) res;
-    entity = entres.getBody();
-    assertEquals("new last name", entity.getProperty("LastName").getPrimitiveValue().toCastValue(String.class));
-
-    assertFalse(iter.hasNext());
-  }
-
-  @Test
-  public void async() {
-    // create your request
-    final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(
-        URI.create(testStaticServiceRootURL + "/async/").normalize().toASCIIString());
-    request.setAccept(ACCEPT);
-
-    final AsyncBatchRequestWrapper async = client.getAsyncRequestFactory().getAsyncBatchRequestWrapper(request);
-
-    // -------------------------------------------
-    // Add retrieve item
-    // -------------------------------------------
-    // prepare URI
-    URIBuilder targetURI = client.newURIBuilder(testStaticServiceRootURL);
-    targetURI.appendEntitySetSegment("People").appendKeySegment(5);
-
-    // create new request
-    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
-    queryReq.setFormat(ContentType.JSON);
-
-    async.addRetrieve(queryReq);
-    // -------------------------------------------
-
-    // -------------------------------------------
-    // Add retrieve item
-    // -------------------------------------------
-    // prepare URI
-    targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").appendKeySegment(1);
-
-    // create new request
-    queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
-
-    async.addRetrieve(queryReq);
-    // -------------------------------------------
-
-    final AsyncResponseWrapper<ODataBatchResponse> responseWrapper = async.execute();
-
-    assertTrue(responseWrapper.isPreferenceApplied());
-    assertTrue(responseWrapper.isDone());
-
-    final ODataBatchResponse response = responseWrapper.getODataResponse();
-
-    assertEquals(200, response.getStatusCode());
-    assertEquals("Ok", response.getStatusMessage());
-    final Iterator<ODataBatchResponseItem> iter = response.getBody();
-
-    // retrieve the first item (ODataRetrieve)
-    final ODataBatchResponseItem item = iter.next();
-    assertTrue(item instanceof ODataSingleResponseItem);
-
-    // The service return interim results to an asynchronously executing batch.
-    final ODataSingleResponseItem retitem = (ODataSingleResponseItem) item;
-    final ODataResponse res = retitem.next();
-    assertTrue(res instanceof AsyncResponse);
-    assertEquals(202, res.getStatusCode());
-    assertEquals("Accepted", res.getStatusMessage());
-
-    final Collection<String> newMonitorLocation = res.getHeader(HttpHeader.LOCATION);
-    if (newMonitorLocation != null && !newMonitorLocation.isEmpty()) {
-      responseWrapper.forceNextMonitorCheck(URI.create(newMonitorLocation.iterator().next()));
-      // .... now you can start again with isDone() and getODataResponse().
-    }
-
-    assertFalse(retitem.hasNext());
-    assertFalse(iter.hasNext());
-  }
-
-  private static class TestStreamManager extends AbstractODataStreamManager<ODataBatchResponse> {
-
-    public TestStreamManager() {
-      super(new Wrapper<Future<HttpResponse>>());
-    }
-
-    public ODataPayloadManager<ODataBatchResponse> addObject(final byte[] src) {
-      stream(src);
-      return this;
-    }
-
-    @Override
-    protected ODataBatchResponse getResponse(final long timeout, final TimeUnit unit) {
-      throw new UnsupportedOperationException("Not supported yet.");
-    }
-  };
-
-  /**
-   * To be used for debug purposes.
-   */
-  private static class StreamingThread extends Thread {
-
-    private final TestStreamManager streaming;
-
-    public StreamingThread(final TestStreamManager streaming) {
-      super();
-      this.streaming = streaming;
-    }
-
-    @Override
-    public void run() {
-      try {
-        final StringBuilder builder = new StringBuilder();
-
-        byte[] buff = new byte[1024];
-
-        int len;
-
-        while ((len = streaming.getBody().read(buff)) >= 0) {
-          builder.append(new String(buff, 0, len));
-        }
-
-        assertTrue(builder.toString().startsWith(PREFIX));
-        assertTrue(builder.toString().contains((MAX / 2) + ") send info"));
-        assertTrue(builder.toString().contains((MAX / 3) + ") send info"));
-        assertTrue(builder.toString().contains((MAX / 20) + ") send info"));
-        assertTrue(builder.toString().contains((MAX / 30) + ") send info"));
-        assertTrue(builder.toString().contains(MAX + ") send info"));
-        assertTrue(builder.toString().endsWith(SUFFIX));
-
-      } catch (IOException e) {
-        fail();
-      }
-    }
-  }
-
-  private ClientEntity newOrder(final int id) {
-    final ClientEntity order = getClient().getObjectFactory().
-        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
-
-    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderID",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
-    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).build()));
-    order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build()));
-    order.getProperties().add(getClient().getObjectFactory().newCollectionProperty("OrderShelfLifes",
-        getClient().getObjectFactory().newCollectionValue(EdmPrimitiveTypeKind.Duration.name()).add(
-            getClient().getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.Duration).
-            setValue(new BigDecimal("0.0000002")).build())));
-
-    return order;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
deleted file mode 100644
index 9782ff0..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
+++ /dev/null
@@ -1,459 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.TimeZone;
-
-import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.domain.ClientCollectionValue;
-import org.apache.olingo.client.api.domain.ClientComplexValue;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientEnumValue;
-import org.apache.olingo.client.api.domain.ClientOperation;
-import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.domain.ClientSingleton;
-import org.apache.olingo.client.api.domain.ClientValue;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
-
-  private void functions(final ContentType contentType) throws EdmPrimitiveTypeException {
-    // GetEmployeesCount
-    URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company");
-    final ODataEntityRequest<ClientSingleton> singletonReq =
-        client.getRetrieveRequestFactory().getSingletonRequest(builder.build());
-    singletonReq.setFormat(contentType);
-    final ClientSingleton company = singletonReq.execute().getBody();
-    assertNotNull(company);
-
-    ClientOperation boundOp = company.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetEmployeesCount");
-    assertNotNull(boundOp);
-
-    final ODataInvokeRequest<ClientProperty> getEmployeesCountReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientProperty.class);
-    getEmployeesCountReq.setFormat(contentType);
-    final ClientProperty getEmployeesCountRes = getEmployeesCountReq.execute().getBody();
-    assertNotNull(getEmployeesCountRes);
-    assertTrue(getEmployeesCountRes.hasPrimitiveValue());
-
-    // GetProductDetails
-    builder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Products").appendKeySegment(5);
-    ODataEntityRequest<ClientEntity> entityReq = client.getRetrieveRequestFactory().
-        getEntityRequest(builder.build());
-    entityReq.setFormat(contentType);
-    ClientEntity entity = entityReq.execute().getBody();
-    assertNotNull(entity);
-
-    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails");
-    assertNotNull(boundOp);
-
-    final ClientPrimitiveValue count = client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(1);
-    final ODataInvokeRequest<ClientEntitySet> getProductDetailsReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientEntitySet.class,
-            Collections.<String, ClientValue> singletonMap("count", count));
-    getProductDetailsReq.setFormat(contentType);
-    final ClientEntitySet getProductDetailsRes = getProductDetailsReq.execute().getBody();
-    assertNotNull(getProductDetailsRes);
-    assertEquals(1, getProductDetailsRes.getEntities().size());
-
-    // GetRelatedProduct
-    final Map<String, Object> keyMap = new LinkedHashMap<String, Object>();
-    keyMap.put("ProductID", 6);
-    keyMap.put("ProductDetailID", 1);
-    builder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("ProductDetails").appendKeySegment(keyMap);
-    entityReq = client.getRetrieveRequestFactory().getEntityRequest(builder.build());
-    entityReq.setFormat(contentType);
-    entity = entityReq.execute().getBody();
-    assertNotNull(entity);
-
-    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetRelatedProduct");
-    assertNotNull(boundOp);
-
-    final ODataInvokeRequest<ClientEntity> getRelatedProductReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientEntity.class);
-    getRelatedProductReq.setFormat(contentType);
-    final ClientEntity getRelatedProductRes = getRelatedProductReq.execute().getBody();
-    assertNotNull(getRelatedProductRes);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Product",
-        getRelatedProductRes.getTypeName().toString());
-    assertEquals(6, getRelatedProductRes.getProperty("ProductID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    // GetDefaultPI
-    builder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Accounts").appendKeySegment(102);
-    entityReq = client.getRetrieveRequestFactory().getEntityRequest(builder.build());
-    entityReq.setFormat(contentType);
-    entity = entityReq.execute().getBody();
-    assertNotNull(entity);
-
-    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI");
-    assertNotNull(boundOp);
-
-    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientEntity.class);
-    getDefaultPIReq.setFormat(contentType);
-    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
-    assertNotNull(getDefaultPIRes);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
-        getDefaultPIRes.getTypeName().toString());
-    assertEquals(102901,
-        getDefaultPIRes.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    // GetAccountInfo
-    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo");
-    assertNotNull(boundOp);
-
-    final ODataInvokeRequest<ClientProperty> getAccountInfoReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientProperty.class);
-    getAccountInfoReq.setFormat(contentType);
-    final ClientProperty getAccountInfoRes = getAccountInfoReq.execute().getBody();
-    assertNotNull(getAccountInfoRes);
-    assertTrue(getAccountInfoRes.hasComplexValue());
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
-        getAccountInfoRes.getComplexValue().getTypeName());
-
-    // GetActualAmount
-    entityReq = client.getRetrieveRequestFactory().getEntityRequest(
-        entity.getNavigationLink("MyGiftCard").getLink());
-    entityReq.setFormat(contentType);
-    entity = entityReq.execute().getBody();
-    assertNotNull(entity);
-    assertEquals(301, entity.getProperty("GiftCardID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetActualAmount");
-    assertNotNull(boundOp);
-
-    final ClientPrimitiveValue bonusRate = client.getObjectFactory().newPrimitiveValueBuilder().buildDouble(1.1);
-    final ODataInvokeRequest<ClientProperty> getActualAmountReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientProperty.class,
-            Collections.<String, ClientValue> singletonMap("bonusRate", bonusRate));
-    getActualAmountReq.setFormat(contentType);
-    final ClientProperty getActualAmountRes = getActualAmountReq.execute().getBody();
-    assertNotNull(getActualAmountRes);
-    assertEquals(41.79, getActualAmountRes.getPrimitiveValue().toCastValue(Double.class), 0);
-  }
-
-  @Test
-  public void atomFunctions() throws EdmPrimitiveTypeException {
-    functions(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonFunctions() throws EdmPrimitiveTypeException {
-    functions(ContentType.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void edmEnabledFunctions() throws EdmPrimitiveTypeException {
-    // GetEmployeesCount
-    final ODataInvokeRequest<ClientProperty> getEmployeesCountReq =
-        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
-            edmClient.newURIBuilder().appendSingletonSegment("Company").build(),
-            new FullQualifiedName(("Microsoft.Test.OData.Services.ODataWCFService.GetEmployeesCount")),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Company"),
-            false);
-    final ClientProperty getEmployeesCountRes = getEmployeesCountReq.execute().getBody();
-    assertNotNull(getEmployeesCountRes);
-    assertTrue(getEmployeesCountRes.hasPrimitiveValue());
-
-    // GetProductDetails
-    final ClientPrimitiveValue count = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt32(1);
-    final ODataInvokeRequest<ClientEntitySet> getProductDetailsReq =
-        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
-            edmClient.newURIBuilder().appendEntitySetSegment("Products").appendKeySegment(5).build(),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails"),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Product"),
-            false,
-            Collections.<String, ClientValue> singletonMap("count", count));
-    final ClientEntitySet getProductDetailsRes = getProductDetailsReq.execute().getBody();
-    assertNotNull(getProductDetailsRes);
-    assertEquals(1, getProductDetailsRes.getEntities().size());
-
-    // GetRelatedProduct
-    final Map<String, Object> keyMap = new LinkedHashMap<String, Object>();
-    keyMap.put("ProductID", 6);
-    keyMap.put("ProductDetailID", 1);
-    URIBuilder builder = edmClient.newURIBuilder().appendEntitySetSegment("ProductDetails").appendKeySegment(keyMap);
-
-    final ODataInvokeRequest<ClientEntity> getRelatedProductReq =
-        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
-            builder.build(),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetRelatedProduct"),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.ProductDetail"),
-            false);
-    final ClientEntity getRelatedProductRes = getRelatedProductReq.execute().getBody();
-    assertNotNull(getRelatedProductRes);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Product",
-        getRelatedProductRes.getTypeName().toString());
-    assertEquals(6, getRelatedProductRes.getProperty("ProductID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    // GetDefaultPI
-    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
-        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
-            edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).build(),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI"),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Account"),
-            false);
-    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
-    assertNotNull(getDefaultPIRes);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
-        getDefaultPIRes.getTypeName().toString());
-    assertEquals(102901,
-        getDefaultPIRes.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    // GetAccountInfo
-    final ODataInvokeRequest<ClientProperty> getAccountInfoReq =
-        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
-            edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).build(),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo"),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Account"),
-            false);
-    final ClientProperty getAccountInfoRes = getAccountInfoReq.execute().getBody();
-    assertNotNull(getAccountInfoRes);
-    assertTrue(getAccountInfoRes.hasComplexValue());
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
-        getAccountInfoRes.getComplexValue().getTypeName());
-
-    // GetActualAmount
-    final ClientPrimitiveValue bonusRate = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildDouble(1.1);
-    final ODataInvokeRequest<ClientProperty> getActualAmountReq =
-        edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
-            edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).
-            appendNavigationSegment("MyGiftCard").build(),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetActualAmount"),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GiftCard"),
-            false,
-            Collections.<String, ClientValue> singletonMap("bonusRate", bonusRate));
-    final ClientProperty getActualAmountRes = getActualAmountReq.execute().getBody();
-    assertNotNull(getActualAmountRes);
-    assertEquals(41.79, getActualAmountRes.getPrimitiveValue().toCastValue(Double.class), 0);
-  }
-
-  private void actions(final ContentType contentType) throws EdmPrimitiveTypeException {
-    // IncreaseRevenue
-    URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company");
-    ODataEntityRequest<ClientEntity> entityReq =
-        client.getRetrieveRequestFactory().getEntityRequest(builder.build());
-    entityReq.setFormat(contentType);
-    ClientEntity entity = entityReq.execute().getBody();
-    assertNotNull(entity);
-
-    ClientOperation boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.IncreaseRevenue");
-    assertNotNull(boundOp);
-
-    final ClientPrimitiveValue increaseValue =
-        client.getObjectFactory().newPrimitiveValueBuilder().buildInt64(12L);
-    final ODataInvokeRequest<ClientProperty> increaseRevenueReq =
-        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientProperty.class,
-            Collections.<String, ClientValue> singletonMap("IncreaseValue", increaseValue));
-    increaseRevenueReq.setFormat(contentType);
-    final ClientProperty increaseRevenueRes = increaseRevenueReq.execute().getBody();
-    assertNotNull(increaseRevenueRes);
-    assertTrue(increaseRevenueRes.hasPrimitiveValue());
-
-    // AddAccessRight
-    builder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Products").appendKeySegment(5);
-    entityReq = client.getRetrieveRequestFactory().getEntityRequest(builder.build());
-    entityReq.setFormat(contentType);
-    entity = entityReq.execute().getBody();
-    assertNotNull(entity);
-
-    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight");
-    assertNotNull(boundOp);
-
-    final ClientEnumValue accessRight = client.getObjectFactory().
-        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "Execute");
-    final ODataInvokeRequest<ClientProperty> getProductDetailsReq =
-        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientProperty.class,
-            Collections.<String, ClientValue> singletonMap("accessRight", accessRight));
-    getProductDetailsReq.setFormat(contentType);
-    final ClientProperty getProductDetailsRes = getProductDetailsReq.execute().getBody();
-    assertNotNull(getProductDetailsRes);
-    assertTrue(getProductDetailsRes.hasEnumValue());
-
-    // ResetAddress
-    builder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(2);
-    entityReq = client.getRetrieveRequestFactory().getEntityRequest(builder.build());
-    entityReq.setFormat(contentType);
-    entity = entityReq.execute().getBody();
-    assertNotNull(entity);
-
-    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.ResetAddress");
-    assertNotNull(boundOp);
-
-    final ClientCollectionValue<ClientValue> addresses =
-        client.getObjectFactory().
-        newCollectionValue("Collection(Microsoft.Test.OData.Services.ODataWCFService.Address)");
-    final ClientComplexValue address = client.getObjectFactory().
-        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
-    address.add(client.getObjectFactory().newPrimitiveProperty("Street",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Piazza La Bomba E Scappa")));
-    address.add(client.getObjectFactory().newPrimitiveProperty("City",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Tollo")));
-    address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
-        client.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
-    addresses.add(address);
-    final ClientPrimitiveValue index = client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(0);
-    final Map<String, ClientValue> params = new LinkedHashMap<String, ClientValue>(2);
-    params.put("addresses", addresses);
-    params.put("index", index);
-    final ODataInvokeRequest<ClientEntity> resetAddressReq =
-        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientEntity.class, params);
-    resetAddressReq.setFormat(contentType);
-    final ClientEntity resetAddressRes = resetAddressReq.execute().getBody();
-    assertNotNull(resetAddressRes);
-    assertEquals(2, resetAddressRes.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    // RefreshDefaultPI
-    builder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Accounts").appendKeySegment(102);
-    entityReq = client.getRetrieveRequestFactory().getEntityRequest(builder.build());
-    entityReq.setFormat(contentType);
-    entity = entityReq.execute().getBody();
-    assertNotNull(entity);
-
-    boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI");
-    assertNotNull(boundOp);
-
-    Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    dateTime.set(2014, 3, 9, 0, 0, 0);
-    final ClientPrimitiveValue newDate = client.getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build();
-    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
-        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientEntity.class,
-            Collections.<String, ClientValue> singletonMap("newDate", newDate));
-    getDefaultPIReq.setFormat(contentType);
-    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
-    assertNotNull(getDefaultPIRes);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
-        getDefaultPIRes.getTypeName().toString());
-    assertEquals(102901,
-        getDefaultPIRes.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
-  }
-
-  @Test
-  public void atomActions() throws EdmPrimitiveTypeException {
-    actions(ContentType.APPLICATION_ATOM_XML);
-  }
-
-  @Test
-  public void jsonActions() throws EdmPrimitiveTypeException {
-    actions(ContentType.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void edmEnabledActions() throws EdmPrimitiveTypeException {
-    // IncreaseRevenue
-    final ClientPrimitiveValue increaseValue = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt64(12L);
-    final ODataInvokeRequest<ClientProperty> increaseRevenueReq =
-        edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
-            edmClient.newURIBuilder().appendSingletonSegment("Company").build(),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.IncreaseRevenue"),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Company"),
-            false,
-            Collections.<String, ClientValue> singletonMap("IncreaseValue", increaseValue));
-    final ClientProperty increaseRevenueRes = increaseRevenueReq.execute().getBody();
-    assertNotNull(increaseRevenueRes);
-    assertTrue(increaseRevenueRes.hasPrimitiveValue());
-
-    // AddAccessRight
-    final ClientEnumValue accessRight = edmClient.getObjectFactory().
-        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "Execute");
-    final ODataInvokeRequest<ClientProperty> getProductDetailsReq =
-        edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
-            edmClient.newURIBuilder().appendEntitySetSegment("Products").appendKeySegment(5).build(),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight"),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Product"),
-            false,
-            Collections.<String, ClientValue> singletonMap("accessRight", accessRight));
-    final ClientProperty getProductDetailsRes = getProductDetailsReq.execute().getBody();
-    assertNotNull(getProductDetailsRes);
-    assertTrue(getProductDetailsRes.hasEnumValue());
-
-    // ResetAddress
-    final ClientCollectionValue<ClientValue> addresses =
-        edmClient.getObjectFactory().
-        newCollectionValue("Collection(Microsoft.Test.OData.Services.ODataWCFService.Address)");
-    final ClientComplexValue address = edmClient.getObjectFactory().
-        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
-    address.add(edmClient.getObjectFactory().newPrimitiveProperty("Street",
-        edmClient.getObjectFactory().newPrimitiveValueBuilder().buildString("Piazza La Bomba E Scappa")));
-    address.add(edmClient.getObjectFactory().newPrimitiveProperty("City",
-        edmClient.getObjectFactory().newPrimitiveValueBuilder().buildString("Tollo")));
-    address.add(edmClient.getObjectFactory().newPrimitiveProperty("PostalCode",
-        edmClient.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
-    addresses.add(address);
-    final ClientPrimitiveValue index = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt32(0);
-    final Map<String, ClientValue> params = new LinkedHashMap<String, ClientValue>(2);
-    params.put("addresses", addresses);
-    params.put("index", index);
-    final Map<String, Object> keys = new HashMap<String, Object>();
-    keys.put("PersonID", 2);
-    final ODataInvokeRequest<ClientEntity> resetAddressReq =
-        edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
-            edmClient.newURIBuilder().appendEntitySetSegment("Customers").appendKeySegment(keys).build(),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.ResetAddress"),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Person"),
-            false,
-            params);
-    final ClientEntity resetAddressRes = resetAddressReq.execute().getBody();
-    assertNotNull(resetAddressRes);
-    assertEquals(2, resetAddressRes.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
-    // RefreshDefaultPI
-    Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    dateTime.set(2014, 3, 9, 0, 0, 0);
-    final ClientPrimitiveValue newDate = edmClient.getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build();
-    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
-        edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
-            edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).build(),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI"),
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Account"),
-            false,
-            Collections.<String, ClientValue> singletonMap("newDate", newDate));
-    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
-    assertNotNull(getDefaultPIRes);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
-        getDefaultPIRes.getTypeName().toString());
-    assertEquals(102901,
-        getDefaultPIRes.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
deleted file mode 100644
index 32ce435..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
+++ /dev/null
@@ -1,415 +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.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import org.apache.olingo.client.api.communication.request.AsyncRequestWrapper;
-import org.apache.olingo.client.api.communication.request.cud.ODataDeleteRequest;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
-import org.apache.olingo.client.api.communication.request.cud.UpdateType;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataDeltaRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.communication.response.AsyncResponseWrapper;
-import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
-import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientCollectionValue;
-import org.apache.olingo.client.api.domain.ClientDelta;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.domain.ClientValue;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
-import org.apache.olingo.client.core.http.DefaultHttpClientFactory;
-import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.http.HttpHeader;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-/**
- * 13.2 Interoperable OData Clients
- * <br />
- * http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html#_Toc372793762
- */
-public class ConformanceTestITCase extends AbstractTestITCase {
-
-  /**
-   * 1. MUST specify the OData-MaxVersion header in requests (section 8.2.6).
-   */
-  @Test
-  public void item1() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-
-    assertEquals("4.0", req.getHeader(HttpHeader.ODATA_MAX_VERSION));
-
-    assertNotNull(req.execute().getBody());
-  }
-
-  /**
-   * 2. MUST specify OData-Version (section 8.1.5) and Content-Type (section 8.1.1) in any request with a payload.
-   */
-  @Test
-  public void item2() {
-    final ClientEntity order = getClient().getObjectFactory().newEntity(
-        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
-
-    final ClientProperty orderId = getClient().getObjectFactory().newPrimitiveProperty("OrderID",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(2000));
-    order.getProperties().add(orderId);
-
-    Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    dateTime.set(2011, 2, 4, 16, 3, 57);
-    final ClientProperty orderDate = getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build());
-    order.getProperties().add(orderDate);
-
-    final ClientProperty shelfLife = getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000001")).build());
-    order.getProperties().add(shelfLife);
-
-    final ClientCollectionValue<ClientValue> orderShelfLifesValue = getClient().getObjectFactory().
-        newCollectionValue("Collection(Duration)");
-    orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000001")).build());
-    orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build());
-    final ClientProperty orderShelfLifes = getClient().getObjectFactory().
-        newCollectionProperty("OrderShelfLifes", orderShelfLifesValue);
-    order.getProperties().add(orderShelfLifes);
-
-    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
-        getClient().newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Orders").build(), order);
-    req.setFormat(ContentType.JSON_FULL_METADATA);
-
-    // check for OData-Version
-    assertEquals("4.0", req.getHeader(HttpHeader.ODATA_VERSION));
-
-    // check for Content-Type
-    assertEquals(
-        ContentType.JSON_FULL_METADATA.toContentTypeString(),
-        req.getHeader("Content-Type"));
-    assertEquals(
-        ContentType.JSON_FULL_METADATA.toContentTypeString(),
-        req.getContentType());
-
-    final ClientEntity created = req.execute().getBody();
-    assertNotNull(created);
-
-    final URI deleteURI = created.getEditLink() == null
-        ? getClient().newURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("Orders").appendKeySegment(2000).build()
-            : created.getEditLink();
-            final ODataDeleteRequest deleteReq = getClient().getCUDRequestFactory().getDeleteRequest(deleteURI);
-            final ODataDeleteResponse deleteRes = deleteReq.execute();
-            assertEquals(204, deleteRes.getStatusCode());
-  }
-
-  /**
-   * 4. MUST follow redirects (section 9.1.5).
-   */
-  @Test
-  public void item4() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("redirect").
-        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-
-    assertEquals("4.0", req.getHeader(HttpHeader.ODATA_MAX_VERSION));
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-    final ClientEntity entity = res.getBody();
-
-    assertNotNull(entity);
-    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
-    assertTrue(entity.getProperty("Home").hasPrimitiveValue());
-    assertEquals("Edm.GeographyPoint", entity.getProperty("Home").getPrimitiveValue().getTypeName());
-  }
-
-  /**
-   * 5. MUST correctly handle next links (section 11.2.5.7).
-   */
-  @Test
-  public void item5() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
-
-    ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
-        getEntitySetRequest(uriBuilder.build());
-    req.setFormat(ContentType.JSON_FULL_METADATA);
-    req.setPrefer(client.newPreferences().maxPageSize(5));
-
-    ODataRetrieveResponse<ClientEntitySet> res = req.execute();
-    ClientEntitySet feed = res.getBody();
-
-    assertNotNull(feed);
-
-    assertEquals(5, feed.getEntities().size());
-    assertNotNull(feed.getNext());
-
-    final URI expected = URI.create(testStaticServiceRootURL + "/People?$skiptoken=5");
-    final URI found = URIUtils.getURI(testStaticServiceRootURL, feed.getNext().toASCIIString());
-
-    assertEquals(expected, found);
-
-    req = client.getRetrieveRequestFactory().getEntitySetRequest(found);
-    req.setFormat(ContentType.JSON_FULL_METADATA);
-
-    res = req.execute();
-    feed = res.getBody();
-
-    assertNotNull(feed);
-  }
-
-  /**
-   * 6. MUST support instances returning properties and navigation properties not specified in metadata (section 11.2).
-   */
-  @Test
-  public void item6() {
-    final Integer id = 2000;
-
-    ClientEntity rowIndex = getClient().getObjectFactory().newEntity(
-        new FullQualifiedName("Microsoft.Test.OData.Services.OpenTypesServiceV4.RowIndex"));
-    getClient().getBinder().add(rowIndex,
-        getClient().getObjectFactory().newPrimitiveProperty("Id",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
-
-    // add property not in metadata
-    getClient().getBinder().add(rowIndex,
-        getClient().getObjectFactory().newPrimitiveProperty("aString",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("string")));
-
-    // add navigation property not in metadata
-    rowIndex.addLink(client.getObjectFactory().newEntityNavigationLink(
-        "Row", URI.create(testOpenTypeServiceRootURL + "/Row(71f7d0dc-ede4-45eb-b421-555a2aa1e58f)")));
-
-    final ODataEntityCreateRequest<ClientEntity> createReq = getClient().getCUDRequestFactory().
-        getEntityCreateRequest(getClient().newURIBuilder(testOpenTypeServiceRootURL).
-            appendEntitySetSegment("RowIndex").build(), rowIndex);
-
-    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
-    assertEquals(201, createRes.getStatusCode());
-
-    final URIBuilder builder = getClient().newURIBuilder(testOpenTypeServiceRootURL).
-        appendEntitySetSegment("RowIndex").appendKeySegment(id);
-
-    rowIndex = read(ContentType.JSON_FULL_METADATA, builder.build());
-    assertNotNull(rowIndex);
-    assertEquals(EdmPrimitiveTypeKind.Int32, rowIndex.getProperty("Id").getPrimitiveValue().getTypeKind());
-    assertEquals(EdmPrimitiveTypeKind.String, rowIndex.getProperty("aString").getPrimitiveValue().getTypeKind());
-    assertNotNull(rowIndex.getNavigationLink("Row"));
-
-    final ODataDeleteResponse deleteRes = getClient().getCUDRequestFactory().
-        getDeleteRequest(rowIndex.getEditLink()).execute();
-    assertEquals(204, deleteRes.getStatusCode());
-  }
-
-  /**
-   * 7. MUST generate PATCH requests for updates, if the client supports updates (section 11.4.3).
-   */
-  @Test
-  public void item7() {
-    final URI uri = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).build();
-
-    final ClientEntity patch = client.getObjectFactory().newEntity(
-        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
-    patch.setEditLink(uri);
-
-    final String newname = "New Name (" + System.currentTimeMillis() + ")";
-    patch.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("FirstName",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString(newname)));
-
-    final ODataEntityUpdateRequest<ClientEntity> req =
-        getClient().getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patch);
-
-    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
-    assertEquals(204, res.getStatusCode());
-
-    final ClientEntity actual = read(ContentType.JSON, uri);
-
-    assertEquals(newname, actual.getProperty("FirstName").getPrimitiveValue().toString());
-  }
-
-  /**
-   * 8. SHOULD support basic authentication as specified in [RFC2617] over HTTPS.
-   * <br />
-   * Unfortunately no service over HTTPs is available yet.
-   */
-  @Test
-  public void item8() {
-    client.getConfiguration().setHttpClientFactory(new BasicAuthHttpClientFactory("odatajclient", "odatajclient"));
-
-    final URIBuilder uriBuilder = client.newURIBuilder(testAuthServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(ContentType.JSON_FULL_METADATA);
-
-    assertNotNull(req.execute().getBody());
-
-    client.getConfiguration().setHttpClientFactory(new DefaultHttpClientFactory());
-  }
-
-  /**
-   * 9. MAY request entity references in place of entities previously returned in the response (section 11.2.7).
-   */
-  @Test
-  public void item9() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Orders").appendKeySegment(8).appendNavigationSegment("CustomerForOrder").
-        appendRefSegment();
-
-    ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(ContentType.JSON_FULL_METADATA);
-
-    ODataRetrieveResponse<ClientEntity> res = req.execute();
-    assertNotNull(res);
-
-    final ClientEntity entity = res.getBody();
-    assertNotNull(entity);
-    assertTrue(entity.getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/Customers(PersonID=1)"));
-
-    final URI referenceURI = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntityIdSegment(entity.getId().toASCIIString()).build();
-
-    req = client.getRetrieveRequestFactory().getEntityRequest(referenceURI);
-    req.setFormat(ContentType.JSON_FULL_METADATA);
-
-    res = req.execute();
-    assertNotNull(res);
-    assertNotNull(res.getBody());
-  }
-
-  /**
-   * 10. MAY support deleted entities, link entities, deleted link entities in a delta response (section 11.3).
-   */
-  @Test
-  public void item10() {
-    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
-        client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").build());
-    req.setPrefer(client.newPreferences().trackChanges());
-
-    final ClientEntitySet customers = req.execute().getBody();
-    assertNotNull(customers);
-    assertNotNull(customers.getDeltaLink());
-
-    final ODataDeltaRequest deltaReq = client.getRetrieveRequestFactory().getDeltaRequest(customers.getDeltaLink());
-    deltaReq.setFormat(ContentType.JSON_FULL_METADATA);
-
-    final ClientDelta delta = deltaReq.execute().getBody();
-    assertNotNull(delta);
-
-    assertNotNull(delta.getDeltaLink());
-    assertTrue(delta.getDeltaLink().isAbsolute());
-    assertEquals(5, delta.getCount(), 0);
-
-    assertEquals(1, delta.getDeletedEntities().size());
-    assertTrue(delta.getDeletedEntities().get(0).getId().isAbsolute());
-    assertTrue(delta.getDeletedEntities().get(0).getId().toASCIIString().endsWith("Customers('ANTON')"));
-
-    assertEquals(1, delta.getAddedLinks().size());
-    assertTrue(delta.getAddedLinks().get(0).getSource().isAbsolute());
-    assertTrue(delta.getAddedLinks().get(0).getSource().toASCIIString().endsWith("Customers('BOTTM')"));
-    assertEquals("Orders", delta.getAddedLinks().get(0).getRelationship());
-
-    assertEquals(1, delta.getDeletedLinks().size());
-    assertTrue(delta.getDeletedLinks().get(0).getSource().isAbsolute());
-    assertTrue(delta.getDeletedLinks().get(0).getSource().toASCIIString().endsWith("Customers('ALFKI')"));
-    assertEquals("Orders", delta.getDeletedLinks().get(0).getRelationship());
-
-    assertEquals(2, delta.getEntities().size());
-    ClientProperty property = delta.getEntities().get(0).getProperty("ContactName");
-    assertNotNull(property);
-    assertTrue(property.hasPrimitiveValue());
-    property = delta.getEntities().get(1).getProperty("ShippingAddress");
-    assertNotNull(property);
-    assertTrue(property.hasComplexValue());
-  }
-
-  /**
-   * 11. MAY support asynchronous responses (section 9.1.3).
-   */
-  @Test
-  public void item11() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("async").appendEntitySetSegment("Orders");
-
-    final ODataEntitySetRequest<ClientEntitySet> req =
-        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
-    req.setFormat(ContentType.JSON_FULL_METADATA);
-
-    final AsyncRequestWrapper<ODataRetrieveResponse<ClientEntitySet>> async =
-        client.getAsyncRequestFactory().<ODataRetrieveResponse<ClientEntitySet>> getAsyncRequestWrapper(req);
-    async.callback(URI.create("http://client.service.it/callback/endpoint"));
-
-    final AsyncResponseWrapper<ODataRetrieveResponse<ClientEntitySet>> responseWrapper = async.execute();
-
-    assertTrue(responseWrapper.isPreferenceApplied());
-    assertTrue(responseWrapper.isDone());
-
-    final ODataRetrieveResponse<ClientEntitySet> res = responseWrapper.getODataResponse();
-    final ClientEntitySet entitySet = res.getBody();
-
-    assertFalse(entitySet.getEntities().isEmpty());
-  }
-
-  /**
-   * 12. MAY support odata.metadata=minimal in a JSON response (see [OData-JSON]).
-   */
-  @Test
-  public void item12() {
-    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
-
-    final ODataEntityRequest<ClientEntity> req =
-        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(ContentType.JSON);
-
-    assertEquals("application/json;odata.metadata=minimal", req.getHeader("Accept"));
-    assertEquals("application/json;odata.metadata=minimal", req.getAccept());
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-    assertTrue(res.getContentType().startsWith("application/json; odata.metadata=minimal"));
-
-    assertNotNull(res.getBody());
-  }
-}


[43/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/MediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/MediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/MediaEntityTestITCase.java
new file mode 100644
index 0000000..84de7eb
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/MediaEntityTestITCase.java
@@ -0,0 +1,183 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.UUID;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
+import org.apache.olingo.client.api.communication.request.cud.UpdateType;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataMediaRequest;
+import org.apache.olingo.client.api.communication.request.streamed.MediaEntityCreateStreamManager;
+import org.apache.olingo.client.api.communication.request.streamed.MediaEntityUpdateStreamManager;
+import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityCreateRequest;
+import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityUpdateRequest;
+import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
+import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreateResponse;
+import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientValuable;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.client.core.ODataClientFactory;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.http.HttpHeader;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class MediaEntityTestITCase extends AbstractTestITCase {
+
+  private void read(final ODataClient client, final ContentType contentType) throws IOException {
+    final URIBuilder builder = client.newURIBuilder(testDemoServiceRootURL).
+        appendEntitySetSegment("Advertisements").
+        appendKeySegment(UUID.fromString("f89dee73-af9f-4cd4-b330-db93c25ff3c7"));
+    final ODataEntityRequest<ClientEntity> entityReq =
+        client.getRetrieveRequestFactory().getEntityRequest(builder.build());
+    entityReq.setFormat(contentType);
+
+    final ClientEntity entity = entityReq.execute().getBody();
+    assertNotNull(entity);
+    assertTrue(entity.isMediaEntity());
+    // cast to workaround JDK 6 bug, fixed in JDK 7
+    assertEquals(EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName().toString(),
+        ((ClientValuable) entity.getProperty("AirDate")).getValue().getTypeName());
+
+    final ODataMediaRequest streamReq = client.getRetrieveRequestFactory().
+        getMediaRequest(entity.getMediaContentSource());
+    final ODataRetrieveResponse<InputStream> streamRes = streamReq.execute();
+    assertEquals(200, streamRes.getStatusCode());
+
+    final byte[] actual = new byte[Integer.parseInt(streamRes.getHeader("Content-Length").iterator().next())];
+    IOUtils.read(streamRes.getBody(), actual, 0, actual.length);
+  }
+
+  @Test
+  public void readAsAtom() throws IOException {
+    read(client, ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void readAsJSON() throws IOException {
+    read(ODataClientFactory.getEdmEnabledClient(testDemoServiceRootURL, ContentType.JSON), ContentType.JSON);
+  }
+
+  @Test
+  public void readAsJSONFull() throws IOException {
+    read(client, ContentType.JSON_FULL_METADATA);
+  }
+
+  private void create(final ContentType contentType) throws IOException {
+    final String random = RandomStringUtils.random(110);
+    final InputStream input = IOUtils.toInputStream(random);
+
+    final URI uri = client.newURIBuilder(testDemoServiceRootURL).appendEntitySetSegment("Advertisements").build();
+    final ODataMediaEntityCreateRequest<ClientEntity> createReq =
+        client.getCUDRequestFactory().getMediaEntityCreateRequest(uri, input);
+    final MediaEntityCreateStreamManager<ClientEntity> streamManager = createReq.payloadManager();
+
+    final ODataMediaEntityCreateResponse<ClientEntity> createRes = streamManager.getResponse();
+    assertEquals(201, createRes.getStatusCode());
+
+    final Collection<String> location = createRes.getHeader(HttpHeader.LOCATION);
+    assertNotNull(location);
+    final URI createdLocation = URI.create(location.iterator().next());
+
+    final ClientEntity changes = client.getObjectFactory().
+        newEntity(new FullQualifiedName("ODataDemo.Advertisement"));
+    changes.getProperties().add(client.getObjectFactory().newPrimitiveProperty("AirDate",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).build()));
+
+    final ODataEntityUpdateRequest<ClientEntity> updateReq = getClient().getCUDRequestFactory().
+        getEntityUpdateRequest(createdLocation, UpdateType.PATCH, changes);
+    updateReq.setFormat(contentType);
+
+    final ODataEntityUpdateResponse<ClientEntity> updateRes = updateReq.execute();
+    assertEquals(204, updateRes.getStatusCode());
+
+    final ODataMediaRequest retrieveReq = client.getRetrieveRequestFactory().
+        getMediaEntityRequest(client.newURIBuilder(createdLocation.toASCIIString()).build());
+    final ODataRetrieveResponse<InputStream> retrieveRes = retrieveReq.execute();
+    assertEquals(200, retrieveRes.getStatusCode());
+
+    final byte[] actual = new byte[Integer.parseInt(retrieveRes.getHeader("Content-Length").iterator().next())];
+    IOUtils.read(retrieveRes.getBody(), actual, 0, actual.length);
+    assertEquals(random, new String(actual));
+  }
+
+  @Test
+  public void createAsAtom() throws IOException {
+    create(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void createAsJSON() throws IOException {
+    create(ContentType.JSON);
+  }
+
+  private void update(final ContentType contentType) throws IOException, EdmPrimitiveTypeException {
+    final URI uri = client.newURIBuilder(testDemoServiceRootURL).
+        appendEntitySetSegment("Advertisements").
+        appendKeySegment(UUID.fromString("f89dee73-af9f-4cd4-b330-db93c25ff3c7")).build();
+
+    final String random = RandomStringUtils.random(124);
+
+    // 1. update providing media content
+    final ODataMediaEntityUpdateRequest<ClientEntity> updateReq = client.getCUDRequestFactory().
+        getMediaEntityUpdateRequest(uri, IOUtils.toInputStream(random));
+    updateReq.setFormat(contentType);
+
+    final MediaEntityUpdateStreamManager<ClientEntity> streamManager = updateReq.payloadManager();
+    final ODataMediaEntityUpdateResponse<ClientEntity> createRes = streamManager.getResponse();
+    assertEquals(204, createRes.getStatusCode());
+
+    // 2. check that media content was effectively uploaded
+    final ODataMediaRequest streamReq = client.getRetrieveRequestFactory().getMediaEntityRequest(uri);
+    final ODataRetrieveResponse<InputStream> streamRes = streamReq.execute();
+    assertEquals(200, streamRes.getStatusCode());
+
+    final byte[] actual = new byte[Integer.parseInt(streamRes.getHeader("Content-Length").iterator().next())];
+    IOUtils.read(streamRes.getBody(), actual, 0, actual.length);
+    assertEquals(random, new String(actual));
+  }
+
+  @Test
+  public void updateAsAtom() throws IOException, EdmPrimitiveTypeException {
+    update(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void updateAsJSON() throws IOException, EdmPrimitiveTypeException {
+    update(ContentType.JSON);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java
new file mode 100644
index 0000000..62906c8
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java
@@ -0,0 +1,146 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.olingo.commons.api.edm.Edm;
+import org.apache.olingo.commons.api.edm.EdmAnnotation;
+import org.apache.olingo.commons.api.edm.EdmEntityContainer;
+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.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmProperty;
+import org.apache.olingo.commons.api.edm.EdmSchema;
+import org.apache.olingo.commons.api.edm.EdmTerm;
+import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.annotation.EdmRecord;
+import org.apache.olingo.commons.core.edm.primitivetype.EdmBoolean;
+import org.junit.Test;
+
+public class MetadataTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void retrieve() throws EdmPrimitiveTypeException {
+    final Edm edm = client.getRetrieveRequestFactory().getMetadataRequest(testStaticServiceRootURL).execute().getBody();
+    assertNotNull(edm);
+
+    final EdmEntityType order = edm.getEntityType(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService", "Order"));
+    assertNotNull(order);
+
+    final EdmProperty orderDate = order.getStructuralProperty("OrderDate");
+    assertNotNull(orderDate);
+    assertEquals("Edm.DateTimeOffset", orderDate.getType().getFullQualifiedName().toString());
+
+    final EdmTerm isBoss = edm.getTerm(new FullQualifiedName(edm.getSchemas().get(0).getNamespace(), "IsBoss"));
+    assertNotNull(isBoss);
+    assertEquals(EdmBoolean.getInstance(), isBoss.getType());
+
+    final EdmEntitySet orders = edm.getSchemas().get(0).getEntityContainer().getEntitySet("Orders");
+    assertNotNull(orders);
+    assertFalse(orders.getAnnotations().isEmpty());
+    assertTrue(orders.getAnnotations().get(0).getExpression().isDynamic());
+    assertTrue(orders.getAnnotations().get(0).getExpression().asDynamic().isRecord());
+    final EdmRecord record = orders.getAnnotations().get(0).getExpression().asDynamic().asRecord();
+    assertNotNull(record);
+    assertEquals(3, record.getPropertyValues().size());
+    assertTrue(record.getPropertyValues().get(0).getValue().isConstant());
+    assertTrue((Boolean) record.getPropertyValues().get(0).getValue().asConstant().getValue().asPrimitive());
+    assertTrue(record.getPropertyValues().get(1).getValue().asDynamic().isCollection());
+    assertEquals(1, record.getPropertyValues().get(1).getValue().asDynamic().asCollection().getItems().size());
+    assertTrue(record.getPropertyValues().get(1).getValue().asDynamic().asCollection().getItems().get(0).isDynamic());
+    assertEquals("OrderID", record.getPropertyValues().get(1).getValue().asDynamic().asCollection().
+        getItems().get(0).asDynamic().asPropertyPath().getValue());
+  }
+
+  @Test
+  public void include() {
+    final Edm edm = client.getRetrieveRequestFactory().getMetadataRequest(testNorthwindRootURL).execute().getBody();
+    assertNotNull(edm);
+
+    final EdmEntityContainer container = edm.getEntityContainer(
+        new FullQualifiedName("ODataWebExperimental.Northwind.Model", "NorthwindEntities"));
+    assertNotNull(container);
+
+    final EdmEntitySet categories = container.getEntitySet("Categories");
+    assertNotNull(categories);
+    assertEquals("NorthwindModel", categories.getEntityType().getNamespace());
+  }
+
+  @Test
+  public void vocabularies() {
+    final Edm edm = client.getRetrieveRequestFactory().
+        getMetadataRequest(testVocabulariesServiceRootURL).execute().getBody();
+    assertNotNull(edm);
+
+    // 1. core
+    final EdmSchema core = edm.getSchema("Org.OData.Core.V1");
+    assertNotNull(core);
+    final EdmSchema coreAlias = edm.getSchema("Core");
+    assertEquals(core, coreAlias);
+
+    final EdmTerm descriptionTerm = edm.getTerm(new FullQualifiedName("Core.Description"));
+    assertNotNull(descriptionTerm);
+    assertEquals(descriptionTerm.getFullQualifiedName(),
+        edm.getTerm(new FullQualifiedName("Org.OData.Core.V1.Description")).getFullQualifiedName());
+
+    final EdmAnnotation description = core.getAnnotation(descriptionTerm);
+    assertNotNull(description);
+    // assertEquals("Core terms needed to write vocabularies",
+    // description.getExpression().asConstant().getValue().asPrimitive().getName());
+    assertEquals("Core terms needed to write vocabularies",
+        description.getExpression().asConstant().getValueAsString());
+
+    final EdmTerm isLanguageDependent = edm.getTerm(new FullQualifiedName("Core.IsLanguageDependent"));
+    assertNotNull(isLanguageDependent);
+    assertTrue(isLanguageDependent.getAppliesTo().contains(EdmProperty.class));
+    assertTrue(isLanguageDependent.getAppliesTo().contains(EdmTerm.class));
+    assertEquals(edm.getTypeDefinition(new FullQualifiedName("Core.Tag")), isLanguageDependent.getType());
+    assertEquals(EdmBoolean.getInstance(), ((EdmTypeDefinition) isLanguageDependent.getType()).getUnderlyingType());
+    assertNotNull(isLanguageDependent.getAnnotation(descriptionTerm));
+
+    final EdmTerm permissions = edm.getTerm(new FullQualifiedName("Core.Permissions"));
+    assertNotNull(permissions);
+    assertTrue(permissions.getType() instanceof EdmEnumType);
+
+    // 2. measures
+    final EdmSchema measures = edm.getSchema("UoM");
+    assertNotNull(measures);
+
+    final EdmTerm scale = edm.getTerm(new FullQualifiedName("UoM.Scale"));
+    assertNotNull(scale);
+
+    final EdmAnnotation requiresTypeInScale = edm.getAnnotation(
+        scale.getFullQualifiedName(), edm.getTerm(new FullQualifiedName("Core.RequiresType")));
+    assertNotNull(requiresTypeInScale);
+    assertEquals("Edm.Decimal", requiresTypeInScale.getExpression().asConstant().getValueAsString());
+
+    // 3. capabilities
+    final EdmTerm deleteRestrictions = edm.getTerm(new FullQualifiedName("Capabilities.DeleteRestrictions"));
+    assertNotNull(deleteRestrictions);
+    assertEquals(deleteRestrictions.getType().getFullQualifiedName(),
+        edm.getComplexType(new FullQualifiedName("Capabilities.DeleteRestrictionsType")).getFullQualifiedName());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/OAuth2TestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/OAuth2TestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/OAuth2TestITCase.java
new file mode 100644
index 0000000..e5f2542
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/OAuth2TestITCase.java
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.fit.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.net.URI;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.client.api.EdmEnabledODataClient;
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.client.core.ODataClientFactory;
+import org.apache.olingo.client.core.http.DefaultHttpClientFactory;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.fit.CXFOAuth2HttpClientFactory;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class OAuth2TestITCase extends AbstractTestITCase {
+
+  private static final URI OAUTH2_GRANT_SERVICE_URI =
+      URI.create("http://localhost:9080/stub/StaticService/oauth2/authorize");
+
+  private static final URI OAUTH2_TOKEN_SERVICE_URI =
+      URI.create("http://localhost:9080/stub/StaticService/oauth2/token");
+
+  private EdmEnabledODataClient _edmClient;
+
+  @BeforeClass
+  public static void enableOAuth2() {
+    client.getConfiguration().setHttpClientFactory(
+        new CXFOAuth2HttpClientFactory(OAUTH2_GRANT_SERVICE_URI, OAUTH2_TOKEN_SERVICE_URI));
+  }
+
+  @AfterClass
+  public static void disableOAuth2() {
+    client.getConfiguration().setHttpClientFactory(new DefaultHttpClientFactory());
+  }
+
+  protected ODataClient getLocalClient() {
+    ODataClient localClient = ODataClientFactory.getClient();
+    localClient.getConfiguration().setHttpClientFactory(
+        new CXFOAuth2HttpClientFactory(OAUTH2_GRANT_SERVICE_URI, OAUTH2_TOKEN_SERVICE_URI));
+    return localClient;
+  }
+
+  protected EdmEnabledODataClient getEdmClient() {
+    if (_edmClient == null) {
+      _edmClient = ODataClientFactory.getEdmEnabledClient(testOAuth2ServiceRootURL, ContentType.JSON);
+      _edmClient.getConfiguration().setHttpClientFactory(
+          new CXFOAuth2HttpClientFactory(OAUTH2_GRANT_SERVICE_URI, OAUTH2_TOKEN_SERVICE_URI));
+    }
+
+    return _edmClient;
+  }
+
+  private void read(final ODataClient client, final ContentType contentType) {
+    final URIBuilder uriBuilder =
+        client.newURIBuilder(testOAuth2ServiceRootURL).appendEntitySetSegment("Orders").appendKeySegment(8);
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    assertEquals(200, res.getStatusCode());
+
+    final String etag = res.getETag();
+    assertTrue(StringUtils.isNotBlank(etag));
+
+    final ClientEntity order = res.getBody();
+    assertEquals(etag, order.getETag());
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Order", order.getTypeName().toString());
+    assertEquals("Edm.Int32", order.getProperty("OrderID").getPrimitiveValue().getTypeName());
+    assertEquals("Edm.DateTimeOffset", order.getProperty("OrderDate").getPrimitiveValue().getTypeName());
+    assertEquals("Edm.Duration", order.getProperty("ShelfLife").getPrimitiveValue().getTypeName());
+    assertEquals("Collection(Edm.Duration)", order.getProperty("OrderShelfLifes").getCollectionValue().getTypeName());
+  }
+
+  @Test
+  public void testOAuth() {
+    try {
+      readAsAtom();
+    } catch (Exception e) {
+      System.out.println("failed for readAsAtom");
+    }
+
+    try {
+      readAsFullJSON();
+    } catch (Exception e) {
+      System.out.println("failed for readAsFullJSON");
+    }
+
+    try {
+      readAsJSON();
+    } catch (Exception e) {
+      System.out.println("failed for readAsJSON");
+    }
+
+    try {
+      createAndDelete();
+    } catch (Exception e) {
+      System.out.println("failed for createAndDelete");
+    }
+  }
+
+  public void readAsAtom() {
+    read(getLocalClient(), ContentType.APPLICATION_ATOM_XML);
+  }
+
+  public void readAsFullJSON() {
+    read(getLocalClient(), ContentType.JSON_FULL_METADATA);
+  }
+
+  public void readAsJSON() {
+    read(getEdmClient(), ContentType.JSON);
+  }
+
+  public void createAndDelete() {
+    createAndDeleteOrder(testOAuth2ServiceRootURL, ContentType.JSON, 1002);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/OpenTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/OpenTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/OpenTypeTestITCase.java
new file mode 100644
index 0000000..e5f213b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/OpenTypeTestITCase.java
@@ -0,0 +1,190 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Calendar;
+import java.util.TimeZone;
+import java.util.UUID;
+
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
+import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
+import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.commons.api.edm.Edm;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.EdmSchema;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class OpenTypeTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void checkOpenTypeEntityTypesExist() {
+    final Edm metadata = getClient().getRetrieveRequestFactory().
+        getMetadataRequest(testOpenTypeServiceRootURL).execute().getBody();
+
+    final EdmSchema schema = metadata.getSchemas().get(0);
+
+    assertTrue(metadata.getEntityType(new FullQualifiedName(schema.getNamespace(), "Row")).isOpenType());
+    assertTrue(metadata.getEntityType(new FullQualifiedName(schema.getNamespace(), "IndexedRow")).isOpenType());
+    assertTrue(metadata.getEntityType(new FullQualifiedName(schema.getNamespace(), "RowIndex")).isOpenType());
+  }
+
+  private ClientEntity readRow(final ContentType contentType, final String uuid) {
+    final URIBuilder builder = getClient().newURIBuilder(testOpenTypeServiceRootURL).
+        appendEntitySetSegment("Row").appendKeySegment(UUID.fromString(uuid));
+    return read(contentType, builder.build());
+  }
+
+  private void read(final ContentType contentType) {
+    ClientEntity row = readRow(contentType, "71f7d0dc-ede4-45eb-b421-555a2aa1e58f");
+    assertEquals(EdmPrimitiveTypeKind.Double, row.getProperty("Double").getPrimitiveValue().getTypeKind());
+    assertEquals(EdmPrimitiveTypeKind.Guid, row.getProperty("Id").getPrimitiveValue().getTypeKind());
+
+    row = readRow(contentType, "672b8250-1e6e-4785-80cf-b94b572e42b3");
+    assertEquals(EdmPrimitiveTypeKind.Decimal, row.getProperty("Decimal").getPrimitiveValue().getTypeKind());
+  }
+
+  @Test
+  public void readAsAtom() {
+    read(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void readAsJSON() {
+    read(ContentType.JSON_FULL_METADATA);
+  }
+
+  private void cud(final ContentType contentType) {
+    final Integer id = 1426;
+
+    ClientEntity rowIndex = getClient().getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.OpenTypesServiceV4.RowIndex"));
+    getClient().getBinder().add(rowIndex,
+        getClient().getObjectFactory().newPrimitiveProperty("Id",
+            getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
+    getClient().getBinder().add(rowIndex,
+        getClient().getObjectFactory().newPrimitiveProperty("aString",
+            getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("string")));
+    getClient().getBinder().add(rowIndex,
+        getClient().getObjectFactory().newPrimitiveProperty("aBoolean",
+            getClient().getObjectFactory().newPrimitiveValueBuilder().buildBoolean(true)));
+    getClient().getBinder().add(rowIndex,
+        getClient().getObjectFactory().newPrimitiveProperty("aDouble",
+            getClient().getObjectFactory().newPrimitiveValueBuilder().buildDouble(1.5D)));
+    getClient().getBinder().add(rowIndex,
+        getClient().getObjectFactory().newPrimitiveProperty("aByte",
+            getClient().getObjectFactory().newPrimitiveValueBuilder().
+            setType(EdmPrimitiveTypeKind.SByte).setValue(Byte.MAX_VALUE).
+            build()));
+    getClient().getBinder().add(rowIndex,
+        getClient().getObjectFactory().newPrimitiveProperty("aDate",
+            getClient().getObjectFactory().newPrimitiveValueBuilder().
+            setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).
+            build()));
+    getClient().getBinder().add(rowIndex,
+        getClient().getObjectFactory().newPrimitiveProperty("aDate",
+            getClient().getObjectFactory().newPrimitiveValueBuilder().
+            setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).
+            build()));
+    getClient().getBinder().add(rowIndex,
+        getClient().getObjectFactory().newEnumProperty("aColor", getClient().getObjectFactory().
+            newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Blue")));
+
+    final ClientComplexValue contactDetails = getClient().getObjectFactory().newComplexValue(
+        "Microsoft.Test.OData.Services.OpenTypesServiceV4.ContactDetails");
+    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("FirstContacted",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildBinary("text".getBytes())));
+    Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT+00:01"));
+    dateTime.set(2014, 3, 5, 5, 5, 5);
+    dateTime.set(Calendar.MILLISECOND, 1);
+    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("LastContacted",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build()));
+    Calendar date = Calendar.getInstance();
+    date.set(2001, 3, 5);
+    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Contacted",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Date).setValue(date).build()));
+    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("GUID",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildGuid(UUID.randomUUID())));
+    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("PreferedContactTime",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Duration).setValue(0).build()));
+    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Byte",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.Byte).setValue(24).build()));
+    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("SignedByte",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
+        setType(EdmPrimitiveTypeKind.SByte).setValue(Byte.MAX_VALUE).build()));
+    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Double",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildDouble(Double.MAX_VALUE)));
+    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Single",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildSingle(Float.MAX_VALUE)));
+    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Short",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt16(Short.MAX_VALUE)));
+    contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("Int",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(Integer.MAX_VALUE)));
+    getClient().getBinder().add(rowIndex,
+        getClient().getObjectFactory().newComplexProperty("aContact", contactDetails));
+
+    final ODataEntityCreateRequest<ClientEntity> createReq = getClient().getCUDRequestFactory().
+        getEntityCreateRequest(getClient().newURIBuilder(testOpenTypeServiceRootURL).
+            appendEntitySetSegment("RowIndex").build(), rowIndex);
+    createReq.setFormat(contentType);
+    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
+    assertEquals(201, createRes.getStatusCode());
+
+    final URIBuilder builder = getClient().newURIBuilder(testOpenTypeServiceRootURL).
+        appendEntitySetSegment("RowIndex").appendKeySegment(id);
+    rowIndex = read(contentType, builder.build());
+    assertNotNull(rowIndex);
+    assertEquals(EdmPrimitiveTypeKind.Int32, rowIndex.getProperty("Id").getPrimitiveValue().getTypeKind());
+    assertEquals(EdmPrimitiveTypeKind.String, rowIndex.getProperty("aString").getPrimitiveValue().getTypeKind());
+    assertEquals(EdmPrimitiveTypeKind.Boolean, rowIndex.getProperty("aBoolean").getPrimitiveValue().getTypeKind());
+    assertTrue(rowIndex.getProperty("aDouble").hasPrimitiveValue());
+    assertTrue(rowIndex.getProperty("aByte").hasPrimitiveValue());
+    assertTrue(rowIndex.getProperty("aDate").hasPrimitiveValue());
+    assertNotNull(rowIndex.getProperty("aColor"));
+    assertTrue(rowIndex.getProperty("aContact").hasComplexValue());
+    assertTrue(rowIndex.getProperty("aContact").getComplexValue().get("SignedByte").hasPrimitiveValue());
+
+    final ODataDeleteResponse deleteRes = getClient().getCUDRequestFactory().
+        getDeleteRequest(rowIndex.getEditLink()).execute();
+    assertEquals(204, deleteRes.getStatusCode());
+  }
+
+  @Test
+  public void cudAsAtom() {
+    cud(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void cudAsJSON() {
+    cud(ContentType.JSON_FULL_METADATA);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/OperationImportInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/OperationImportInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/OperationImportInvokeTestITCase.java
new file mode 100644
index 0000000..f083365
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/OperationImportInvokeTestITCase.java
@@ -0,0 +1,294 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.olingo.client.api.communication.request.invoke.ClientNoContent;
+import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class OperationImportInvokeTestITCase extends AbstractTestITCase {
+
+  private void functionImports(final ContentType contentType) throws EdmPrimitiveTypeException {
+    // GetDefaultColor
+    final ODataInvokeRequest<ClientProperty> defaultColorReq = getClient().getInvokeRequestFactory().
+        getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
+            appendOperationCallSegment("GetDefaultColor").build(), ClientProperty.class);
+    defaultColorReq.setFormat(contentType);
+    final ClientProperty defaultColor = defaultColorReq.execute().getBody();
+    assertNotNull(defaultColor);
+    assertTrue(defaultColor.hasEnumValue());
+    assertEquals("Red", defaultColor.getEnumValue().getValue());
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Color", defaultColor.getEnumValue().getTypeName());
+
+    // GetPerson2
+    final ClientPrimitiveValue city = getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("London");
+
+    final ODataInvokeRequest<ClientEntity> person2Req = getClient().getInvokeRequestFactory().
+        getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
+            appendOperationCallSegment("GetPerson2").build(), ClientEntity.class,
+            Collections.<String, ClientValue> singletonMap("city", city));
+    person2Req.setFormat(contentType);
+    final ClientEntity person2 = person2Req.execute().getBody();
+    assertNotNull(person2);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", person2.getTypeName().toString());
+    assertEquals(1, person2.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    // GetPerson
+    final ClientComplexValue address = getClient().getObjectFactory().
+        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
+    address.add(client.getObjectFactory().newPrimitiveProperty("Street",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("1 Microsoft Way")));
+    address.add(client.getObjectFactory().newPrimitiveProperty("City",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("London")));
+    address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("98052")));
+
+    final ODataInvokeRequest<ClientEntity> personReq = getClient().getInvokeRequestFactory().
+        getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
+            appendOperationCallSegment("GetPerson").build(), ClientEntity.class,
+            Collections.<String, ClientValue> singletonMap("address", address));
+    personReq.setFormat(contentType);
+    final ClientEntity person = personReq.execute().getBody();
+    assertNotNull(person);
+    assertEquals(person2, person);
+
+    // GetAllProducts
+    final ODataInvokeRequest<ClientEntitySet> productsReq = getClient().getInvokeRequestFactory()
+        .getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
+            appendOperationCallSegment("GetAllProducts").build(), ClientEntitySet.class);
+    productsReq.setFormat(contentType);
+    final ClientEntitySet products = productsReq.execute().getBody();
+    assertNotNull(products);
+    assertEquals(5, products.getEntities().size());
+
+    // GetProductsByAccessLevel
+    final ClientEnumValue accessLevel = getClient().getObjectFactory().
+        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "None");
+
+    final ODataInvokeRequest<ClientProperty> prodByALReq = getClient().getInvokeRequestFactory().
+        getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
+            appendOperationCallSegment("GetProductsByAccessLevel").build(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("accessLevel", accessLevel));
+    prodByALReq.setFormat(contentType);
+    final ClientProperty prodByAL = prodByALReq.execute().getBody();
+    assertNotNull(prodByAL);
+    assertTrue(prodByAL.hasCollectionValue());
+    assertEquals(5, prodByAL.getCollectionValue().size());
+    assertTrue(prodByAL.getCollectionValue().asJavaCollection().contains("Car"));
+  }
+
+  @Test
+  public void atomFunctionImports() throws EdmPrimitiveTypeException {
+    functionImports(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonFunctionImports() throws EdmPrimitiveTypeException {
+    functionImports(ContentType.JSON_FULL_METADATA);
+  }
+
+  @Test
+  public void edmEnabledFunctionImports() throws EdmPrimitiveTypeException {
+    // GetDefaultColor
+    final ODataInvokeRequest<ClientProperty> defaultColorReq = edmClient.getInvokeRequestFactory().
+        getFunctionImportInvokeRequest("GetDefaultColor");
+    final ClientProperty defaultColor = defaultColorReq.execute().getBody();
+    assertNotNull(defaultColor);
+    assertTrue(defaultColor.hasEnumValue());
+    assertEquals("Red", defaultColor.getEnumValue().getValue());
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Color", defaultColor.getEnumValue().getTypeName());
+
+    // GetPerson2
+    final ClientPrimitiveValue city =
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("London");
+    final ODataInvokeRequest<ClientEntity> person2Req = edmClient.getInvokeRequestFactory().
+        getFunctionImportInvokeRequest(
+            "GetPerson2", Collections.<String, ClientValue> singletonMap("city", city));
+    final ClientEntity person2 = person2Req.execute().getBody();
+    assertNotNull(person2);
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", person2.getTypeName().toString());
+    assertEquals(1, person2.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
+
+    // GetPerson
+    final ClientComplexValue address = getClient().getObjectFactory().
+        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
+    address.add(client.getObjectFactory().newPrimitiveProperty("Street",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("1 Microsoft Way")));
+    address.add(client.getObjectFactory().newPrimitiveProperty("City",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("London")));
+    address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("98052")));
+
+    final ODataInvokeRequest<ClientEntity> personReq = edmClient.getInvokeRequestFactory().
+        getFunctionImportInvokeRequest(
+            "GetPerson", Collections.<String, ClientValue> singletonMap("address", address));
+    final ClientEntity person = personReq.execute().getBody();
+    assertNotNull(person);
+    assertEquals(person2, person);
+
+    // GetAllProducts
+    final ODataInvokeRequest<ClientEntitySet> productsReq = edmClient.getInvokeRequestFactory().
+        getFunctionImportInvokeRequest("GetAllProducts");
+    final ClientEntitySet products = productsReq.execute().getBody();
+    assertNotNull(products);
+    assertEquals(5, products.getEntities().size());
+
+    // GetProductsByAccessLevel
+    final ClientEnumValue accessLevel = getClient().getObjectFactory().
+        newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "None");
+
+    final ODataInvokeRequest<ClientProperty> prodByALReq = edmClient.getInvokeRequestFactory().
+        getFunctionImportInvokeRequest(
+            "GetProductsByAccessLevel",
+            Collections.<String, ClientValue> singletonMap("accessLevel", accessLevel));
+    final ClientProperty prodByAL = prodByALReq.execute().getBody();
+    assertNotNull(prodByAL);
+    assertTrue(prodByAL.hasCollectionValue());
+    assertEquals(5, prodByAL.getCollectionValue().size());
+    assertTrue(prodByAL.getCollectionValue().asJavaCollection().contains("Car"));
+  }
+
+  private void actionImports(final ContentType contentType) {
+    // Discount
+    final ClientPrimitiveValue percentage = getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(22);
+    final ODataInvokeRequest<ClientNoContent> discountReq = getClient().getInvokeRequestFactory().
+        getActionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
+            appendOperationCallSegment("Discount").build(), ClientNoContent.class,
+            Collections.<String, ClientValue> singletonMap("percentage", percentage));
+    discountReq.setFormat(contentType);
+    final ClientNoContent discount = discountReq.execute().getBody();
+    assertNotNull(discount);
+
+    // ResetBossAddress
+    final ClientComplexValue address = getClient().getObjectFactory().
+        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
+    address.add(client.getObjectFactory().newPrimitiveProperty("Street",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Via Le Mani Dal Naso, 123")));
+    address.add(client.getObjectFactory().newPrimitiveProperty("City",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Tollo")));
+    address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
+
+    final ODataInvokeRequest<ClientProperty> resetBossAddressReq = getClient().getInvokeRequestFactory().
+        getActionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
+            appendOperationCallSegment("ResetBossAddress").build(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("address", address));
+    resetBossAddressReq.setFormat(contentType);
+    final ClientProperty resetBossAddress = resetBossAddressReq.execute().getBody();
+    assertNotNull(resetBossAddress);
+    assertEquals(address, resetBossAddress.getComplexValue());
+  }
+
+  @Test
+  public void atomActionImports() {
+    actionImports(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonActionImports() {
+    actionImports(ContentType.JSON_FULL_METADATA);
+  }
+
+  @Test
+  public void edmEnabledActionImports() {
+    // Discount
+    final ClientPrimitiveValue percentage = getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(22);
+    final ODataInvokeRequest<ClientNoContent> discountReq = edmClient.getInvokeRequestFactory().
+        getActionImportInvokeRequest(
+            "Discount", Collections.<String, ClientValue> singletonMap("percentage", percentage));
+    final ClientNoContent discount = discountReq.execute().getBody();
+    assertNotNull(discount);
+
+    // ResetBossAddress
+    final ClientComplexValue address = getClient().getObjectFactory().
+        newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
+    address.add(client.getObjectFactory().newPrimitiveProperty("Street",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Via Le Mani Dal Naso, 123")));
+    address.add(client.getObjectFactory().newPrimitiveProperty("City",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("Tollo")));
+    address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
+
+    final ODataInvokeRequest<ClientProperty> resetBossAddressReq = edmClient.getInvokeRequestFactory().
+        getActionImportInvokeRequest(
+            "ResetBossAddress", Collections.<String, ClientValue> singletonMap("address", address));
+    final ClientProperty resetBossAddress = resetBossAddressReq.execute().getBody();
+    assertNotNull(resetBossAddress);
+    assertEquals(address.getTypeName(), resetBossAddress.getComplexValue().getTypeName());
+  }
+
+  private void bossEmails(final ContentType contentType) {
+    // ResetBossEmail
+    final ClientCollectionValue<ClientValue> emails =
+        getClient().getObjectFactory().newCollectionValue("Collection(Edm.String)");
+    emails.add(getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("first@olingo.apache.org"));
+    emails.add(getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("second@olingo.apache.org"));
+    ODataInvokeRequest<ClientProperty> bossEmailsReq = getClient().getInvokeRequestFactory().
+        getActionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
+            appendOperationCallSegment("ResetBossEmail").build(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("emails", emails));
+    bossEmailsReq.setFormat(contentType);
+    final ClientProperty bossEmails = bossEmailsReq.execute().getBody();
+    assertNotNull(bossEmails);
+    assertTrue(bossEmails.hasCollectionValue());
+    assertEquals(2, bossEmails.getCollectionValue().size());
+
+    final Map<String, ClientValue> params = new LinkedHashMap<String, ClientValue>(2);
+    params.put("start", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(0));
+    params.put("count", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(100));
+    bossEmailsReq = getClient().getInvokeRequestFactory().getFunctionInvokeRequest(
+        getClient().newURIBuilder(testStaticServiceRootURL).
+        appendOperationCallSegment("GetBossEmails").build(), ClientProperty.class, params);
+    bossEmailsReq.setFormat(contentType);
+    final ClientProperty bossEmailsViaGET = bossEmailsReq.execute().getBody();
+    assertNotNull(bossEmailsViaGET);
+    assertTrue(bossEmailsViaGET.hasCollectionValue());
+    assertEquals(2, bossEmailsViaGET.getCollectionValue().size());
+    assertEquals(bossEmails.getCollectionValue().asJavaCollection(),
+        bossEmailsViaGET.getCollectionValue().asJavaCollection());
+  }
+
+  @Test
+  public void atomBossEmails() throws EdmPrimitiveTypeException {
+    bossEmails(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonBossEmails() throws EdmPrimitiveTypeException {
+    bossEmails(ContentType.JSON_FULL_METADATA);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/PropertyTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/PropertyTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/PropertyTestITCase.java
new file mode 100644
index 0000000..e16d9ea
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/PropertyTestITCase.java
@@ -0,0 +1,211 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.communication.request.cud.ODataDeleteRequest;
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
+import org.apache.olingo.client.api.communication.request.cud.ODataPropertyUpdateRequest;
+import org.apache.olingo.client.api.communication.request.cud.UpdateType;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
+import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
+import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
+import org.apache.olingo.client.api.communication.response.ODataPropertyUpdateResponse;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValuable;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.apache.olingo.commons.api.http.HttpMethod;
+import org.junit.Test;
+
+public class PropertyTestITCase extends AbstractTestITCase {
+
+  private void _enum(final ODataClient client, final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Products").appendKeySegment(5).appendPropertySegment("CoverColors");
+    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
+        getPropertyRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final ClientProperty prop = req.execute().getBody();
+    assertNotNull(prop);
+    // cast to workaround JDK 6 bug, fixed in JDK 7
+    assertEquals("Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)",
+        ((ClientValuable) prop).getValue().getTypeName());
+  }
+
+  @Test
+  public void enumFromXML() {
+    _enum(client, ContentType.APPLICATION_XML);
+  }
+
+  @Test
+  public void enumFromJSON() {
+    _enum(edmClient, ContentType.JSON);
+  }
+
+  @Test
+  public void enumFromFullJSON() {
+    _enum(client, ContentType.JSON_FULL_METADATA);
+  }
+
+  private void geospatial(final ODataClient client, final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("Home");
+    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
+        getPropertyRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final ClientProperty prop = req.execute().getBody();
+    assertNotNull(prop);
+    // cast to workaround JDK 6 bug, fixed in JDK 7
+    assertEquals("Edm.GeographyPoint", ((ClientValuable) prop).getValue().getTypeName());
+  }
+
+  @Test
+  public void geospatialFromXML() {
+    geospatial(client, ContentType.APPLICATION_XML);
+  }
+
+  @Test
+  public void geospatialFromJSON() {
+    geospatial(edmClient, ContentType.JSON);
+  }
+
+  @Test
+  public void geospatialFromFullJSON() {
+    geospatial(client, ContentType.JSON_FULL_METADATA);
+  }
+
+  private void complex(final ODataClient client, final ContentType contentType) {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(2).appendPropertySegment("HomeAddress");
+    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
+        getPropertyRequest(uriBuilder.build());
+    req.setFormat(contentType);
+
+    final ClientProperty prop = req.execute().getBody();
+    assertNotNull(prop);
+    // cast to workaround JDK 6 bug, fixed in JDK 7
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Address",
+        ((ClientValuable) prop).getValue().getTypeName());
+  }
+
+  @Test
+  public void complexFromXML() {
+    complex(client, ContentType.APPLICATION_XML);
+  }
+
+  @Test
+  public void complexFromJSON() {
+    complex(edmClient, ContentType.JSON);
+  }
+
+  @Test
+  public void complexFromFullJSON() {
+    complex(client, ContentType.JSON_FULL_METADATA);
+  }
+
+  private void updateComplexProperty(final ContentType contentType, final UpdateType type)
+          throws IOException {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).appendPropertySegment("HomeAddress");
+
+    ODataPropertyRequest<ClientProperty> retrieveReq =
+        client.getRetrieveRequestFactory().getPropertyRequest(uriBuilder.build());
+    retrieveReq.setFormat(contentType);
+
+    ODataRetrieveResponse<ClientProperty> retrieveRes = retrieveReq.execute();
+    assertEquals(200, retrieveRes.getStatusCode());
+    ClientProperty oldAddress = retrieveRes.getBody();
+
+    ClientProperty homeAddress = client.getObjectFactory().newComplexProperty("HomeAddress",
+        client.getObjectFactory().newComplexValue(retrieveRes.getBody().getComplexValue().getTypeName()));
+
+    final String cityName = "Pescara";
+    homeAddress.getComplexValue().add(client.getObjectFactory().
+        newPrimitiveProperty("City", client.getObjectFactory().newPrimitiveValueBuilder().buildString(cityName)));
+
+    final ODataPropertyUpdateRequest updateReq = client.getCUDRequestFactory().
+        getPropertyComplexValueUpdateRequest(uriBuilder.build(), type, homeAddress);
+    if (client.getConfiguration().isUseXHTTPMethod()) {
+      assertEquals(HttpMethod.POST, updateReq.getMethod());
+    } else {
+      assertEquals(type.getMethod(), updateReq.getMethod());
+    }
+    updateReq.setFormat(contentType);
+
+    final ODataPropertyUpdateResponse updateRes = updateReq.execute();
+    assertEquals(204, updateRes.getStatusCode());
+
+    retrieveReq = client.getRetrieveRequestFactory().getPropertyRequest(uriBuilder.build());
+    retrieveReq.setFormat(contentType);
+
+    retrieveRes = retrieveReq.execute();
+    assertEquals(200, retrieveRes.getStatusCode());
+
+    homeAddress = retrieveRes.getBody();
+    assertEquals(cityName, homeAddress.getComplexValue().get("City").getPrimitiveValue().toString());
+
+    //
+    final ODataPropertyUpdateRequest resetRequest = client.getCUDRequestFactory().
+            getPropertyComplexValueUpdateRequest(uriBuilder.build(), type, oldAddress);
+    assertEquals(204, resetRequest.execute().getStatusCode());
+  }
+
+  @Test
+  public void patchComplexPropertyAsJSON() throws IOException {
+    updateComplexProperty(ContentType.JSON_FULL_METADATA, UpdateType.PATCH);
+  }
+
+  @Test
+  public void createAndDelete() {
+    // 1. create
+    final ClientEntity category = client.getObjectFactory().newEntity(null);
+    category.setId(client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Categories").appendKeySegment(1).build());
+
+    final URIBuilder createBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Products").appendKeySegment(0).appendNavigationSegment("Categories").
+        appendRefSegment();
+    final ODataEntityCreateRequest<ClientEntity> createReq = client.getCUDRequestFactory().
+        getEntityCreateRequest(createBuilder.build(), category);
+
+    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
+    assertEquals(204, createRes.getStatusCode());
+
+    // 2. delete
+    final URIBuilder deleteBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Products").appendKeySegment(0).appendNavigationSegment("Categories").
+        appendKeySegment(1).appendRefSegment();
+    final ODataDeleteRequest deleteReq = client.getCUDRequestFactory().
+        getDeleteRequest(deleteBuilder.build());
+
+    final ODataDeleteResponse deleteRes = deleteReq.execute();
+    assertEquals(204, deleteRes.getStatusCode());
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/PropertyValueTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/PropertyValueTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/PropertyValueTestITCase.java
new file mode 100644
index 0000000..12bc827
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/PropertyValueTestITCase.java
@@ -0,0 +1,138 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.client.api.communication.ODataClientErrorException;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValuable;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class PropertyValueTestITCase extends AbstractTestITCase {
+
+  @Test
+  public void retrieveIntPropertyValueTest() throws EdmPrimitiveTypeException {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("PersonID");
+    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
+    req.setFormat(ContentType.TEXT_PLAIN);
+    assertEquals("5", req.execute().getBody().toString());
+  }
+
+  @Test
+  public void retrieveBooleanPropertyValueTest() throws EdmPrimitiveTypeException {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("IsRegistered");
+    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
+    req.setFormat(ContentType.TEXT_PLAIN);
+    assertEquals("true", req.execute().getBody().toString());
+  }
+
+  @Test
+  public void retrieveStringPropertyValueTest() throws EdmPrimitiveTypeException {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("FirstName");
+    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
+    req.setFormat(ContentType.TEXT_PLAIN);
+    assertEquals("Peter", req.execute().getBody().toString());
+  }
+
+  @Test
+  public void retrieveDatePropertyValueTest() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Orders").appendKeySegment(8).appendPropertySegment("OrderDate");
+    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
+    req.setFormat(ContentType.TEXT_PLAIN);
+    final ClientPrimitiveValue property = req.execute().getBody();
+    assertEquals("2011-03-04T16:03:57Z", property.toString());
+  }
+
+  @Test
+  public void retrieveDecimalPropertyValueTest() throws EdmPrimitiveTypeException {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("Height");
+    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
+    req.setFormat(ContentType.TEXT_PLAIN);
+    final ClientPrimitiveValue property = req.execute().getBody();
+    assertEquals("179", property.toString());
+  }
+
+  @Test
+  public void retrieveBinaryPropertyValueTest() throws IOException {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("PDC");
+    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
+    req.setFormat(ContentType.TEXT_PLAIN);
+    final ClientPrimitiveValue property = req.execute().getBody();
+    assertEquals("fi653p3+MklA/LdoBlhWgnMTUUEo8tEgtbMXnF0a3CUNL9BZxXpSRiD9ebTnmNR0zWPjJ"
+        + "VIDx4tdmCnq55XrJh+RW9aI/b34wAogK3kcORw=", property.toString());
+  }
+
+  @Test(expected = ODataClientErrorException.class)
+  public void retrieveBinaryPropertyValueTestWithAtom() throws IOException {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("PDC");
+    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
+    req.setAccept(ContentType.APPLICATION_ATOM_XML.toContentTypeString());
+    req.execute().getBody();
+  }
+
+  @Test(expected = ODataClientErrorException.class)
+  public void retrieveBinaryPropertyValueTestWithXML() throws IOException {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("PDC");
+    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
+    req.setAccept(ContentType.APPLICATION_XML.toContentTypeString());
+    req.execute().getBody();
+  }
+
+  @Test
+  public void retrieveCollectionPropertyValueTest() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("Numbers");
+    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
+        getPropertyRequest(uriBuilder.build());
+    req.setFormat(ContentType.APPLICATION_XML);
+    final ClientProperty property = req.execute().getBody();
+    // cast to workaround JDK 6 bug, fixed in JDK 7
+    assertTrue(((ClientValuable) property).getValue().isCollection());
+    assertEquals("555-555-5555", property.getCollectionValue().iterator().next().asPrimitive().toString());
+  }
+
+  @Test
+  public void retrieveNullPropertyValueTest() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("HomeAddress");
+    final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
+    req.setFormat(ContentType.TEXT_PLAIN);
+    final ClientPrimitiveValue property = req.execute().getBody();
+    assertTrue(StringUtils.isBlank(property.toString()));
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/QueryOptionsTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/QueryOptionsTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/QueryOptionsTestITCase.java
new file mode 100644
index 0000000..cd937ab
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/QueryOptionsTestITCase.java
@@ -0,0 +1,246 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.uri.QueryOption;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+/**
+ * This is the unit test class to check for query options.
+ */
+public class QueryOptionsTestITCase extends AbstractTestITCase {
+
+  /**
+   * Test <tt>$expand</tt>.
+   */
+  public void expand() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Orders");
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+
+    final ClientEntity customer = req.execute().getBody();
+    assertTrue(customer.getNavigationLink("Orders") instanceof ClientInlineEntitySet);
+  }
+
+  @Test
+  public void expandWithFilter() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).
+        expandWithOptions("Orders", Collections.<QueryOption, Object> singletonMap(
+            QueryOption.FILTER, getClient().getFilterFactory().gt("OrderID", 7).build()));
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+
+    final ClientEntity customer = req.execute().getBody();
+    assertTrue(customer.getNavigationLink("Orders") instanceof ClientInlineEntitySet);
+  }
+
+  /**
+   * Test <tt>$filter</tt> and <tt>$orderby</tt>.
+   *
+   * @see org.apache.olingo.fit.base.FilterFactoryTestITCase for more tests.
+   */
+  @Test
+  public void filterOrderby() throws EdmPrimitiveTypeException {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").filter("(PersonID lt 3)");
+
+    // 1. check that filtered entity set looks as expected
+    ODataEntitySetRequest<ClientEntitySet> req =
+        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+
+    ClientEntitySet feed = req.execute().getBody();
+    assertNotNull(feed);
+    assertEquals(2, feed.getEntities().size());
+
+    // 2. extract PersonID values - sorted ASC by default
+    final List<Integer> former = new ArrayList<Integer>(2);
+    for (ClientEntity entity : feed.getEntities()) {
+      final Integer personID = entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class);
+      assertTrue(personID < 3);
+      former.add(personID);
+    }
+
+    // 3. add orderby clause to filter above
+    req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.orderBy("PersonID desc").build());
+
+    feed = req.execute().getBody();
+    assertNotNull(feed);
+    assertEquals(2, feed.getEntities().size());
+
+    // 4. extract again VIN value - now they were required to be sorted DESC
+    final List<Integer> latter = new ArrayList<Integer>(2);
+    for (ClientEntity entity : feed.getEntities()) {
+      final Integer personID = entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class);
+      assertTrue(personID < 3);
+      latter.add(personID);
+    }
+
+    // 5. reverse latter and expect to be equal to former
+    Collections.reverse(latter);
+    assertEquals(former, latter);
+  }
+
+  /**
+   * Test <tt>$format</tt>.
+   */
+  @Test
+  public void format() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).format("json");
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    req.setFormat(ContentType.APPLICATION_ATOM_XML);
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    assertNotNull(res);
+    assertTrue(res.getContentType().replaceAll(" ", "").
+        startsWith(ContentType.JSON.toContentTypeString()));
+  }
+
+  /**
+   * Test <tt>$skip</tt>.
+   */
+  public void skip() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
+
+    // 1. check that filtered entity set looks as expected
+    final ODataEntitySetRequest<ClientEntitySet> req =
+        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.skip(2).build());
+
+    final ClientEntitySet feed = req.execute().getBody();
+    assertEquals(3, feed.getEntities().size());
+  }
+
+  /**
+   * Test <tt>$top</tt>.
+   */
+  public void top() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
+
+    // 1. check that filtered entity set looks as expected
+    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
+        getEntitySetRequest(uriBuilder.top(2).build());
+
+    final ClientEntitySet feed = req.execute().getBody();
+    assertEquals(2, feed.getEntities().size());
+  }
+
+  /**
+   * Test <tt>$skiptoken</tt>.
+   */
+  @Test
+  public void skiptoken() throws EdmPrimitiveTypeException {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL);
+    uriBuilder.appendEntitySetSegment("People").skipToken("5");
+
+    final ODataEntitySetRequest<ClientEntitySet> req =
+        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+
+    final ClientEntitySet feed = req.execute().getBody();
+    assertNotNull(feed);
+    assertEquals(1, feed.getEntities().size());
+
+    for (ClientEntity entity : feed.getEntities()) {
+      assertTrue(entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class) > 5);
+    }
+  }
+
+  /**
+   * Test <tt>$inlinecount</tt>.
+   */
+  @Test
+  public void count() {
+    final URIBuilder uriBuilder =
+        client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").count(true);
+
+    final ODataEntitySetRequest<ClientEntitySet> req =
+        client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
+
+    final ClientEntitySet feed = req.execute().getBody();
+    assertNotNull(feed);
+    assertEquals(Integer.valueOf(feed.getEntities().size()), feed.getCount());
+  }
+
+  /**
+   * Test <tt>$select</tt>.
+   */
+  @Test
+  public void select() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("Customers").appendKeySegment(1).select("PersonID,Orders").expand("Orders");
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+
+    final ClientEntity customer = req.execute().getBody();
+    assertEquals(1, customer.getProperties().size());
+    assertEquals(1, customer.getNavigationLinks().size());
+    assertTrue((customer.getNavigationLinks().get(0) instanceof ClientInlineEntitySet));
+  }
+
+  @Test
+  public void issue253() {
+    final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("relatedEntitySelect").appendEntitySetSegment("Customers").appendKeySegment(1).
+        expandWithSelect("Orders", "OrderID", "OrderDetails");
+
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    assertEquals(200, res.getStatusCode());
+  }
+
+  @Test
+  public void search() {
+    final URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).
+        appendEntitySetSegment("People").search(client.getSearchFactory().
+            or(client.getSearchFactory().literal("Bob"), client.getSearchFactory().literal("Jill")));
+
+    final ODataEntitySetRequest<ClientEntitySet> req =
+        client.getRetrieveRequestFactory().getEntitySetRequest(builder.build());
+
+    final ODataRetrieveResponse<ClientEntitySet> res = req.execute();
+    assertEquals(200, res.getStatusCode());
+    assertFalse(res.getBody().getEntities().isEmpty());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/ServiceDocumentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/ServiceDocumentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/ServiceDocumentTestITCase.java
new file mode 100644
index 0000000..10beb8b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/ServiceDocumentTestITCase.java
@@ -0,0 +1,63 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+
+import java.net.URI;
+
+import org.apache.olingo.client.api.communication.request.retrieve.ODataServiceDocumentRequest;
+import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class ServiceDocumentTestITCase extends AbstractTestITCase {
+
+  private void retrieveServiceDocument(final ContentType contentType) {
+    final ODataServiceDocumentRequest req =
+        client.getRetrieveRequestFactory().getServiceDocumentRequest(testStaticServiceRootURL);
+    req.setFormat(contentType);
+
+    final ODataRetrieveResponse<ClientServiceDocument> res = req.execute();
+    assertEquals(200, res.getStatusCode());
+
+    final ClientServiceDocument serviceDocument = res.getBody();
+    assertEquals(12, serviceDocument.getEntitySets().size());
+    assertEquals(6, serviceDocument.getSingletons().size());
+    assertEquals(6, serviceDocument.getFunctionImports().size());
+
+    assertEquals(URI.create(testStaticServiceRootURL + "/ProductDetails"),
+        serviceDocument.getEntitySetURI("ProductDetails"));
+    assertEquals(URI.create(testStaticServiceRootURL + "/Boss"),
+        serviceDocument.getSingletonURI("Boss"));
+    assertEquals(URI.create(testStaticServiceRootURL + "/GetPerson"),
+        serviceDocument.getFunctionImportURI("GetPerson"));
+  }
+
+  @Test
+  public void retrieveServiceDocumentAsXML() {
+    retrieveServiceDocument(ContentType.APPLICATION_XML);
+  }
+
+  @Test
+  public void retrieveServiceDocumentAsJSON() {
+    retrieveServiceDocument(ContentType.JSON);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/base/SingletonTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/SingletonTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/base/SingletonTestITCase.java
new file mode 100644
index 0000000..8a0ee72
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/base/SingletonTestITCase.java
@@ -0,0 +1,135 @@
+/*
+ * 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.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.net.URI;
+
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
+import org.apache.olingo.client.api.communication.request.cud.UpdateType;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientSingleton;
+import org.apache.olingo.client.api.domain.ClientValuable;
+import org.apache.olingo.client.api.uri.URIBuilder;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.format.ContentType;
+import org.junit.Test;
+
+public class SingletonTestITCase extends AbstractTestITCase {
+
+  private void read(final ODataClient client, final ContentType contentType) throws EdmPrimitiveTypeException {
+    final URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company");
+    final ODataEntityRequest<ClientSingleton> singleton =
+        client.getRetrieveRequestFactory().getSingletonRequest(builder.build());
+    singleton.setFormat(contentType);
+    final ClientSingleton company = singleton.execute().getBody();
+    assertNotNull(company);
+
+    assertEquals(0, company.getProperty("CompanyID").getPrimitiveValue().toCastValue(Integer.class), 0);
+    // cast to workaround JDK 6 bug, fixed in JDK 7
+    assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
+        ((ClientValuable) company.getProperty("CompanyCategory")).getValue().getTypeName());
+    assertTrue(company.getProperty("CompanyCategory").hasEnumValue());
+  }
+
+  @Test
+  public void readFromAtom() throws EdmPrimitiveTypeException {
+    read(client, ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void readFromJSON() throws EdmPrimitiveTypeException {
+    read(edmClient, ContentType.JSON);
+  }
+
+  @Test
+  public void readfromJSONFull() throws EdmPrimitiveTypeException {
+    read(client, ContentType.JSON_FULL_METADATA);
+  }
+
+  private void readWithAnnotations(final ODataClient client, final ContentType contentType)
+      throws EdmPrimitiveTypeException {
+
+    final URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Boss");
+    final ODataEntityRequest<ClientSingleton> singleton =
+        client.getRetrieveRequestFactory().getSingletonRequest(builder.build());
+    singleton.setFormat(contentType);
+    singleton.setPrefer(client.newPreferences().includeAnnotations("*"));
+    final ClientSingleton boss = singleton.execute().getBody();
+    assertNotNull(boss);
+
+    assertFalse(boss.getAnnotations().isEmpty());
+    final ClientAnnotation isBoss = boss.getAnnotations().get(0);
+    assertTrue(isBoss.getPrimitiveValue().toCastValue(Boolean.class));
+  }
+
+  @Test
+  public void readWithAnnotationsFromAtom() throws EdmPrimitiveTypeException {
+    readWithAnnotations(client, ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void readWithAnnotationsFromJSON() throws EdmPrimitiveTypeException {
+    readWithAnnotations(edmClient, ContentType.JSON);
+  }
+
+  @Test
+  public void readWithAnnotationsFromJSONFull() throws EdmPrimitiveTypeException {
+    readWithAnnotations(client, ContentType.JSON_FULL_METADATA);
+  }
+
+  private void update(final ContentType contentType) throws EdmPrimitiveTypeException {
+    final ClientSingleton changes = getClient().getObjectFactory().newSingleton(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Company"));
+    changes.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Revenue",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt64(132520L)));
+
+    final URI uri = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company").build();
+    final ODataEntityUpdateRequest<ClientSingleton> req = getClient().getCUDRequestFactory().
+        getSingletonUpdateRequest(uri, UpdateType.PATCH, changes);
+    req.setFormat(contentType);
+
+    final ODataEntityUpdateResponse<ClientSingleton> res = req.execute();
+    assertEquals(204, res.getStatusCode());
+
+    final ClientSingleton updated =
+        getClient().getRetrieveRequestFactory().getSingletonRequest(uri).execute().getBody();
+    assertNotNull(updated);
+    assertEquals(132520, updated.getProperty("Revenue").getPrimitiveValue().toCastValue(Integer.class), 0);
+  }
+
+  @Test
+  public void atomUpdate() throws EdmPrimitiveTypeException {
+    update(ContentType.APPLICATION_ATOM_XML);
+  }
+
+  @Test
+  public void jsonUpdate() throws EdmPrimitiveTypeException {
+    update(ContentType.JSON);
+  }
+
+}


[21/55] [abbrv] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
deleted file mode 100644
index 5fc32a0..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
+++ /dev/null
@@ -1,345 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.concurrent.Future;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "PublicCompany",
-    openType = true,
-    hasStream = false,
-    isAbstract = false,
-    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Company")
-public interface PublicCompany
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company,
-    AbstractOpenType {
-
-  @Override
-  PublicCompany load();
-
-  @Override
-  Future<? extends PublicCompany> loadAsync();
-
-  @Override
-  PublicCompany refs();
-
-  @Override
-  PublicCompany expand(String... expand);
-
-  @Override
-  PublicCompany select(String... select);
-
-  @Override
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getCompanyID();
-
-  @Override
-  void setCompanyID(java.lang.Integer _companyID);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyCategory",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory
-      getCompanyCategory();
-
-  @Override
-      void
-      setCompanyCategory(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory _companyCategory);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Revenue",
-      type = "Edm.Int64",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Long getRevenue();
-
-  @Override
-  void setRevenue(java.lang.Long _revenue);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  @Override
-  void setName(java.lang.String _name);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address getAddress();
-
-  @Override
-      void
-      setAddress(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address _address);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StockExchange",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getStockExchange();
-
-  void setStockExchange(java.lang.String _stockExchange);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Employees",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Employees",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection
-      getEmployees();
-
-  @Override
-      void
-      setEmployees(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection _employees);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "VipCustomer",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "VipCustomer",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer
-      getVipCustomer();
-
-  @Override
-      void
-      setVipCustomer(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer _vipCustomer);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Departments",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Departments",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection
-      getDepartments();
-
-  @Override
-      void
-      setDepartments(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection _departments);
-
-  @Override
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CoreDepartment",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Departments",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department
-      getCoreDepartment();
-
-  @Override
-      void
-      setCoreDepartment(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department _coreDepartment);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Club",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Club",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "",
-      targetEntitySet = "",
-      containsTarget = true)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Club getClub();
-
-  void setClub(
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Club _club);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "LabourUnion",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "LabourUnion",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnion
-      getLabourUnion();
-
-      void
-      setLabourUnion(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnion _labourUnion);
-
-  @Override
-  Operations operations();
-
-  interface Operations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company.Operations {
-    // No additional methods needed for now.
-  }
-
-  @Override
-  Annotations annotations();
-
-  interface Annotations
-      extends
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company.Annotations {
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getCompanyIDAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyCategory",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory")
-    org.apache.olingo.ext.proxy.api.Annotatable getCompanyCategoryAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Revenue",
-        type = "Edm.Int64")
-    org.apache.olingo.ext.proxy.api.Annotatable getRevenueAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Address",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
-    org.apache.olingo.ext.proxy.api.Annotatable getAddressAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "StockExchange",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getStockExchangeAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Employees",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Employee")
-    org.apache.olingo.ext.proxy.api.Annotatable getEmployeesAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "VipCustomer",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Customer")
-    org.apache.olingo.ext.proxy.api.Annotatable getVipCustomerAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Departments",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
-    org.apache.olingo.ext.proxy.api.Annotatable getDepartmentsAnnotations();
-
-    @Override
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "CoreDepartment",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
-    org.apache.olingo.ext.proxy.api.Annotatable getCoreDepartmentAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Assets",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Asset")
-    org.apache.olingo.ext.proxy.api.Annotatable getAssetsAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Club",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.Club")
-    org.apache.olingo.ext.proxy.api.Annotatable getClubAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "LabourUnion",
-        type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion")
-    org.apache.olingo.ext.proxy.api.Annotatable getLabourUnionAnnotations();
-  }
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Assets",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "LabourUnion",
-      containsTarget = true)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompany.Assets
-      getAssets();
-
-      void
-      setAssets(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompany.Assets _assets);
-
-  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Assets", contained = true)
-  interface Assets
-      extends
-      org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Asset, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AssetCollection>,
-      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Assets>,
-  AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Asset, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AssetCollection> {
-    // No additional methods needed for now.
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java
deleted file mode 100644
index 1d5eb10..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface PublicCompanyCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompanyCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompany, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompanyCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompanyCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollectionComposableInvoker.java
deleted file mode 100644
index 2778d7f..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface PublicCompanyCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompanyCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompanyCollection.Operations> {
-
-  @Override
-  PublicCompanyCollectionComposableInvoker select(String... select);
-
-  @Override
-  PublicCompanyCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyComposableInvoker.java
deleted file mode 100644
index 29a46c8..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyComposableInvoker.java
+++ /dev/null
@@ -1,232 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-public interface PublicCompanyComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<PublicCompany, PublicCompany.Operations>
-    , AbstractOpenType {
-
-  @Override
-  PublicCompanyComposableInvoker select(String... select);
-
-  @Override
-  PublicCompanyComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getCompanyID();
-
-  void setCompanyID(java.lang.Integer _companyID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyCategory",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory
-      getCompanyCategory();
-
-      void
-      setCompanyCategory(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory _companyCategory);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Revenue",
-      type = "Edm.Int64",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Long getRevenue();
-
-  void setRevenue(java.lang.Long _revenue);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getName();
-
-  void setName(java.lang.String _name);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address getAddress();
-
-      void
-      setAddress(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address _address);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StockExchange",
-      type = "Edm.String",
-      nullable = true,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getStockExchange();
-
-  void setStockExchange(java.lang.String _stockExchange);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Employees",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Employees",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection
-      getEmployees();
-
-      void
-      setEmployees(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.EmployeeCollection _employees);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "VipCustomer",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "VipCustomer",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer
-      getVipCustomer();
-
-      void
-      setVipCustomer(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer _vipCustomer);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Departments",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Departments",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection
-      getDepartments();
-
-      void
-      setDepartments(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.DepartmentCollection _departments);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CoreDepartment",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "Departments",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department
-      getCoreDepartment();
-
-      void
-      setCoreDepartment(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Department _coreDepartment);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Club",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.Club",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "",
-      targetEntitySet = "",
-      containsTarget = true)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Club getClub();
-
-  void setClub(
-      org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Club _club);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "LabourUnion",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "LabourUnion",
-      containsTarget = false)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnion
-      getLabourUnion();
-
-      void
-      setLabourUnion(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.LabourUnion _labourUnion);
-
-  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Assets",
-      type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
-      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
-      targetContainer = "InMemoryEntities",
-      targetEntitySet = "LabourUnion",
-      containsTarget = true)
-  org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompany.Assets
-      getAssets();
-
-      void
-      setAssets(
-          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PublicCompany.Assets _assets);
-
-  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Assets", contained = true)
-  interface Assets
-      extends
-      org.apache.olingo.ext.proxy.api.EntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Asset, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AssetCollection>,
-      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Assets>,
-  AbstractEntitySet<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Asset, java.lang.Integer, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AssetCollection> {
-    // No additional methods needed for now.
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
deleted file mode 100644
index bfbeb6d..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
+++ /dev/null
@@ -1,124 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Statement",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Statement
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Statement>, org.apache.olingo.ext.proxy.api.StructuredQuery<Statement> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StatementID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getStatementID();
-
-  void setStatementID(java.lang.Integer _statementID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TransactionType",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getTransactionType();
-
-  void setTransactionType(java.lang.String _transactionType);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TransactionDescription",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getTransactionDescription();
-
-  void setTransactionDescription(java.lang.String _transactionDescription);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Amount",
-      type = "Edm.Double",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Double getAmount();
-
-  void setAmount(java.lang.Double _amount);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "StatementID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getStatementIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TransactionType",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getTransactionTypeAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TransactionDescription",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getTransactionDescriptionAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Amount",
-        type = "Edm.Double")
-    org.apache.olingo.ext.proxy.api.Annotatable getAmountAnnotations();
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java
deleted file mode 100644
index 67e223d..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface StatementCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StatementCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Statement, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StatementCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StatementCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollectionComposableInvoker.java
deleted file mode 100644
index 62924a6..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface StatementCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StatementCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StatementCollection.Operations> {
-
-  @Override
-  StatementCollectionComposableInvoker select(String... select);
-
-  @Override
-  StatementCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementComposableInvoker.java
deleted file mode 100644
index 1a5d30f..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementComposableInvoker.java
+++ /dev/null
@@ -1,97 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface StatementComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Statement, Statement.Operations>
-{
-
-  @Override
-  StatementComposableInvoker select(String... select);
-
-  @Override
-  StatementComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StatementID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getStatementID();
-
-  void setStatementID(java.lang.Integer _statementID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TransactionType",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getTransactionType();
-
-  void setTransactionType(java.lang.String _transactionType);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TransactionDescription",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getTransactionDescription();
-
-  void setTransactionDescription(java.lang.String _transactionDescription);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Amount",
-      type = "Edm.Double",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Double getAmount();
-
-  void setAmount(java.lang.Double _amount);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
deleted file mode 100644
index 608b023..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
+++ /dev/null
@@ -1,124 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "StoredPI",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface StoredPI
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<StoredPI>, org.apache.olingo.ext.proxy.api.StructuredQuery<StoredPI> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StoredPIID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getStoredPIID();
-
-  void setStoredPIID(java.lang.Integer _storedPIID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PIName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPIName();
-
-  void setPIName(java.lang.String _pIName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PIType",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPIType();
-
-  void setPIType(java.lang.String _pIType);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getCreatedDate();
-
-  void setCreatedDate(java.sql.Timestamp _createdDate);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "StoredPIID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getStoredPIIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PIName",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getPINameAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PIType",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getPITypeAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java
deleted file mode 100644
index 25e78e2..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface StoredPICollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPICollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPI, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPICollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPICollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollectionComposableInvoker.java
deleted file mode 100644
index d8d1f36..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface StoredPICollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPICollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.StoredPICollection.Operations> {
-
-  @Override
-  StoredPICollectionComposableInvoker select(String... select);
-
-  @Override
-  StoredPICollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPIComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPIComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPIComposableInvoker.java
deleted file mode 100644
index 3fba8d6..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPIComposableInvoker.java
+++ /dev/null
@@ -1,97 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface StoredPIComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<StoredPI, StoredPI.Operations>
-{
-
-  @Override
-  StoredPIComposableInvoker select(String... select);
-
-  @Override
-  StoredPIComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StoredPIID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getStoredPIID();
-
-  void setStoredPIID(java.lang.Integer _storedPIID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PIName",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPIName();
-
-  void setPIName(java.lang.String _pIName);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PIType",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getPIType();
-
-  void setPIType(java.lang.String _pIType);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getCreatedDate();
-
-  void setCreatedDate(java.sql.Timestamp _createdDate);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
deleted file mode 100644
index 406d78a..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
+++ /dev/null
@@ -1,144 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
-@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Subscription",
-    openType = false,
-    hasStream = false,
-    isAbstract = false)
-public interface Subscription
-    extends org.apache.olingo.ext.proxy.api.Annotatable,
-    org.apache.olingo.ext.proxy.api.EntityType<Subscription>,
-    org.apache.olingo.ext.proxy.api.StructuredQuery<Subscription> {
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SubscriptionID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getSubscriptionID();
-
-  void setSubscriptionID(java.lang.Integer _subscriptionID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TemplateGuid",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getTemplateGuid();
-
-  void setTemplateGuid(java.lang.String _templateGuid);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Title",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getTitle();
-
-  void setTitle(java.lang.String _title);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Category",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCategory();
-
-  void setCategory(java.lang.String _category);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getCreatedDate();
-
-  void setCreatedDate(java.sql.Timestamp _createdDate);
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Annotations annotations();
-
-  interface Annotations {
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "SubscriptionID",
-        type = "Edm.Int32")
-    org.apache.olingo.ext.proxy.api.Annotatable getSubscriptionIDAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TemplateGuid",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getTemplateGuidAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Title",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getTitleAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Category",
-        type = "Edm.String")
-    org.apache.olingo.ext.proxy.api.Annotatable getCategoryAnnotations();
-
-    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
-        type = "Edm.DateTimeOffset")
-    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java
deleted file mode 100644
index d8471fd..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import java.util.Collection;
-// CHECKSTYLE:ON (Maven checkstyle)
-
-import org.apache.olingo.ext.proxy.api.AbstractTerm;
-
-public interface SubscriptionCollection
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection>,
-org.apache.olingo.ext.proxy.api.EntityCollection<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Subscription, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection> {
-
-  Operations operations();
-
-  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
-    // No additional methods needed for now.
-  }
-
-  Object getAnnotation(Class<? extends AbstractTerm> term);
-
-  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollectionComposableInvoker.java
deleted file mode 100644
index 269782e..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollectionComposableInvoker.java
+++ /dev/null
@@ -1,32 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-
-public interface SubscriptionCollectionComposableInvoker
-    extends
-    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection, org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.SubscriptionCollection.Operations> {
-
-  @Override
-  SubscriptionCollectionComposableInvoker select(String... select);
-
-  @Override
-  SubscriptionCollectionComposableInvoker expand(String... expand);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionComposableInvoker.java
deleted file mode 100644
index ebe9959..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionComposableInvoker.java
+++ /dev/null
@@ -1,112 +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.types;
-
-// CHECKSTYLE:OFF (Maven checkstyle)
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-
-// CHECKSTYLE:ON (Maven checkstyle)
-
-public interface SubscriptionComposableInvoker
-    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Subscription, Subscription.Operations>
-{
-
-  @Override
-  SubscriptionComposableInvoker select(String... select);
-
-  @Override
-  SubscriptionComposableInvoker expand(String... expand);
-
-  @Key
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SubscriptionID",
-      type = "Edm.Int32",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.Integer getSubscriptionID();
-
-  void setSubscriptionID(java.lang.Integer _subscriptionID);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TemplateGuid",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getTemplateGuid();
-
-  void setTemplateGuid(java.lang.String _templateGuid);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Title",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getTitle();
-
-  void setTitle(java.lang.String _title);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Category",
-      type = "Edm.String",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.lang.String getCategory();
-
-  void setCategory(java.lang.String _category);
-
-  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
-      type = "Edm.DateTimeOffset",
-      nullable = false,
-      defaultValue = "",
-      maxLenght = Integer.MAX_VALUE,
-      fixedLenght = false,
-      precision = 0,
-      scale = 0,
-      unicode = true,
-      collation = "",
-      srid = "")
-  java.sql.Timestamp getCreatedDate();
-
-  void setCreatedDate(java.sql.Timestamp _createdDate);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/package-info.java
deleted file mode 100644
index 50d10e3..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/package-info.java
+++ /dev/null
@@ -1,20 +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.types;
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
index 66456cc..970a4d9 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
@@ -57,7 +57,7 @@ import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.http.HttpHeader;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.tecsvc.TecSvcConst;
-import org.apache.olingo.fit.v4.AbstractTestITCase;
+import org.apache.olingo.fit.base.AbstractTestITCase;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
deleted file mode 100644
index 78413bf..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
+++ /dev/null
@@ -1,172 +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.v4;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.startsWith;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
-
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.communication.request.cud.ODataDeleteRequest;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientCollectionValue;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.domain.ClientValue;
-import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.apache.olingo.fit.AbstractBaseTestITCase;
-import org.junit.BeforeClass;
-
-public abstract class AbstractTestITCase extends AbstractBaseTestITCase {
-
-  protected static final ODataClient client = ODataClientFactory.getClient();
-
-  protected static EdmEnabledODataClient edmClient;
-
-  protected static String testStaticServiceRootURL;
-
-  protected static String testDemoServiceRootURL;
-
-  protected static String testVocabulariesServiceRootURL;
-
-  protected static String testNorthwindRootURL;
-
-  protected static String testKeyAsSegmentServiceRootURL;
-
-  protected static String testOpenTypeServiceRootURL;
-
-  protected static String testLargeModelServiceRootURL;
-
-  protected static String testAuthServiceRootURL;
-
-  protected static String testOAuth2ServiceRootURL;
-
-  @BeforeClass
-  public static void setUpODataServiceRoot() throws IOException {
-    testStaticServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Static.svc";
-    testDemoServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Demo.svc";
-    testVocabulariesServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Vocabularies.svc";
-    testNorthwindRootURL = "http://localhost:9080/stub/StaticService/V40/NorthWind.svc";
-    testKeyAsSegmentServiceRootURL = "http://localhost:9080/stub/StaticService/V40/KeyAsSegment.svc";
-    testOpenTypeServiceRootURL = "http://localhost:9080/stub/StaticService/V40/OpenType.svc";
-    testLargeModelServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Static.svc/large";
-    testAuthServiceRootURL = "http://localhost:9080/stub/DefaultService.svc/V40/Static.svc";
-    testOAuth2ServiceRootURL = "http://localhost:9080/stub/StaticService/V40/OAuth2.svc";
-
-    edmClient = ODataClientFactory.getEdmEnabledClient(testStaticServiceRootURL, ContentType.JSON);
-
-    edmClient.getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-    client.getConfiguration().setDefaultBatchAcceptFormat(ContentType.APPLICATION_OCTET_STREAM);
-  }
-
-  @Override
-  protected ODataClient getClient() {
-    return client;
-  }
-
-  protected ClientEntity read(final ContentType contentType, final URI editLink) {
-    final ODataEntityRequest<ClientEntity> req = getClient().getRetrieveRequestFactory().getEntityRequest(editLink);
-    req.setFormat(contentType);
-
-    final ODataRetrieveResponse<ClientEntity> res = req.execute();
-    final ClientEntity entity = res.getBody();
-
-    assertNotNull(entity);
-
-    if (ContentType.JSON_FULL_METADATA == contentType || ContentType.APPLICATION_ATOM_XML == contentType) {
-      assertEquals(req.getURI(), entity.getEditLink());
-    }
-
-    return entity;
-  }
-
-  protected void createAndDeleteOrder(final String serviceRoot, final ContentType contentType, final int id) {
-
-    final ClientEntity order = getClient().getObjectFactory().newEntity(
-        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
-
-    final ClientProperty orderId = getClient().getObjectFactory().newPrimitiveProperty("OrderID",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id));
-    order.getProperties().add(orderId);
-
-    Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-    dateTime.set(2011, 2, 4, 16, 3, 57);
-    final ClientProperty orderDate = getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
-        getClient().getObjectFactory().newPrimitiveValueBuilder()
-        .setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build());
-    order.getProperties().add(orderDate);
-
-    final ClientProperty shelfLife = getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
-        getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Duration).setValue(BigDecimal.TEN.scaleByPowerOfTen(7)).build());
-    order.getProperties().add(shelfLife);
-
-    final ClientCollectionValue<ClientValue> orderShelfLifesValue = getClient().getObjectFactory().
-        newCollectionValue("Collection(Duration)");
-    orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000001")).build());
-    orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
-        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build());
-    final ClientProperty orderShelfLifes = getClient().getObjectFactory().
-        newCollectionProperty("OrderShelfLifes", orderShelfLifesValue);
-    order.getProperties().add(orderShelfLifes);
-
-    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
-        getClient().newURIBuilder(serviceRoot).
-        appendEntitySetSegment("Orders").build(), order);
-    req.setFormat(contentType);
-    final ClientEntity created = req.execute().getBody();
-    assertNotNull(created);
-    assertEquals(2, created.getProperty("OrderShelfLifes").getCollectionValue().size());
-
-    if (contentType.equals(ContentType.JSON_NO_METADATA)) {
-      assertEquals(0, created.getNavigationLinks().size());
-      assertNull(created.getEditLink());
-    } else if (contentType.equals(ContentType.JSON_FULL_METADATA)) {
-      assertEquals(3, created.getNavigationLinks().size());
-      assertThat(created.getTypeName().getNamespace(), is("Microsoft.Test.OData.Services.ODataWCFService"));
-      assertThat(created.getEditLink().toASCIIString(), startsWith("http://localhost:9080/stub/StaticService"));
-    } else if (contentType.equals(ContentType.JSON) || contentType.equals(ContentType.APPLICATION_JSON)) {
-      assertEquals(0, created.getNavigationLinks().size());
-      assertNull(created.getEditLink());
-    }
-
-    final URI deleteURI = getClient().newURIBuilder(serviceRoot).
-        appendEntitySetSegment("Orders").appendKeySegment(id).build();
-    final ODataDeleteRequest deleteReq = getClient().getCUDRequestFactory().getDeleteRequest(deleteURI);
-    final ODataDeleteResponse deleteRes = deleteReq.execute();
-    assertEquals(204, deleteRes.getStatusCode());
-  }
-}


[10/55] [abbrv] olingo-odata4 git commit: [OLINGO-713] $filter Tutorial - some minor refactorings

Posted by mi...@apache.org.
[OLINGO-713] $filter Tutorial - some minor refactorings


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

Branch: refs/heads/OLINGO-562_SpringExtension
Commit: b376959f9f12c476a04a9d34e238312087f9d349
Parents: 08ffd20
Author: Christian Holzer <c....@sap.com>
Authored: Mon Aug 24 14:57:14 2015 +0200
Committer: Christian Holzer <c....@sap.com>
Committed: Mon Aug 24 14:57:14 2015 +0200

----------------------------------------------------------------------
 .../service/FilterExpressionVisitor.java        | 63 +++++++-------------
 samples/tutorials/pom.xml                       |  1 +
 2 files changed, 22 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/b376959f/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java
----------------------------------------------------------------------
diff --git a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java
index 7550497..5a9af92 100644
--- a/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java
+++ b/samples/tutorials/p7_queryoptions-f/src/main/java/myservice/mynamespace/service/FilterExpressionVisitor.java
@@ -121,47 +121,26 @@ public class FilterExpressionVisitor implements ExpressionVisitor<Object> {
 	  //   - Boolean operations like and, or are allowed on Edm.Boolean
 	  // A detailed explanation can be found in OData Version 4.0 Part 2: URL Conventions 
 	  
-    switch (operator) {
-    
-    // Arithmetic operations
-    case ADD:
-      /** Fall through **/
-    case MOD:
-      /** Fall through **/
-    case MUL:
-      /** Fall through **/
-    case DIV:
-      /** Fall through **/
-    case SUB:
+    if (operator == BinaryOperatorKind.ADD
+        || operator == BinaryOperatorKind.MOD
+        || operator == BinaryOperatorKind.MUL
+        || operator == BinaryOperatorKind.DIV
+        || operator == BinaryOperatorKind.SUB) {
       return evaluateArithmeticOperation(operator, left, right);
-
-    // Logical operations
-    case EQ:
-      /** Fall through **/
-    case NE:
-      /** Fall through **/
-    case GE:
-      /** Fall through **/
-    case GT:
-      /** Fall through **/
-    case LE:
-      /** Fall through **/
-    case LT:
-      return evaluateLogicalOperation(operator, left, right);
-      
-    // Boolean operations
-    case AND:
-      /** Fall through **/
-    case OR:
+    } else if (operator == BinaryOperatorKind.EQ
+        || operator == BinaryOperatorKind.NE
+        || operator == BinaryOperatorKind.GE
+        || operator == BinaryOperatorKind.GT
+        || operator == BinaryOperatorKind.LE
+        || operator == BinaryOperatorKind.LT) {
+      return evaluateComparisonOperation(operator, left, right);
+    } else if (operator == BinaryOperatorKind.AND
+        || operator == BinaryOperatorKind.OR) {
       return evaluateBooleanOperation(operator, left, right);
-    
-    case HAS:
-      // Has operation is not supported. We do not use enums in our service.
-      /** fall through **/
-    default:
-      throw new ODataApplicationException("Binary operation " + operator.name() + " is not implemented", 
+	  } else {
+	    throw new ODataApplicationException("Binary operation " + operator.name() + " is not implemented", 
           HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ENGLISH);
-    }
+	  }
   }
 
 	private Object evaluateBooleanOperation(BinaryOperatorKind operator, Object left, Object right)
@@ -186,12 +165,12 @@ public class FilterExpressionVisitor implements ExpressionVisitor<Object> {
 	}
 
   @SuppressWarnings("unchecked")
-  private Object evaluateLogicalOperation(BinaryOperatorKind operator, Object left, Object right) 
+  private Object evaluateComparisonOperation(BinaryOperatorKind operator, Object left, Object right) 
       throws ODataApplicationException {
     
     // All types in our tutorial supports all logical operations, but we have to make sure that the types are equals
     if(left.getClass().equals(right.getClass())) {
-      // Luckily all used types String, Boolean and also Integer supports the interface Comparable
+      // Luckily all used types String, Boolean and also Integer support the interface Comparable
       // TODO: Is this OK? Otherwise we can infer generic arguments after using an if statement
       @SuppressWarnings("rawtypes")
       int result = ((Comparable) left).compareTo(right);
@@ -212,7 +191,7 @@ public class FilterExpressionVisitor implements ExpressionVisitor<Object> {
       }
       
     } else {
-      throw new ODataApplicationException("Comparision needs to equal types", 
+      throw new ODataApplicationException("Comparision needs two equal types", 
           HttpStatusCode.BAD_REQUEST.getStatusCode(), Locale.ENGLISH);
     }
   }
@@ -220,7 +199,7 @@ public class FilterExpressionVisitor implements ExpressionVisitor<Object> {
   private Object evaluateArithmeticOperation(BinaryOperatorKind operator, Object left, 
       Object right) throws ODataApplicationException {
 
-	  // First check if the type of of both operands is numerical
+	  // First check if the type of both operands is numerical
 	  if(left instanceof Integer && right instanceof Integer) {
 	    Integer valueLeft = (Integer) left;
 	    Integer valueRight = (Integer) right;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/b376959f/samples/tutorials/pom.xml
----------------------------------------------------------------------
diff --git a/samples/tutorials/pom.xml b/samples/tutorials/pom.xml
index c00028e..c4244dd 100644
--- a/samples/tutorials/pom.xml
+++ b/samples/tutorials/pom.xml
@@ -41,6 +41,7 @@
     <module>p4_navigation</module>
     <module>p5_queryoptions-tcs</module>
     <module>p6_queryoptions-es</module>
+    <module>p7_queryoptions-f</module>
   </modules>
 
   <build>