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(-)
----------------------------------------------------------------------