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/21 05:44:25 UTC
olingo-odata4 git commit: Revert "[OLINGO-1062]Cannot consume Term
defined in external Vocabulary"
Repository: olingo-odata4
Updated Branches:
refs/heads/master ce4bc57a8 -> 2dc14d676
Revert "[OLINGO-1062]Cannot consume Term defined in external Vocabulary"
This reverts commit ce4bc57a84c0f79392a868159734bbf268d3fc4b.
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/2dc14d67
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/2dc14d67
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/2dc14d67
Branch: refs/heads/master
Commit: 2dc14d6764da913967311f940d462ed0e0cb236c
Parents: ce4bc57
Author: Archana Rai <ar...@sap.com>
Authored: Wed Jun 21 11:13:56 2017 +0530
Committer: Archana Rai <ar...@sap.com>
Committed: Wed Jun 21 11:13:56 2017 +0530
----------------------------------------------------------------------
.../olingo/fit/tecsvc/client/BasicITCase.java | 61 ---------
.../olingo/fit/tecsvc/http/BasicHttpITCase.java | 25 ----
.../test/resources/edmxWithCoreAnnotation.xml | 49 --------
.../serialization/ClientODataDeserializer.java | 4 -
.../client/api/serialization/ODataReader.java | 12 --
.../ClientODataDeserializerImpl.java | 17 ---
.../core/serialization/ODataReaderImpl.java | 13 --
.../apache/olingo/client/core/MetadataTest.java | 41 ------
.../org/apache/olingo/client/core/VOC_Core.xml | 125 -------------------
.../client/core/edmxWithCoreAnnotation.xml | 48 -------
.../commons/core/edm/EdmProviderImpl.java | 17 ---
.../olingo/server/core/ODataHandlerImpl.java | 5 +-
.../olingo/server/core/uri/parser/Parser.java | 13 +-
.../TechnicalPrimitiveComplexProcessor.java | 14 +--
.../tecsvc/processor/TechnicalProcessor.java | 95 ++++----------
15 files changed, 30 insertions(+), 509 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
index 6d1b51b..63a0d0e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
@@ -29,12 +29,9 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.junit.Assume.assumeTrue;
-import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -86,12 +83,9 @@ import org.apache.olingo.commons.api.edm.EdmActionImport;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmEntitySet;
-import org.apache.olingo.commons.api.edm.EdmEntityType;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmProperty;
import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.annotation.EdmExpression;
import org.apache.olingo.commons.api.ex.ODataError;
import org.apache.olingo.commons.api.format.ContentType;
import org.apache.olingo.commons.api.http.HttpHeader;
@@ -121,8 +115,6 @@ public class BasicITCase extends AbstractParamTecSvcITCase {
private static final String PROPERTY_COMP_NAV = "CollPropertyCompNav";
private static final String COL_PROPERTY_COMP = "CollPropertyComp";
private static final String PROPERTY_COMP_TWO_PRIM = "PropertyCompTwoPrim";
-
- private static final String SERVICE_ROOT_URL = "http://localhost:9080/odata-server-tecsvc/";
@Test
public void readServiceDocument() {
@@ -1611,57 +1603,4 @@ public class BasicITCase extends AbstractParamTecSvcITCase {
getEntities().get(1).getTypeName().toString());
assertEquals("olingo.odata.test1.ETAllPrim", entity.getTypeName().toString());
}
-
- @Test
- public void readViaXmlMetadataAnnotation() throws URISyntaxException, IOException {
- InputStream input = Thread.currentThread().getContextClassLoader().
- getResourceAsStream("edmxWithCoreAnnotation.xml");
- final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).toMetadata(input);
- String vocabUrl = metadata.getReferences().get(0).getUri().toString();
- vocabUrl = vocabUrl.substring(vocabUrl.indexOf("../") + 3);
- vocabUrl = SERVICE_ROOT_URL + vocabUrl;
- URI uri = new URI(vocabUrl);
- input.close();
- ODataRawRequest request = getClient().getRetrieveRequestFactory().getRawRequest(uri);
- assertNotNull(request);
- setCookieHeader(request);
-
- ODataRawResponse response = request.execute();
- saveCookieHeader(response);
- assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
-
- List<InputStream> streams = new ArrayList<InputStream>();
- streams.add(response.getRawResponse());
- Edm edm = getClient().getReader().readMetadata(Thread.currentThread().getContextClassLoader().
- getResourceAsStream("edmxWithCoreAnnotation.xml"), streams);
- assertNotNull(edm);
- final EdmEntityType person = edm.getEntityType(
- new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Person"));
- assertNotNull(person);
- EdmProperty concurrency = (EdmProperty) person.getProperty("Concurrency");
- List<EdmAnnotation> annotations = concurrency.getAnnotations();
- for (EdmAnnotation annotation : annotations) {
- annotation.getExpression();
- EdmTerm term = annotation.getTerm();
- assertNotNull(term);
- assertEquals("Computed", term.getName());
- assertEquals("Org.OData.Core.V1.Computed",
- term.getFullQualifiedName().getFullQualifiedNameAsString());
- assertEquals(1, term.getAnnotations().size());
- }
- EdmProperty userName = (EdmProperty) person.getProperty("UserName");
- List<EdmAnnotation> userNameAnnotations = userName.getAnnotations();
- for (EdmAnnotation annotation : userNameAnnotations) {
- EdmTerm term = annotation.getTerm();
- assertNotNull(term);
- assertEquals("Permissions", term.getName());
- assertEquals("Org.OData.Core.V1.Permissions",
- term.getFullQualifiedName().getFullQualifiedNameAsString());
- EdmExpression expression = annotation.getExpression();
- assertNotNull(expression);
- assertTrue(expression.isConstant());
- assertEquals("Org.OData.Core.V1.Permission/Read", expression.asConstant().getValueAsString());
- assertEquals("EnumMember", expression.getExpressionName());
- }
- }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicHttpITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicHttpITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicHttpITCase.java
index 7e4b9b0..55a04f5 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicHttpITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicHttpITCase.java
@@ -181,30 +181,5 @@ public class BasicHttpITCase extends AbstractBaseTestITCase {
protected ODataClient getClient() {
return null;
}
-
- @Test
- public void testInvalidTopUrl() throws Exception {
- URL url = new URL(SERVICE_URI + "?$top");
-
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setRequestMethod(HttpMethod.GET.name());
- connection.connect();
-
- assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), connection.getResponseCode());
- assertTrue(IOUtils.toString(connection.getErrorStream()).
- contains("The system query option '$top' has the not-allowed value ''."));
- }
- @Test
- public void testInvalidSkipUrl() throws Exception {
- URL url = new URL(SERVICE_URI + "?$skip=");
-
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setRequestMethod(HttpMethod.GET.name());
- connection.connect();
-
- assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), connection.getResponseCode());
- assertTrue(IOUtils.toString(connection.getErrorStream()).
- contains("The system query option '$skip' has the not-allowed value ''."));
- }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/fit/src/test/resources/edmxWithCoreAnnotation.xml
----------------------------------------------------------------------
diff --git a/fit/src/test/resources/edmxWithCoreAnnotation.xml b/fit/src/test/resources/edmxWithCoreAnnotation.xml
deleted file mode 100644
index e10fcf8..0000000
--- a/fit/src/test/resources/edmxWithCoreAnnotation.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
-<edmx:Reference Uri="../v4.0/cs02/vocabularies/Org.OData.Core.V1.xml"/>
- <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="Person" OpenType="true">
- <Key>
- <PropertyRef Name="UserName"/>
- </Key>
- <Property Name="UserName" Type="Edm.String" Nullable="false">
- <Annotation Term="Org.OData.Core.V1.Permissions">
- <EnumMember>Org.OData.Core.V1.Permission/Read</EnumMember>
- </Annotation>
- </Property>
- <Property Name="FirstName" Type="Edm.String" Nullable="false"/>
- <Property Name="LastName" Type="Edm.String" Nullable="false"/>
- <Property Name="Emails" Type="Collection(Edm.String)"/>
- <Property Name="AddressInfo" Type="Collection(Microsoft.OData.SampleService.Models.TripPin.Location)"/>
- <Property Name="Gender" Type="Microsoft.OData.SampleService.Models.TripPin.PersonGender"/>
- <Property Name="Concurrency" Type="Edm.Int64" Nullable="false">
- <Annotation Term="Org.OData.Core.V1.Computed" Bool="true"/>
- </Property>
- </EntityType>
- <EntityContainer Name="EntityContainer" m:IsDefaultEntityContainer="true">
- <EntitySet Name="People" EntityType="Microsoft.Exchange.Services.OData.Model.Person"/>
- </EntityContainer>
- </Schema>
- </edmx:DataServices>
-</edmx:Edmx>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java
index 47935b1..ba18683 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java
@@ -19,19 +19,15 @@
package org.apache.olingo.client.api.serialization;
import java.io.InputStream;
-import java.util.List;
import org.apache.olingo.client.api.data.ResWrap;
import org.apache.olingo.client.api.data.ServiceDocument;
import org.apache.olingo.client.api.edm.xml.XMLMetadata;
import org.apache.olingo.commons.api.data.Delta;
-import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
public interface ClientODataDeserializer extends ODataDeserializer {
XMLMetadata toMetadata(InputStream input);
-
- List<CsdlSchema> fetchTermDefinitionSchema(List<InputStream> input);
/**
* Gets the ServiceDocument object represented by the given InputStream.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
index 43f46e5..a374adb 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
@@ -19,7 +19,6 @@
package org.apache.olingo.client.api.serialization;
import java.io.InputStream;
-import java.util.List;
import java.util.Map;
import org.apache.olingo.client.api.data.ResWrap;
@@ -48,15 +47,6 @@ public interface ODataReader {
* @return metadata representation.
*/
Edm readMetadata(InputStream input);
-
- /**
- * Parses a stream into metadata representation.
- * Also parses a term definition stream into Term representation.
- * @param input
- * @param termDefinitions
- * @return
- */
- Edm readMetadata(InputStream input, List<InputStream> termDefinitions);
/**
* Parses a stream into metadata representation, including referenced metadata documents.
@@ -66,8 +56,6 @@ public interface ODataReader {
* @return metadata representation.
*/
Edm readMetadata(Map<String, CsdlSchema> xmlSchemas);
-
- Edm readMetadata(Map<String, CsdlSchema> xmlSchemas, List<CsdlSchema> termDefinitionSchema);
/**
* Parses an OData service document.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
index ca3d88a..ec361ab 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
@@ -20,8 +20,6 @@ package org.apache.olingo.client.core.serialization;
import java.io.IOException;
import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
import javax.xml.stream.XMLStreamException;
@@ -40,7 +38,6 @@ import org.apache.olingo.commons.api.data.Entity;
import org.apache.olingo.commons.api.data.EntityCollection;
import org.apache.olingo.commons.api.data.Property;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
import org.apache.olingo.commons.api.ex.ODataError;
import org.apache.olingo.commons.api.format.ContentType;
@@ -120,20 +117,6 @@ public class ClientODataDeserializerImpl implements ClientODataDeserializer {
throw new IllegalArgumentException("Could not parse as Edmx document", e);
}
}
-
- @Override
- public List<CsdlSchema> fetchTermDefinitionSchema(final List<InputStream> input) {
- List<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
- try {
- for (InputStream stream : input) {
- ClientCsdlEdmx edmx = getXmlMapper().readValue(stream, ClientCsdlEdmx.class);
- schemas.addAll(edmx.getDataServices().getSchemas());
- }
- return schemas;
- } catch (Exception e) {
- throw new IllegalArgumentException("Could not parse as Term definition", e);
- }
- }
@Override
public ResWrap<ServiceDocument> toServiceDocument(final InputStream input) throws ODataDeserializerException {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
index c72ce6a..6b8c956 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
@@ -20,7 +20,6 @@ package org.apache.olingo.client.core.serialization;
import java.io.InputStream;
import java.net.URI;
-import java.util.List;
import java.util.Map;
import org.apache.commons.io.IOUtils;
@@ -68,24 +67,12 @@ public class ODataReaderImpl implements ODataReader {
}
@Override
- public Edm readMetadata(final InputStream input, List<InputStream> termDefinition) {
- return readMetadata(client.getDeserializer(ContentType.APPLICATION_XML).toMetadata(input).getSchemaByNsOrAlias(),
- client.getDeserializer(ContentType.APPLICATION_XML).fetchTermDefinitionSchema(termDefinition));
- }
-
- @Override
public Edm readMetadata(final Map<String, CsdlSchema> xmlSchemas) {
ClientCsdlEdmProvider prov = new ClientCsdlEdmProvider(xmlSchemas);
return new EdmProviderImpl(prov);
}
@Override
- public Edm readMetadata(final Map<String, CsdlSchema> xmlSchemas, List<CsdlSchema> termDefinitionSchema) {
- ClientCsdlEdmProvider prov = new ClientCsdlEdmProvider(xmlSchemas);
- return new EdmProviderImpl(prov, termDefinitionSchema);
- }
-
- @Override
public ClientServiceDocument readServiceDocument(final InputStream input, final ContentType contentType)
throws ODataDeserializerException {
return client.getBinder().getODataServiceDocument(
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/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..c150e64 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
@@ -24,7 +24,6 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.io.InputStream;
-import java.util.ArrayList;
import java.util.List;
import org.apache.olingo.client.api.edm.xml.XMLMetadata;
@@ -41,12 +40,9 @@ import org.apache.olingo.commons.api.edm.EdmEnumType;
import org.apache.olingo.commons.api.edm.EdmFunction;
import org.apache.olingo.commons.api.edm.EdmFunctionImport;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.EdmProperty;
import org.apache.olingo.commons.api.edm.EdmSchema;
-import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.annotation.EdmExpression;
import org.apache.olingo.commons.api.edm.annotation.EdmUrlRef;
import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
@@ -418,41 +414,4 @@ public class MetadataTest extends AbstractTest {
assertNotNull(deleteRestrictions);
assertEquals("Capabilities.DeleteRestrictionsType", deleteRestrictions.getType());
}
-
- @Test
- public void readPropertyAnnotations() {
- List<InputStream> streams = new ArrayList<InputStream>();
- streams.add(getClass().getResourceAsStream("VOC_Core.xml"));
- final Edm edm = client.getReader().readMetadata(getClass().getResourceAsStream("edmxWithCoreAnnotation.xml"),
- streams);
- assertNotNull(edm);
-
- final EdmEntityType person = edm.getEntityType(
- new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Person"));
- assertNotNull(person);
- EdmProperty concurrency = (EdmProperty) person.getProperty("Concurrency");
- List<EdmAnnotation> annotations = concurrency.getAnnotations();
- for (EdmAnnotation annotation : annotations) {
- EdmTerm term = annotation.getTerm();
- assertNotNull(term);
- assertEquals("Computed", term.getName());
- assertEquals("Org.OData.Core.V1.Computed",
- term.getFullQualifiedName().getFullQualifiedNameAsString());
- assertEquals(1, term.getAnnotations().size());
- }
- EdmProperty userName = (EdmProperty) person.getProperty("UserName");
- List<EdmAnnotation> userNameAnnotations = userName.getAnnotations();
- for (EdmAnnotation annotation : userNameAnnotations) {
- EdmTerm term = annotation.getTerm();
- assertNotNull(term);
- assertEquals("Permissions", term.getName());
- assertEquals("Org.OData.Core.V1.Permissions",
- term.getFullQualifiedName().getFullQualifiedNameAsString());
- EdmExpression expression = annotation.getExpression();
- assertNotNull(expression);
- assertTrue(expression.isConstant());
- assertEquals("Org.OData.Core.V1.Permission/Read", expression.asConstant().getValueAsString());
- assertEquals("EnumMember", expression.getExpressionName());
- }
- }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/lib/client-core/src/test/resources/org/apache/olingo/client/core/VOC_Core.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/VOC_Core.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/VOC_Core.xml
deleted file mode 100644
index 4e30cad..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/VOC_Core.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
- <edmx:DataServices>
- <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Org.OData.Core.V1" Alias="Core">
- <Annotation Term="Core.Description">
- <String>Core terms needed to write vocabularies</String>
- </Annotation>
-
- <!--Documentation -->
-
- <Term Name="Description" Type="Edm.String">
- <Annotation Term="Core.Description" String="A brief description of a model element" />
- <Annotation Term="Core.IsLanguageDependent" />
- </Term>
-
- <Term Name="LongDescription" Type="Edm.String">
- <Annotation Term="Core.Description" String="A lengthy description of a model element" />
- <Annotation Term="Core.IsLanguageDependent" />
- </Term>
-
- <!-- Localization -->
-
- <Term Name="IsLanguageDependent" Type="Core.Tag" DefaultValue="true" AppliesTo="Property Term">
- <Annotation Term="Core.Description" String="Properties and terms annotated with this term are language-dependent" />
- <Annotation Term="Core.RequiresType" String="Edm.String" />
- </Term>
-
- <!-- Term Restrictions -->
-
- <TypeDefinition Name="Tag" UnderlyingType="Edm.Boolean">
- <Annotation Term="Core.Description" String="This is the type to use for all tagging terms" />
- </TypeDefinition>
-
- <Term Name="RequiresType" Type="Edm.String" AppliesTo="Term">
- <Annotation Term="Core.Description"
- String="Properties and terms annotated with this annotation MUST have a type that is identical to or derived from the given type name" />
- </Term>
-
- <!--Resource Paths -->
-
- <Term Name="ResourcePath" Type="Edm.String" AppliesTo="EntitySet Singleton ActionImport FunctionImport">
- <Annotation Term="Core.Description"
- String="Resource path for entity container child, can be relative to xml:base and the request URL" />
- <Annotation Term="Core.IsUrl" />
- </Term>
-
- <Term Name="DereferenceableIDs" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
- <Annotation Term="Core.Description" String="Entity-ids are URLs that locate the identified entity" />
- </Term>
-
- <Term Name="ConventionalIDs" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
- <Annotation Term="Core.Description" String="Entity-ids follow OData URL conventions" />
- </Term>
-
- <!-- Permissions -->
-
- <Term Name="Permissions" Type="Core.Permission" AppliesTo="Property">
- <Annotation Term="Core.Description" String="Permissions available for a property.The value of 2 is reserved for future use." />
- </Term>
- <EnumType Name="Permission" IsFlags="true">
- <Member Name="None" Value="0" />
- <Member Name="Read" Value="1" />
- <Member Name="ReadWrite" Value="3" />
- </EnumType>
-
- <!-- Metadata Extensions -->
-
- <Term Name="Immutable" Type="Core.Tag" DefaultValue="true" AppliesTo="Property">
- <Annotation Term="Core.Description"
- String="A value for this non-key property can be provided on insert and remains unchanged on update" />
- </Term>
-
- <Term Name="Computed" Type="Core.Tag" DefaultValue="true" AppliesTo="Property">
- <Annotation Term="Core.Description" String="A value for this property is generated on both insert and update" />
- </Term>
-
- <Term Name="IsUrl" Type="Core.Tag" DefaultValue="true" AppliesTo="Property Term">
- <Annotation Term="Core.Description" String="Properties and terms annotated with this term MUST contain a valid URL" />
- <Annotation Term="Core.RequiresType" String="Edm.String" />
- </Term>
-
- <Term Name="AcceptableMediaTypes" Type="Collection(Edm.String)" AppliesTo="EntityType Property">
- <Annotation Term="Core.Description"
- String="Lists the MIME types acceptable for the annotated entity type marked with HasStream="true" or the annotated stream property" />
- <Annotation Term="Core.IsMediaType" />
- </Term>
-
- <Term Name="MediaType" Type="Edm.String" AppliesTo="Property">
- <Annotation Term="Core.IsMediaType" />
- <Annotation Term="Core.RequiresType" String="Edm.Binary" />
- </Term>
-
- <Term Name="IsMediaType" Type="Core.Tag" DefaultValue="true" AppliesTo="Property Term">
- <Annotation Term="Core.Description" String="Properties and terms annotated with this term MUST contain a valid MIME type" />
- <Annotation Term="Core.RequiresType" String="Edm.String" />
- </Term>
-
- <Term Name="OptimisticConcurrency" Type="Collection(Edm.PropertyPath)" AppliesTo="EntitySet">
- <Annotation Term="Core.Description"
- String="Data modification requires the use of Etags. A non-empty collection contains the set of properties that are used to compute the ETag" />
- </Term>
-
- </Schema>
- </edmx:DataServices>
-</edmx:Edmx>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/lib/client-core/src/test/resources/org/apache/olingo/client/core/edmxWithCoreAnnotation.xml
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/edmxWithCoreAnnotation.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/edmxWithCoreAnnotation.xml
deleted file mode 100644
index 8dfa974..0000000
--- a/lib/client-core/src/test/resources/org/apache/olingo/client/core/edmxWithCoreAnnotation.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<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="Person" OpenType="true">
- <Key>
- <PropertyRef Name="UserName"/>
- </Key>
- <Property Name="UserName" Type="Edm.String" Nullable="false">
- <Annotation Term="Org.OData.Core.V1.Permissions">
- <EnumMember>Org.OData.Core.V1.Permission/Read</EnumMember>
- </Annotation>
- </Property>
- <Property Name="FirstName" Type="Edm.String" Nullable="false"/>
- <Property Name="LastName" Type="Edm.String" Nullable="false"/>
- <Property Name="Emails" Type="Collection(Edm.String)"/>
- <Property Name="AddressInfo" Type="Collection(Microsoft.OData.SampleService.Models.TripPin.Location)"/>
- <Property Name="Gender" Type="Microsoft.OData.SampleService.Models.TripPin.PersonGender"/>
- <Property Name="Concurrency" Type="Edm.Int64" Nullable="false">
- <Annotation Term="Org.OData.Core.V1.Computed" Bool="true"/>
- </Property>
- </EntityType>
- <EntityContainer Name="EntityContainer" m:IsDefaultEntityContainer="true">
- <EntitySet Name="People" EntityType="Microsoft.Exchange.Services.OData.Model.Person"/>
- </EntityContainer>
- </Schema>
- </edmx:DataServices>
-</edmx:Edmx>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
index 362bae7..53c69f4 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
@@ -59,16 +59,10 @@ public class EdmProviderImpl extends AbstractEdm {
Collections.synchronizedMap(new HashMap<FullQualifiedName, List<CsdlAction>>());
private final Map<FullQualifiedName, List<CsdlFunction>> functionsMap =
Collections.synchronizedMap(new HashMap<FullQualifiedName, List<CsdlFunction>>());
- private List<CsdlSchema> termSchemaDefinition = null;
public EdmProviderImpl(final CsdlEdmProvider provider) {
this.provider = provider;
}
-
- public EdmProviderImpl(final CsdlEdmProvider provider, final List<CsdlSchema> termSchemaDefinition) {
- this.provider = provider;
- this.termSchemaDefinition = termSchemaDefinition;
- }
@Override
public EdmEntityContainer createEntityContainer(final FullQualifiedName containerName) {
@@ -340,17 +334,6 @@ public class EdmProviderImpl extends AbstractEdm {
CsdlTerm providerTerm = provider.getTerm(termName);
if (providerTerm != null) {
return new EdmTermImpl(this, termName.getNamespace(), providerTerm);
- } else if (termSchemaDefinition != null && termSchemaDefinition.size() > 0) {
- for (CsdlSchema schema : termSchemaDefinition) {
- if (schema.getNamespace().equalsIgnoreCase(termName.getNamespace())) {
- List<CsdlTerm> terms = schema.getTerms();
- for (CsdlTerm term : terms) {
- if (term.getName().equals(termName.getName())) {
- return new EdmTermImpl(this, termName.getNamespace(), term);
- }
- }
- }
- }
}
return null;
} catch (ODataException e) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandlerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandlerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandlerImpl.java
index 6d8ed1b..d1a9cf2 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandlerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandlerImpl.java
@@ -211,10 +211,7 @@ public class ODataHandlerImpl implements ODataHandler {
if(endIndex == -1) {
endIndex = query.length();
}
- String format = "";
- if (index + formatOption.length() < endIndex) {
- format = query.substring(index + formatOption.length(), endIndex);
- }
+ final String format = query.substring(index + formatOption.length(), endIndex);
return new FormatOptionImpl().setFormat(format);
}
return uriInfo.getFormatOption();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/Parser.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/Parser.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/Parser.java
index edbb369..0ce8c75 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/Parser.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/Parser.java
@@ -33,7 +33,6 @@ import org.apache.olingo.server.api.uri.UriInfoKind;
import org.apache.olingo.server.api.uri.UriResource;
import org.apache.olingo.server.api.uri.UriResourceAction;
import org.apache.olingo.server.api.uri.UriResourceCount;
-import org.apache.olingo.server.api.uri.UriResourceEntitySet;
import org.apache.olingo.server.api.uri.UriResourceFunction;
import org.apache.olingo.server.api.uri.UriResourcePartTyped;
import org.apache.olingo.server.api.uri.UriResourceRef;
@@ -256,17 +255,11 @@ public class Parser {
if (lastSegment instanceof UriResourcePartTyped) {
final UriResourcePartTyped typed = (UriResourcePartTyped) lastSegment;
contextType = ParserHelper.getTypeInformation(typed);
- if (contextType != null) {
- if ((lastSegment instanceof UriResourceEntitySet &&
- (((UriResourceEntitySet) lastSegment).getTypeFilterOnCollection() != null
- || ((UriResourceEntitySet) lastSegment).getTypeFilterOnEntry() != null))
- || contextUriInfo.getIdOption() != null) {
- if (contextType instanceof EdmEntityType) {
- contextUriInfo.setEntityTypeCast((EdmEntityType) contextType);
- }
+ if (contextUriInfo.getIdOption() != null && contextType != null) {
+ if (contextType instanceof EdmEntityType) {
+ contextUriInfo.setEntityTypeCast((EdmEntityType) contextType);
}
}
-
contextIsCollection = typed.isCollection();
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java
index a7aff95..f97b7eb 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java
@@ -68,7 +68,6 @@ import org.apache.olingo.server.api.uri.UriHelper;
import org.apache.olingo.server.api.uri.UriInfo;
import org.apache.olingo.server.api.uri.UriInfoResource;
import org.apache.olingo.server.api.uri.UriResource;
-import org.apache.olingo.server.api.uri.UriResourceComplexProperty;
import org.apache.olingo.server.api.uri.UriResourceFunction;
import org.apache.olingo.server.api.uri.UriResourceKind;
import org.apache.olingo.server.api.uri.UriResourceProperty;
@@ -247,18 +246,9 @@ public class TechnicalPrimitiveComplexProcessor extends TechnicalProcessor
} else {
final EdmProperty edmProperty = path.isEmpty() ? null :
((UriResourceProperty) resourceParts.get(resourceParts.size() - trailing - 1)).getProperty();
- if (resourceParts.get(resourceParts.size() - trailing - 1)
- instanceof UriResourceComplexProperty &&
- ((UriResourceComplexProperty)resourceParts.get(resourceParts.size() - trailing - 1)).
- getComplexTypeFilter() != null) {
- EdmType type1 = ((UriResourceComplexProperty)resourceParts.get(resourceParts.size() - trailing - 1)).
- getComplexTypeFilter();
- property.setType(type1.getFullQualifiedName().getFullQualifiedNameAsString());
- }
final EdmType type = edmProperty == null ?
- ((UriResourceFunction) resourceParts.get(0)).getType() :
- edmProperty.getType();
-
+ ((UriResourceFunction) resourceParts.get(0)).getType() :
+ edmProperty.getType();
final EdmReturnType returnType = resourceParts.get(0) instanceof UriResourceFunction ?
((UriResourceFunction) resourceParts.get(0)).getFunction().getReturnType() : null;
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2dc14d67/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalProcessor.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalProcessor.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalProcessor.java
index 9220db9..fc6991f 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalProcessor.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalProcessor.java
@@ -25,7 +25,6 @@ import org.apache.olingo.commons.api.data.Entity;
import org.apache.olingo.commons.api.data.EntityCollection;
import org.apache.olingo.commons.api.data.Link;
import org.apache.olingo.commons.api.edm.EdmBindingTarget;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmEntitySet;
import org.apache.olingo.commons.api.edm.EdmEntityType;
import org.apache.olingo.commons.api.edm.EdmFunction;
@@ -76,36 +75,11 @@ public abstract class TechnicalProcessor implements Processor {
EdmEntitySet entitySet = null;
final List<UriResource> resourcePaths = uriInfo.getUriResourceParts();
EdmSingleton singleton = null;
+
// First must be an entity, an entity collection, a function import, or an action import.
- //blockTypeFilters(resourcePaths.get(0));
- if (resourcePaths.get(0) instanceof UriResourceEntitySet) {
- entitySet = getEntitySetBasedOnTypeCast(((UriResourceEntitySet)resourcePaths.get(0)));
- //entitySet = ((UriResourceEntitySet) resourcePaths.get(0)).getEntitySet();
- } else if (resourcePaths.get(0) instanceof UriResourceFunction) {
- entitySet = ((UriResourceFunction) resourcePaths.get(0)).getFunctionImport().getReturnedEntitySet();
- } else if (resourcePaths.get(0) instanceof UriResourceAction) {
- entitySet = ((UriResourceAction) resourcePaths.get(0)).getActionImport().getReturnedEntitySet();
- }else if (resourcePaths.get(0) instanceof UriResourceSingleton ) {
- singleton =((UriResourceSingleton) resourcePaths.get(0)).getSingleton();
- } else {
- throw new ODataApplicationException("Invalid resource type.",
- HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT);
- }
-
- entitySet = (EdmEntitySet) getEntitySetForNavigation(entitySet, singleton, resourcePaths);
-
- return entitySet;
- }
-
- protected EdmEntitySet getEdmEntitySetTypeCast(final UriInfoResource uriInfo) throws ODataApplicationException {
- EdmEntitySet entitySet = null;
- final List<UriResource> resourcePaths = uriInfo.getUriResourceParts();
- EdmSingleton singleton = null;
- // First must be an entity, an entity collection, a function import, or an action import.
- //blockTypeFilters(resourcePaths.get(0));
+ blockTypeFilters(resourcePaths.get(0));
if (resourcePaths.get(0) instanceof UriResourceEntitySet) {
- entitySet = getEntitySetBasedOnTypeCast(((UriResourceEntitySet)resourcePaths.get(0)));
- //entitySet = ((UriResourceEntitySet) resourcePaths.get(0)).getEntitySet();
+ entitySet = ((UriResourceEntitySet) resourcePaths.get(0)).getEntitySet();
} else if (resourcePaths.get(0) instanceof UriResourceFunction) {
entitySet = ((UriResourceFunction) resourcePaths.get(0)).getFunctionImport().getReturnedEntitySet();
} else if (resourcePaths.get(0) instanceof UriResourceAction) {
@@ -126,24 +100,24 @@ public abstract class TechnicalProcessor implements Processor {
List<UriResource> resourcePaths) throws ODataApplicationException {
int navigationCount = 0;
while ((entitySet != null || singleton!=null)
- && ++navigationCount < resourcePaths.size()
+ && ++navigationCount < resourcePaths.size()
&& resourcePaths.get(navigationCount) instanceof UriResourceNavigation) {
- final UriResourceNavigation uriResourceNavigation =
- (UriResourceNavigation) resourcePaths.get(navigationCount);
- blockTypeFilters(uriResourceNavigation);
- if (uriResourceNavigation.getProperty().containsTarget()) {
- throw new ODataApplicationException("Containment navigation is not supported.",
- HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT);
- }
- EdmBindingTarget target = null ;
- if(entitySet!=null){
- target = entitySet.getRelatedBindingTarget(uriResourceNavigation.getProperty().getName());
- }else if(singleton != null){
- target = singleton.getRelatedBindingTarget(uriResourceNavigation.getProperty().getName());
- }
- if (target instanceof EdmEntitySet) {
- entitySet = (EdmEntitySet) target;
- }
+ final UriResourceNavigation uriResourceNavigation =
+ (UriResourceNavigation) resourcePaths.get(navigationCount);
+ blockTypeFilters(uriResourceNavigation);
+ if (uriResourceNavigation.getProperty().containsTarget()) {
+ throw new ODataApplicationException("Containment navigation is not supported.",
+ HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT);
+ }
+ EdmBindingTarget target = null ;
+ if(entitySet!=null){
+ target = entitySet.getRelatedBindingTarget(uriResourceNavigation.getProperty().getName());
+ }else if(singleton != null){
+ target = singleton.getRelatedBindingTarget(uriResourceNavigation.getProperty().getName());
+ }
+ if (target instanceof EdmEntitySet) {
+ entitySet = (EdmEntitySet) target;
+ }
}
return entitySet;
}
@@ -165,10 +139,11 @@ public abstract class TechnicalProcessor implements Processor {
protected Entity readEntity(final UriInfoResource uriInfo, final boolean ignoreLastNavigation)
throws ODataApplicationException {
final List<UriResource> resourcePaths = uriInfo.getUriResourceParts();
+
Entity entity = null;
if (resourcePaths.get(0) instanceof UriResourceEntitySet) {
- EdmEntitySet entitySet = getEntitySetBasedOnTypeCast(((UriResourceEntitySet)resourcePaths.get(0)));
- entity = dataProvider.read(entitySet, ((UriResourceEntitySet)resourcePaths.get(0)).getKeyPredicates());
+ final UriResourceEntitySet uriResource = (UriResourceEntitySet) resourcePaths.get(0);
+ entity = dataProvider.read(uriResource.getEntitySet(), uriResource.getKeyPredicates());
}else if (resourcePaths.get(0) instanceof UriResourceSingleton) {
final UriResourceSingleton uriResource = (UriResourceSingleton) resourcePaths.get(0);
entity = dataProvider.read( uriResource.getSingleton());
@@ -230,27 +205,6 @@ public abstract class TechnicalProcessor implements Processor {
return entity;
}
- protected EdmEntitySet getEntitySetBasedOnTypeCast(UriResourceEntitySet uriResource) {
- EdmEntitySet entitySet = null;
- EdmEntityContainer container = this.serviceMetadata.getEdm().getEntityContainer();
- if (uriResource.getTypeFilterOnEntry() != null ||
- uriResource.getTypeFilterOnCollection() != null) {
- List<EdmEntitySet> entitySets = container.getEntitySets();
- for (EdmEntitySet entitySet1 : entitySets) {
- EdmEntityType entityType = entitySet1.getEntityType();
- if ((uriResource.getTypeFilterOnEntry() != null &&
- entityType.getName().equalsIgnoreCase(uriResource.getTypeFilterOnEntry().getName())) ||
- (uriResource.getTypeFilterOnCollection() != null &&
- entityType.getName().equalsIgnoreCase(uriResource.getTypeFilterOnCollection().getName()))) {
- entitySet = entitySet1;
- break;
- }
- }
- } else {
- entitySet = uriResource.getEntitySet();
- }
- return entitySet;
- }
protected EntityCollection readEntityCollection(final UriInfoResource uriInfo) throws ODataApplicationException {
final List<UriResource> resourcePaths = uriInfo.getUriResourceParts();
if (resourcePaths.size() > 1 && resourcePaths.get(1) instanceof UriResourceNavigation) {
@@ -263,8 +217,7 @@ public abstract class TechnicalProcessor implements Processor {
return dataProvider.readFunctionEntityCollection(uriResource.getFunction(), uriResource.getParameters(),
uriInfo);
} else {
- EdmEntitySet entitySet = getEntitySetBasedOnTypeCast(((UriResourceEntitySet)resourcePaths.get(0)));
- return dataProvider.readAll(entitySet);
+ return dataProvider.readAll(((UriResourceEntitySet) resourcePaths.get(0)).getEntitySet());
}
}
}