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));
+  }
 }

Reply via email to