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

git commit: [OLINGO-62] Tests and documentation

Updated Branches:
  refs/heads/master cf4df9be8 -> 954ac46aa


[OLINGO-62] Tests and documentation


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

Branch: refs/heads/master
Commit: 954ac46aa81fe67c648a617ab3275cf12bc0b313
Parents: cf4df9b
Author: Christian Amend <ch...@apache.org>
Authored: Fri Jan 10 10:59:57 2014 +0100
Committer: Christian Amend <ch...@apache.org>
Committed: Fri Jan 10 11:00:41 2014 +0100

----------------------------------------------------------------------
 .../api/edm/constants/EdmConcurrencyMode.java   |  29 -----
 .../api/edm/constants/ODataServiceVersion.java  |  94 ++++++++++++++++
 .../odata4/commons/api/edm/provider/Action.java |   1 -
 .../commons/api/edm/provider/ActionImport.java  |   1 -
 .../commons/api/edm/provider/Annotation.java    |   1 -
 .../commons/api/edm/provider/EdmProvider.java   |  58 +++++++---
 .../api/edm/provider/EdmProviderAdapter.java    | 106 -------------------
 .../api/edm/provider/EntityContainer.java       |   1 -
 .../commons/api/edm/provider/EntitySet.java     |   1 -
 .../commons/api/edm/provider/EntitySetPath.java |   3 +-
 .../commons/api/edm/provider/EntityType.java    |   3 +-
 .../commons/api/edm/provider/EnumMember.java    |   1 -
 .../commons/api/edm/provider/EnumType.java      |   1 -
 .../commons/api/edm/provider/Function.java      |   1 -
 .../api/edm/provider/FunctionImport.java        |   1 -
 .../api/edm/provider/NavigationProperty.java    |   2 -
 .../edm/provider/NavigationPropertyBinding.java |   1 -
 .../commons/api/edm/provider/Operation.java     |   1 -
 .../api/edm/provider/OperationImport.java       |   1 -
 .../commons/api/edm/provider/Parameter.java     |   1 -
 .../commons/api/edm/provider/Property.java      |   3 +-
 .../api/edm/provider/ReferentialConstraint.java |   1 -
 .../commons/api/edm/provider/ReturnType.java    |   1 -
 .../odata4/commons/api/edm/provider/Schema.java |   1 -
 .../commons/api/edm/provider/Singleton.java     |   1 -
 .../api/edm/provider/StructuralType.java        |   1 -
 .../odata4/commons/api/edm/provider/Target.java |   1 -
 .../odata4/commons/api/edm/provider/Term.java   |   3 +-
 .../api/edm/provider/TypeDefinition.java        |   3 +-
 .../core/edm/provider/EdmEntityTypeImpl.java    |   9 +-
 .../core/edm/provider/EdmFunctionImpl.java      |  11 ++
 .../core/edm/provider/EdmOperationImpl.java     |  27 ++++-
 .../core/edm/provider/EdmPropertyImpl.java      |   4 +-
 .../edm/provider/EdmServiceMetadataImpl.java    |   4 +-
 .../commons/core/edm/EdmImplCachingTest.java    |   2 -
 .../producer/core/testutil/EdmTechProvider.java |   4 +-
 36 files changed, 189 insertions(+), 195 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/EdmConcurrencyMode.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/EdmConcurrencyMode.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/EdmConcurrencyMode.java
