You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by il...@apache.org on 2014/05/05 12:30:13 UTC
[1/5] git commit: [OLINGO-272]fix NonRepeatableRequestException by
using repeatable entity
Repository: olingo-odata4
Updated Branches:
refs/heads/olingo263 726fbe52e -> 585ddaead
[OLINGO-272]fix NonRepeatableRequestException by using repeatable entity
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/d7658017
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/d7658017
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/d7658017
Branch: refs/heads/olingo263
Commit: d76580170b9be6aad9d0763c372a512cfe196660
Parents: 6e72b1f
Author: challenh <ch...@microsoft.com>
Authored: Mon May 5 15:45:49 2014 +0800
Committer: challenh <ch...@microsoft.com>
Committed: Mon May 5 15:45:49 2014 +0800
----------------------------------------------------------------------
.../communication/request/AbstractRequest.java | 16 +++++----
.../http/ProxyWrapperHttpClientFactory.java | 4 +++
.../apache/olingo/client/core/uri/URIUtils.java | 36 ++++++++++++++++----
.../commons/core/data/AbstractODataError.java | 19 +++++++++++
4 files changed, 63 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d7658017/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java
index 5779e08..31b65b3 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java
@@ -16,6 +16,8 @@
package org.apache.olingo.client.core.communication.request;
import java.io.IOException;
+
+import org.apache.commons.io.IOUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpUriRequest;
@@ -68,15 +70,13 @@ public abstract class AbstractRequest {
protected void checkResponse(
final CommonODataClient<?> odataClient, final HttpResponse response, final String accept) {
- if (response.getStatusLine().getStatusCode() >= 500) {
- throw new ODataServerErrorException(response.getStatusLine());
- } else if (response.getStatusLine().getStatusCode() >= 400) {
+ if (response.getStatusLine().getStatusCode() >= 400) {
try {
final HttpEntity httpEntity = response.getEntity();
if (httpEntity == null) {
throw new ODataClientErrorException(response.getStatusLine());
} else {
- final boolean isXML = accept.contains("json");
+ final boolean isXML = !accept.contains("json");
ODataError error;
try {
error = odataClient.getReader().readError(httpEntity.getContent(), isXML);
@@ -87,8 +87,12 @@ public abstract class AbstractRequest {
response.getStatusLine().getReasonPhrase(),
isXML);
}
-
- throw new ODataClientErrorException(response.getStatusLine(), error);
+
+ if (response.getStatusLine().getStatusCode() >= 500) {
+ throw new ODataServerErrorException(response.getStatusLine());
+ } else {
+ throw new ODataClientErrorException(response.getStatusLine(), error);
+ }
}
} catch (IOException e) {
throw new HttpClientException(
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d7658017/lib/client-core/src/main/java/org/apache/olingo/client/core/http/ProxyWrapperHttpClientFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/http/ProxyWrapperHttpClientFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/http/ProxyWrapperHttpClientFactory.java
index ab57901..f76b083 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/http/ProxyWrapperHttpClientFactory.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/http/ProxyWrapperHttpClientFactory.java
@@ -62,6 +62,10 @@ public class ProxyWrapperHttpClientFactory implements HttpClientFactory {
this.proxyPassword = proxyPassword;
this.wrapped = wrapped;
}
+
+ public DefaultHttpClientFactory getWrappedHttpClientFactory(){
+ return this.wrapped;
+ }
@Override
public HttpClient createHttpClient(final HttpMethod method, final URI uri) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d7658017/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
index 1cce282..a4cfce3 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
@@ -18,7 +18,6 @@
*/
package org.apache.olingo.client.core.uri;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
@@ -32,13 +31,20 @@ import java.util.Iterator;
import java.util.Map;
import java.util.UUID;
import java.util.regex.Pattern;
+
import javax.xml.datatype.Duration;
+
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.http.entity.AbstractHttpEntity;
+import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.InputStreamEntity;
import org.apache.olingo.client.api.CommonODataClient;
+import org.apache.olingo.client.api.http.HttpClientFactory;
+import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
+import org.apache.olingo.client.core.http.ProxyWrapperHttpClientFactory;
import org.apache.olingo.commons.api.Constants;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
@@ -383,9 +389,26 @@ public final class URIUtils {
return value;
}
- public static InputStreamEntity buildInputStreamEntity(final CommonODataClient<?> client, final InputStream input) {
- InputStreamEntity entity;
- if (client.getConfiguration().isUseChuncked()) {
+ private static boolean shouldUseRepeatableHttpBodyEntry(final CommonODataClient<?> client)
+ {
+ // returns true for authentication request in case of http401 which needs retry so requires being repeatable.
+ HttpClientFactory httpclientFactory = client.getConfiguration().getHttpClientFactory();
+ if(httpclientFactory instanceof BasicAuthHttpClientFactory){
+ return true;
+ } else if (httpclientFactory instanceof ProxyWrapperHttpClientFactory){
+ ProxyWrapperHttpClientFactory tmp = (ProxyWrapperHttpClientFactory)httpclientFactory;
+ if(tmp.getWrappedHttpClientFactory() instanceof BasicAuthHttpClientFactory){
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public static AbstractHttpEntity buildInputStreamEntity(final CommonODataClient<?> client, final InputStream input) {
+ AbstractHttpEntity entity = null;
+ boolean repeatableRequired= shouldUseRepeatableHttpBodyEntry(client);
+ if (!repeatableRequired) {
entity = new InputStreamEntity(input, -1);
} else {
byte[] bytes = new byte[0];
@@ -395,10 +418,11 @@ public final class URIUtils {
LOG.error("While reading input for not chunked encoding", e);
}
- entity = new InputStreamEntity(new ByteArrayInputStream(bytes), bytes.length);
+ entity = new ByteArrayEntity(bytes);
}
+
+ // both entities can be sent in chunked way or not
entity.setChunked(client.getConfiguration().isUseChuncked());
-
return entity;
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d7658017/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractODataError.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractODataError.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractODataError.java
index e5324d8..931a38b 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractODataError.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractODataError.java
@@ -20,6 +20,25 @@ package org.apache.olingo.commons.core.data;
import org.apache.olingo.commons.api.domain.ODataError;
+// TODO p2 supports V4:
+// {
+// "error": {
+// "code": "501",
+// "message": "Unsupported functionality",
+// "target": "query",
+// "details": [
+// {
+// "code": "301",
+// "target": "$search"
+// "message": "$search query option not supported",
+// }
+// ]
+// "innererror": {
+// "trace": [...],
+// "context": {...}
+// }
+// }
+// }
public abstract class AbstractODataError implements ODataError {
private String code;
[3/5] git commit: [OLINGO-264] More client-side tests
Posted by il...@apache.org.
[OLINGO-264] More client-side tests
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/3b366002
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/3b366002
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/3b366002
Branch: refs/heads/olingo263
Commit: 3b3660025e02a499cba0c8fc528e97e56d0d00ef
Parents: 726fbe5
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon May 5 12:22:23 2014 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon May 5 12:22:23 2014 +0200
----------------------------------------------------------------------
.../org/apache/olingo/fit/V4Vocabularies.java | 75 +++++
.../resources/V40/Org.OData.Capabilities.V1.xml | 326 +++++++++++++++++++
.../main/resources/V40/Org.OData.Core.V1.xml | 125 +++++++
.../resources/V40/Org.OData.Measures.V1.xml | 48 +++
.../main/resources/V40/northwind-metadata.xml | 2 +-
.../resources/V40/vocabularies-metadata.xml | 37 +++
.../main/webapp/WEB-INF/applicationContext.xml | 1 +
.../olingo/fit/AbstractMetadataTestITCase.java | 35 --
.../olingo/fit/v3/MetadataTestITCase.java | 12 +-
.../olingo/fit/v4/AbstractTestITCase.java | 8 +-
.../olingo/fit/v4/MetadataTestITCase.java | 82 ++++-
.../client/api/edm/xml/v4/Annotatable.java | 2 +-
.../olingo/client/api/edm/xml/v4/Reference.java | 4 +-
.../retrieve/v4/XMLMetadataRequestImpl.java | 2 +-
.../client/core/edm/EdmActionImportImpl.java | 6 +
.../core/edm/EdmAnnotationHelperImpl.java | 13 +
.../client/core/edm/EdmAnnotationImpl.java | 5 +
.../client/core/edm/EdmBindingTargetImpl.java | 6 +
.../olingo/client/core/edm/EdmClientImpl.java | 5 +-
.../client/core/edm/EdmComplexTypeImpl.java | 6 +
.../client/core/edm/EdmEntityContainerImpl.java | 6 +
.../client/core/edm/EdmEntityTypeImpl.java | 6 +
.../client/core/edm/EdmFunctionImportImpl.java | 6 +
.../olingo/client/core/edm/EdmMemberImpl.java | 6 +
.../core/edm/EdmNavigationPropertyImpl.java | 6 +
.../client/core/edm/EdmOperationImpl.java | 6 +
.../client/core/edm/EdmOperationImportImpl.java | 6 +
.../client/core/edm/EdmParameterImpl.java | 6 +
.../olingo/client/core/edm/EdmPropertyImpl.java | 6 +
.../core/edm/EdmReferentialConstraintImpl.java | 6 +
.../olingo/client/core/edm/EdmSchemaImpl.java | 15 +-
.../olingo/client/core/edm/EdmTermImpl.java | 14 +-
.../client/core/edm/EdmTypeDefinitionImpl.java | 6 +
.../client/core/edm/v3/EdmEntitySetProxy.java | 6 +
.../core/edm/v3/EdmNavigationPropertyProxy.java | 6 +
.../client/core/edm/v3/EdmOperationProxy.java | 6 +
.../client/core/edm/xml/SchemaDeserializer.java | 31 +-
.../client/core/edm/xml/v4/ReferenceImpl.java | 11 +-
.../client/core/edm/xml/v4/SchemaImpl.java | 4 +-
.../olingo/commons/api/edm/EdmAnnotatable.java | 2 +
.../olingo/commons/core/edm/AbstractEdm.java | 6 +
.../commons/core/edm/AbstractEdmSchema.java | 2 +-
.../commons/core/edm/EdmAnnotationHelper.java | 7 +-
...mAnnotatableDynamicAnnotationExpression.java | 13 +
.../core/edm/provider/EdmComplexTypeImpl.java | 7 +
.../edm/provider/EdmEntityContainerImpl.java | 9 +-
.../core/edm/provider/EdmEntitySetImpl.java | 9 +-
.../core/edm/provider/EdmEntityTypeImpl.java | 7 +
.../server/core/edm/provider/EdmMemberImpl.java | 7 +
.../edm/provider/EdmNavigationPropertyImpl.java | 7 +
.../core/edm/provider/EdmOperationImpl.java | 7 +
.../edm/provider/EdmOperationImportImpl.java | 7 +
.../core/edm/provider/EdmParameterImpl.java | 7 +
.../core/edm/provider/EdmPropertyImpl.java | 7 +
.../provider/EdmReferentialConstraintImpl.java | 7 +
.../server/core/edm/provider/EdmSchemaImpl.java | 6 +
.../core/edm/provider/EdmSingletonImpl.java | 9 +-
.../edm/provider/EdmTypeDefinitionImpl.java | 7 +
58 files changed, 987 insertions(+), 105 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java b/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java
new file mode 100644
index 0000000..122a8be
--- /dev/null
+++ b/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java
@@ -0,0 +1,75 @@
+/*
+ * 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.
+ */
+package org.apache.olingo.fit;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.fit.utils.Accept;
+import org.apache.olingo.fit.utils.ConstantKey;
+import org.apache.olingo.fit.utils.Constants;
+import org.apache.olingo.fit.utils.FSManager;
+import org.apache.olingo.fit.utils.XMLUtilities;
+import org.springframework.stereotype.Service;
+
+@Service
+@Path("/V40/Vocabularies.svc")
+public class V4Vocabularies {
+
+ private final XMLUtilities xml;
+
+ public V4Vocabularies() throws Exception {
+ this.xml = new XMLUtilities(ODataServiceVersion.V40);
+ }
+
+ @GET
+ @Path("/$metadata")
+ @Produces(MediaType.APPLICATION_XML)
+ public Response getMetadata() {
+ try {
+ return xml.createResponse(
+ null,
+ FSManager.instance(ODataServiceVersion.V40).readFile(
+ "vocabularies-" + Constants.get(ODataServiceVersion.V40, ConstantKey.METADATA), Accept.XML),
+ null,
+ Accept.XML);
+ } catch (Exception e) {
+ return xml.createFaultResponse(Accept.XML.toString(ODataServiceVersion.V40), e);
+ }
+ }
+
+ @GET
+ @Path("/{vocabulary}")
+ @Produces(MediaType.APPLICATION_XML)
+ public Response getVocabulary(@PathParam("vocabulary") final String vocabulary) {
+ try {
+ return xml.createResponse(
+ null,
+ FSManager.instance(ODataServiceVersion.V40).readFile(vocabulary, null),
+ null,
+ Accept.XML);
+ } catch (Exception e) {
+ return xml.createFaultResponse(Accept.XML.toString(ODataServiceVersion.V40), e);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/fit/src/main/resources/V40/Org.OData.Capabilities.V1.xml
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V40/Org.OData.Capabilities.V1.xml b/fit/src/main/resources/V40/Org.OData.Capabilities.V1.xml
new file mode 100644
index 0000000..9703401
--- /dev/null
+++ b/fit/src/main/resources/V40/Org.OData.Capabilities.V1.xml
@@ -0,0 +1,326 @@
+<?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:Reference Uri="http://localhost:${cargo.servlet.port}/StaticService/V40/Vocabularies.svc/Org.OData.Core.V1.xml">
+ <edmx:Include Alias="Core" Namespace="Org.OData.Core.V1" />
+ </edmx:Reference>
+ <edmx:DataServices>
+ <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Org.OData.Capabilities.V1" Alias="Capabilities">
+ <Annotation Term="Core.Description">
+ <String>
+ The Capabilities vocabulary aims to provide a way for service authors to describe
+ certain capabilities of an OData Service.
+ </String>
+ </Annotation>
+ <Annotation Term="Core.LongDescription">
+ <String>
+ There are some capabilities which are strongly recommended for services to support even
+ though they are optional. Support for $top and $skip is a good example as
+ supporting these query options helps with performance of a service and are essential. Such
+ capabilities are assumed to be default capabilities of an OData service even in
+ the case that a capabilities annotation doesn’t exist. Capabilities annotations are
+ mainly expected to be used to explicitly specify that a service doesn’t support such
+ capabilities. Capabilities annotations can as well be used to declaratively
+ specify the support of such capabilities.
+
+ On the other hand, there are some capabilities that a service may choose to support or
+ not support and in varying degrees. $filter and $orderby are such good examples.
+ This vocabulary aims to define terms to specify support or no support for such
+ capabilities.
+
+ A service is assumed to support by default the following capabilities even though an
+ annotation doesn’t exist:
+ - Countability ($count, $inlinecount)
+ - Client pageability ($top, $skip)
+ - Expandability ($expand)
+ - Indexability by key
+ - Batch support ($batch)
+ - Navigability of navigation properties
+
+ A service is expected to support the following capabilities. If not supported, the
+ service is expected to call out the restrictions using annotations:
+ - Filterability ($filter)
+ - Sortability ($orderby)
+ - Queryability of top level entity sets
+ - Query functions
+
+ A client cannot assume that a service supports certain capabilities. A client can try, but
+ it needs to be prepared to handle an error in case the following capabilities are not
+ supported:
+ - Insertability
+ - Updatability
+ - Deletability
+ </String>
+ </Annotation>
+
+ <!-- Conformance Level -->
+
+ <Term Name="ConformanceLevel" Type="Capabilities.ConformanceLevelType" AppliesTo="EntityContainer" />
+ <EnumType Name="ConformanceLevelType">
+ <Member Name="Minimal" />
+ <Member Name="Intermediate" />
+ <Member Name="Advanced" />
+ </EnumType>
+
+ <!-- Request Capabilities -->
+
+ <Term Name="SupportedFormats" Type="Collection(Edm.String)">
+ <Annotation Term="Core.Description" String="Media types of supported formats, including format parameters" />
+ <Annotation Term="Core.IsMediaType" />
+ </Term>
+
+ <Term Name="AcceptableEncodings" Type="Collection(Edm.String)" AppliesTo="EntityContainer">
+ <Annotation Term="Core.Description" String="List of acceptable compression methods for ($batch) requests, e.g. gzip" />
+ </Term>
+
+ <!-- Supported Preferences -->
+
+ <Term Name="AsynchronousRequestsSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
+ <Annotation Term="Core.Description" String="Service supports the asynchronous request preference" />
+ </Term>
+
+ <Term Name="BatchContinueOnErrorSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
+ <Annotation Term="Core.Description" String="Service supports the continue on error preference" />
+ </Term>
+
+ <Term Name="IsolationSupported" Type="Capabilities.IsolationLevel" AppliesTo="EntityContainer">
+ <Annotation Term="Core.Description" String="Supported odata.isolation levels" />
+ </Term>
+ <EnumType Name="IsolationLevel" IsFlags="true">
+ <Member Name="Snapshot" Value="1" />
+ </EnumType>
+
+ <Term Name="CallbackSupported" Type="Capabilities.CallbackType" AppliesTo="EntityContainer EntitySet">
+ <Annotation Term="Core.Description" String="Supports callbacks for the specified protocols" />
+ </Term>
+ <Term Name="CrossJoinSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
+ <Annotation Term="Core.Description" String="Supports cross joins for the entity sets in this container" />
+ </Term>
+ <ComplexType Name="CallbackType">
+ <Property Name="CallbackProtocols" Type="Collection(Capabilities.CallbackProtocol)" />
+ <Annotation Term="Core.Description"
+ String="A non-empty collection lists the full set of supported protocols. A empty collection means 'only HTTP is supported'" />
+ </ComplexType>
+ <ComplexType Name="CallbackProtocol">
+ <Property Name="Id" Type="Edm.String">
+ <Annotation Term="Core.Description" String="Protcol Identifier" />
+ </Property>
+ <Property Name="UrlTemplate" Type="Edm.String">
+ <Annotation Term="Core.Description"
+ String="URL Template including parameters. Parameters are enclosed in curly braces {} as defined in RFC6570" />
+ </Property>
+ <Property Name="DocumentationUrl" Type="Edm.String" Nullable="true">
+ <Annotation Term="Core.Description" String="Human readable description of the meaning of the URL Template parameters" />
+ <Annotation Term="Core.IsURL" />
+ </Property>
+ </ComplexType>
+
+ <Term Name="ChangeTracking" Type="Capabilities.ChangeTrackingType" AppliesTo="EntityContainer EntitySet">
+ <Annotation Term="Core.Description" String="Change tracking capabilities of this service or entity set" />
+ </Term>
+ <ComplexType Name="ChangeTrackingType">
+ <Property Name="Supported" Type="Edm.Boolean" DefaultValue="true">
+ <Annotation Term="Core.Description" String="This entity set supports the odata.track-changes preference" />
+ </Property>
+ <Property Name="FilterableProperties" Type="Collection(Edm.PropertyPath)">
+ <Annotation Term="Core.Description" String="Change tracking supports filters on these properties" />
+ </Property>
+ <Property Name="ExpandableProperties" Type="Collection(Edm.NavigationPropertyPath)">
+ <Annotation Term="Core.Description" String="Change tracking supports these properties expanded" />
+ </Property>
+ </ComplexType>
+
+ <!--Query Capabilities -->
+
+ <Term Name="CountRestrictions" Type="Capabilities.CountRestrictionsType" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Restrictions on /$count path suffix and $count=true system query option" />
+ </Term>
+ <ComplexType Name="CountRestrictionsType">
+ <Property Name="Countable" Type="Edm.Boolean" DefaultValue="true">
+ <Annotation Term="Core.Description" String="Entities can be counted" />
+ </Property>
+ <Property Name="NonCountableProperties" Type="Collection(Edm.PropertyPath)">
+ <Annotation Term="Core.Description" String="These collection properties do not allow /$count segments" />
+ </Property>
+ <Property Name="NonCountableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
+ <Annotation Term="Core.Description" String="These navigation properties do not allow /$count segments" />
+ </Property>
+ </ComplexType>
+
+ <Term Name="NavigationRestrictions" Type="Capabilities.NavigationRestrictionsType" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Restrictions on navigating properties according to OData URL conventions" />
+ </Term>
+ <ComplexType Name="NavigationRestrictionsType">
+ <Property Name="Navigability" Type="Capabilities.NavigationType">
+ <Annotation Term="Core.Description" String="Supported Navigability" />
+ </Property>
+ <Property Name="RestrictedProperties" Type="Collection(Capabilities.NavigationPropertyRestriction)" />
+ </ComplexType>
+ <ComplexType Name="NavigationPropertyRestriction">
+ <Property Name="NavigationProperty" Type="Edm.NavigationPropertyPath">
+ <Annotation Term="Core.Description" String="Navigation properties can be navigated to a single level" />
+ </Property>
+ <Property Name="Navigability" Type="Capabilities.NavigationType">
+ <Annotation Term="Core.Description" String="Navigation properties can be navigated to a single level" />
+ </Property>
+ </ComplexType>
+ <EnumType Name="NavigationType">
+ <Member Name="Recursive">
+ <Annotation Term="Core.Description" String="Navigation properties can be recursively navigated" />
+ </Member>
+ <Member Name="Single">
+ <Annotation Term="Core.Description" String="Navigation properties can be navigated to a single level" />
+ </Member>
+ <Member Name="None">
+ <Annotation Term="Core.Description" String="Navigation properties are not navigable" />
+ </Member>
+ </EnumType>
+
+ <Term Name="IndexableByKey" Type="Core.Tag" DefaultValue="true" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Supports key values according to OData URL conventions" />
+ </Term>
+
+ <Term Name="TopSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Supports $top" />
+ </Term>
+ <Term Name="SkipSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Supports $skip" />
+ </Term>
+
+ <Term Name="BatchSupported" Type="Core.Tag" DefaultValue="true" AppliesTo="EntityContainer">
+ <Annotation Term="Core.Description" String="Supports $batch requests" />
+ </Term>
+
+ <Term Name="FilterFunctions" Type="Collection(Edm.String)" AppliesTo="EntityContainer EntitySet">
+ <Annotation Term="Core.Description" String="List of functions supported in $filter" />
+ </Term>
+
+ <Term Name="FilterRestrictions" Type="Capabilities.FilterRestrictionsType" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Restrictions on $filter expressions" />
+ </Term>
+ <ComplexType Name="FilterRestrictionsType">
+ <Property Name="Filterable" Type="Edm.Boolean" DefaultValue="true">
+ <Annotation Term="Core.Description" String="$filter is supported" />
+ </Property>
+ <Property Name="RequiresFilter" Type="Edm.Boolean" Nullable="true">
+ <Annotation Term="Core.Description" String="$filter is required" />
+ </Property>
+ <Property Name="RequiredProperties" Type="Collection(Edm.PropertyPath)">
+ <Annotation Term="Core.Description"
+ String="These properties must be specified in the $filter clause (properties of derived types are not allowed here)" />
+ </Property>
+ <Property Name="NonFilterableProperties" Type="Collection(Edm.PropertyPath)">
+ <Annotation Term="Core.Description" String="These properties cannot be used in $filter expressions" />
+ </Property>
+ </ComplexType>
+
+ <Term Name="SortRestrictions" Type="Capabilities.SortRestrictionsType" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Restrictions on $orderby expressions" />
+ </Term>
+ <ComplexType Name="SortRestrictionsType">
+ <Property Name="Sortable" Type="Edm.Boolean" DefaultValue="true">
+ <Annotation Term="Core.Description" String="$orderby is supported" />
+ </Property>
+ <Property Name="AscendingOnlyProperties" Type="Collection(Edm.PropertyPath)">
+ <Annotation Term="Core.Description" String="These properties can only be used for sorting in Ascending order" />
+ </Property>
+ <Property Name="DescendingOnlyProperties" Type="Collection(Edm.PropertyPath)">
+ <Annotation Term="Core.Description" String="These properties can only be used for sorting in Descending order" />
+ </Property>
+ <Property Name="NonSortableProperties" Type="Collection(Edm.PropertyPath)">
+ <Annotation Term="Core.Description" String="These properties cannot be used in $orderby expressions" />
+ </Property>
+ </ComplexType>
+
+ <Term Name="ExpandRestrictions" Type="Capabilities.ExpandRestrictionsType" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Restrictions on $expand expressions" />
+ </Term>
+ <ComplexType Name="ExpandRestrictionsType">
+ <Property Name="Expandable" Type="Edm.Boolean" DefaultValue="true">
+ <Annotation Term="Core.Description" String="$expand is supported" />
+ </Property>
+ <Property Name="NonExpandableProperties" Type="Collection(Edm.NavigationPropertyPath)">
+ <Annotation Term="Core.Description" String="These properties cannot be used in $expand expressions" />
+ </Property>
+ </ComplexType>
+
+ <Term Name="SearchRestrictions" Type="Capabilities.SearchRestrictionsType" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Restrictions on $search expressions" />
+ </Term>
+ <ComplexType Name="SearchRestrictionsType">
+ <Property Name="Searchable" Type="Edm.Boolean" DefaultValue="true">
+ <Annotation Term="Core.Description" String="$search is supported" />
+ </Property>
+ <Property Name="UnsupportedExpressions" Type="Capabilities.SearchExpressions" DefaultValue="none">
+ <Annotation Term="Core.Description" String="Expressions supported in $search" />
+ </Property>
+ </ComplexType>
+ <EnumType Name="SearchExpressions" IsFlags="true">
+ <Member Name="none" Value="0" />
+ <Member Name="AND" Value="1" />
+ <Member Name="OR" Value="2" />
+ <Member Name="NOT" Value="4" />
+ <Member Name="phrase" Value="8" />
+ <Member Name="group" Value="16" />
+ </EnumType>
+
+ <!-- Data Modification Capabilities -->
+
+ <Term Name="InsertRestrictions" Type="Capabilities.InsertRestrictionsType" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Restrictions on insert operations" />
+ </Term>
+ <ComplexType Name="InsertRestrictionsType">
+ <Property Name="Insertable" Type="Edm.Boolean" DefaultValue="true">
+ <Annotation Term="Core.Description" String="Entities can be inserted" />
+ </Property>
+ <Property Name="NonInsertableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
+ <Annotation Term="Core.Description" String="These navigation properties do not allow deep inserts" />
+ </Property>
+ </ComplexType>
+
+ <Term Name="UpdateRestrictions" Type="Capabilities.UpdateRestrictionsType" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Restrictions on update operations" />
+ </Term>
+ <ComplexType Name="UpdateRestrictionsType">
+ <Property Name="Updatable" Type="Edm.Boolean" DefaultValue="true">
+ <Annotation Term="Core.Description" String="Entities can be updated" />
+ </Property>
+ <Property Name="NonUpdatableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
+ <Annotation Term="Core.Description" String="These navigation properties do not allow rebinding" />
+ </Property>
+ </ComplexType>
+
+ <Term Name="DeleteRestrictions" Type="Capabilities.DeleteRestrictionsType" AppliesTo="EntitySet">
+ <Annotation Term="Core.Description" String="Restrictions on delete operations" />
+ </Term>
+ <ComplexType Name="DeleteRestrictionsType">
+ <Property Name="Deletable" Type="Edm.Boolean" DefaultValue="true">
+ <Annotation Term="Core.Description" String="Entities can be deleted" />
+ </Property>
+ <Property Name="NonDeletableNavigationProperties" Type="Collection(Edm.NavigationPropertyPath)">
+ <Annotation Term="Core.Description" String="These navigation properties do not allow DeleteLink requests" />
+ </Property>
+ </ComplexType>
+
+ </Schema>
+ </edmx:DataServices>
+</edmx:Edmx>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/fit/src/main/resources/V40/Org.OData.Core.V1.xml
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V40/Org.OData.Core.V1.xml b/fit/src/main/resources/V40/Org.OData.Core.V1.xml
new file mode 100644
index 0000000..42d05b9
--- /dev/null
+++ b/fit/src/main/resources/V40/Org.OData.Core.V1.xml
@@ -0,0 +1,125 @@
+<?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/3b366002/fit/src/main/resources/V40/Org.OData.Measures.V1.xml
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V40/Org.OData.Measures.V1.xml b/fit/src/main/resources/V40/Org.OData.Measures.V1.xml
new file mode 100644
index 0000000..0d214c3
--- /dev/null
+++ b/fit/src/main/resources/V40/Org.OData.Measures.V1.xml
@@ -0,0 +1,48 @@
+<?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:Reference Uri="http://localhost:${cargo.servlet.port}/StaticService/V40/Vocabularies.svc/Org.OData.Core.V1.xml">
+ <edmx:Include Alias="Core" Namespace="Org.OData.Core.V1" />
+ </edmx:Reference>
+ <edmx:DataServices>
+ <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Org.OData.Measures.V1" Alias="Measures">
+ <Annotation Term="Core.Description">
+ <String>Terms describing monetary amounts and measured quantities</String>
+ </Annotation>
+
+ <Term Name="ISOCurrency" Type="Edm.String" AppliesTo="Property">
+ <Annotation Term="Core.Description" String="The currency for this monetary amount as an ISO 4217 currency code" />
+ </Term>
+
+ <Term Name="Scale" Type="Edm.Byte" AppliesTo="Property">
+ <Annotation Term="Core.Description"
+ String="The number of significant decimal places in the scale part (less than or equal to the number declared in the Scale facet)" />
+ <Annotation Term="Core.RequiresType" String="Edm.Decimal" />
+ </Term>
+
+ <Term Name="Unit" Type="Edm.String" AppliesTo="Property">
+ <Annotation Term="Core.Description" String="The unit of measure for this measured quantity, e.g. cm for centimeters or % for percentages" />
+ </Term>
+
+ </Schema>
+ </edmx:DataServices>
+</edmx:Edmx>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/fit/src/main/resources/V40/northwind-metadata.xml
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V40/northwind-metadata.xml b/fit/src/main/resources/V40/northwind-metadata.xml
index 85f260f..fa786e7 100644
--- a/fit/src/main/resources/V40/northwind-metadata.xml
+++ b/fit/src/main/resources/V40/northwind-metadata.xml
@@ -20,7 +20,7 @@
-->
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
- <edmx:Reference Uri="http://localhost:${cargo.servlet.port}/StaticService/V40/NorthWindExt.svc">
+ <edmx:Reference Uri="http://localhost:${cargo.servlet.port}/StaticService/V40/NorthWindExt.svc/$metadata">
<edmx:Include Namespace="NorthwindModel"/>
</edmx:Reference>
<edmx:DataServices>
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/fit/src/main/resources/V40/vocabularies-metadata.xml
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V40/vocabularies-metadata.xml b/fit/src/main/resources/V40/vocabularies-metadata.xml
new file mode 100644
index 0000000..afe5825
--- /dev/null
+++ b/fit/src/main/resources/V40/vocabularies-metadata.xml
@@ -0,0 +1,37 @@
+<?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="http://localhost:${cargo.servlet.port}/StaticService/V40/Vocabularies.svc/Org.OData.Core.V1.xml">
+ <edmx:Include Alias="Core" Namespace="Org.OData.Core.V1"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://localhost:${cargo.servlet.port}/StaticService/V40/Vocabularies.svc/Org.OData.Measures.V1.xml">
+ <edmx:Include Alias="UoM" Namespace="Org.OData.Measures.V1"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://localhost:${cargo.servlet.port}/StaticService/V40/Vocabularies.svc/Org.OData.Capabilities.V1.xml">
+ <edmx:Include Alias="Capabilities" Namespace="Org.OData.Capabilities.V1"/>
+ </edmx:Reference>
+
+ <edmx:DataServices>
+ <Schema Namespace="Vocabularies" xmlns="http://docs.oasis-open.org/odata/ns/edm">
+ </Schema>
+ </edmx:DataServices>
+</edmx:Edmx>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/fit/src/main/webapp/WEB-INF/applicationContext.xml
----------------------------------------------------------------------
diff --git a/fit/src/main/webapp/WEB-INF/applicationContext.xml b/fit/src/main/webapp/WEB-INF/applicationContext.xml
index 2372c2e..c37b8d0 100644
--- a/fit/src/main/webapp/WEB-INF/applicationContext.xml
+++ b/fit/src/main/webapp/WEB-INF/applicationContext.xml
@@ -48,6 +48,7 @@
<bean class="org.apache.olingo.fit.V4NorthWind"/>
<bean class="org.apache.olingo.fit.V4NorthWindExt"/>
<bean class="org.apache.olingo.fit.V4OpenType"/>
+ <bean class="org.apache.olingo.fit.V4Vocabularies"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider"/>
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/fit/src/test/java/org/apache/olingo/fit/AbstractMetadataTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/AbstractMetadataTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/AbstractMetadataTestITCase.java
deleted file mode 100644
index f9eda5f..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/AbstractMetadataTestITCase.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.
- */
-package org.apache.olingo.fit;
-
-import org.apache.olingo.client.api.CommonODataClient;
-
-public abstract class AbstractMetadataTestITCase {
-
- @SuppressWarnings("rawtypes")
- protected abstract CommonODataClient getClient();
-
- protected String getTestServiceRoot() {
- return "http://localhost:9080/StaticService/" + getClient().getServiceVersion().name() + "/Static.svc";
- }
-
- protected String getNorthwindServiceRoot() {
- return "http://localhost:9080/StaticService/" + getClient().getServiceVersion().name() + "/NorthWind.svc";
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/fit/src/test/java/org/apache/olingo/fit/v3/MetadataTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v3/MetadataTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v3/MetadataTestITCase.java
index d535ad1..3ead8d6 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v3/MetadataTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v3/MetadataTestITCase.java
@@ -18,24 +18,16 @@
*/
package org.apache.olingo.fit.v3;
-import org.apache.olingo.client.api.v3.ODataClient;
-import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.fit.AbstractMetadataTestITCase;
import org.apache.olingo.commons.api.edm.Edm;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
-public class MetadataTestITCase extends AbstractMetadataTestITCase {
-
- @Override
- protected ODataClient getClient() {
- return ODataClientFactory.getV3();
- }
+public class MetadataTestITCase extends AbstractTestITCase {
@Test
public void retrieve() {
final Edm metadata = getClient().getRetrieveRequestFactory().
- getMetadataRequest(getTestServiceRoot()).execute().getBody();
+ getMetadataRequest(testStaticServiceRootURL).execute().getBody();
assertNotNull(metadata);
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
index 7e2ef22..5b49444 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
@@ -49,6 +49,10 @@ public abstract class AbstractTestITCase extends AbstractBaseTestITCase {
protected static String testStaticServiceRootURL;
+ protected static String testVocabulariesServiceRootURL;
+
+ protected static String testNorthwindRootURL;
+
protected static String testKeyAsSegmentServiceRootURL;
protected static String testOpenTypeServiceRootURL;
@@ -60,12 +64,14 @@ public abstract class AbstractTestITCase extends AbstractBaseTestITCase {
@BeforeClass
public static void setUpODataServiceRoot() throws IOException {
testStaticServiceRootURL = "http://localhost:9080/StaticService/V40/Static.svc";
+ testVocabulariesServiceRootURL = "http://localhost:9080/StaticService/V40/Vocabularies.svc";
+ testNorthwindRootURL = "http://localhost:9080/StaticService/V40/NorthWind.svc";
testKeyAsSegmentServiceRootURL = "http://localhost:9080/StaticService/V40/KeyAsSegment.svc";
testOpenTypeServiceRootURL = "http://localhost:9080/StaticService/V40/OpenType.svc";
testLargeModelServiceRootURL = "http://localhost:9080/StaticService/V40/Static.svc/large";
testAuthServiceRootURL = "http://localhost:9080/DefaultService.svc";
- edmClient = ODataClientFactory.getEdmEnabledV4(testStaticServiceRootURL);
+ edmClient = ODataClientFactory.getEdmEnabledV4(testStaticServiceRootURL);
}
@Override
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
index a00e907..4a21437 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
@@ -20,29 +20,28 @@ package org.apache.olingo.fit.v4;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
-import org.apache.olingo.client.api.v4.ODataClient;
-import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.fit.AbstractMetadataTestITCase;
import org.apache.olingo.commons.api.edm.Edm;
+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.EdmEnumType;
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.core.edm.primitivetype.EdmBoolean;
import org.junit.Test;
-public class MetadataTestITCase extends AbstractMetadataTestITCase {
-
- @Override
- protected ODataClient getClient() {
- return ODataClientFactory.getV4();
- }
+public class MetadataTestITCase extends AbstractTestITCase {
@Test
public void retrieve() {
- final Edm metadata = getClient().getRetrieveRequestFactory().
- getMetadataRequest(getTestServiceRoot()).execute().getBody();
+ final Edm metadata = client.getRetrieveRequestFactory().
+ getMetadataRequest(testStaticServiceRootURL).execute().getBody();
assertNotNull(metadata);
final EdmEntityType order = metadata.getEntityType(
@@ -56,11 +55,11 @@ public class MetadataTestITCase extends AbstractMetadataTestITCase {
@Test
public void include() {
- final Edm metadata = getClient().getRetrieveRequestFactory().
- getMetadataRequest(getNorthwindServiceRoot()).execute().getBody();
- assertNotNull(metadata);
+ final Edm edm = client.getRetrieveRequestFactory().
+ getMetadataRequest(testNorthwindRootURL).execute().getBody();
+ assertNotNull(edm);
- final EdmEntityContainer container = metadata.getEntityContainer(
+ final EdmEntityContainer container = edm.getEntityContainer(
new FullQualifiedName("ODataWebExperimental.Northwind.Model", "NorthwindEntities"));
assertNotNull(container);
@@ -68,4 +67,57 @@ public class MetadataTestITCase extends AbstractMetadataTestITCase {
assertNotNull(categories);
assertEquals("NorthwindModel", categories.getEntityType().getNamespace());
}
+
+ @Test
+ public void vocabularies() {
+ final Edm edm = client.getRetrieveRequestFactory().
+ getMetadataRequest(testVocabulariesServiceRootURL).execute().getBody();
+ assertNotNull(edm);
+
+ // 1. core
+ final EdmSchema core = edm.getSchema("Org.OData.Core.V1");
+ assertNotNull(core);
+ final EdmSchema coreAlias = edm.getSchema("Core");
+ assertEquals(core, coreAlias);
+
+ final EdmTerm descriptionTerm = edm.getTerm(new FullQualifiedName("Core.Description"));
+ assertNotNull(descriptionTerm);
+ assertEquals(descriptionTerm.getFullQualifiedName(),
+ edm.getTerm(new FullQualifiedName("Org.OData.Core.V1.Description")).getFullQualifiedName());
+
+ final EdmAnnotation description = core.getAnnotation(descriptionTerm);
+ assertNotNull(description);
+ assertEquals("Core terms needed to write vocabularies",
+ description.getExpression().asConstant().getValue().asPrimitive().toString());
+
+ final EdmTerm isLanguageDependent = edm.getTerm(new FullQualifiedName("Core.IsLanguageDependent"));
+ assertNotNull(isLanguageDependent);
+ assertTrue(isLanguageDependent.getAppliesTo().contains(EdmProperty.class));
+ assertTrue(isLanguageDependent.getAppliesTo().contains(EdmTerm.class));
+ assertEquals(edm.getTypeDefinition(new FullQualifiedName("Core.Tag")), isLanguageDependent.getType());
+ assertEquals(EdmBoolean.getInstance(), ((EdmTypeDefinition) isLanguageDependent.getType()).getUnderlyingType());
+ assertNotNull(isLanguageDependent.getAnnotation(descriptionTerm));
+
+ final EdmTerm permissions = edm.getTerm(new FullQualifiedName("Core.Permissions"));
+ assertNotNull(permissions);
+ assertTrue(permissions.getType() instanceof EdmEnumType);
+
+ // 2. measures
+ final EdmSchema measures = edm.getSchema("Measures");
+ assertNotNull(measures);
+
+ final EdmTerm scale = edm.getTerm(new FullQualifiedName("Measures.Scale"));
+ assertNotNull(scale);
+
+ final EdmAnnotation requiresTypeInScale = edm.getAnnotation(
+ scale.getFullQualifiedName(), edm.getTerm(new FullQualifiedName("Core.RequiresType")));
+ assertNotNull(requiresTypeInScale);
+ assertEquals("Edm.Decimal", requiresTypeInScale.getExpression().asConstant().getValue().toString());
+
+ // 3. capabilities
+ final EdmTerm deleteRestrictions = edm.getTerm(new FullQualifiedName("Capabilities.DeleteRestrictions"));
+ assertNotNull(deleteRestrictions);
+ assertEquals(deleteRestrictions.getType().getFullQualifiedName(),
+ edm.getComplexType(new FullQualifiedName("Capabilities.DeleteRestrictionsType")).getFullQualifiedName());
+ }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotatable.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotatable.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotatable.java
index 4f5e357..d009212 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotatable.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotatable.java
@@ -21,6 +21,6 @@ package org.apache.olingo.client.api.edm.xml.v4;
import java.util.List;
public interface Annotatable {
-
+
List<Annotation> getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Reference.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Reference.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Reference.java
index d9f2f6b..d8e2add 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Reference.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Reference.java
@@ -21,13 +21,11 @@ package org.apache.olingo.client.api.edm.xml.v4;
import java.net.URI;
import java.util.List;
-public interface Reference {
+public interface Reference extends Annotatable {
URI getUri();
List<Include> getIncludes();
List<IncludeAnnotations> getIncludeAnnotations();
-
- List<Annotation> getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/v4/XMLMetadataRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/v4/XMLMetadataRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/v4/XMLMetadataRequestImpl.java
index 5e25a54..91b1516 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/v4/XMLMetadataRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/v4/XMLMetadataRequestImpl.java
@@ -51,7 +51,7 @@ public class XMLMetadataRequestImpl extends AbstractMetadataRequestImpl<List<? e
if (!rootMetadata.getReferences().isEmpty()) {
for (Reference reference : rootMetadata.getReferences()) {
final SingleXMLMetadatRequestImpl includeReq = new SingleXMLMetadatRequestImpl((ODataClient) odataClient,
- odataClient.getURIBuilder(reference.getUri().toASCIIString()).appendMetadataSegment().build());
+ odataClient.getURIBuilder(reference.getUri().toASCIIString()).build());
final XMLMetadata includeMetadata = includeReq.execute().getBody();
for (Include include : reference.getIncludes()) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
index f95746e..686de44 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
@@ -26,6 +26,7 @@ import org.apache.olingo.commons.api.edm.EdmAction;
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.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
@@ -64,6 +65,11 @@ public class EdmActionImportImpl extends EdmOperationImportImpl implements EdmAc
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationHelperImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationHelperImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationHelperImpl.java
index 6333bca..d158419 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationHelperImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationHelperImpl.java
@@ -24,6 +24,7 @@ import org.apache.olingo.client.api.edm.xml.v4.Annotatable;
import org.apache.olingo.client.api.edm.xml.v4.Annotation;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
public class EdmAnnotationHelperImpl implements EdmAnnotationHelper {
@@ -40,6 +41,18 @@ public class EdmAnnotationHelperImpl implements EdmAnnotationHelper {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ EdmAnnotation result = null;
+ for (EdmAnnotation annotation : getAnnotations()) {
+ if (term.getFullQualifiedName().equals(annotation.getTerm().getFullQualifiedName())) {
+ result = annotation;
+ }
+ }
+
+ return result;
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
if (annotations == null) {
annotations = new ArrayList<EdmAnnotation>();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationImpl.java
index b219eb2..e69b794 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationImpl.java
@@ -231,6 +231,11 @@ public class EdmAnnotationImpl implements EdmAnnotation {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmBindingTargetImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmBindingTargetImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmBindingTargetImpl.java
index 9aa3485..bb23128 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmBindingTargetImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmBindingTargetImpl.java
@@ -30,6 +30,7 @@ import org.apache.olingo.commons.api.edm.EdmBindingTarget;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmException;
import org.apache.olingo.commons.api.edm.EdmNavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.Target;
import org.apache.olingo.commons.core.edm.AbstractEdmBindingTarget;
@@ -102,6 +103,11 @@ public abstract class EdmBindingTargetImpl extends AbstractEdmBindingTarget {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
index 0b40f67..3c377a0 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
@@ -428,7 +428,7 @@ public class EdmClientImpl extends AbstractEdm {
if (schema instanceof org.apache.olingo.client.api.edm.xml.v4.Schema) {
final Term term = ((org.apache.olingo.client.api.edm.xml.v4.Schema) schema).getTerm(termName.getName());
if (term != null) {
- result = new EdmTermImpl(this, term);
+ result = new EdmTermImpl(this, schema.getNamespace(), term);
}
}
@@ -455,8 +455,11 @@ public class EdmClientImpl extends AbstractEdm {
protected List<EdmAnnotation> createAnnotations(final FullQualifiedName annotatedName) {
List<EdmAnnotation> result = null;
+ System.out.println("SSSSSSSSS1 " + annotatedName);
+
final Schema schema = xmlSchemaByNamespace.get(annotatedName.getNamespace());
if (schema instanceof org.apache.olingo.client.api.edm.xml.v4.Schema) {
+ System.out.println("SSSSSSSSS2 " + ((org.apache.olingo.client.api.edm.xml.v4.Schema) schema).getAnnotatables());
final Annotatable annotatable =
((org.apache.olingo.client.api.edm.xml.v4.Schema) schema).getAnnotatables().get(annotatedName.getName());
if (annotatable != null && annotatable.getAnnotations() != null) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
index f770e56..970e1e3 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
@@ -27,6 +27,7 @@ import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
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.core.edm.AbstractEdmComplexType;
import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
@@ -85,6 +86,11 @@ public class EdmComplexTypeImpl extends AbstractEdmComplexType {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return annotationHelper == null ? null : annotationHelper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return annotationHelper == null ? null : annotationHelper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
index ff0938b..30127d3 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
@@ -39,6 +39,7 @@ import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmEntitySet;
import org.apache.olingo.commons.api.edm.EdmFunctionImport;
import org.apache.olingo.commons.api.edm.EdmSingleton;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.core.edm.AbstractEdmEntityContainer;
import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
@@ -230,6 +231,11 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper == null ? null : helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper == null ? Collections.<EdmAnnotation>emptyList() : helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
index 3cd09cb..54af86f 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
@@ -32,6 +32,7 @@ import org.apache.olingo.commons.api.edm.EdmEntityType;
import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
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.core.edm.AbstractEdmEntityType;
import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
@@ -100,6 +101,11 @@ public class EdmEntityTypeImpl extends AbstractEdmEntityType {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return annotationHelper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return annotationHelper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
index 4a68b9b..7317199 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
@@ -27,6 +27,7 @@ import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmFunction;
import org.apache.olingo.commons.api.edm.EdmFunctionImport;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
@@ -76,6 +77,11 @@ public class EdmFunctionImportImpl extends EdmOperationImportImpl implements Edm
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmMemberImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmMemberImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmMemberImpl.java
index 39806a4..389e67b 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmMemberImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmMemberImpl.java
@@ -24,6 +24,7 @@ import org.apache.olingo.client.api.edm.xml.Member;
import org.apache.olingo.client.core.edm.xml.v4.MemberImpl;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.core.edm.AbstractEdmMember;
import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
@@ -40,6 +41,11 @@ public class EdmMemberImpl extends AbstractEdmMember {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper == null ? null : helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper == null ? Collections.<EdmAnnotation>emptyList() : helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
index 9939364..6aa3476 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
@@ -26,6 +26,7 @@ import org.apache.olingo.client.api.edm.xml.v4.ReferentialConstraint;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmReferentialConstraint;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.core.edm.AbstractEdmNavigationProperty;
import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
@@ -110,6 +111,11 @@ public class EdmNavigationPropertyImpl extends AbstractEdmNavigationProperty {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImpl.java
index c0d3471..3643dbd 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImpl.java
@@ -26,6 +26,7 @@ import org.apache.olingo.client.api.edm.xml.v4.Action;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmParameter;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
import org.apache.olingo.commons.core.edm.AbstractEdmOperation;
@@ -94,6 +95,11 @@ public abstract class EdmOperationImpl extends AbstractEdmOperation {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImportImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImportImpl.java
index f415246..c3ec0d2 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImportImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImportImpl.java
@@ -23,6 +23,7 @@ import java.util.List;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.Target;
import org.apache.olingo.commons.core.edm.AbstractEdmOperationImport;
@@ -35,6 +36,11 @@ public abstract class EdmOperationImportImpl extends AbstractEdmOperationImport
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return null;
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return Collections.<EdmAnnotation>emptyList();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
index 68388b3..6cef92d 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
@@ -25,6 +25,7 @@ import org.apache.olingo.client.api.edm.xml.v4.Parameter;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmMapping;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.geo.SRID;
import org.apache.olingo.commons.core.edm.AbstractEdmParameter;
@@ -86,6 +87,11 @@ public class EdmParameterImpl extends AbstractEdmParameter {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper == null ? null : helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper == null ? Collections.<EdmAnnotation>emptyList() : helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
index 3928c64..6654497 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
@@ -26,6 +26,7 @@ import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmMapping;
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.geo.SRID;
import org.apache.olingo.commons.core.edm.AbstractEdmProperty;
@@ -111,6 +112,11 @@ public class EdmPropertyImpl extends AbstractEdmProperty implements EdmProperty
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper == null ? null : helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper == null ? Collections.<EdmAnnotation>emptyList() : helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReferentialConstraintImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReferentialConstraintImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReferentialConstraintImpl.java
index 7237854..5d179af 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReferentialConstraintImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReferentialConstraintImpl.java
@@ -22,6 +22,7 @@ import java.util.List;
import org.apache.olingo.client.api.edm.xml.v4.ReferentialConstraint;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.core.edm.AbstractEdmReferentialConstraint;
import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
@@ -35,6 +36,11 @@ public class EdmReferentialConstraintImpl extends AbstractEdmReferentialConstrai
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSchemaImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSchemaImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSchemaImpl.java
index 17d6824..12107ba 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSchemaImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSchemaImpl.java
@@ -224,7 +224,7 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
final List<Term> providerTerms = ((org.apache.olingo.client.api.edm.xml.v4.Schema) schema).getTerms();
if (providerTerms != null) {
for (Term term : providerTerms) {
- terms.add(new EdmTermImpl(edm, term));
+ terms.add(new EdmTermImpl(edm, getNamespace(), term));
}
}
}
@@ -260,4 +260,17 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
}
return annotations;
}
+
+ @Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ EdmAnnotation result = null;
+ for (EdmAnnotation annotation : getAnnotations()) {
+ if (term.getFullQualifiedName().equals(annotation.getTerm().getFullQualifiedName())) {
+ result = annotation;
+ }
+ }
+
+ return result;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTermImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTermImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTermImpl.java
index a779369..8bf4be0 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTermImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTermImpl.java
@@ -42,6 +42,8 @@ public class EdmTermImpl extends EdmNamedImpl implements EdmTerm {
private final Term term;
+ private final FullQualifiedName fqn;
+
private final EdmTypeInfo typeInfo;
private final EdmAnnotationHelper helper;
@@ -52,17 +54,18 @@ public class EdmTermImpl extends EdmNamedImpl implements EdmTerm {
private List<Class<?>> appliesTo;
- public EdmTermImpl(final Edm edm, final Term term) {
+ public EdmTermImpl(final Edm edm, final String namespace, final Term term) {
super(edm, term.getName());
this.term = term;
+ this.fqn = new FullQualifiedName(namespace, term.getName());
this.typeInfo = new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(term.getType()).build();
this.helper = new EdmAnnotationHelperImpl(edm, term);
}
@Override
public FullQualifiedName getFullQualifiedName() {
- return typeInfo.getFullQualifiedName();
+ return fqn;
}
@Override
@@ -145,7 +148,7 @@ public class EdmTermImpl extends EdmNamedImpl implements EdmTerm {
@Override
public FullQualifiedName getAnnotationsTargetFQN() {
- return typeInfo.getFullQualifiedName();
+ return getFullQualifiedName();
}
@Override
@@ -154,6 +157,11 @@ public class EdmTermImpl extends EdmNamedImpl implements EdmTerm {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
index 1292151..8e0e05c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
@@ -25,6 +25,7 @@ import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmException;
import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+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.constants.ODataServiceVersion;
@@ -86,6 +87,11 @@ public class EdmTypeDefinitionImpl extends AbstractEdmTypeDefinition implements
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return helper.getAnnotation(term);
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return helper.getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmEntitySetProxy.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmEntitySetProxy.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmEntitySetProxy.java
index 079828f..be15323 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmEntitySetProxy.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmEntitySetProxy.java
@@ -35,6 +35,7 @@ import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmEntitySet;
import org.apache.olingo.commons.api.edm.EdmException;
import org.apache.olingo.commons.api.edm.EdmNavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.core.edm.AbstractEdmBindingTarget;
@@ -120,6 +121,11 @@ public class EdmEntitySetProxy extends AbstractEdmBindingTarget implements EdmEn
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return null;
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return Collections.<EdmAnnotation>emptyList();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmNavigationPropertyProxy.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmNavigationPropertyProxy.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmNavigationPropertyProxy.java
index 77e2f59..ac16e67 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmNavigationPropertyProxy.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmNavigationPropertyProxy.java
@@ -34,6 +34,7 @@ import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmEntityType;
import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
import org.apache.olingo.commons.api.edm.EdmReferentialConstraint;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.core.edm.AbstractEdmNavigationProperty;
@@ -175,6 +176,11 @@ public class EdmNavigationPropertyProxy extends AbstractEdmNavigationProperty {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return null;
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return Collections.<EdmAnnotation>emptyList();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmOperationProxy.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmOperationProxy.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmOperationProxy.java
index b2dfa4b..9410bb5 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmOperationProxy.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmOperationProxy.java
@@ -31,6 +31,7 @@ import org.apache.olingo.client.core.edm.EdmReturnTypeImpl;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmParameter;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
import org.apache.olingo.commons.core.edm.AbstractEdmOperation;
@@ -78,6 +79,11 @@ public class EdmOperationProxy extends AbstractEdmOperation {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ return null;
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return Collections.<EdmAnnotation>emptyList();
}
[2/5] [OLINGO-264] More client-side tests
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaDeserializer.java
index 683e3ca..0728b01 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaDeserializer.java
@@ -31,6 +31,7 @@ import org.apache.olingo.client.core.edm.xml.v3.ValueTermImpl;
import org.apache.olingo.client.core.edm.xml.v4.ActionImpl;
import org.apache.olingo.client.core.edm.xml.v4.AnnotationImpl;
import org.apache.olingo.client.core.edm.xml.v4.FunctionImpl;
+import org.apache.olingo.client.core.edm.xml.v4.TermImpl;
import org.apache.olingo.client.core.edm.xml.v4.TypeDefinitionImpl;
import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
@@ -112,23 +113,10 @@ public class SchemaDeserializer extends AbstractEdmDeserializer<AbstractSchema>
((org.apache.olingo.client.core.edm.xml.v4.SchemaImpl) schema).
setEntityContainer(entityContainer);
}
- } else if ("Annotations".equals(jp.getCurrentName())) {
- jp.nextToken();
- if (schema instanceof org.apache.olingo.client.core.edm.xml.v3.SchemaImpl) {
- ((org.apache.olingo.client.core.edm.xml.v3.SchemaImpl) schema).getAnnotationGroups().
- add(jp.readValueAs(org.apache.olingo.client.core.edm.xml.v3.AnnotationsImpl.class));
- } else {
- ((org.apache.olingo.client.core.edm.xml.v4.SchemaImpl) schema).getAnnotationGroups().
- add(jp.readValueAs(org.apache.olingo.client.core.edm.xml.v4.AnnotationsImpl.class));
- }
} else if ("Action".equals(jp.getCurrentName())) {
jp.nextToken();
((org.apache.olingo.client.core.edm.xml.v4.SchemaImpl) schema).getActions().
add(jp.readValueAs(ActionImpl.class));
- } else if ("Annotation".equals(jp.getCurrentName())) {
- jp.nextToken();
- ((org.apache.olingo.client.core.edm.xml.v4.SchemaImpl) schema).getAnnotations().
- add(jp.readValueAs(AnnotationImpl.class));
} else if ("Function".equals(jp.getCurrentName())) {
jp.nextToken();
((org.apache.olingo.client.core.edm.xml.v4.SchemaImpl) schema).getFunctions().
@@ -138,6 +126,23 @@ public class SchemaDeserializer extends AbstractEdmDeserializer<AbstractSchema>
((org.apache.olingo.client.core.edm.xml.v4.SchemaImpl) schema).
getTypeDefinitions().add(jp.readValueAs(TypeDefinitionImpl.class));
}
+ } else if ("Annotations".equals(jp.getCurrentName())) {
+ jp.nextToken();
+ if (schema instanceof org.apache.olingo.client.core.edm.xml.v3.SchemaImpl) {
+ ((org.apache.olingo.client.core.edm.xml.v3.SchemaImpl) schema).getAnnotationGroups().
+ add(jp.readValueAs(org.apache.olingo.client.core.edm.xml.v3.AnnotationsImpl.class));
+ } else {
+ ((org.apache.olingo.client.core.edm.xml.v4.SchemaImpl) schema).getAnnotationGroups().
+ add(jp.readValueAs(org.apache.olingo.client.core.edm.xml.v4.AnnotationsImpl.class));
+ }
+ } else if ("Annotation".equals(jp.getCurrentName())) {
+ jp.nextToken();
+ ((org.apache.olingo.client.core.edm.xml.v4.SchemaImpl) schema).getAnnotations().
+ add(jp.readValueAs(AnnotationImpl.class));
+ } else if ("Term".equals(jp.getCurrentName())) {
+ jp.nextToken();
+ ((org.apache.olingo.client.core.edm.xml.v4.SchemaImpl) schema).getTerms().
+ add(jp.readValueAs(TermImpl.class));
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/ReferenceImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/ReferenceImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/ReferenceImpl.java
index c7b88aa..a8d0fd9 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/ReferenceImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/ReferenceImpl.java
@@ -24,14 +24,12 @@ import java.net.URI;
import java.util.ArrayList;
import java.util.List;
-import org.apache.olingo.client.api.edm.xml.v4.Annotation;
import org.apache.olingo.client.api.edm.xml.v4.Include;
import org.apache.olingo.client.api.edm.xml.v4.IncludeAnnotations;
import org.apache.olingo.client.api.edm.xml.v4.Reference;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmItem;
@JsonDeserialize(using = ReferenceDeserializer.class)
-public class ReferenceImpl extends AbstractEdmItem implements Reference {
+public class ReferenceImpl extends AbstractAnnotatable implements Reference {
private static final long serialVersionUID = -5600031479702563436L;
@@ -41,8 +39,6 @@ public class ReferenceImpl extends AbstractEdmItem implements Reference {
private final List<IncludeAnnotations> includeAnnotations = new ArrayList<IncludeAnnotations>();
- private final List<Annotation> annotations = new ArrayList<Annotation>();
-
@Override
public URI getUri() {
return uri;
@@ -62,9 +58,4 @@ public class ReferenceImpl extends AbstractEdmItem implements Reference {
return includeAnnotations;
}
- @Override
- public List<Annotation> getAnnotations() {
- return annotations;
- }
-
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/SchemaImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/SchemaImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/SchemaImpl.java
index 742cf9b..064e679 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/SchemaImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/SchemaImpl.java
@@ -202,7 +202,6 @@ public class SchemaImpl extends AbstractSchema implements Schema {
for (ComplexType complexType : getComplexTypes()) {
annotatables.put(complexType.getName(), complexType);
}
- annotatables.put(entityContainer.getName(), entityContainer);
for (EntityType entityType : getEntityTypes()) {
annotatables.put(entityType.getName(), entityType);
}
@@ -218,6 +217,9 @@ public class SchemaImpl extends AbstractSchema implements Schema {
for (TypeDefinition typedef : getTypeDefinitions()) {
annotatables.put(typedef.getName(), typedef);
}
+ if (entityContainer != null) {
+ annotatables.put(entityContainer.getName(), entityContainer);
+ }
}
return annotatables;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotatable.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotatable.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotatable.java
index 4366b5a..2e3d14a 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotatable.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotatable.java
@@ -25,5 +25,7 @@ import java.util.List;
*/
public interface EdmAnnotatable {
+ EdmAnnotation getAnnotation(EdmTerm term);
+
List<EdmAnnotation> getAnnotations();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
index 58c979c..0aa7404 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
@@ -177,6 +177,12 @@ public abstract class AbstractEdm implements Edm {
EdmSchema schema = null;
if (schemas != null) {
schema = schemas.get(namespace);
+ if (schema == null) {
+ if (aliasToNamespaceInfo == null) {
+ aliasToNamespaceInfo = createAliasToNamespaceInfo();
+ }
+ schema = schemas.get(aliasToNamespaceInfo.get(namespace));
+ }
}
return schema;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmSchema.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmSchema.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmSchema.java
index 6e1356e..d1c8e2d 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmSchema.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmSchema.java
@@ -60,7 +60,7 @@ public abstract class AbstractEdmSchema implements EdmSchema {
private EdmEntityContainer entityContainer;
- public AbstractEdmSchema(String namespace, String alias) {
+ public AbstractEdmSchema(final String namespace, final String alias) {
this.namespace = namespace;
this.alias = alias;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationHelper.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationHelper.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationHelper.java
index db4ef6f..c4a1b2c 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationHelper.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationHelper.java
@@ -18,10 +18,7 @@
*/
package org.apache.olingo.commons.core.edm;
-import java.util.List;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
+import org.apache.olingo.commons.api.edm.EdmAnnotatable;
-public interface EdmAnnotationHelper {
-
- List<EdmAnnotation> getAnnotations();
+public interface EdmAnnotationHelper extends EdmAnnotatable {
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotatableDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotatableDynamicAnnotationExpression.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotatableDynamicAnnotationExpression.java
index 711c505..849dec9 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotatableDynamicAnnotationExpression.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotatableDynamicAnnotationExpression.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.olingo.commons.api.edm.EdmAnnotatable;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
+import org.apache.olingo.commons.api.edm.EdmTerm;
public abstract class AbstractEdmAnnotatableDynamicAnnotationExpression
extends AbstractEdmDynamicAnnotationExpression implements EdmAnnotatable {
@@ -29,6 +30,18 @@ public abstract class AbstractEdmAnnotatableDynamicAnnotationExpression
private final List<EdmAnnotation> annotations = new ArrayList<EdmAnnotation>();
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ EdmAnnotation result = null;
+ for (EdmAnnotation annotation : getAnnotations()) {
+ if (term.getFullQualifiedName().equals(annotation.getTerm().getFullQualifiedName())) {
+ result = annotation;
+ }
+ }
+
+ return result;
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
return annotations;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java
index 2ffd793..2a4a991 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java
@@ -25,6 +25,7 @@ import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
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.core.edm.AbstractEdmComplexType;
import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;
@@ -67,6 +68,12 @@ public class EdmComplexTypeImpl extends AbstractEdmComplexType {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
throw new UnsupportedOperationException("Not supported yet.");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java
index f500648..52c94b6 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java
@@ -28,6 +28,7 @@ import org.apache.olingo.commons.api.edm.EdmEntitySet;
import org.apache.olingo.commons.api.edm.EdmException;
import org.apache.olingo.commons.api.edm.EdmFunctionImport;
import org.apache.olingo.commons.api.edm.EdmSingleton;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.core.edm.AbstractEdmEntityContainer;
import org.apache.olingo.server.api.edm.provider.ActionImport;
@@ -194,7 +195,13 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
}
}
}
-
+
+ @Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
@Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java
index 882022f..300d2b8 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java
@@ -23,6 +23,7 @@ import org.apache.olingo.commons.api.edm.Edm;
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.EdmTerm;
import org.apache.olingo.server.api.edm.provider.EntitySet;
public class EdmEntitySetImpl extends EdmBindingTargetImpl implements EdmEntitySet {
@@ -43,7 +44,13 @@ public class EdmEntitySetImpl extends EdmBindingTargetImpl implements EdmEntityS
public TargetType getAnnotationsTargetType() {
return TargetType.EntitySet;
}
-
+
+ @Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
@Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java
index 04a1256..40edd0d 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java
@@ -28,6 +28,7 @@ import org.apache.olingo.commons.api.edm.EdmEntityType;
import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
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.core.edm.AbstractEdmEntityType;
import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;
@@ -100,6 +101,12 @@ public class EdmEntityTypeImpl extends AbstractEdmEntityType {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
throw new UnsupportedOperationException("Not supported yet.");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmMemberImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmMemberImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmMemberImpl.java
index f91ccd3..f7a1667 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmMemberImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmMemberImpl.java
@@ -21,6 +21,7 @@ package org.apache.olingo.server.core.edm.provider;
import java.util.List;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.core.edm.AbstractEdmMember;
@@ -31,6 +32,12 @@ public class EdmMemberImpl extends AbstractEdmMember {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
throw new UnsupportedOperationException("Not supported yet.");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java
index f48ddb3..0430679 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmReferentialConstraint;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.core.edm.AbstractEdmNavigationProperty;
import org.apache.olingo.server.api.edm.provider.NavigationProperty;
@@ -105,6 +106,12 @@ public class EdmNavigationPropertyImpl extends AbstractEdmNavigationProperty {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
throw new UnsupportedOperationException("Not supported yet.");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java
index 0667c50..c805919 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmParameter;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
import org.apache.olingo.commons.core.edm.AbstractEdmOperation;
@@ -85,6 +86,12 @@ public abstract class EdmOperationImpl extends AbstractEdmOperation {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
throw new UnsupportedOperationException("Not supported yet.");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java
index 3c7324e..cd68204 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java
@@ -22,6 +22,7 @@ import java.util.List;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.core.edm.AbstractEdmOperationImport;
import org.apache.olingo.server.api.edm.provider.OperationImport;
@@ -33,6 +34,12 @@ public abstract class EdmOperationImportImpl extends AbstractEdmOperationImport
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
throw new UnsupportedOperationException("Not supported yet.");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java
index e3abedc..9bf20b0 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java
@@ -22,6 +22,7 @@ import java.util.List;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmMapping;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.geo.SRID;
import org.apache.olingo.commons.core.edm.AbstractEdmParameter;
import org.apache.olingo.server.api.edm.provider.Parameter;
@@ -71,6 +72,12 @@ public class EdmParameterImpl extends AbstractEdmParameter {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
throw new UnsupportedOperationException("Not supported yet.");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java
index 82c9c44..8ca8edf 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java
@@ -23,6 +23,7 @@ import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmMapping;
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.geo.SRID;
import org.apache.olingo.commons.core.edm.AbstractEdmProperty;
@@ -106,6 +107,12 @@ public class EdmPropertyImpl extends AbstractEdmProperty implements EdmProperty
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
throw new UnsupportedOperationException("Not supported yet.");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmReferentialConstraintImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmReferentialConstraintImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmReferentialConstraintImpl.java
index 24a0ea3..a92dd39 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmReferentialConstraintImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmReferentialConstraintImpl.java
@@ -20,6 +20,7 @@ package org.apache.olingo.server.core.edm.provider;
import java.util.List;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.core.edm.AbstractEdmReferentialConstraint;
public class EdmReferentialConstraintImpl extends AbstractEdmReferentialConstraint {
@@ -29,6 +30,12 @@ public class EdmReferentialConstraintImpl extends AbstractEdmReferentialConstrai
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
throw new UnsupportedOperationException("Not supported yet.");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImpl.java
index c8f64be..9ab1f3a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImpl.java
@@ -161,6 +161,12 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
throw new UnsupportedOperationException("Not supported yet.");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImpl.java
index 9b9bc60..41b1a54 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImpl.java
@@ -23,6 +23,7 @@ import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmSingleton;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.server.api.edm.provider.Singleton;
public class EdmSingletonImpl extends EdmBindingTargetImpl implements EdmSingleton {
@@ -35,7 +36,13 @@ public class EdmSingletonImpl extends EdmBindingTargetImpl implements EdmSinglet
public TargetType getAnnotationsTargetType() {
return TargetType.Singleton;
}
-
+
+ @Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
@Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/3b366002/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImpl.java
index 29e47b9..fc8f6f2 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImpl.java
@@ -24,6 +24,7 @@ import org.apache.olingo.commons.api.edm.EdmAnnotation;
import org.apache.olingo.commons.api.edm.EdmException;
import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+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.geo.SRID;
@@ -83,6 +84,12 @@ public class EdmTypeDefinitionImpl extends AbstractEdmTypeDefinition implements
}
@Override
+ public EdmAnnotation getAnnotation(final EdmTerm term) {
+ // TODO: implement
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public List<EdmAnnotation> getAnnotations() {
// TODO: implement
throw new UnsupportedOperationException("Not supported yet.");
[4/5] git commit: Merge remote-tracking branch 'origin/master' into
olingo263
Posted by il...@apache.org.
Merge remote-tracking branch 'origin/master' into olingo263
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/7c079a1a
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/7c079a1a
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/7c079a1a
Branch: refs/heads/olingo263
Commit: 7c079a1a788b75d325400e1f88fe07b09c7d6b56
Parents: 3b36600 d765801
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon May 5 12:22:37 2014 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon May 5 12:22:37 2014 +0200
----------------------------------------------------------------------
.../communication/request/AbstractRequest.java | 16 +++++----
.../http/ProxyWrapperHttpClientFactory.java | 4 +++
.../apache/olingo/client/core/uri/URIUtils.java | 36 ++++++++++++++++----
.../commons/core/data/AbstractODataError.java | 19 +++++++++++
4 files changed, 63 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
[5/5] git commit: White noise: formatting
Posted by il...@apache.org.
White noise: formatting
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/585ddaea
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/585ddaea
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/585ddaea
Branch: refs/heads/olingo263
Commit: 585ddaead8c14b428a7f235769232c6cc8232a55
Parents: 7c079a1
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon May 5 12:29:56 2014 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon May 5 12:29:56 2014 +0200
----------------------------------------------------------------------
.../communication/request/AbstractRequest.java | 3 +--
.../http/ProxyWrapperHttpClientFactory.java | 4 +--
.../apache/olingo/client/core/uri/URIUtils.java | 28 ++++++++++----------
3 files changed, 17 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/585ddaea/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java
index 31b65b3..1023618 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/AbstractRequest.java
@@ -17,7 +17,6 @@ package org.apache.olingo.client.core.communication.request;
import java.io.IOException;
-import org.apache.commons.io.IOUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpUriRequest;
@@ -87,7 +86,7 @@ public abstract class AbstractRequest {
response.getStatusLine().getReasonPhrase(),
isXML);
}
-
+
if (response.getStatusLine().getStatusCode() >= 500) {
throw new ODataServerErrorException(response.getStatusLine());
} else {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/585ddaea/lib/client-core/src/main/java/org/apache/olingo/client/core/http/ProxyWrapperHttpClientFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/http/ProxyWrapperHttpClientFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/http/ProxyWrapperHttpClientFactory.java
index f76b083..29b6fe4 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/http/ProxyWrapperHttpClientFactory.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/http/ProxyWrapperHttpClientFactory.java
@@ -62,8 +62,8 @@ public class ProxyWrapperHttpClientFactory implements HttpClientFactory {
this.proxyPassword = proxyPassword;
this.wrapped = wrapped;
}
-
- public DefaultHttpClientFactory getWrappedHttpClientFactory(){
+
+ public DefaultHttpClientFactory getWrappedHttpClientFactory() {
return this.wrapped;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/585ddaea/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
index a4cfce3..0e1d029 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
@@ -38,6 +38,7 @@ import org.apache.commons.codec.binary.Hex;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.http.HttpEntity;
import org.apache.http.entity.AbstractHttpEntity;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.InputStreamEntity;
@@ -389,25 +390,24 @@ public final class URIUtils {
return value;
}
- private static boolean shouldUseRepeatableHttpBodyEntry(final CommonODataClient<?> client)
- {
+ private static boolean shouldUseRepeatableHttpBodyEntry(final CommonODataClient<?> client) {
// returns true for authentication request in case of http401 which needs retry so requires being repeatable.
- HttpClientFactory httpclientFactory = client.getConfiguration().getHttpClientFactory();
- if(httpclientFactory instanceof BasicAuthHttpClientFactory){
+ HttpClientFactory httpclientFactory = client.getConfiguration().getHttpClientFactory();
+ if (httpclientFactory instanceof BasicAuthHttpClientFactory) {
return true;
- } else if (httpclientFactory instanceof ProxyWrapperHttpClientFactory){
- ProxyWrapperHttpClientFactory tmp = (ProxyWrapperHttpClientFactory)httpclientFactory;
- if(tmp.getWrappedHttpClientFactory() instanceof BasicAuthHttpClientFactory){
+ } else if (httpclientFactory instanceof ProxyWrapperHttpClientFactory) {
+ ProxyWrapperHttpClientFactory tmp = (ProxyWrapperHttpClientFactory) httpclientFactory;
+ if (tmp.getWrappedHttpClientFactory() instanceof BasicAuthHttpClientFactory) {
return true;
}
}
-
+
return false;
}
-
- public static AbstractHttpEntity buildInputStreamEntity(final CommonODataClient<?> client, final InputStream input) {
- AbstractHttpEntity entity = null;
- boolean repeatableRequired= shouldUseRepeatableHttpBodyEntry(client);
+
+ public static HttpEntity buildInputStreamEntity(final CommonODataClient<?> client, final InputStream input) {
+ HttpEntity entity;
+ boolean repeatableRequired = shouldUseRepeatableHttpBodyEntry(client);
if (!repeatableRequired) {
entity = new InputStreamEntity(input, -1);
} else {
@@ -420,9 +420,9 @@ public final class URIUtils {
entity = new ByteArrayEntity(bytes);
}
-
+
// both entities can be sent in chunked way or not
- entity.setChunked(client.getConfiguration().isUseChuncked());
+ ((AbstractHttpEntity) entity).setChunked(client.getConfiguration().isUseChuncked());
return entity;
}
}