You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by sk...@apache.org on 2014/05/19 12:34:33 UTC

[35/45] git commit: [OLINGO-260] opentypes full integrated onto the proxy

[OLINGO-260] opentypes full integrated onto the proxy


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

Branch: refs/heads/olingo-266-ref
Commit: f6eb1b7c81fde5a42206c259df76ddf528f08a6e
Parents: 8976f17
Author: fmartelli <fa...@gmail.com>
Authored: Thu May 15 14:21:25 2014 +0200
Committer: Stephan Klevenz <st...@sap.com>
Committed: Mon May 19 12:33:30 2014 +0200

----------------------------------------------------------------------
 .../olingo/ext/proxy/utils/CoreUtils.java       |  62 ++++-
 fit/src/main/resources/V30/openTypeMetadata.xml |  16 +-
 fit/src/main/resources/V40/openTypeMetadata.xml |  14 +-
 .../olingo/fit/proxy/v3/OpenTypeTestITCase.java |  19 +-
 .../opentypesservice/DefaultContainer.java      |  77 ------
 .../odata/services/opentypesservice/Row.java    |  55 ----
 .../services/opentypesservice/RowIndex.java     |  53 ----
 .../services/opentypesservice/package-info.java |  21 --
 .../opentypesservice/types/ContactDetails.java  | 136 ----------
 .../opentypesservice/types/IndexedRow.java      |  92 -------
 .../types/IndexedRowCollection.java             |  47 ----
 .../services/opentypesservice/types/Row.java    |  91 -------
 .../opentypesservice/types/RowCollection.java   |  47 ----
 .../opentypesservice/types/RowIndex.java        | 101 --------
 .../types/RowIndexCollection.java               |  47 ----
 .../opentypesservice/types/package-info.java    |  21 --
 .../opentypesservicev3/DefaultContainer.java    |  77 ++++++
 .../odata/services/opentypesservicev3/Row.java  |  55 ++++
 .../services/opentypesservicev3/RowIndex.java   |  53 ++++
 .../opentypesservicev3/package-info.java        |  21 ++
 .../types/ContactDetails.java                   | 136 ++++++++++
 .../opentypesservicev3/types/IndexedRow.java    |  92 +++++++
 .../types/IndexedRowCollection.java             |  47 ++++
 .../services/opentypesservicev3/types/Row.java  |  91 +++++++
 .../opentypesservicev3/types/RowCollection.java |  47 ++++
 .../opentypesservicev3/types/RowIndex.java      | 101 ++++++++
 .../types/RowIndexCollection.java               |  47 ++++
 .../opentypesservicev3/types/package-info.java  |  21 ++
 .../olingo/fit/proxy/v4/OpenTypeTestITCase.java | 138 ++++++++++
 .../opentypesservice/DefaultContainer.java      |  76 ------
 .../odata/services/opentypesservice/Row.java    |  55 ----
 .../services/opentypesservice/RowIndex.java     |  53 ----
 .../services/opentypesservice/package-info.java |  21 --
 .../services/opentypesservice/types/Color.java  |  45 ----
 .../opentypesservice/types/ContactDetails.java  | 259 -------------------
 .../opentypesservice/types/IndexedRow.java      |  92 -------
 .../types/IndexedRowCollection.java             |  47 ----
 .../services/opentypesservice/types/Row.java    |  91 -------
 .../opentypesservice/types/RowCollection.java   |  47 ----
 .../opentypesservice/types/RowIndex.java        | 101 --------
 .../types/RowIndexCollection.java               |  47 ----
 .../opentypesservice/types/package-info.java    |  21 --
 .../opentypesservicev4/DefaultContainer.java    |  76 ++++++
 .../odata/services/opentypesservicev4/Row.java  |  55 ++++
 .../services/opentypesservicev4/RowIndex.java   |  53 ++++
 .../opentypesservicev4/package-info.java        |  21 ++
 .../opentypesservicev4/types/Color.java         |  45 ++++
 .../types/ContactDetails.java                   | 259 +++++++++++++++++++
 .../opentypesservicev4/types/IndexedRow.java    |  92 +++++++
 .../types/IndexedRowCollection.java             |  47 ++++
 .../services/opentypesservicev4/types/Row.java  |  91 +++++++
 .../opentypesservicev4/types/RowCollection.java |  47 ++++
 .../opentypesservicev4/types/RowIndex.java      | 101 ++++++++
 .../types/RowIndexCollection.java               |  47 ++++
 .../opentypesservicev4/types/package-info.java  |  21 ++
 .../olingo/fit/v3/OpenTypeTestITCase.java       |   6 +-
 .../olingo/fit/v4/OpenTypeTestITCase.java       |   4 +-
 .../org.apache.olingo.ext.proxy.complex         |   4 +-
 .../META-INF/org.apache.olingo.ext.proxy.enum   |   2 +-
 59 files changed, 1972 insertions(+), 1779 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
