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

[1/2] olingo-odata4 git commit: [OLINGO-1100]Get related binding target returns wrong entity set

Repository: olingo-odata4
Updated Branches:
  refs/heads/master 36e45f021 -> 7dedb25c3


[OLINGO-1100]Get related binding target returns wrong entity set


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

Branch: refs/heads/master
Commit: 8130360d7cfa773e4720afb9aa9f732f19e10348
Parents: 891421d
Author: Archana Rai <ar...@sap.com>
Authored: Thu Jun 22 16:27:39 2017 +0530
Committer: Archana Rai <ar...@sap.com>
Committed: Thu Jun 22 16:27:39 2017 +0530

----------------------------------------------------------------------
 .../apache/olingo/client/core/MetadataTest.java | 27 ++++++++++
 .../apache/olingo/client/core/olingo1100.xml    | 57 ++++++++++++++++++++
 .../core/edm/AbstractEdmBindingTarget.java      |  2 +-
 3 files changed, 85 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8130360d/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
index 181335b..d624968 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
@@ -21,6 +21,7 @@ package org.apache.olingo.client.core;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.InputStream;
@@ -455,4 +456,30 @@ public class MetadataTest extends AbstractTest {
       assertEquals("EnumMember", expression.getExpressionName());
     }
   }
+  @Test
+  public void testOLINGO1100() {
+    final Edm edm = client.getReader().readMetadata(getClass().getResourceAsStream("olingo1100.xml"));
+    assertNotNull(edm);
+    final EdmEntityContainer container = edm.getEntityContainer(
+        new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "EntityContainer"));
+    assertNotNull(container);
+    final EdmEntitySet providers = container.getEntitySet("Provider");
+    assertNotNull(providers);
+    assertEquals(edm.getEntityType(new FullQualifiedName(container.getNamespace(), "Provider")),
+        providers.getEntityType());
+    assertEquals(container.getEntitySet("ProviderLicense"), providers.getRelatedBindingTarget("ProviderLicense"));
+    assertNull(providers.getRelatedBindingTarget("ProviderLicensePractice"));
+    assertNull(providers.getRelatedBindingTarget("Provider"));
+    final EdmEntitySet providerLicenses = container.getEntitySet("ProviderLicense");
+    assertEquals(edm.getEntityType(new FullQualifiedName(container.getNamespace(), "ProviderLicense")),
+        providerLicenses.getEntityType());
+    assertEquals(container.getEntitySet("ProviderLicensePractice"), 
+        providerLicenses.getRelatedBindingTarget("ProviderLicensePractice"));
+    assertNull(providerLicenses.getRelatedBindingTarget("ProviderLicense"));
+    assertNull(providerLicenses.getRelatedBindingTarget("Provider"));
+    final EdmEntitySet providerLicensePractices = container.getEntitySet("ProviderLicensePractice");
+    assertNull(providerLicensePractices.getRelatedBindingTarget("ProviderLicensePractice"));
+    assertNull(providerLicensePractices.getRelatedBindingTarget("Provider"));
+    assertNull(providerLicenses.getRelatedBindingTarget("ProviderLicense"));
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8130360d/lib/client-core/src/test/resources/org/apache/olingo/client/core/olingo1100.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/olingo1100.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/olingo1100.xml
new file mode 100644
index 0000000..fc5da75
--- /dev/null
+++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/olingo1100.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
+  <edmx:DataServices m:DataServiceVersion="4.0" m:MaxDataServiceVersion="4.0" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata">
+    <Schema Namespace="Microsoft.Exchange.Services.OData.Model" xmlns="http://docs.oasis-open.org/odata/ns/edm">
+      <EntityType Name="Provider" >
+     	<Key>
+          <PropertyRef Name="Id" />
+        </Key>
+        <Property Name="Id" Type="Edm.String" Nullable="false" />
+        <Property Name="DisplayName" Type="Edm.String" />
+        <NavigationProperty Name="ProviderLicense" Type="Collection(Microsoft.Exchange.Services.OData.Model.ProviderLicense)" />
+       </EntityType>
+      <EntityType Name="ProviderLicense" >
+     	 <Key>
+          <PropertyRef Name="LicenseId" />
+        </Key>
+        <Property Name="LicenseId" Type="Edm.String" Nullable="false" />
+        <NavigationProperty Name="ProviderLicensePractice" Type="Collection(Microsoft.Exchange.Services.OData.Model.ProviderLicensePractice)" />
+      </EntityType>
+      <EntityType Name="ProviderLicensePractice" >
+         <Key>
+          <PropertyRef Name="PracticeId" />
+        </Key>
+        <Property Name="PracticeId" Type="Edm.String" Nullable="false" />
+      </EntityType>
+         <EntityContainer Name="EntityContainer" m:IsDefaultEntityContainer="true">
+        <EntitySet Name="Provider" EntityType="Microsoft.Exchange.Services.OData.Model.Provider">
+          <NavigationPropertyBinding Path="ProviderLicense" Target="ProviderLicense" />
+        </EntitySet>
+        <EntitySet Name="ProviderLicense" EntityType="Microsoft.Exchange.Services.OData.Model.ProviderLicense">
+          <NavigationPropertyBinding Path="ProviderLicensePractice" Target="ProviderLicensePractice" />
+        </EntitySet>
+        <EntitySet Name="ProviderLicensePractice" EntityType="Microsoft.Exchange.Services.OData.Model.ProviderLicensePractice"/>
+      </EntityContainer>
+    </Schema>
+  </edmx:DataServices>
+</edmx:Edmx>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8130360d/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
index c8185fa..cade5a6 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
@@ -92,7 +92,7 @@ public abstract class AbstractEdmBindingTarget extends AbstractEdmNamed implemen
       if (binding.getPath() == null || binding.getTarget() == null) {
         throw new EdmException("Path or Target in navigation property binding must not be null!");
       }
-      if (path.startsWith(binding.getPath())) {
+      if (path.equals(binding.getPath())) {
         final Target edmTarget = new Target(binding.getTarget(), container);
 
         final EdmEntityContainer entityContainer = edm.getEntityContainer(edmTarget.getEntityContainer());


[2/2] olingo-odata4 git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/olingo-odata4.git

Posted by ar...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/olingo-odata4.git

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

Branch: refs/heads/master
Commit: 7dedb25c3a8a5e7b6b8d7817c3b5a10a1eebc28c
Parents: 8130360 36e45f0
Author: Archana Rai <ar...@sap.com>
Authored: Thu Jun 22 16:31:02 2017 +0530
Committer: Archana Rai <ar...@sap.com>
Committed: Thu Jun 22 16:31:02 2017 +0530

----------------------------------------------------------------------
 .../olingo/fit/tecsvc/http/BasicHttpITCase.java | 82 ++++++++++++++++++++
 .../serializer/json/ODataJsonSerializer.java    | 36 ++++++++-
 .../core/serializer/xml/ODataXmlSerializer.java | 15 +++-
 .../olingo/server/core/uri/parser/Parser.java   | 16 ++--
 .../TechnicalPrimitiveComplexProcessor.java     | 16 +++-
 .../tecsvc/processor/TechnicalProcessor.java    | 36 +++++++--
 .../json/ODataJsonSerializerTest.java           | 64 +++++++++++++++
 7 files changed, 245 insertions(+), 20 deletions(-)
----------------------------------------------------------------------