deleted file mode 100644
index 1e93686..0000000
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/EdmConcurrencyMode.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata4.commons.api.edm.constants;
-
-/**
- * EdmConcurrencyMode can be applied to any primitive Entity Data Model (EDM) type.
- * <p>Possible values are "None", which is the default, and "Fixed".
- * Fixed implies that the property should be used for optimistic concurrency checks.
- */
-public enum EdmConcurrencyMode {
-
-  None, Fixed;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/ODataServiceVersion.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/ODataServiceVersion.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/ODataServiceVersion.java
new file mode 100644
index 0000000..4b73eef
--- /dev/null
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/ODataServiceVersion.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.odata4.commons.api.edm.constants;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * This class is a container for the supported ODataServiceVersions.
+ * 
+ * 
+ */
+public class ODataServiceVersion {
+
+  private static final Pattern DATASERVICEVERSIONPATTERN = Pattern.compile("(\\p{Digit}+\\.\\p{Digit}+)(:?;.*)?");
+
+  /**
+   * ODataServiceVersion 1.0
+   */
+  public static final String V10 = "1.0";
+  /**
+   * ODataServiceVersion 2.0
+   */
+  public static final String V20 = "2.0";
+  /**
+   * ODataServiceVersion 3.0
+   */
+  public static final String V30 = "3.0";
+  /**
+   * ODataServiceVersion 4.0
+   */
+  public static final String V40 = "4.0";
+
+  /**
+   * Validates format and range of a data service version string.
+   * @param version version string
+   * @return <code>true</code> for a valid version
+   */
+  public static boolean validateDataServiceVersion(final String version) {
+    final Matcher matcher = DATASERVICEVERSIONPATTERN.matcher(version);
+    if (matcher.matches()) {
+      final String possibleDataServiceVersion = matcher.group(1);
+      return V10.equals(possibleDataServiceVersion)
+          || V20.equals(possibleDataServiceVersion)
+          || V30.equals(possibleDataServiceVersion)
+          || V40.equals(possibleDataServiceVersion);
+    } else {
+      throw new IllegalArgumentException(version);
+    }
+  }
+
+  /**
+   * actual > comparedTo
+   * @param actual
+   * @param comparedTo
+   * @return <code>true</code> if actual is bigger than comparedTo
+   */
+  public static boolean isBiggerThan(final String actual, final String comparedTo) {
+    if (!validateDataServiceVersion(comparedTo) || !validateDataServiceVersion(actual)) {
+      throw new IllegalArgumentException("Illegal arguments: " + comparedTo + " and " + actual);
+    }
+
+    final double me = Double.parseDouble(extractDataServiceVersionString(actual));
+    final double other = Double.parseDouble(extractDataServiceVersionString(comparedTo));
+
+    return me > other;
+  }
+
+  private static String extractDataServiceVersionString(final String rawDataServiceVersion) {
+    if (rawDataServiceVersion != null) {
+      final String[] pattern = rawDataServiceVersion.split(";");
+      return pattern[0];
+    }
+
+    return null;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Action.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Action.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Action.java
index 8ab99ae..b074d24 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Action.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Action.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-//TODO: Finish
 public class Action extends Operation {
   @Override
   public Action setName(final String name) {

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ActionImport.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ActionImport.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ActionImport.java
index 20e2772..bcb4e49 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ActionImport.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ActionImport.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: Finish
 public class ActionImport extends OperationImport {
   private FullQualifiedName action;
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Annotation.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Annotation.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Annotation.java
index 3440a17..50eb7aa 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Annotation.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Annotation.java
@@ -22,7 +22,6 @@ import java.util.List;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO:finish
 public class Annotation {
   private FullQualifiedName term;
   // Target should be a target path

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EdmProvider.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EdmProvider.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EdmProvider.java
index 1f0bca7..34d56ed 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EdmProvider.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EdmProvider.java
@@ -25,7 +25,7 @@ import org.apache.olingo.odata4.commons.api.edm.helper.EntityContainerInfo;
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 import org.apache.olingo.odata4.commons.api.exception.ODataException;
 
-public interface EdmProvider {
+public abstract class EdmProvider {
 
   /**
    * This method should return an {@link EnumType} or <b>null</b> if nothing is found
@@ -33,7 +33,9 @@ public interface EdmProvider {
    * @return {@link EnumType} for given name
    * @throws ODataException
    */
-  public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException;
+  public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return an {@link TypeDefinition} or <b>null</b> if nothing is found
@@ -41,7 +43,9 @@ public interface EdmProvider {
    * @return {@link TypeDefinition} for given name
    * @throws ODataException
    */
-  public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException;
+  public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return an {@link EntityType} or <b>null</b> if nothing is found
@@ -49,7 +53,9 @@ public interface EdmProvider {
    * @return {@link EntityType} for the given name
    * @throws ODataException
    */
-  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException;
+  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return a {@link ComplexType} or <b>null</b> if nothing is found
@@ -57,7 +63,9 @@ public interface EdmProvider {
    * @return {@link StructuralType} for the given name
    * @throws ODataException
    */
-  public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException;
+  public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return a list of all {@link Action} for the FullQualifiedname or <b>null</b> if nothing is found
@@ -65,7 +73,9 @@ public interface EdmProvider {
    * @return List of {@link Action} or null
    * @throws ODataException
    */
-  public List<Action> getActions(final FullQualifiedName actionName) throws ODataException;
+  public List<Action> getActions(final FullQualifiedName actionName) throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return a list of all {@link Function} for the FullQualifiedname or <b>null</b> if nothing is
@@ -74,10 +84,14 @@ public interface EdmProvider {
    * @return List of {@link Function} or null
    * @throws ODataException
    */
-  public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException;
+  public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException {
+    return null;
+  };
 
   // TODO: document
-  public Term getTerm(final FullQualifiedName termName) throws ODataException;
+  public Term getTerm(final FullQualifiedName termName) throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return an {@link EntitySet} or <b>null</b> if nothing is found
@@ -87,7 +101,9 @@ public interface EdmProvider {
    * @throws ODataException
    */
   public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
-      throws ODataException;
+      throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return an {@link Singleton} or <b>null</b> if nothing is found
@@ -97,7 +113,9 @@ public interface EdmProvider {
    * @throws ODataException
    */
   public Singleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
-      throws ODataException;
+      throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return an {@link ActionImport} or <b>null</b> if nothing is found
@@ -107,7 +125,9 @@ public interface EdmProvider {
    * @throws ODataException
    */
   public ActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
-      throws ODataException;
+      throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return a {@link FunctionImport} or <b>null</b> if nothing is found
@@ -117,7 +137,9 @@ public interface EdmProvider {
    * @throws ODataException
    */
   public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
-      throws ODataException;
+      throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return an {@link EntityContainerInfo} or <b>null</b> if nothing is found
@@ -125,19 +147,25 @@ public interface EdmProvider {
    * @return {@link EntityContainerInfo} for the given name
    * @throws ODataException
    */
-  public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException;
+  public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return a list of all namespaces which have an alias
    * @return List of alias info
    * @throws ODataException
    */
-  public List<AliasInfo> getAliasInfos() throws ODataException;
+  public List<AliasInfo> getAliasInfos() throws ODataException {
+    return null;
+  };
 
   /**
    * This method should return a collection of all {@link Schema}
    * @return List<{@link Schema}>
    * @throws ODataException
    */
-  public List<Schema> getSchemas() throws ODataException;
+  public List<Schema> getSchemas() throws ODataException {
+    return null;
+  };
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EdmProviderAdapter.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EdmProviderAdapter.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EdmProviderAdapter.java
deleted file mode 100644
index 8633ee2..0000000
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EdmProviderAdapter.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata4.commons.api.edm.provider;
-
-import java.util.List;
-
-import org.apache.olingo.odata4.commons.api.edm.helper.AliasInfo;
-import org.apache.olingo.odata4.commons.api.edm.helper.EntityContainerInfo;
-import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
-import org.apache.olingo.odata4.commons.api.exception.ODataException;
-
-//TODO: Finish
-/**
- * Default EDM Provider which is to be extended by the application
- */
-public abstract class EdmProviderAdapter implements EdmProvider {
-
-  @Override
-  public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public List<Action> getActions(final FullQualifiedName actionName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public Term getTerm(final FullQualifiedName termName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String name) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public Singleton getSingleton(final FullQualifiedName entityContainer, final String name) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public ActionImport getActionImport(final FullQualifiedName entityContainer, final String name) throws ODataException
-  {
-    return null;
-  }
-
-  @Override
-  public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String name)
-      throws ODataException {
-    return null;
-  }
-
-  // There are no other containers
-  @Override
-  public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public List<AliasInfo> getAliasInfos() throws ODataException {
-    return null;
-  }
-
-  @Override
-  public List<Schema> getSchemas() throws ODataException {
-    return null;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainer.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainer.java
index 4d43c94..1b24e10 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainer.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainer.java
@@ -22,7 +22,6 @@ import java.util.List;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: finish
 public class EntityContainer {
 
   private String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySet.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySet.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySet.java
index 435ed8a..848d564 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySet.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySet.java
@@ -22,7 +22,6 @@ import java.util.List;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: Finish
 public class EntitySet extends BindingTarget {
 
   private boolean includeInServiceDocument;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySetPath.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySetPath.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySetPath.java
index eaaae9b..e2d48f0 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySetPath.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySetPath.java
@@ -18,8 +18,7 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-//TODO: finish
-//DO we really need this class?
+//TODO: Do we really need this class?
 public class EntitySetPath {
 
   private String bindingParameter;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityType.java
index c5ff3d9..c04372d 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityType.java
@@ -22,9 +22,8 @@ import java.util.List;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: Finish
 public class EntityType extends StructuralType {
-  // Anything except which have to be new?
+
   private List<PropertyRef> key;
   private boolean hasStream;
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumMember.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumMember.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumMember.java
index 6450793..a256844 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumMember.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumMember.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-//TODO: Finish
 public class EnumMember {
 
   private String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumType.java
index 38e5bd3..0411101 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumType.java
@@ -22,7 +22,6 @@ import java.util.List;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: Finish
 public class EnumType {
 
   private String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Function.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Function.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Function.java
index d2539d9..4894524 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Function.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Function.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-//TODO: Finish
 public class Function extends Operation {
 
   private boolean isComposable;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/FunctionImport.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/FunctionImport.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/FunctionImport.java
index 098e678..cec3ccd 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/FunctionImport.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/FunctionImport.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: Finish
 public class FunctionImport extends OperationImport {
 
   private FullQualifiedName function;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/NavigationProperty.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/NavigationProperty.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/NavigationProperty.java
index 22b26ad..e16ae3b 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/NavigationProperty.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/NavigationProperty.java
@@ -23,14 +23,12 @@ import java.util.List;
 import org.apache.olingo.odata4.commons.api.edm.constants.EdmOnDelete;
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: finish
 public class NavigationProperty {
 
   private String name;
   private FullQualifiedName type;
   private boolean isCollection;
 
-  // Should we make the partner a path class?
   private String partner;
   private boolean containsTarget;
   private List<ReferentialConstraint> referentialConstraints;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/NavigationPropertyBinding.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/NavigationPropertyBinding.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/NavigationPropertyBinding.java
index 15517f9..a495007 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/NavigationPropertyBinding.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/NavigationPropertyBinding.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-//TODO: finish
 public class NavigationPropertyBinding {
 
   private String path;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Operation.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Operation.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Operation.java
index db0f120..18c64fb 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Operation.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Operation.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-//TODO: finish
 public abstract class Operation {
 
   protected String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/OperationImport.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/OperationImport.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/OperationImport.java
index 02433ec..47827e3 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/OperationImport.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/OperationImport.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-//TODO: finish
 public abstract class OperationImport {
 
   protected String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Parameter.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Parameter.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Parameter.java
index 8d7a6c0..6b34d7f 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Parameter.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Parameter.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: finish
 public class Parameter {
 
   private String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Property.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Property.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Property.java
index 3936e4c..f5d91ab 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Property.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Property.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: Finish
 public class Property {
 
   private String name;
@@ -28,7 +27,7 @@ public class Property {
   private FullQualifiedName type;
   private boolean collection;
 
-  // Mimetype and mapping what here
+  //TODO: Mimetype and mapping what here
   private String mimeType;
   private Mapping mapping;
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReferentialConstraint.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReferentialConstraint.java
index c9828b8..600b104 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReferentialConstraint.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReferentialConstraint.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-//TODO: finish
 public class ReferentialConstraint {
 
   // TODO: check data type

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReturnType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReturnType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReturnType.java
index 00130f5..a81e08d 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReturnType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReturnType.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODDO: finish
 public class ReturnType {
 
   private FullQualifiedName type;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Schema.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Schema.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Schema.java
index 087512d..981db62 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Schema.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Schema.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-//TODO: Finish
 public class Schema {
 
   private String namespace;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Singleton.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Singleton.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Singleton.java
index ab5a06f..d17b801 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Singleton.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Singleton.java
@@ -22,7 +22,6 @@ import java.util.List;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: Finish
 public class Singleton extends BindingTarget {
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/StructuralType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/StructuralType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/StructuralType.java
index ec7a52a..100006b 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/StructuralType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/StructuralType.java
@@ -22,7 +22,6 @@ import java.util.List;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: Finish
 public abstract class StructuralType {
 
   protected String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Target.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Target.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Target.java
index 9cdce1a..aa45f03 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Target.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Target.java
@@ -22,7 +22,6 @@ import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
 public class Target {
 
-  // What is the name here?
   private String targetName;
   private FullQualifiedName entityContainer;
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Term.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Term.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Term.java
index 991a633..aeb638c 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Term.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Term.java
@@ -22,12 +22,11 @@ import java.util.List;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: Finish
 public class Term {
   private String name;
   private FullQualifiedName type;
   private FullQualifiedName baseTerm;
-  // AppliesTo is a list of csdl elements => should we put this list inside an enum?
+  //TODO: AppliesTo is a list of csdl elements => should we put this list inside an enum?
   private String appliesTo;
   private boolean isCollection;
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/TypeDefinition.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/TypeDefinition.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/TypeDefinition.java
index 7eb978a..e1fe012 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/TypeDefinition.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/TypeDefinition.java
@@ -20,11 +20,10 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 
-//TODO: Finish
 public class TypeDefinition {
 
   private String name;
-  // UnderlyingType can only be primitve...
+  // TODO: UnderlyingType can only be primitve...
   private FullQualifiedName underlyingType;
 
   // Facets

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntityTypeImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntityTypeImpl.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntityTypeImpl.java
index 24248b7..9c28775 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntityTypeImpl.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntityTypeImpl.java
@@ -37,6 +37,7 @@ public class EdmEntityTypeImpl extends EdmStructuralTypeImpl implements EdmEntit
   private final List<String> keyPredicateNames = new ArrayList<String>();
   private final HashMap<String, EdmKeyPropertyRef> keyPropertyRefs = new HashMap<String, EdmKeyPropertyRef>();
   private final EdmEntityType entityBaseType;
+  private ArrayList<EdmKeyPropertyRef> keyPropertyRefsList;
 
   public EdmEntityTypeImpl(final EdmProviderImpl edm, final FullQualifiedName name, final EntityType entityType) {
     super(edm, name, entityType, EdmTypeKind.ENTITY);
@@ -86,8 +87,10 @@ public class EdmEntityTypeImpl extends EdmStructuralTypeImpl implements EdmEntit
     if (baseType != null) {
       return entityBaseType.getKeyPropertyRefs();
     } else {
-      // TODO: Cache
-      return new ArrayList<EdmKeyPropertyRef>(keyPropertyRefs.values());
+      if(keyPropertyRefsList == null){
+        keyPropertyRefsList = new ArrayList<EdmKeyPropertyRef>(keyPropertyRefs.values());
+      }
+      return keyPropertyRefsList;
     }
   }
 
@@ -106,7 +109,7 @@ public class EdmEntityTypeImpl extends EdmStructuralTypeImpl implements EdmEntit
     if (baseTypeName != null) {
       baseType = edm.getEntityType(baseTypeName);
       if (baseType == null) {
-        throw new EdmException("Cant find base type with name: " + baseTypeName + " for entity type: " + getName());
+        throw new EdmException("Cannot find base type with name: " + baseTypeName + " for entity type: " + getName());
       }
     }
     return baseType;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImpl.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImpl.java
index 6f610b7..df4dbfe 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImpl.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImpl.java
@@ -18,7 +18,9 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.core.edm.provider;
 
+import org.apache.olingo.odata4.commons.api.edm.EdmException;
 import org.apache.olingo.odata4.commons.api.edm.EdmFunction;
+import org.apache.olingo.odata4.commons.api.edm.EdmReturnType;
 import org.apache.olingo.odata4.commons.api.edm.constants.EdmTypeKind;
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 import org.apache.olingo.odata4.commons.api.edm.provider.Function;
@@ -37,4 +39,13 @@ public class EdmFunctionImpl extends EdmOperationImpl implements EdmFunction {
     return function.isComposable();
   }
 
+  @Override
+  public EdmReturnType getReturnType() {
+    EdmReturnType returnType = super.getReturnType();
+    if (returnType == null) {
+      throw new EdmException("ReturnType for a function must not be null");
+    }
+    return returnType;
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmOperationImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmOperationImpl.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmOperationImpl.java
index d1b49ed..2c8cc26 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmOperationImpl.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmOperationImpl.java
@@ -23,12 +23,15 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.olingo.odata4.commons.api.edm.EdmBindingTarget;
 import org.apache.olingo.odata4.commons.api.edm.EdmEntitySet;
+import org.apache.olingo.odata4.commons.api.edm.EdmException;
 import org.apache.olingo.odata4.commons.api.edm.EdmOperation;
 import org.apache.olingo.odata4.commons.api.edm.EdmParameter;
 import org.apache.olingo.odata4.commons.api.edm.EdmReturnType;
 import org.apache.olingo.odata4.commons.api.edm.constants.EdmTypeKind;
 import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
+import org.apache.olingo.odata4.commons.api.edm.provider.EntitySetPath;
 import org.apache.olingo.odata4.commons.api.edm.provider.Operation;
 import org.apache.olingo.odata4.commons.api.edm.provider.Parameter;
 
@@ -72,13 +75,31 @@ public class EdmOperationImpl extends EdmTypeImpl implements EdmOperation {
 
   @Override
   public EdmEntitySet getReturnedEntitySet(final EdmEntitySet bindingParameterEntitySet, final String path) {
-    // TODO: What here?
-    return null;
+    EntitySetPath entitySetPath = operation.getEntitySetPath();
+    EdmEntitySet returnedEntitySet = null;
+    if (bindingParameterEntitySet != null && entitySetPath != null && entitySetPath.getBindingParameter() != null
+        && entitySetPath.getPath() != null) {
+      String finalPath = "";
+      if (path != null) {
+        finalPath = path + "/" + entitySetPath.getPath();
+      } else {
+        finalPath = entitySetPath.getPath();
+      }
+
+      EdmBindingTarget relatedBindingTarget = bindingParameterEntitySet.getRelatedBindingTarget(finalPath);
+      if (relatedBindingTarget instanceof EdmEntitySet) {
+        returnedEntitySet = (EdmEntitySet) relatedBindingTarget;
+      } else {
+        throw new EdmException("BindingTarget with name: " + relatedBindingTarget.getName() + " must be an entity set");
+      }
+    }
+
+    return returnedEntitySet;
   }
 
   @Override
   public EdmReturnType getReturnType() {
-    if (returnType == null) {
+    if (returnType == null && operation.getReturnType() != null) {
       returnType = new EdmReturnTypeImpl(edm, operation.getReturnType());
     }
     return returnType;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmPropertyImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmPropertyImpl.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmPropertyImpl.java
index 5a0281f..8baabf4 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmPropertyImpl.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmPropertyImpl.java
@@ -52,7 +52,7 @@ public class EdmPropertyImpl extends EdmElementImpl implements EdmProperty {
         if (kind != null) {
           propertyType = kind.getEdmPrimitiveTypeInstance();
         } else {
-          throw new EdmException("Can�t find type with name: " + typeName);
+          throw new EdmException("Cannot find type with name: " + typeName);
         }
       } else {
         propertyType = edm.getComplexType(typeName);
@@ -61,7 +61,7 @@ public class EdmPropertyImpl extends EdmElementImpl implements EdmProperty {
           if (propertyType == null) {
             propertyType = edm.getTypeDefinition(typeName);
             if (propertyType == null) {
-              throw new EdmException("Can�t find type with name: " + typeName);
+              throw new EdmException("Cannot find type with name: " + typeName);
             }
           }
         }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImpl.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImpl.java
index 13934cf..454d824 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImpl.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImpl.java
@@ -22,6 +22,7 @@ import java.io.InputStream;
 import java.util.List;
 
 import org.apache.olingo.odata4.commons.api.edm.EdmServiceMetadata;
+import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.odata4.commons.api.edm.helper.EdmEntitySetInfo;
 import org.apache.olingo.odata4.commons.api.edm.helper.EdmFunctionImportInfo;
 import org.apache.olingo.odata4.commons.api.edm.helper.EdmSingletonInfo;
@@ -38,8 +39,7 @@ public class EdmServiceMetadataImpl implements EdmServiceMetadata {
 
   @Override
   public String getDataServiceVersion() {
-    // TODO: make constant
-    return "4.0";
+    return ODataServiceVersion.V40;
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/EdmImplCachingTest.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/EdmImplCachingTest.java b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/EdmImplCachingTest.java
index 0d1fd88..05bb007 100644
--- a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/EdmImplCachingTest.java
+++ b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/EdmImplCachingTest.java
@@ -50,8 +50,6 @@ public class EdmImplCachingTest {
   private final FullQualifiedName NAME2 = new FullQualifiedName("testNamespace2", "testName2");
   private Edm edm;
 
-  // TODO: Test with alias
-
   @Test
   public void cacheEntityContainer() {
     EdmEntityContainer entityContainer = edm.getEntityContainer(null);

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/954ac46a/odata4-lib/odata4-producer-core/src/test/java/org/apache/olingo/odata4/producer/core/testutil/EdmTechProvider.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-producer-core/src/test/java/org/apache/olingo/odata4/producer/core/testutil/EdmTechProvider.java b/odata4-lib/odata4-producer-core/src/test/java/org/apache/olingo/odata4/producer/core/testutil/EdmTechProvider.java
index 479c87d..6631078 100644
--- a/odata4-lib/odata4-producer-core/src/test/java/org/apache/olingo/odata4/producer/core/testutil/EdmTechProvider.java
+++ b/odata4-lib/odata4-producer-core/src/test/java/org/apache/olingo/odata4/producer/core/testutil/EdmTechProvider.java
@@ -26,7 +26,7 @@ import org.apache.olingo.odata4.commons.api.edm.helper.FullQualifiedName;
 import org.apache.olingo.odata4.commons.api.edm.provider.Action;
 import org.apache.olingo.odata4.commons.api.edm.provider.ActionImport;
 import org.apache.olingo.odata4.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.odata4.commons.api.edm.provider.EdmProviderAdapter;
+import org.apache.olingo.odata4.commons.api.edm.provider.EdmProvider;
 import org.apache.olingo.odata4.commons.api.edm.provider.EntitySet;
 import org.apache.olingo.odata4.commons.api.edm.provider.EntityType;
 import org.apache.olingo.odata4.commons.api.edm.provider.EnumMember;
@@ -43,7 +43,7 @@ import org.apache.olingo.odata4.commons.api.edm.provider.Singleton;
 import org.apache.olingo.odata4.commons.api.exception.ODataException;
 import org.apache.olingo.odata4.commons.core.edm.primitivetype.EdmPrimitiveTypeKind;
 
-public class EdmTechProvider extends EdmProviderAdapter {
+public class EdmTechProvider extends EdmProvider {
 
   public static final String nameSpace = "com.sap.odata.test1";