index 498e58c..9125f07 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
@@ -34,8 +34,10 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import org.apache.commons.io.IOUtils;
 import org.apache.olingo.client.api.CommonEdmEnabledODataClient;
 import org.apache.olingo.client.api.v3.UnsupportedInV3Exception;
+import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.domain.CommonODataEntity;
 import org.apache.olingo.commons.api.domain.CommonODataProperty;
 import org.apache.olingo.commons.api.domain.ODataLink;
@@ -248,14 +250,18 @@ public final class CoreUtils {
 
     if (Collection.class.isAssignableFrom(obj.getClass())) {
       final EdmTypeInfo type = guessPrimitiveType(client, ClassUtils.extractTypeArg(obj.getClass()));
-      return edmTypeInfo.setTypeExpression(
-              "Collection(" + type.getFullQualifiedName() + ")").build();
+      return edmTypeInfo.setTypeExpression("Collection(" + type.getFullQualifiedName() + ")").build();
     } else if (obj instanceof Proxy) {
       final Class<?> typeRef = obj.getClass().getInterfaces()[0];
       final String ns = typeRef.getAnnotation(Namespace.class).value();
       final String name = typeRef.getAnnotation(ComplexType.class).name();
       return edmTypeInfo.setTypeExpression(new FullQualifiedName(ns, name).toString()).build();
-    } else {
+    } else if(obj.getClass().getAnnotation(EnumType.class)!=null){
+      final Class<?> typeRef = obj.getClass();
+      final String ns = typeRef.getAnnotation(Namespace.class).value();
+      final String name = typeRef.getAnnotation(EnumType.class).name();
+      return edmTypeInfo.setTypeExpression(new FullQualifiedName(ns, name).toString()).build();
+    }else{
       return guessPrimitiveType(client, obj.getClass());
     }
   }
