[OLINGO-271] Merge from master
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/dda7577f Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/dda7577f Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/dda7577f Branch: refs/heads/master Commit: dda7577fa92d0bbe11424c48639f30ee5919c49f Parents: 6e9cb60 22eb2ed Author: Francesco Chicchiriccò <[email protected]> Authored: Mon May 5 16:05:14 2014 +0200 Committer: Francesco Chicchiriccò <[email protected]> Committed: Mon May 5 16:05:14 2014 +0200 ---------------------------------------------------------------------- fit/pom.xml | 30 +++---- .../org/apache/olingo/fit/utils/Constants.java | 12 +-- .../main/resources/V30/Car/12/entity.full.json | 4 +- fit/src/main/resources/V30/Car/12/entity.xml | 4 +- .../main/resources/V30/Car/14/entity.full.json | 4 +- fit/src/main/resources/V30/Car/14/entity.xml | 4 +- .../main/resources/V30/Car/15/entity.full.json | 4 +- fit/src/main/resources/V30/Car/15/entity.xml | 4 +- .../main/resources/V30/Car/16/entity.full.json | 4 +- fit/src/main/resources/V30/Car/16/entity.xml | 4 +- fit/src/main/resources/V30/Car/feed.full.json | 50 ++++++------ fit/src/main/resources/V30/Car/feed.xml | 52 ++++++------ .../Car/filter/((1 add VIN) eq 16).full.json | 2 +- .../V30/Car/filter/((1 add VIN) eq 16).xml | 6 +- .../Car/filter/((VIN add 1) eq 16).full.json | 2 +- .../V30/Car/filter/((VIN add 1) eq 16).xml | 6 +- .../((VIN lt 16) and (VIN gt 12)).full.json | 2 +- .../filter/((VIN lt 16) and (VIN gt 12)).xml | 10 +-- .../Car/filter/(16 eq (1 add VIN)).full.json | 2 +- .../V30/Car/filter/(16 eq (1 add VIN)).xml | 6 +- .../V30/Car/filter/(VIN lt 16).full.json | 2 +- .../resources/V30/Car/filter/(VIN lt 16).xml | 14 ++-- ...ngth(Description) gt (VIN add 10)).full.json | 2 +- .../(length(Description) gt (VIN add 10)).xml | 14 ++-- .../V30/Car/filter/VIN add 5 lt 11.full.json | 2 +- .../V30/Car/filter/VIN add 5 lt 11.xml | 4 +- .../V30/Car/filter/VIN div 2 le 8.full.json | 2 +- .../resources/V30/Car/filter/VIN div 2 le 8.xml | 2 +- .../filter/VIN le 18 and VIN gt 12.full.json | 2 +- .../V30/Car/filter/VIN le 18 and VIN gt 12.xml | 2 +- .../V30/Car/filter/VIN mul 2 le 30.full.json | 2 +- .../V30/Car/filter/VIN mul 2 le 30.xml | 2 +- ...not (((VIN ge 16) or (VIN le 12))).full.json | 2 +- .../not (((VIN ge 16) or (VIN le 12))).xml | 10 +-- .../startswith(Description,'cen').full.json | 2 +- .../filter/startswith(Description,'cen').xml | 6 +- .../VIN desc/filter/(VIN lt 16).full.json | 12 +-- .../Car/orderby/VIN desc/filter/(VIN lt 16).xml | 14 ++-- .../V30/ComputerDetail/-10/entity.full.json | 6 +- .../resources/V30/ComputerDetail/-10/entity.xml | 6 +- .../(month(PurchaseDate) eq 12).full.json | 2 +- .../filter/(month(PurchaseDate) eq 12).xml | 8 +- .../filter/day(PurchaseDate) eq 15.full.json | 2 +- .../filter/day(PurchaseDate) eq 15.xml | 2 +- .../filter/hour(PurchaseDate) eq 1.full.json | 2 +- .../filter/hour(PurchaseDate) eq 1.xml | 2 +- .../filter/minute(PurchaseDate) eq 33.full.json | 2 +- .../filter/minute(PurchaseDate) eq 33.xml | 2 +- .../filter/month(PurchaseDate) eq 12.full.json | 2 +- .../filter/month(PurchaseDate) eq 12.xml | 2 +- .../filter/second(PurchaseDate) eq 35.full.json | 2 +- .../filter/second(PurchaseDate) eq 35.xml | 2 +- .../filter/year(PurchaseDate) eq 2020.full.json | 2 +- .../filter/year(PurchaseDate) eq 2020.xml | 2 +- .../resources/V30/Customer/-10/entity.full.json | 4 +- .../main/resources/V30/Customer/-10/entity.xml | 4 +- .../V30/Customer/-10/links/Info.full.json | 4 +- .../resources/V30/Customer/-10/links/Info.xml | 2 +- .../Customer/-10/links/Logins('3').full.json | 4 +- .../V30/Customer/-10/links/Logins.full.json | 6 +- .../resources/V30/Customer/-10/links/Logins.xml | 4 +- .../Customer/-10/links/Orders(-10).full.json | 4 +- .../V30/Customer/-10/links/Orders.full.json | 8 +- .../resources/V30/Customer/-10/links/Orders.xml | 6 +- .../resources/V30/Customer/-7/entity.full.json | 4 +- .../main/resources/V30/Customer/-7/entity.xml | 4 +- .../resources/V30/Customer/-9/entity.full.json | 4 +- .../main/resources/V30/Customer/-9/entity.xml | 4 +- .../main/resources/V30/Customer/feed.full.json | 6 +- fit/src/main/resources/V30/Customer/feed.xml | 10 +-- ....PhoneNumber,'ODataJClient') eq 1).full.json | 2 +- ...ePhone.PhoneNumber,'ODataJClient') eq 1).xml | 4 +- ...ne.PhoneNumber,'lccvussrv') ne -1).full.json | 2 +- ...omePhone.PhoneNumber,'lccvussrv') ne -1).xml | 10 +-- .../Customer/filter/CustomerId eq -10.full.json | 4 +- .../V30/Customer/filter/CustomerId eq -10.xml | 6 +- .../Customer/filter/CustomerId gt -10.full.json | 2 +- .../V30/Customer/filter/CustomerId gt -10.xml | 10 +-- .../Customer/filter/CustomerId lt -10.full.json | 2 +- .../V30/Customer/filter/CustomerId lt -10.xml | 4 +- .../isof(Name,'Edm.String') eq true.full.json | 2 +- .../filter/isof(Name,'Edm.String') eq true.xml | 10 +-- .../not endswith(Name,'Chandan').full.json | 2 +- .../filter/not endswith(Name,'Chandan').xml | 10 +-- .../V30/Customer/skiptoken/-1.full.json | 2 +- .../resources/V30/Customer/skiptoken/-1.xml | 4 +- .../V30/Customer/skiptoken/-10.full.json | 6 +- .../resources/V30/Customer/skiptoken/-10.xml | 10 +-- .../V30/Customer/skiptoken/-3.full.json | 6 +- .../resources/V30/Customer/skiptoken/-3.xml | 10 +-- .../V30/Customer/skiptoken/-5.full.json | 6 +- .../resources/V30/Customer/skiptoken/-5.xml | 10 +-- .../V30/Customer/skiptoken/-7.full.json | 6 +- .../resources/V30/Customer/skiptoken/-7.xml | 10 +-- .../V30/Customer/skiptoken/-9.full.json | 6 +- .../resources/V30/Customer/skiptoken/-9.xml | 10 +-- .../V30/CustomerInfo/11/entity.full.json | 4 +- .../resources/V30/CustomerInfo/11/entity.xml | 4 +- .../V30/CustomerInfo/12/entity.full.json | 4 +- .../resources/V30/CustomerInfo/12/entity.xml | 4 +- .../V30/CustomerInfo/17/entity.full.json | 4 +- .../resources/V30/CustomerInfo/17/entity.xml | 4 +- .../V30/EdmBooleanSet/true/entity.full.json | 2 +- .../resources/V30/EdmBooleanSet/true/entity.xml | 4 +- .../V30/EdmByteSet/255/entity.full.json | 2 +- .../resources/V30/EdmByteSet/255/entity.xml | 4 +- .../entity.full.json | 2 +- .../79228162514264337593543950335M/entity.xml | 4 +- .../1.7976931348623157E308D/entity.full.json | 2 +- .../1.7976931348623157E308D/entity.xml | 4 +- .../entity.full.json | 2 +- .../entity.xml | 4 +- .../V30/EdmInt16Set/32767/entity.full.json | 2 +- .../resources/V30/EdmInt16Set/32767/entity.xml | 4 +- .../EdmInt32Set/-2147483648/entity.full.json | 2 +- .../V30/EdmInt32Set/-2147483648/entity.xml | 4 +- .../9223372036854775807L/entity.full.json | 2 +- .../EdmInt64Set/9223372036854775807L/entity.xml | 4 +- .../EdmSingleSet/3.4028235E38f/entity.full.json | 2 +- .../V30/EdmSingleSet/3.4028235E38f/entity.xml | 4 +- .../V30/EdmStringSet/'$'/entity.full.json | 2 +- .../resources/V30/EdmStringSet/'$'/entity.xml | 4 +- .../entity.full.json | 2 +- .../entity.xml | 4 +- .../V30/InStreamErrorGetCustomer.full.json | 2 +- .../resources/V30/InStreamErrorGetCustomer.xml | 6 +- .../resources/V30/Login/'3'/entity.full.json | 4 +- fit/src/main/resources/V30/Login/'3'/entity.xml | 4 +- .../V30/Message/1 -10/entity.full.json | 4 +- .../main/resources/V30/Message/1 -10/entity.xml | 4 +- .../resources/V30/Order/-10/entity.full.json | 4 +- fit/src/main/resources/V30/Order/-10/entity.xml | 4 +- .../resources/V30/Order/-7/entity.full.json | 4 +- fit/src/main/resources/V30/Order/-7/entity.xml | 4 +- .../resources/V30/Order/-8/entity.full.json | 4 +- fit/src/main/resources/V30/Order/-8/entity.xml | 4 +- .../resources/V30/Order/-9/entity.full.json | 4 +- fit/src/main/resources/V30/Order/-9/entity.xml | 4 +- .../V30/OrderLine/-10 -10/entity.full.json | 4 +- .../resources/V30/OrderLine/-10 -10/entity.xml | 4 +- .../filter/PersonId sub 2 lt -10.full.json | 2 +- .../V30/Person/filter/PersonId sub 2 lt -10.xml | 12 +-- ...iaDefaultService.SpecialEmployee').full.json | 2 +- ....AstoriaDefaultService.SpecialEmployee').xml | 20 ++--- .../resources/V30/Product/-10/entity.full.json | 6 +- .../main/resources/V30/Product/-10/entity.xml | 6 +- .../resources/V30/Product/-6/entity.full.json | 6 +- .../main/resources/V30/Product/-6/entity.xml | 6 +- .../resources/V30/Product/-7/entity.full.json | 6 +- .../main/resources/V30/Product/-7/entity.xml | 6 +- .../V30/Product/-7/links/Photos.full.json | 6 +- .../resources/V30/Product/-9/entity.full.json | 6 +- .../main/resources/V30/Product/-9/entity.xml | 6 +- .../main/resources/V30/Product/feed.full.json | 42 +++++----- fit/src/main/resources/V30/Product/feed.xml | 44 +++++----- .../ceiling(Dimensions.Width) eq 7338.full.json | 2 +- .../ceiling(Dimensions.Width) eq 7338.xml | 8 +- ...', newname') eq 'kdcuklu, newname'.full.json | 2 +- ...tion, ', newname') eq 'kdcuklu, newname'.xml | 8 +- .../floor(Dimensions.Width) eq 7337.full.json | 2 +- .../filter/floor(Dimensions.Width) eq 7337.xml | 8 +- .../indexof(Description, 'k') eq 0.full.json | 2 +- .../filter/indexof(Description, 'k') eq 0.xml | 12 +-- .../filter/length(Description) eq 7.full.json | 2 +- .../Product/filter/length(Description) eq 7.xml | 8 +- .../round(Dimensions.Width) eq 7338.full.json | 2 +- .../filter/round(Dimensions.Width) eq 7338.xml | 8 +- ...artswith(Description, 'k') eq true.full.json | 2 +- .../startswith(Description, 'k') eq true.xml | 12 +-- ...of('kdcuklu', Description) eq true.full.json | 2 +- ...stringof('kdcuklu', Description) eq true.xml | 8 +- .../toupper(Description) eq 'KDCUKLU'.full.json | 2 +- .../toupper(Description) eq 'KDCUKLU'.xml | 8 +- .../V30/ProductPhoto/-2 -2/entity.full.json | 4 +- .../resources/V30/ProductPhoto/-2 -2/entity.xml | 4 +- .../V30/ProductPhoto/-3 -3/entity.full.json | 4 +- .../resources/V30/ProductPhoto/-3 -3/entity.xml | 4 +- .../entity.full.json | 4 +- .../entity.xml | 4 +- .../entity.full.json | 4 +- .../entity.xml | 4 +- fit/src/main/resources/V30/services.full.json | 2 +- fit/src/main/resources/V30/services.xml | 2 +- .../resources/V40/Accounts/101/entity.full.json | 28 +++---- .../main/resources/V40/Accounts/101/entity.xml | 26 +++--- .../V40/Accounts/101/links/MyGiftCard.full.json | 4 +- .../V40/Accounts/101/links/MyGiftCard.xml | 6 +- .../MyPaymentInstruments(101901).full.json | 14 ++-- .../101/links/MyPaymentInstruments(101901).xml | 8 +- .../101/links/MyPaymentInstruments.full.json | 46 +++++------ .../Accounts/101/links/MyPaymentInstruments.xml | 26 +++--- .../main/resources/V40/Company/entity.full.json | 26 +++--- fit/src/main/resources/V40/Company/entity.xml | 22 ++--- .../resources/V40/Customers/1/entity.full.json | 22 ++--- .../main/resources/V40/Customers/1/entity.xml | 14 ++-- .../V40/Customers/1/links/Company.full.json | 4 +- .../resources/V40/Customers/1/links/Company.xml | 2 +- .../V40/Customers/1/links/Orders.full.json | 6 +- .../resources/V40/Customers/1/links/Orders.xml | 4 +- .../resources/V40/Customers/2/entity.full.json | 22 ++--- .../main/resources/V40/Customers/2/entity.xml | 20 ++--- .../main/resources/V40/Customers/feed.full.json | 10 +-- fit/src/main/resources/V40/Customers/feed.xml | 24 +++--- .../V40/OrderDetails/7 5/entity.full.json | 14 ++-- .../resources/V40/OrderDetails/7 5/entity.xml | 10 +-- .../resources/V40/Orders/8/entity.full.json | 18 ++-- fit/src/main/resources/V40/Orders/8/entity.xml | 14 ++-- .../resources/V40/Orders/8/links/.full.json | 4 +- .../Orders/8/links/CustomerForOrder.full.json | 4 +- .../V40/Orders/8/links/CustomerForOrder.xml | 2 +- .../main/resources/V40/Orders/feed.full.json | 34 ++++---- fit/src/main/resources/V40/Orders/feed.xml | 24 +++--- .../resources/V40/Org.OData.Capabilities.V1.xml | 2 +- .../resources/V40/Org.OData.Measures.V1.xml | 2 +- .../resources/V40/People/1/entity.full.json | 22 ++--- fit/src/main/resources/V40/People/1/entity.xml | 14 ++-- .../resources/V40/People/5/entity.full.json | 14 ++-- fit/src/main/resources/V40/People/5/entity.xml | 10 +-- .../main/resources/V40/People/feed.full.json | 86 ++++++++++---------- fit/src/main/resources/V40/People/feed.xml | 50 ++++++------ .../V40/People/filter/(PersonID eq 5).full.json | 6 +- .../V40/People/filter/(PersonID eq 5).xml | 14 ++-- .../V40/People/filter/(PersonID lt 3).full.json | 10 +-- .../V40/People/filter/(PersonID lt 3).xml | 24 +++--- .../filter/(PersonID lt 3).full.json | 10 +-- .../PersonID desc/filter/(PersonID lt 3).xml | 24 +++--- .../resources/V40/People/skiptoken/5.full.json | 14 ++-- .../main/resources/V40/People/skiptoken/5.xml | 12 +-- .../V40/ProductDetails/6 1/entity.full.json | 16 ++-- .../resources/V40/ProductDetails/6 1/entity.xml | 14 ++-- .../resources/V40/Products/5/entity.full.json | 14 ++-- .../main/resources/V40/Products/5/entity.xml | 16 ++-- .../resources/V40/Products/6/entity.full.json | 14 ++-- .../main/resources/V40/Products/6/entity.xml | 8 +- .../main/resources/V40/Products/feed.full.json | 62 +++++++------- fit/src/main/resources/V40/Products/feed.xml | 36 ++++---- .../entity.full.json | 4 +- .../entity.xml | 6 +- .../entity.full.json | 4 +- .../entity.xml | 6 +- fit/src/main/resources/V40/crossjoin.full.json | 2 +- fit/src/main/resources/V40/delta.full.json | 2 +- fit/src/main/resources/V40/delta.xml | 20 ++--- .../main/resources/V40/northwind-metadata.xml | 2 +- ...JkZXJzKDgpL0N1c3RvbWVyRm9yT3JkZXI=.full.json | 4 +- .../T3JkZXJzKDgpL0N1c3RvbWVyRm9yT3JkZXI=.xml | 2 +- fit/src/main/resources/V40/services.full.json | 2 +- fit/src/main/resources/V40/services.xml | 4 +- .../resources/V40/vocabularies-metadata.xml | 6 +- fit/src/main/resources/esigate.properties | 4 +- .../olingo/fit/v3/AbstractTestITCase.java | 12 +-- .../olingo/fit/v4/AbstractTestITCase.java | 14 ++-- 252 files changed, 1050 insertions(+), 1048 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/dda7577f/fit/src/main/resources/V40/Org.OData.Capabilities.V1.xml ---------------------------------------------------------------------- diff --cc fit/src/main/resources/V40/Org.OData.Capabilities.V1.xml index 9703401,0000000..6e67527 mode 100644,000000..100644 --- a/fit/src/main/resources/V40/Org.OData.Capabilities.V1.xml +++ b/fit/src/main/resources/V40/Org.OData.Capabilities.V1.xml @@@ -1,326 -1,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:Reference Uri="http://localhost:${cargo.servlet.port}/stub/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> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/dda7577f/fit/src/main/resources/V40/Org.OData.Measures.V1.xml ---------------------------------------------------------------------- diff --cc fit/src/main/resources/V40/Org.OData.Measures.V1.xml index 0d214c3,0000000..914e1df mode 100644,000000..100644 --- a/fit/src/main/resources/V40/Org.OData.Measures.V1.xml +++ b/fit/src/main/resources/V40/Org.OData.Measures.V1.xml @@@ -1,48 -1,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:Reference Uri="http://localhost:${cargo.servlet.port}/stub/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> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/dda7577f/fit/src/main/resources/V40/northwind-metadata.xml ---------------------------------------------------------------------- diff --cc fit/src/main/resources/V40/northwind-metadata.xml index fa786e7,789007f..058ab7c --- a/fit/src/main/resources/V40/northwind-metadata.xml +++ b/fit/src/main/resources/V40/northwind-metadata.xml @@@ -20,7 -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/$metadata"> - <edmx:Reference Uri="http://localhost:${cargo.servlet.port}/stub/StaticService/V40/NorthWindExt.svc"> ++ <edmx:Reference Uri="http://localhost:${cargo.servlet.port}/stub/StaticService/V40/NorthWindExt.svc/$metadata"> <edmx:Include Namespace="NorthwindModel"/> </edmx:Reference> <edmx:DataServices> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/dda7577f/fit/src/main/resources/V40/vocabularies-metadata.xml ---------------------------------------------------------------------- diff --cc fit/src/main/resources/V40/vocabularies-metadata.xml index afe5825,0000000..f076b22 mode 100644,000000..100644 --- a/fit/src/main/resources/V40/vocabularies-metadata.xml +++ b/fit/src/main/resources/V40/vocabularies-metadata.xml @@@ -1,37 -1,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:Reference Uri="http://localhost:${cargo.servlet.port}/stub/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:Reference Uri="http://localhost:${cargo.servlet.port}/stub/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:Reference Uri="http://localhost:${cargo.servlet.port}/stub/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> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/dda7577f/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java ---------------------------------------------------------------------- diff --cc fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java index 5b49444,0082868..4916126 --- a/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java @@@ -63,15 -59,13 +63,15 @@@ public abstract class AbstractTestITCas @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"; + testStaticServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Static.svc"; ++ testVocabulariesServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Vocabularies.svc"; ++ testNorthwindRootURL = "http://localhost:9080/stub/StaticService/V40/NorthWind.svc"; + testKeyAsSegmentServiceRootURL = "http://localhost:9080/stub/StaticService/V40/KeyAsSegment.svc"; + testOpenTypeServiceRootURL = "http://localhost:9080/stub/StaticService/V40/OpenType.svc"; + testLargeModelServiceRootURL = "http://localhost:9080/stub/StaticService/V40/Static.svc/large"; + testAuthServiceRootURL = "http://localhost:9080/stub/DefaultService.svc"; - edmClient = ODataClientFactory.getEdmEnabledV4(testStaticServiceRootURL); + edmClient = ODataClientFactory.getEdmEnabledV4(testStaticServiceRootURL); } @Override
