Repository: olingo-odata4 Updated Branches: refs/heads/master 7dedb25c3 -> d80814299
[OLINGO-1062]Fix in API for Casting Types to Derived Types Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/d8081429 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/d8081429 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/d8081429 Branch: refs/heads/master Commit: d808142993820388229e3ccaf928c23bf9c7e917 Parents: 7dedb25 Author: ramya vasanth <ramya.vasa...@sap.com> Authored: Wed Jul 5 14:14:58 2017 +0530 Committer: ramya vasanth <ramya.vasa...@sap.com> Committed: Wed Jul 5 14:14:58 2017 +0530 ---------------------------------------------------------------------- .../org/apache/olingo/fit/tecsvc/client/BasicITCase.java | 3 +-- .../apache/olingo/client/api/serialization/ODataReader.java | 9 +++++++++ .../olingo/client/core/serialization/ODataReaderImpl.java | 6 ++++++ 3 files changed, 16 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d8081429/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 93a4f1e..b6f9b94 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 @@ -1631,8 +1631,7 @@ public class BasicITCase extends AbstractParamTecSvcITCase { List<InputStream> streams = new ArrayList<InputStream>(); streams.add(response.getRawResponse()); - Edm edm = getClient().getReader().readMetadata(Thread.currentThread().getContextClassLoader(). - getResourceAsStream("edmxWithCoreAnnotation.xml"), streams); + Edm edm = getClient().getReader().readMetadata(metadata, streams); assertNotNull(edm); final EdmEntityType person = edm.getEntityType( new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Person")); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d8081429/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 349f67f..d3e9888 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 @@ -27,6 +27,7 @@ import org.apache.olingo.client.api.domain.ClientEntity; import org.apache.olingo.client.api.domain.ClientEntitySet; import org.apache.olingo.client.api.domain.ClientProperty; import org.apache.olingo.client.api.domain.ClientServiceDocument; +import org.apache.olingo.client.api.edm.xml.XMLMetadata; import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.provider.CsdlSchema; import org.apache.olingo.commons.api.ex.ODataError; @@ -59,6 +60,14 @@ public interface ODataReader { Edm readMetadata(InputStream input, List<InputStream> termDefinitions); /** + * Fetches schema from metadata document and parses the document which includes term definitions + * @param metadata + * @param termDefinitions + * @return + */ + Edm readMetadata(XMLMetadata metadata, List<InputStream> termDefinitions); + + /** * Parses a stream into metadata representation, including referenced metadata documents. * * @param xmlSchemas XML representation of the requested metadata document + any other referenced (via http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d8081429/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 4cc171f..cae81b2 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 @@ -187,4 +187,10 @@ public class ODataReaderImpl implements ODataReader { ClientCsdlEdmProvider prov = new ClientCsdlEdmProvider(xmlSchemas); return new EdmProviderImpl(prov, termDefinitionSchema); } + + @Override + public Edm readMetadata(XMLMetadata metadata, List<InputStream> termDefinitions) { + return readMetadata(metadata.getSchemaByNsOrAlias(), + client.getDeserializer(ContentType.APPLICATION_XML).fetchTermDefinitionSchema(termDefinitions)); + } }