@@ -493,11 +499,16 @@ public final class CoreUtils {
       res = null;
     } else if (property.hasComplexValue()) {
 
+      if (typeRef == null) {
+        internalRef = getComplexTypeRef(property);
+      }
+
       res = Proxy.newProxyInstance(
               Thread.currentThread().getContextClassLoader(),
               new Class<?>[] {internalRef},
               ComplexTypeInvocationHandler.getInstance(
               client, property.getValue().asComplex(), internalRef, entityHandler));
+
     } else if (property.hasCollectionValue()) {
       final ArrayList<Object> collection = new ArrayList<Object>();
 
@@ -519,6 +530,9 @@ public final class CoreUtils {
 
       res = collection;
     } else if (property instanceof ODataProperty && ((ODataProperty) property).hasEnumValue()) {
+      if (internalRef == null) {
+        internalRef = getEnumTypeRef(property);
+      }
       res = enumValueToObject(((ODataProperty) property).getEnumValue(), internalRef);
     } else {
       res = primitiveValueToObject(property.getPrimitiveValue(), internalRef);
@@ -527,6 +541,48 @@ public final class CoreUtils {
     return res;
   }
 
+  private static Class<?> getEnumTypeRef(final CommonODataProperty property) {
+    return getTypeRef(property, "META-INF/" + Constants.PROXY_ENUM_CLASS_LIST, EnumType.class);
+  }
+
+  private static Class<?> getComplexTypeRef(final CommonODataProperty property) {
+    return getTypeRef(property, "META-INF/" + Constants.PROXY_COMPLEX_CLASS_LIST, ComplexType.class);
+  }
+
+  private static Class<?> getTypeRef(
+          final CommonODataProperty property,
+          final String proxyClassListFile,
+          final Class<? extends Annotation> annType) {
+    if (!annType.isAssignableFrom(EnumType.class) && !annType.isAssignableFrom(ComplexType.class)) {
+      throw new IllegalArgumentException("Invalid annotation type " + annType);
+    }
+
+    try {
+      final List<String> pkgs = IOUtils.readLines(
+              CoreUtils.class.getClassLoader().getResourceAsStream(proxyClassListFile),
+              Constants.UTF8);
+
+      for (String pkg : pkgs) {
+        final Class<?> clazz = Class.forName(pkg);
+        final Annotation ann = clazz.getAnnotation(annType);
+        final Namespace ns = clazz.getAnnotation(Namespace.class);
+
+        if (ns != null && ann != null) {
+          if (property.getValue().getTypeName().equals(
+                  new FullQualifiedName(ns.value(), annType.isAssignableFrom(EnumType.class)
+                  ? EnumType.class.cast(ann).name()
+                  : ComplexType.class.cast(ann).name()).toString())) {
+            return clazz;
+          }
+        }
+      }
+    } catch (Exception e) {
+      LOG.warn("Error retrieving proxy complex class list", e);
+    }
+
+    throw new IllegalArgumentException("Provided property '" + property + "' is not complex");
+  }
+
   private static String firstValidEntityKey(final Class<?> entityTypeRef) {
     for (Method method : entityTypeRef.getDeclaredMethods()) {
       if (method.getAnnotation(Key.class) != null) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/main/resources/V30/openTypeMetadata.xml
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V30/openTypeMetadata.xml b/fit/src/main/resources/V30/openTypeMetadata.xml
index 5c9da36..b6f7a9f 100644
--- a/fit/src/main/resources/V30/openTypeMetadata.xml
+++ b/fit/src/main/resources/V30/openTypeMetadata.xml
@@ -21,7 +21,7 @@
 -->
 <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="Microsoft.Test.OData.Services.OpenTypesService" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
+    <Schema Namespace="Microsoft.Test.OData.Services.OpenTypesServiceV3" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
       <ComplexType Name="ContactDetails">
         <Property Name="FirstContacted" Type="Edm.Binary"/>
         <Property Name="LastContacted" Type="Edm.DateTimeOffset" Nullable="false"/>
@@ -42,22 +42,22 @@
         </Key>
         <Property Name="Id" Type="Edm.Guid" Nullable="false"/>
       </EntityType>
-      <EntityType Name="IndexedRow" BaseType="Microsoft.Test.OData.Services.OpenTypesService.Row" OpenType="true"/>
+      <EntityType Name="IndexedRow" BaseType="Microsoft.Test.OData.Services.OpenTypesServiceV3.Row" OpenType="true"/>
       <EntityType Name="RowIndex" OpenType="true">
         <Key>
           <PropertyRef Name="Id"/>
         </Key>
         <Property Name="Id" Type="Edm.Int32" Nullable="false"/>
-        <NavigationProperty Name="Rows" Relationship="Microsoft.Test.OData.Services.OpenTypesService.RowIndex_Rows" ToRole="Rows" FromRole="RowIndex"/>
+        <NavigationProperty Name="Rows" Relationship="Microsoft.Test.OData.Services.OpenTypesServiceV3.RowIndex_Rows" ToRole="Rows" FromRole="RowIndex"/>
       </EntityType>
       <Association Name="RowIndex_Rows">
-        <End Type="Microsoft.Test.OData.Services.OpenTypesService.RowIndex" Role="RowIndex" Multiplicity="*"/>
-        <End Type="Microsoft.Test.OData.Services.OpenTypesService.IndexedRow" Role="Rows" Multiplicity="*"/>
+        <End Type="Microsoft.Test.OData.Services.OpenTypesServiceV3.RowIndex" Role="RowIndex" Multiplicity="*"/>
+        <End Type="Microsoft.Test.OData.Services.OpenTypesServiceV3.IndexedRow" Role="Rows" Multiplicity="*"/>
       </Association>
       <EntityContainer Name="DefaultContainer" m:IsDefaultEntityContainer="true">
-        <EntitySet Name="Row" EntityType="Microsoft.Test.OData.Services.OpenTypesService.Row"/>
-        <EntitySet Name="RowIndex" EntityType="Microsoft.Test.OData.Services.OpenTypesService.RowIndex"/>
-        <AssociationSet Name="Index_Rows" Association="Microsoft.Test.OData.Services.OpenTypesService.RowIndex_Rows">
+        <EntitySet Name="Row" EntityType="Microsoft.Test.OData.Services.OpenTypesServiceV3.Row"/>
+        <EntitySet Name="RowIndex" EntityType="Microsoft.Test.OData.Services.OpenTypesServiceV3.RowIndex"/>
+        <AssociationSet Name="Index_Rows" Association="Microsoft.Test.OData.Services.OpenTypesServiceV3.RowIndex_Rows">
           <End Role="RowIndex" EntitySet="RowIndex"/>
           <End Role="Rows" EntitySet="Row"/>
         </AssociationSet>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/main/resources/V40/openTypeMetadata.xml
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V40/openTypeMetadata.xml b/fit/src/main/resources/V40/openTypeMetadata.xml
index 70a02c3..3cca590 100644
--- a/fit/src/main/resources/V40/openTypeMetadata.xml
+++ b/fit/src/main/resources/V40/openTypeMetadata.xml
@@ -21,7 +21,7 @@
 -->
 <edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
   <edmx:DataServices>
-    <Schema Namespace="Microsoft.Test.OData.Services.OpenTypesService" xmlns="http://docs.oasis-open.org/odata/ns/edm">
+    <Schema Namespace="Microsoft.Test.OData.Services.OpenTypesServiceV4" xmlns="http://docs.oasis-open.org/odata/ns/edm">
       <EnumType Name="Color">
         <Member Name="Red" Value="1"/>
         <Member Name="Green" Value="2"/>
@@ -30,9 +30,9 @@
       <ComplexType Name="ContactDetails">
         <Property Name="FirstContacted" Type="Edm.Binary"/>
         <Property Name="LastContacted" Type="Edm.DateTimeOffset" Nullable="false"/>
-        <Property Name="Contacted" Type="Edm.DateTime" Nullable="false"/>
+        <Property Name="Contacted" Type="Edm.Date" Nullable="false"/>
         <Property Name="GUID" Type="Edm.Guid" Nullable="false"/>
-        <Property Name="PreferedContactTime" Type="Edm.Time" Nullable="false"/>
+        <Property Name="PreferedContactTime" Type="Edm.TimeOfDay" Nullable="false"/>
         <Property Name="Byte" Type="Edm.Byte" Nullable="false"/>
         <Property Name="SignedByte" Type="Edm.SByte" Nullable="false"/>
         <Property Name="Double" Type="Edm.Double" Nullable="false"/>
@@ -47,19 +47,19 @@
         </Key>
         <Property Name="Id" Type="Edm.Guid" Nullable="false"/>
       </EntityType>
-      <EntityType Name="IndexedRow" BaseType="Microsoft.Test.OData.Services.OpenTypesService.Row" OpenType="true"/>
+      <EntityType Name="IndexedRow" BaseType="Microsoft.Test.OData.Services.OpenTypesServiceV4.Row" OpenType="true"/>
       <EntityType Name="RowIndex" OpenType="true">
         <Key>
           <PropertyRef Name="Id"/>
         </Key>
         <Property Name="Id" Type="Edm.Int32" Nullable="false"/>
-        <NavigationProperty Name="Rows" Type="Microsoft.Test.OData.Services.OpenTypesService.Row" Nullable="false"/>
+        <NavigationProperty Name="Rows" Type="Microsoft.Test.OData.Services.OpenTypesServiceV4.Row" Nullable="false"/>
       </EntityType>
       <EntityContainer Name="DefaultContainer">
-        <EntitySet Name="Row" EntityType="Microsoft.Test.OData.Services.OpenTypesService.Row">
+        <EntitySet Name="Row" EntityType="Microsoft.Test.OData.Services.OpenTypesServiceV4.Row">
           <NavigationPropertyBinding Path="Rows" Target="Row"/>
         </EntitySet>
-        <EntitySet Name="RowIndex" EntityType="Microsoft.Test.OData.Services.OpenTypesService.RowIndex"/>
+        <EntitySet Name="RowIndex" EntityType="Microsoft.Test.OData.Services.OpenTypesServiceV4.RowIndex"/>
       </EntityContainer>
     </Schema>
   </edmx:DataServices>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
index 95a1e9f..3cc863d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/OpenTypeTestITCase.java
@@ -18,7 +18,6 @@
  */
 package org.apache.olingo.fit.proxy.v3;
 
-
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -33,10 +32,10 @@ import java.util.UUID;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.ext.proxy.EntityContainerFactory;
 import org.apache.olingo.ext.proxy.api.annotations.EntityType;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.DefaultContainer;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.ContactDetails;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.Row;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.RowIndex;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.DefaultContainer;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.ContactDetails;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndex;
 import org.junit.BeforeClass;
 
 import org.junit.Test;
@@ -97,7 +96,7 @@ public class OpenTypeTestITCase extends AbstractTestITCase {
     cal.setTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX").parse("2001-04-05T05:05:05.001+00:01"));
 
     contact.setLastContacted(cal);
-    
+
     cal = Calendar.getInstance();
     cal.clear();
     cal.setTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").parse("2001-04-05T05:05:04.001"));
@@ -112,7 +111,7 @@ public class OpenTypeTestITCase extends AbstractTestITCase {
     contact.setShort(Short.MAX_VALUE);
     contact.setInt(Integer.MAX_VALUE);
     rowIndex.addAdditionalProperty("aContact", contact);
-    
+
     otcontainer.flush();
 
     rowIndex = otcontainer.getRowIndex().get(id);
@@ -122,13 +121,13 @@ public class OpenTypeTestITCase extends AbstractTestITCase {
     assertEquals(Byte.class, rowIndex.getAdditionalProperty("aByte").getClass());
     assertEquals(Byte.MAX_VALUE, rowIndex.getAdditionalProperty("aByte"));
     assertTrue(Calendar.class.isAssignableFrom(rowIndex.getAdditionalProperty("aDate").getClass()));
-//    assertEquals(ContactDetails.class, rowIndex.getAdditionalProperty("aContact").getClass().getInterfaces()[0]);
+    assertEquals(ContactDetails.class, rowIndex.getAdditionalProperty("aContact").getClass().getInterfaces()[0]);
 
     entityContext.detachAll();
-    
+
     otcontainer.getRowIndex().delete(id);
     otcontainer.flush();
-    
+
     assertNull(otcontainer.getRowIndex().get(id));
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/DefaultContainer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/DefaultContainer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/DefaultContainer.java
deleted file mode 100644
index 3fe9228..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/DefaultContainer.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.v3.opentype.microsoft.test.odata.services.opentypesservice;
-
-import org.apache.olingo.client.api.http.HttpMethod;
-import org.apache.olingo.ext.proxy.api.annotations.Namespace;
-import org.apache.olingo.ext.proxy.api.annotations.EntityContainer;
-import org.apache.olingo.ext.proxy.api.annotations.Operation;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-import org.apache.olingo.ext.proxy.api.annotations.Property;
-import org.apache.olingo.ext.proxy.api.Container;
-import org.apache.olingo.ext.proxy.api.OperationType;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.*;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-@Namespace("Microsoft.Test.OData.Services.OpenTypesService")
-@EntityContainer(name = "DefaultContainer",
-  namespace = "Microsoft.Test.OData.Services.OpenTypesService",
-  isDefaultEntityContainer = true)
-public interface DefaultContainer extends Container {
-
-    Row getRow();
-
-    RowIndex getRowIndex();
-
-
-
-
-
-  Operations operations();
-
-  public interface Operations {
-  
-    }
-
-      ComplexFactory complexFactory();
-
-    interface ComplexFactory {
-          @Property(name = "ContactDetails",
-                type = "Microsoft.Test.OData.Services.OpenTypesService.ContactDetails")
-      org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.ContactDetails newContactDetails();
-
-        }
-  }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/Row.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/Row.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/Row.java
deleted file mode 100644
index 72c8cc0..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/Row.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/* 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice;
-
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.*;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-
-
-@EntitySet(name = "Row")
-public interface Row 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.Row, UUID, org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.RowCollection> {
-
-    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.Row newRow();
-    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.RowCollection newRowCollection();
-    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.IndexedRow newIndexedRow();
-    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.IndexedRowCollection newIndexedRowCollection();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/RowIndex.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/RowIndex.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/RowIndex.java
deleted file mode 100644
index 1a2b22b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/RowIndex.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.v3.opentype.microsoft.test.odata.services.opentypesservice;
-
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.*;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-
-
-@EntitySet(name = "RowIndex")
-public interface RowIndex 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.RowIndex, Integer, org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.RowIndexCollection> {
-
-    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.RowIndex newRowIndex();
-    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.RowIndexCollection newRowIndexCollection();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/package-info.java
deleted file mode 100644
index ecc8168..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/package-info.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice;
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetails.java
deleted file mode 100644
index 8e3a458..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/ContactDetails.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.v3.opentype.microsoft.test.odata.services.opentypesservice.types;
-
-import org.apache.olingo.ext.proxy.api.annotations.Namespace;
-import org.apache.olingo.ext.proxy.api.annotations.ComplexType;
-import org.apache.olingo.ext.proxy.api.annotations.Property;
-import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.*;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-
-@Namespace("Microsoft.Test.OData.Services.OpenTypesService")
-@ComplexType(name = "ContactDetails")
-public interface ContactDetails 
-    extends Serializable {
-
-
-    @Property(name = "FirstContacted", type = "Edm.Binary", nullable = true)
-    byte[] getFirstContacted();
-
-    void setFirstContacted(final byte[] _firstContacted);
-
-    
-
-    @Property(name = "LastContacted", type = "Edm.DateTimeOffset", nullable = false)
-    Calendar getLastContacted();
-
-    void setLastContacted(final Calendar _lastContacted);
-
-    
-
-    @Property(name = "Contacted", type = "Edm.DateTime", nullable = false)
-    Calendar getContacted();
-
-    void setContacted(final Calendar _contacted);
-
-    
-
-    @Property(name = "GUID", type = "Edm.Guid", nullable = false)
-    UUID getGUID();
-
-    void setGUID(final UUID _gUID);
-
-    
-
-    @Property(name = "PreferedContactTime", type = "Edm.Time", nullable = false)
-    BigDecimal getPreferedContactTime();
-
-    void setPreferedContactTime(final BigDecimal _preferedContactTime);
-
-    
-
-    @Property(name = "Byte", type = "Edm.Byte", nullable = false)
-    Short getByte();
-
-    void setByte(final Short _byte);
-
-    
-
-    @Property(name = "SignedByte", type = "Edm.SByte", nullable = false)
-    Byte getSignedByte();
-
-    void setSignedByte(final Byte _signedByte);
-
-    
-
-    @Property(name = "Double", type = "Edm.Double", nullable = false)
-    Double getDouble();
-
-    void setDouble(final Double _double);
-
-    
-
-    @Property(name = "Single", type = "Edm.Single", nullable = false)
-    Float getSingle();
-
-    void setSingle(final Float _single);
-
-    
-
-    @Property(name = "Short", type = "Edm.Int16", nullable = false)
-    Short getShort();
-
-    void setShort(final Short _short);
-
-    
-
-    @Property(name = "Int", type = "Edm.Int32", nullable = false)
-    Integer getInt();
-
-    void setInt(final Integer _int);
-
-    
-
-    @Property(name = "Long", type = "Edm.Int64", nullable = false)
-    Long getLong();
-
-    void setLong(final Long _long);
-
-    
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRow.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRow.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRow.java
deleted file mode 100644
index 32b9ce5..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRow.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.v3.opentype.microsoft.test.odata.services.opentypesservice.types;
-
-import org.apache.olingo.client.api.http.HttpMethod;
-import org.apache.olingo.ext.proxy.api.annotations.Namespace;
-import org.apache.olingo.ext.proxy.api.annotations.EntityType;
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
-import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
-import org.apache.olingo.ext.proxy.api.annotations.Property;
-import org.apache.olingo.ext.proxy.api.annotations.Operation;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-import org.apache.olingo.ext.proxy.api.OperationType;
-import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
-import org.apache.olingo.client.api.edm.ConcurrencyMode;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.*;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-
-@Namespace("Microsoft.Test.OData.Services.OpenTypesService")
-@EntityType(name = "IndexedRow",
-        openType = true,
-        hasStream = false,
-        isAbstract = false,
-        baseType = "Microsoft.Test.OData.Services.OpenTypesService.Row")
-public interface IndexedRow 
-  extends org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.Row {
-
-    
-    @Key
-    @Property(name = "Id", 
-                type = "Edm.Guid", 
-                nullable = false,
-                defaultValue = "",
-                maxLenght = Integer.MAX_VALUE,
-                fixedLenght = false,
-                precision = 0,
-                scale = 0,
-                unicode = true,
-                collation = "",
-                srid = "",
-                concurrencyMode = ConcurrencyMode.None,
-                fcSourcePath = "",
-                fcTargetPath = "",
-                fcContentKind = EdmContentKind.text,
-                fcNSPrefix = "",
-                fcNSURI = "",
-                fcKeepInContent = false)
-    UUID getId();
-
-    void setId(final UUID _id);    
-    
-    
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollection.java
deleted file mode 100644
index a334155..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/IndexedRowCollection.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types;
-
-import org.apache.olingo.client.api.http.HttpMethod;
-import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
-import org.apache.olingo.ext.proxy.api.OperationType;
-import org.apache.olingo.ext.proxy.api.annotations.Operation;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.*;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-public interface IndexedRowCollection extends AbstractEntityCollection<IndexedRow> {
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/Row.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/Row.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/Row.java
deleted file mode 100644
index d8e74b7..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/Row.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/* 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types;
-
-import org.apache.olingo.client.api.http.HttpMethod;
-import org.apache.olingo.ext.proxy.api.annotations.Namespace;
-import org.apache.olingo.ext.proxy.api.annotations.EntityType;
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
-import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
-import org.apache.olingo.ext.proxy.api.annotations.Property;
-import org.apache.olingo.ext.proxy.api.annotations.Operation;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-import org.apache.olingo.ext.proxy.api.OperationType;
-import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
-import org.apache.olingo.client.api.edm.ConcurrencyMode;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.*;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-
-@Namespace("Microsoft.Test.OData.Services.OpenTypesService")
-@EntityType(name = "Row",
-        openType = true,
-        hasStream = false,
-        isAbstract = false)
-public interface Row 
-  extends AbstractOpenType {
-
-    
-    @Key
-    @Property(name = "Id", 
-                type = "Edm.Guid", 
-                nullable = false,
-                defaultValue = "",
-                maxLenght = Integer.MAX_VALUE,
-                fixedLenght = false,
-                precision = 0,
-                scale = 0,
-                unicode = true,
-                collation = "",
-                srid = "",
-                concurrencyMode = ConcurrencyMode.None,
-                fcSourcePath = "",
-                fcTargetPath = "",
-                fcContentKind = EdmContentKind.text,
-                fcNSPrefix = "",
-                fcNSURI = "",
-                fcKeepInContent = false)
-    UUID getId();
-
-    void setId(final UUID _id);    
-    
-    
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollection.java
deleted file mode 100644
index 8069b90..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowCollection.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types;
-
-import org.apache.olingo.client.api.http.HttpMethod;
-import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
-import org.apache.olingo.ext.proxy.api.OperationType;
-import org.apache.olingo.ext.proxy.api.annotations.Operation;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.*;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-public interface RowCollection extends AbstractEntityCollection<Row> {
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndex.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndex.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndex.java
deleted file mode 100644
index 33e44a9..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndex.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.v3.opentype.microsoft.test.odata.services.opentypesservice.types;
-
-import org.apache.olingo.client.api.http.HttpMethod;
-import org.apache.olingo.ext.proxy.api.annotations.Namespace;
-import org.apache.olingo.ext.proxy.api.annotations.EntityType;
-import org.apache.olingo.ext.proxy.api.annotations.Key;
-import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
-import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
-import org.apache.olingo.ext.proxy.api.annotations.Property;
-import org.apache.olingo.ext.proxy.api.annotations.Operation;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-import org.apache.olingo.ext.proxy.api.AbstractOpenType;
-import org.apache.olingo.ext.proxy.api.OperationType;
-import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
-import org.apache.olingo.client.api.edm.ConcurrencyMode;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.*;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-
-@Namespace("Microsoft.Test.OData.Services.OpenTypesService")
-@EntityType(name = "RowIndex",
-        openType = true,
-        hasStream = false,
-        isAbstract = false)
-public interface RowIndex 
-  extends AbstractOpenType {
-
-    
-    @Key
-    @Property(name = "Id", 
-                type = "Edm.Int32", 
-                nullable = false,
-                defaultValue = "",
-                maxLenght = Integer.MAX_VALUE,
-                fixedLenght = false,
-                precision = 0,
-                scale = 0,
-                unicode = true,
-                collation = "",
-                srid = "",
-                concurrencyMode = ConcurrencyMode.None,
-                fcSourcePath = "",
-                fcTargetPath = "",
-                fcContentKind = EdmContentKind.text,
-                fcNSPrefix = "",
-                fcNSURI = "",
-                fcKeepInContent = false)
-    Integer getId();
-
-    void setId(final Integer _id);    
-    
-    
-
-    @NavigationProperty(name = "Rows", 
-                type = "Microsoft.Test.OData.Services.OpenTypesService.IndexedRow", 
-                targetSchema = "Microsoft.Test.OData.Services.OpenTypesService", 
-                targetContainer = "DefaultContainer", 
-                targetEntitySet = "Row")
-    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.IndexedRowCollection getRows();
-
-    void setRows(final org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.IndexedRowCollection _rows);
-
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollection.java
deleted file mode 100644
index eb6119e..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/RowIndexCollection.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types;
-
-import org.apache.olingo.client.api.http.HttpMethod;
-import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
-import org.apache.olingo.ext.proxy.api.OperationType;
-import org.apache.olingo.ext.proxy.api.annotations.Operation;
-import org.apache.olingo.ext.proxy.api.annotations.Parameter;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.*;
-import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-public interface RowIndexCollection extends AbstractEntityCollection<RowIndex> {
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/package-info.java
deleted file mode 100644
index cad5bc9..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservice/types/package-info.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservice.types;
-

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java
new file mode 100644
index 0000000..513c854
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.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.v3.opentype.microsoft.test.odata.services.opentypesservicev3;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.EntityContainer;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.Container;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.*;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+@Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV3")
+@EntityContainer(name = "DefaultContainer",
+  namespace = "Microsoft.Test.OData.Services.OpenTypesServiceV3",
+  isDefaultEntityContainer = true)
+public interface DefaultContainer extends Container {
+
+    Row getRow();
+
+    RowIndex getRowIndex();
+
+
+
+
+
+  Operations operations();
+
+  public interface Operations {
+  
+    }
+
+      ComplexFactory complexFactory();
+
+    interface ComplexFactory {
+          @Property(name = "ContactDetails",
+                type = "Microsoft.Test.OData.Services.OpenTypesServiceV3.ContactDetails")
+      org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.ContactDetails newContactDetails();
+
+        }
+  }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/Row.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/Row.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/Row.java
new file mode 100644
index 0000000..cb570dc
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/Row.java
@@ -0,0 +1,55 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3;
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.*;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+
+
+@EntitySet(name = "Row")
+public interface Row 
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row, UUID, org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowCollection> {
+
+    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row newRow();
+    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowCollection newRowCollection();
+    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.IndexedRow newIndexedRow();
+    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.IndexedRowCollection newIndexedRowCollection();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/RowIndex.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/RowIndex.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/RowIndex.java
new file mode 100644
index 0000000..0cac346
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/RowIndex.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.v3.opentype.microsoft.test.odata.services.opentypesservicev3;
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.*;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+
+
+@EntitySet(name = "RowIndex")
+public interface RowIndex 
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndex, Integer, org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndexCollection> {
+
+    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndex newRowIndex();
+    org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndexCollection newRowIndexCollection();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/package-info.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/package-info.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/package-info.java
new file mode 100644
index 0000000..e2b36cc
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/package-info.java
@@ -0,0 +1,21 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3;
+

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java
new file mode 100644
index 0000000..bdf2d78
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.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.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types;
+
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.ComplexType;
+import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.*;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+
+@Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV3")
+@ComplexType(name = "ContactDetails")
+public interface ContactDetails 
+    extends Serializable {
+
+
+    @Property(name = "FirstContacted", type = "Edm.Binary", nullable = true)
+    byte[] getFirstContacted();
+
+    void setFirstContacted(final byte[] _firstContacted);
+
+    
+
+    @Property(name = "LastContacted", type = "Edm.DateTimeOffset", nullable = false)
+    Calendar getLastContacted();
+
+    void setLastContacted(final Calendar _lastContacted);
+
+    
+
+    @Property(name = "Contacted", type = "Edm.DateTime", nullable = false)
+    Calendar getContacted();
+
+    void setContacted(final Calendar _contacted);
+
+    
+
+    @Property(name = "GUID", type = "Edm.Guid", nullable = false)
+    UUID getGUID();
+
+    void setGUID(final UUID _gUID);
+
+    
+
+    @Property(name = "PreferedContactTime", type = "Edm.Time", nullable = false)
+    BigDecimal getPreferedContactTime();
+
+    void setPreferedContactTime(final BigDecimal _preferedContactTime);
+
+    
+
+    @Property(name = "Byte", type = "Edm.Byte", nullable = false)
+    Short getByte();
+
+    void setByte(final Short _byte);
+
+    
+
+    @Property(name = "SignedByte", type = "Edm.SByte", nullable = false)
+    Byte getSignedByte();
+
+    void setSignedByte(final Byte _signedByte);
+
+    
+
+    @Property(name = "Double", type = "Edm.Double", nullable = false)
+    Double getDouble();
+
+    void setDouble(final Double _double);
+
+    
+
+    @Property(name = "Single", type = "Edm.Single", nullable = false)
+    Float getSingle();
+
+    void setSingle(final Float _single);
+
+    
+
+    @Property(name = "Short", type = "Edm.Int16", nullable = false)
+    Short getShort();
+
+    void setShort(final Short _short);
+
+    
+
+    @Property(name = "Int", type = "Edm.Int32", nullable = false)
+    Integer getInt();
+
+    void setInt(final Integer _int);
+
+    
+
+    @Property(name = "Long", type = "Edm.Int64", nullable = false)
+    Long getLong();
+
+    void setLong(final Long _long);
+
+    
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRow.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRow.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRow.java
new file mode 100644
index 0000000..21140fe
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRow.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.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
+import org.apache.olingo.client.api.edm.ConcurrencyMode;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.*;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+
+@Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV3")
+@EntityType(name = "IndexedRow",
+        openType = true,
+        hasStream = false,
+        isAbstract = false,
+        baseType = "Microsoft.Test.OData.Services.OpenTypesServiceV3.Row")
+public interface IndexedRow 
+  extends org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row {
+
+    
+    @Key
+    @Property(name = "Id", 
+                type = "Edm.Guid", 
+                nullable = false,
+                defaultValue = "",
+                maxLenght = Integer.MAX_VALUE,
+                fixedLenght = false,
+                precision = 0,
+                scale = 0,
+                unicode = true,
+                collation = "",
+                srid = "",
+                concurrencyMode = ConcurrencyMode.None,
+                fcSourcePath = "",
+                fcTargetPath = "",
+                fcContentKind = EdmContentKind.text,
+                fcNSPrefix = "",
+                fcNSURI = "",
+                fcKeepInContent = false)
+    UUID getId();
+
+    void setId(final UUID _id);    
+    
+    
+
+
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f6eb1b7c/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRowCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRowCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRowCollection.java
new file mode 100644
index 0000000..22afa8c
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRowCollection.java
@@ -0,0 +1,47 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.*;
+import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+public interface IndexedRowCollection extends AbstractEntityCollection<IndexedRow> {
+}