[ 
https://issues.apache.org/jira/browse/OLINGO-1062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16048843#comment-16048843
 ] 

Ramya commented on OLINGO-1062:
-------------------------------

Hi,
In the client setup the term details can be fetched as follows
XMLMetadataRequest request = 
getClient().getRetrieveRequestFactory().getXMLMetadataRequest("http://services.odata.org/V4/TripPinService/";);
ODataRetrieveResponse<XMLMetadata> response = request.execute();
XMLMetadata xmlMetadata = response.getBody();
CsdlSchema schema = xmlMetadata.getSchema(0);
CsdlEntitySet entitySet = schema.getEntityContainer().getEntitySet("Airlines");
List<CsdlAnnotation> annotations = entitySet.getAnnotations();
for (CsdlAnnotation annotation : annotations) {
  String term = annotation.getTerm();
  CsdlExpression expression = annotation.getExpression();
}

Here the metadata will just be parsed and the annotations will be returned. 
Term definitions does not matter here. However, this matters for server side.

Regards,
Ramya

> Cannot consume Odata Reference Services with Annotations
> --------------------------------------------------------
>
>                 Key: OLINGO-1062
>                 URL: https://issues.apache.org/jira/browse/OLINGO-1062
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata4-client
>    Affects Versions: (Java) V4 4.3.0
>            Reporter: Lars Laegner
>
> The http://services.odata.org/TripPinRESTierService/ service returns the 
> following annotation:
> ...
> <EntitySet Name="Airlines" 
> EntityType="Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airline"> 
> <Annotation Term="Org.OData.Core.V1.OptimisticConcurrency"> <Collection> 
> <PropertyPath>Name</PropertyPath> </Collection> </Annotation> </EntitySet> ...
> unfortunately, the used Org.OData.Core.V1 namespace is not referencing 
> anywhere an alias or namespace in the schema.
> This results, when retrieving the code with the latest available OData V4 Lib 
> for Java, in the EdmAnnotationClass Code
> public EdmTerm getTerm() { 
> if (term == null) { 
> if (annotation.getTerm() == null) { throw new EdmException("Term must not be 
> null for an annotation."); } 
> term = edm.getTerm(new FullQualifiedName(annotation.getTerm())); 
> } 
> return term; }
> that in debugging the 
> annotation.getTerm()=="Org.OData.Core.V1.OptimisticConcurrency" but the term 
> is then set to null from edm.getTerm() as it seems to check for available 
> namespace/aliases in the schema and cannot find one.
> So practically, this annotation does not exist for the currently latest 
> Olingo-OData-Client-for-Java-4.3.0
> The same for 
> http://services.odata.org/V4/(S(tauqx0n1pg4nytucatnssdwb))/TripPinServiceRW/
> I have cross created this issue in 
> https://github.com/OData/odataorg.github.io/issues/117 as i am not sure, 
> wether the service is not correct or the client should be more forgiving



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to