You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by fm...@apache.org on 2014/07/25 10:58:06 UTC
[7/7] git commit: [OLINGO-366] fixed providing delayed operation
invocation + composable invoker
[OLINGO-366] fixed providing delayed operation invocation + composable invoker
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/86d33380
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/86d33380
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/86d33380
Branch: refs/heads/master
Commit: 86d33380e8da509abc0ba5b2e958d276e5759a54
Parents: abb4765
Author: fmartelli <fa...@gmail.com>
Authored: Fri Jul 25 10:57:33 2014 +0200
Committer: fmartelli <fa...@gmail.com>
Committed: Fri Jul 25 10:57:33 2014 +0200
----------------------------------------------------------------------
.../olingo/ext/proxy/api/ComposableInvoker.java | 24 +++++
.../apache/olingo/ext/proxy/api/Operations.java | 22 +++++
.../StructuredCollectionComposableInvoker.java | 24 +++++
.../proxy/api/StructuredCollectionInvoker.java | 2 +-
.../proxy/api/StructuredComposableInvoker.java | 23 +++++
.../olingo/ext/proxy/api/StructuredInvoker.java | 2 +-
.../proxy/commons/EntityInvocationHandler.java | 32 ++++++-
.../ext/proxy/commons/InvokerHandler.java | 59 ++++++++++--
.../commons/OperationInvocationHandler.java | 21 +++--
.../olingo/ext/proxy/utils/ClassUtils.java | 14 ++-
.../src/main/resources/complexCollection.vm | 2 -
.../src/main/resources/container.vm | 20 +++--
.../src/main/resources/entityCollection.vm | 2 -
.../src/main/resources/entitySet.vm | 2 -
.../src/main/resources/entityType.vm | 4 +-
.../src/main/resources/operation.vm | 23 +++--
.../java/org/apache/olingo/fit/V4Services.java | 13 +++
.../AllGeoCollectionTypesSet.java | 7 +-
.../astoriadefaultservice/AllGeoTypesSet.java | 7 +-
.../services/astoriadefaultservice/Car.java | 7 +-
.../astoriadefaultservice/Computer.java | 7 +-
.../astoriadefaultservice/ComputerDetail.java | 7 +-
.../astoriadefaultservice/Customer.java | 7 +-
.../astoriadefaultservice/CustomerInfo.java | 7 +-
.../astoriadefaultservice/DefaultContainer.java | 2 +-
.../services/astoriadefaultservice/Driver.java | 7 +-
.../astoriadefaultservice/LastLogin.java | 7 +-
.../services/astoriadefaultservice/License.java | 7 +-
.../services/astoriadefaultservice/Login.java | 7 +-
.../astoriadefaultservice/MappedEntityType.java | 7 +-
.../services/astoriadefaultservice/Message.java | 7 +-
.../MessageAttachment.java | 7 +-
.../services/astoriadefaultservice/Order.java | 7 +-
.../astoriadefaultservice/OrderLine.java | 7 +-
.../astoriadefaultservice/PageView.java | 7 +-
.../services/astoriadefaultservice/Person.java | 7 +-
.../astoriadefaultservice/PersonMetadata.java | 7 +-
.../services/astoriadefaultservice/Product.java | 7 +-
.../astoriadefaultservice/ProductDetail.java | 7 +-
.../astoriadefaultservice/ProductPhoto.java | 7 +-
.../astoriadefaultservice/ProductReview.java | 7 +-
.../astoriadefaultservice/RSAToken.java | 7 +-
.../types/AliasesCollection.java | 5 ++
.../types/AllSpatialCollectionTypes.java | 5 ++
.../AllSpatialCollectionTypesCollection.java | 5 ++
.../types/AllSpatialCollectionTypes_Simple.java | 6 ++
...SpatialCollectionTypes_SimpleCollection.java | 5 ++
.../types/AllSpatialTypes.java | 5 ++
.../types/AllSpatialTypesCollection.java | 5 ++
.../types/AuditInfoCollection.java | 5 ++
.../types/BackOrderLine.java | 2 +-
.../types/BackOrderLine2.java | 2 +-
.../types/BackOrderLine2Collection.java | 5 ++
.../types/BackOrderLineCollection.java | 5 ++
.../astoriadefaultservice/types/Car.java | 5 ++
.../types/CarCollection.java | 5 ++
.../types/ComplexToCategoryCollection.java | 5 ++
.../astoriadefaultservice/types/Computer.java | 5 ++
.../types/ComputerCollection.java | 5 ++
.../types/ComputerDetail.java | 5 ++
.../types/ComputerDetailCollection.java | 5 ++
.../types/ConcurrencyInfoCollection.java | 5 ++
.../types/ContactDetailsCollection.java | 5 ++
.../astoriadefaultservice/types/Contractor.java | 2 +-
.../types/ContractorCollection.java | 5 ++
.../astoriadefaultservice/types/Customer.java | 5 ++
.../types/CustomerCollection.java | 5 ++
.../types/CustomerInfo.java | 5 ++
.../types/CustomerInfoCollection.java | 5 ++
.../types/DimensionsCollection.java | 5 ++
.../types/DiscontinuedProduct.java | 2 +-
.../types/DiscontinuedProductCollection.java | 5 ++
.../astoriadefaultservice/types/Driver.java | 5 ++
.../types/DriverCollection.java | 5 ++
.../astoriadefaultservice/types/Employee.java | 2 +-
.../types/EmployeeCollection.java | 2 +-
.../astoriadefaultservice/types/LastLogin.java | 5 ++
.../types/LastLoginCollection.java | 5 ++
.../astoriadefaultservice/types/License.java | 5 ++
.../types/LicenseCollection.java | 5 ++
.../astoriadefaultservice/types/Login.java | 5 ++
.../types/LoginCollection.java | 5 ++
.../types/MappedEntityType.java | 5 ++
.../types/MappedEntityTypeCollection.java | 5 ++
.../astoriadefaultservice/types/Message.java | 5 ++
.../types/MessageAttachment.java | 5 ++
.../types/MessageAttachmentCollection.java | 5 ++
.../types/MessageCollection.java | 5 ++
.../astoriadefaultservice/types/Order.java | 5 ++
.../types/OrderCollection.java | 5 ++
.../astoriadefaultservice/types/OrderLine.java | 2 +-
.../types/OrderLineCollection.java | 5 ++
.../astoriadefaultservice/types/PageView.java | 5 ++
.../types/PageViewCollection.java | 5 ++
.../astoriadefaultservice/types/Person.java | 2 +-
.../types/PersonCollection.java | 5 ++
.../types/PersonMetadata.java | 5 ++
.../types/PersonMetadataCollection.java | 5 ++
.../types/PhoneCollection.java | 5 ++
.../astoriadefaultservice/types/Product.java | 2 +-
.../types/ProductCollection.java | 5 ++
.../types/ProductDetail.java | 5 ++
.../types/ProductDetailCollection.java | 5 ++
.../types/ProductPageView.java | 6 ++
.../types/ProductPageViewCollection.java | 5 ++
.../types/ProductPhoto.java | 5 ++
.../types/ProductPhotoCollection.java | 5 ++
.../types/ProductReview.java | 5 ++
.../types/ProductReviewCollection.java | 5 ++
.../astoriadefaultservice/types/RSAToken.java | 5 ++
.../types/RSATokenCollection.java | 5 ++
.../types/SpecialEmployee.java | 2 +-
.../types/SpecialEmployeeCollection.java | 2 +-
.../opentypesservicev3/DefaultContainer.java | 2 +-
.../odata/services/opentypesservicev3/Row.java | 7 +-
.../services/opentypesservicev3/RowIndex.java | 7 +-
.../types/ContactDetailsCollection.java | 5 ++
.../opentypesservicev3/types/IndexedRow.java | 6 ++
.../types/IndexedRowCollection.java | 5 ++
.../services/opentypesservicev3/types/Row.java | 5 ++
.../opentypesservicev3/types/RowCollection.java | 5 ++
.../opentypesservicev3/types/RowIndex.java | 5 ++
.../types/RowIndexCollection.java | 5 ++
.../primitivekeysservice/EdmBinarySet.java | 7 +-
.../primitivekeysservice/EdmBooleanSet.java | 7 +-
.../primitivekeysservice/EdmByteSet.java | 7 +-
.../EdmDateTimeOffsetSet.java | 7 +-
.../primitivekeysservice/EdmDateTimeSet.java | 7 +-
.../primitivekeysservice/EdmDecimalSet.java | 7 +-
.../primitivekeysservice/EdmDoubleSet.java | 7 +-
.../primitivekeysservice/EdmGuidSet.java | 7 +-
.../primitivekeysservice/EdmInt16Set.java | 7 +-
.../primitivekeysservice/EdmInt32Set.java | 7 +-
.../primitivekeysservice/EdmInt64Set.java | 7 +-
.../primitivekeysservice/EdmSingleSet.java | 7 +-
.../primitivekeysservice/EdmStringSet.java | 7 +-
.../primitivekeysservice/EdmTimeSet.java | 7 +-
.../services/primitivekeysservice/Folders.java | 7 +-
.../primitivekeysservice/TestContext.java | 2 +-
.../primitivekeysservice/types/EdmBinary.java | 5 ++
.../types/EdmBinaryCollection.java | 5 ++
.../primitivekeysservice/types/EdmBoolean.java | 5 ++
.../types/EdmBooleanCollection.java | 5 ++
.../primitivekeysservice/types/EdmByte.java | 5 ++
.../types/EdmByteCollection.java | 5 ++
.../primitivekeysservice/types/EdmDateTime.java | 5 ++
.../types/EdmDateTimeCollection.java | 5 ++
.../types/EdmDateTimeOffset.java | 5 ++
.../types/EdmDateTimeOffsetCollection.java | 5 ++
.../primitivekeysservice/types/EdmDecimal.java | 5 ++
.../types/EdmDecimalCollection.java | 5 ++
.../primitivekeysservice/types/EdmDouble.java | 5 ++
.../types/EdmDoubleCollection.java | 5 ++
.../primitivekeysservice/types/EdmGuid.java | 5 ++
.../types/EdmGuidCollection.java | 5 ++
.../primitivekeysservice/types/EdmInt16.java | 5 ++
.../types/EdmInt16Collection.java | 5 ++
.../primitivekeysservice/types/EdmInt32.java | 5 ++
.../types/EdmInt32Collection.java | 5 ++
.../primitivekeysservice/types/EdmInt64.java | 5 ++
.../types/EdmInt64Collection.java | 5 ++
.../primitivekeysservice/types/EdmSingle.java | 5 ++
.../types/EdmSingleCollection.java | 5 ++
.../primitivekeysservice/types/EdmString.java | 5 ++
.../types/EdmStringCollection.java | 5 ++
.../primitivekeysservice/types/EdmTime.java | 5 ++
.../types/EdmTimeCollection.java | 5 ++
.../primitivekeysservice/types/Folder.java | 5 ++
.../types/FolderCollection.java | 5 ++
.../AllGeoCollectionTypesSet.java | 7 +-
.../astoriadefaultservice/AllGeoTypesSet.java | 7 +-
.../services/astoriadefaultservice/Car.java | 7 +-
.../astoriadefaultservice/Computer.java | 7 +-
.../astoriadefaultservice/ComputerDetail.java | 7 +-
.../astoriadefaultservice/Customer.java | 7 +-
.../astoriadefaultservice/CustomerInfo.java | 7 +-
.../astoriadefaultservice/DefaultContainer.java | 2 +-
.../services/astoriadefaultservice/Driver.java | 7 +-
.../astoriadefaultservice/LastLogin.java | 7 +-
.../services/astoriadefaultservice/License.java | 7 +-
.../services/astoriadefaultservice/Login.java | 7 +-
.../astoriadefaultservice/MappedEntityType.java | 7 +-
.../services/astoriadefaultservice/Message.java | 7 +-
.../MessageAttachment.java | 7 +-
.../services/astoriadefaultservice/Order.java | 7 +-
.../astoriadefaultservice/OrderLine.java | 7 +-
.../astoriadefaultservice/PageView.java | 7 +-
.../services/astoriadefaultservice/Person.java | 7 +-
.../astoriadefaultservice/PersonMetadata.java | 7 +-
.../services/astoriadefaultservice/Product.java | 7 +-
.../astoriadefaultservice/ProductDetail.java | 7 +-
.../astoriadefaultservice/ProductPhoto.java | 7 +-
.../astoriadefaultservice/ProductReview.java | 7 +-
.../astoriadefaultservice/RSAToken.java | 7 +-
.../types/AliasesCollection.java | 5 ++
.../types/AllSpatialCollectionTypes.java | 5 ++
.../AllSpatialCollectionTypesCollection.java | 5 ++
.../types/AllSpatialCollectionTypes_Simple.java | 6 ++
...SpatialCollectionTypes_SimpleCollection.java | 5 ++
.../types/AllSpatialTypes.java | 5 ++
.../types/AllSpatialTypesCollection.java | 5 ++
.../types/AuditInfoCollection.java | 5 ++
.../types/BackOrderLine.java | 6 ++
.../types/BackOrderLine2.java | 6 ++
.../types/BackOrderLine2Collection.java | 5 ++
.../types/BackOrderLineCollection.java | 5 ++
.../astoriadefaultservice/types/Car.java | 5 ++
.../types/CarCollection.java | 5 ++
.../types/ComplexToCategoryCollection.java | 5 ++
.../ComplexWithAllPrimitiveTypesCollection.java | 5 ++
.../astoriadefaultservice/types/Computer.java | 2 +-
.../types/ComputerCollection.java | 5 ++
.../types/ComputerDetail.java | 2 +-
.../types/ComputerDetailCollection.java | 5 ++
.../types/ConcurrencyInfoCollection.java | 5 ++
.../types/ContactDetailsCollection.java | 5 ++
.../astoriadefaultservice/types/Contractor.java | 6 ++
.../types/ContractorCollection.java | 5 ++
.../astoriadefaultservice/types/Customer.java | 5 ++
.../types/CustomerCollection.java | 5 ++
.../types/CustomerInfo.java | 5 ++
.../types/CustomerInfoCollection.java | 5 ++
.../types/DimensionsCollection.java | 5 ++
.../types/DiscontinuedProduct.java | 2 +-
.../types/DiscontinuedProductCollection.java | 5 ++
.../astoriadefaultservice/types/Driver.java | 5 ++
.../types/DriverCollection.java | 5 ++
.../astoriadefaultservice/types/Employee.java | 3 +-
.../types/EmployeeCollection.java | 2 +-
.../astoriadefaultservice/types/LastLogin.java | 5 ++
.../types/LastLoginCollection.java | 5 ++
.../astoriadefaultservice/types/License.java | 5 ++
.../types/LicenseCollection.java | 5 ++
.../astoriadefaultservice/types/Login.java | 5 ++
.../types/LoginCollection.java | 5 ++
.../types/MappedEntityType.java | 5 ++
.../types/MappedEntityTypeCollection.java | 5 ++
.../astoriadefaultservice/types/Message.java | 5 ++
.../types/MessageAttachment.java | 5 ++
.../types/MessageAttachmentCollection.java | 5 ++
.../types/MessageCollection.java | 5 ++
.../astoriadefaultservice/types/Order.java | 5 ++
.../types/OrderCollection.java | 5 ++
.../astoriadefaultservice/types/OrderLine.java | 5 ++
.../types/OrderLineCollection.java | 5 ++
.../astoriadefaultservice/types/PageView.java | 5 ++
.../types/PageViewCollection.java | 5 ++
.../astoriadefaultservice/types/Person.java | 5 ++
.../types/PersonCollection.java | 5 ++
.../types/PersonMetadata.java | 5 ++
.../types/PersonMetadataCollection.java | 5 ++
.../types/PhoneCollection.java | 5 ++
.../astoriadefaultservice/types/Product.java | 2 +-
.../types/ProductCollection.java | 5 ++
.../types/ProductDetail.java | 5 ++
.../types/ProductDetailCollection.java | 5 ++
.../types/ProductPageView.java | 6 ++
.../types/ProductPageViewCollection.java | 5 ++
.../types/ProductPhoto.java | 5 ++
.../types/ProductPhotoCollection.java | 5 ++
.../types/ProductReview.java | 5 ++
.../types/ProductReviewCollection.java | 5 ++
.../astoriadefaultservice/types/RSAToken.java | 5 ++
.../types/RSATokenCollection.java | 5 ++
.../types/SpecialEmployee.java | 2 +-
.../types/SpecialEmployeeCollection.java | 5 ++
.../fit/proxy/v4/APIBasicDesignTestITCase.java | 24 +++++
.../v4/OperationImportInvokeTestITCase.java | 12 +--
.../proxy/v4/demo/odatademo/Advertisements.java | 7 +-
.../fit/proxy/v4/demo/odatademo/Categories.java | 7 +-
.../proxy/v4/demo/odatademo/DemoService.java | 2 +-
.../proxy/v4/demo/odatademo/PersonDetails.java | 7 +-
.../fit/proxy/v4/demo/odatademo/Persons.java | 7 +-
.../proxy/v4/demo/odatademo/ProductDetails.java | 7 +-
.../fit/proxy/v4/demo/odatademo/Products.java | 7 +-
.../fit/proxy/v4/demo/odatademo/Suppliers.java | 7 +-
.../demo/odatademo/types/AddressCollection.java | 5 ++
.../v4/demo/odatademo/types/Advertisement.java | 5 ++
.../types/AdvertisementCollection.java | 5 ++
.../proxy/v4/demo/odatademo/types/Category.java | 5 ++
.../odatademo/types/CategoryCollection.java | 5 ++
.../proxy/v4/demo/odatademo/types/Customer.java | 6 ++
.../odatademo/types/CustomerCollection.java | 5 ++
.../proxy/v4/demo/odatademo/types/Employee.java | 6 ++
.../odatademo/types/EmployeeCollection.java | 5 ++
.../demo/odatademo/types/FeaturedProduct.java | 2 +-
.../types/FeaturedProductCollection.java | 5 ++
.../proxy/v4/demo/odatademo/types/Person.java | 5 ++
.../demo/odatademo/types/PersonCollection.java | 5 ++
.../v4/demo/odatademo/types/PersonDetail.java | 5 ++
.../odatademo/types/PersonDetailCollection.java | 5 ++
.../proxy/v4/demo/odatademo/types/Product.java | 2 +-
.../demo/odatademo/types/ProductCollection.java | 5 ++
.../v4/demo/odatademo/types/ProductDetail.java | 5 ++
.../types/ProductDetailCollection.java | 5 ++
.../proxy/v4/demo/odatademo/types/Supplier.java | 5 ++
.../odatademo/types/SupplierCollection.java | 5 ++
.../opentypesservicev4/DefaultContainer.java | 2 +-
.../odata/services/opentypesservicev4/Row.java | 7 +-
.../services/opentypesservicev4/RowIndex.java | 7 +-
.../types/AccountInfoCollection.java | 5 ++
.../types/ContactDetailsCollection.java | 5 ++
.../opentypesservicev4/types/IndexedRow.java | 6 ++
.../types/IndexedRowCollection.java | 5 ++
.../services/opentypesservicev4/types/Row.java | 5 ++
.../opentypesservicev4/types/RowCollection.java | 5 ++
.../opentypesservicev4/types/RowIndex.java | 5 ++
.../types/RowIndexCollection.java | 5 ++
.../services/odatawcfservice/Accounts.java | 7 +-
.../services/odatawcfservice/Customers.java | 7 +-
.../services/odatawcfservice/Departments.java | 7 +-
.../services/odatawcfservice/Employees.java | 7 +-
.../odatawcfservice/InMemoryEntities.java | 8 +-
.../services/odatawcfservice/OrderDetails.java | 7 +-
.../odata/services/odatawcfservice/Orders.java | 7 +-
.../odata/services/odatawcfservice/People.java | 7 +-
.../odatawcfservice/ProductDetails.java | 7 +-
.../odatawcfservice/ProductReviews.java | 7 +-
.../services/odatawcfservice/Products.java | 7 +-
.../services/odatawcfservice/StoredPIs.java | 7 +-
.../odatawcfservice/SubscriptionTemplates.java | 7 +-
.../services/odatawcfservice/types/Account.java | 2 +-
.../types/AccountCollection.java | 5 ++
.../types/AccountInfoCollection.java | 5 ++
.../types/AddressCollection.java | 5 ++
.../services/odatawcfservice/types/Asset.java | 5 ++
.../odatawcfservice/types/AssetCollection.java | 5 ++
.../services/odatawcfservice/types/Club.java | 5 ++
.../odatawcfservice/types/ClubCollection.java | 5 ++
.../services/odatawcfservice/types/Company.java | 2 +-
.../types/CompanyAddressCollection.java | 5 ++
.../types/CompanyCollection.java | 5 ++
.../odatawcfservice/types/CreditCardPI.java | 6 ++
.../types/CreditCardPICollection.java | 5 ++
.../odatawcfservice/types/CreditRecord.java | 5 ++
.../types/CreditRecordCollection.java | 5 ++
.../odatawcfservice/types/Customer.java | 2 +-
.../types/CustomerCollection.java | 5 ++
.../odatawcfservice/types/Department.java | 5 ++
.../types/DepartmentCollection.java | 5 ++
.../odatawcfservice/types/Employee.java | 2 +-
.../types/EmployeeCollection.java | 5 ++
.../odatawcfservice/types/GiftCard.java | 2 +-
.../types/GiftCardCollection.java | 5 ++
.../types/HomeAddressCollection.java | 5 ++
.../odatawcfservice/types/LabourUnion.java | 5 ++
.../types/LabourUnionCollection.java | 5 ++
.../services/odatawcfservice/types/Order.java | 5 ++
.../odatawcfservice/types/OrderCollection.java | 5 ++
.../odatawcfservice/types/OrderDetail.java | 5 ++
.../types/OrderDetailCollection.java | 5 ++
.../types/PaymentInstrument.java | 5 ++
.../types/PaymentInstrumentCollection.java | 5 ++
.../services/odatawcfservice/types/Person.java | 2 +-
.../odatawcfservice/types/PersonCollection.java | 5 ++
.../services/odatawcfservice/types/Product.java | 2 +-
.../types/ProductCollection.java | 27 +++---
.../odatawcfservice/types/ProductDetail.java | 2 +-
.../types/ProductDetailCollection.java | 5 ++
.../odatawcfservice/types/ProductReview.java | 5 ++
.../types/ProductReviewCollection.java | 5 ++
.../odatawcfservice/types/PublicCompany.java | 2 +-
.../types/PublicCompanyCollection.java | 5 ++
.../odatawcfservice/types/Statement.java | 5 ++
.../types/StatementCollection.java | 5 ++
.../odatawcfservice/types/StoredPI.java | 5 ++
.../types/StoredPICollection.java | 5 ++
.../odatawcfservice/types/Subscription.java | 5 ++
.../types/SubscriptionCollection.java | 5 ++
.../invoke/AbstractODataInvokeRequest.java | 7 +-
.../invoke/v3/ODataInvokeRequestImpl.java | 20 +----
.../invoke/v4/ODataInvokeRequestImpl.java | 43 +--------
.../apache/olingo/client/core/uri/URIUtils.java | 95 ++++++++++++++++----
373 files changed, 2080 insertions(+), 265 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/ComposableInvoker.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/ComposableInvoker.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/ComposableInvoker.java
new file mode 100644
index 0000000..9319ebd
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/ComposableInvoker.java
@@ -0,0 +1,24 @@
+/*
+ * 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.ext.proxy.api;
+
+public interface ComposableInvoker<T, O extends Operations> extends Invoker<T> {
+
+ O compose();
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/Operations.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/Operations.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/Operations.java
new file mode 100644
index 0000000..8074dd5
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/Operations.java
@@ -0,0 +1,22 @@
+/*
+ * 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.ext.proxy.api;
+
+public interface Operations {
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredCollectionComposableInvoker.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredCollectionComposableInvoker.java
new file mode 100644
index 0000000..61cf87a
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredCollectionComposableInvoker.java
@@ -0,0 +1,24 @@
+/*
+ * 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.ext.proxy.api;
+
+public interface StructuredCollectionComposableInvoker<CT extends StructuredCollection<?, ?, ?>, O extends Operations>
+ extends StructuredCollectionQuery<StructuredCollectionInvoker<CT>>, StructuredCollectionInvoker<CT>,
+ ComposableInvoker<CT, O> {
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredCollectionInvoker.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredCollectionInvoker.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredCollectionInvoker.java
index a8b217d..b5f8abe 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredCollectionInvoker.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredCollectionInvoker.java
@@ -18,6 +18,6 @@
*/
package org.apache.olingo.ext.proxy.api;
-public interface StructuredCollectionInvoker<CT extends StructuredCollectionQuery<?>>
+public interface StructuredCollectionInvoker<CT extends StructuredCollection<?, ?, ?>>
extends StructuredCollectionQuery<StructuredCollectionInvoker<CT>>, Invoker<CT> {
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredComposableInvoker.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredComposableInvoker.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredComposableInvoker.java
new file mode 100644
index 0000000..a5a3be9
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredComposableInvoker.java
@@ -0,0 +1,23 @@
+/*
+ * 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.ext.proxy.api;
+
+public interface StructuredComposableInvoker<T extends StructuredType<?>, O extends Operations>
+ extends StructuredQuery<StructuredInvoker<T>>, StructuredInvoker<T>, ComposableInvoker<T, O> {
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredInvoker.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredInvoker.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredInvoker.java
index b31f52c..4b9f3c8 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredInvoker.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/StructuredInvoker.java
@@ -18,6 +18,6 @@
*/
package org.apache.olingo.ext.proxy.api;
-public interface StructuredInvoker<T extends StructuredQuery<?>>
+public interface StructuredInvoker<T extends StructuredType<?>>
extends StructuredQuery<StructuredInvoker<T>>, Invoker<T> {
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
index d996328..7cd8d3c 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
@@ -112,6 +112,14 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
}
public static EntityInvocationHandler getInstance(
+ final URI entityURI,
+ final Class<?> typeRef,
+ final AbstractService<?> service) {
+
+ return new EntityInvocationHandler(entityURI, typeRef, service);
+ }
+
+ public static EntityInvocationHandler getInstance(
final Class<?> typeRef,
final AbstractService<?> service) {
@@ -130,10 +138,26 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
this.internal = service.getClient().getObjectFactory().newEntity(new FullQualifiedName(namespace, name));
CommonODataEntity.class.cast(this.internal).setMediaEntity(typeRef.getAnnotation(EntityType.class).hasStream());
- this.uuid = new EntityUUID(
- null,
- typeRef,
- null);
+ this.uuid = new EntityUUID(null, typeRef, null);
+ }
+
+ private EntityInvocationHandler(
+ final URI entityURI,
+ final Class<?> typeRef,
+ final AbstractService<?> service) {
+
+ super(typeRef, service);
+
+ final String name = typeRef.getAnnotation(org.apache.olingo.ext.proxy.api.annotations.EntityType.class).name();
+ final String namespace = typeRef.getAnnotation(Namespace.class).value();
+
+ this.internal = service.getClient().getObjectFactory().newEntity(new FullQualifiedName(namespace, name));
+ CommonODataEntity.class.cast(this.internal).setMediaEntity(typeRef.getAnnotation(EntityType.class).hasStream());
+
+ this.baseURI = entityURI;
+ this.uri = entityURI == null ? null : getClient().newURIBuilder(baseURI.toASCIIString());
+
+ this.uuid = new EntityUUID(null, typeRef, null);
}
private EntityInvocationHandler(
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerHandler.java
index fecc4cb..fa478f5 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerHandler.java
@@ -20,15 +20,18 @@ package org.apache.olingo.ext.proxy.commons;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
+import java.lang.reflect.Type;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.olingo.client.api.communication.request.invoke.ODataNoContent;
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.client.api.uri.CommonURIBuilder;
import org.apache.olingo.client.api.uri.URIFilter;
+import org.apache.olingo.client.core.uri.URIUtils;
import org.apache.olingo.commons.api.domain.CommonODataEntity;
import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
import org.apache.olingo.commons.api.domain.CommonODataProperty;
@@ -62,14 +65,16 @@ public class InvokerHandler<T, C> extends AbstractInvocationHandler {
private final EdmOperation edmOperation;
- private final Class<T> reference;
+ private final Class<T> targetRef;
+
+ private final Class<?> operationRef;
public InvokerHandler(
final URI uri,
final Map<String, ODataValue> parameters,
final Operation operation,
final EdmOperation edmOperation,
- final Class<T> reference,
+ final Type[] references,
final AbstractService<?> service) {
super(service);
@@ -79,7 +84,13 @@ public class InvokerHandler<T, C> extends AbstractInvocationHandler {
this.parameters = parameters;
this.edmOperation = edmOperation;
this.operation = operation;
- this.reference = reference;
+ if (references.length > 0) {
+ this.targetRef = ClassUtils.<T>getTypeClass(references[0]);
+ this.operationRef = references.length > 1 ? ClassUtils.<T>getTypeClass(references[1]) : null;
+ } else {
+ this.targetRef = null;
+ this.operationRef = null;
+ }
}
public C compose() {
@@ -116,11 +127,11 @@ public class InvokerHandler<T, C> extends AbstractInvocationHandler {
if (edmType.isEntityType()) {
if (edmType.isCollection()) {
- final Class<?> collItemType = ClassUtils.extractTypeArg(reference, EntityCollection.class);
+ final Class<?> collItemType = ClassUtils.extractTypeArg(targetRef, EntityCollection.class);
return (T) ProxyUtils.getEntityCollectionProxy(
service,
collItemType,
- reference,
+ targetRef,
null,
(CommonODataEntitySet) result,
this.baseURI,
@@ -130,14 +141,14 @@ public class InvokerHandler<T, C> extends AbstractInvocationHandler {
service,
(CommonODataEntity) result,
null,
- reference,
+ targetRef,
null,
false);
}
} else {
Object res;
- final Class<?> ref = ClassUtils.getTypeClass(reference);
+ final Class<?> ref = ClassUtils.getTypeClass(targetRef);
final CommonODataProperty property = (CommonODataProperty) result;
if (property == null || property.hasNullValue()) {
@@ -185,7 +196,7 @@ public class InvokerHandler<T, C> extends AbstractInvocationHandler {
res = ProxyUtils.getComplex(
service, property.getName(), property.getValue().asComplex(), ref, null, null, false);
} else {
- res = CoreUtils.getObjectFromODataValue(property.getValue(), reference, service);
+ res = CoreUtils.getObjectFromODataValue(property.getValue(), targetRef, service);
}
}
@@ -216,6 +227,7 @@ public class InvokerHandler<T, C> extends AbstractInvocationHandler {
}
@Override
+ @SuppressWarnings({"unchecked", "rawtype"})
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if ("filter".equals(method.getName())
|| "orderBy".equals(method.getName())
@@ -225,6 +237,37 @@ public class InvokerHandler<T, C> extends AbstractInvocationHandler {
|| "select".equals(method.getName())) {
invokeSelfMethod(method, args);
return proxy;
+ } else if ("compose".equals(method.getName()) && ArrayUtils.isEmpty(args)) {
+
+ final EdmTypeInfo edmType = new EdmTypeInfo.Builder().
+ setEdm(service.getClient().getCachedEdm()).setTypeExpression(operation.returnType()).build();
+
+ final OperationInvocationHandler handler;
+
+ final URI prefixURI = URIUtils.buildInvokeRequestURI(this.baseURI, parameters, getClient().getServiceVersion());
+
+ if (edmType.isComplexType()) {
+ if (edmType.isCollection()) {
+ handler = OperationInvocationHandler.getInstance(new ComplexCollectionInvocationHandler(
+ service, targetRef, getClient().newURIBuilder(prefixURI.toASCIIString())));
+ } else {
+ handler = OperationInvocationHandler.getInstance(ComplexInvocationHandler.getInstance(
+ targetRef, service, getClient().newURIBuilder(prefixURI.toASCIIString())));
+ }
+ } else {
+ if (edmType.isCollection()) {
+ handler = OperationInvocationHandler.getInstance(new EntityCollectionInvocationHandler(
+ service, null, targetRef, null, getClient().newURIBuilder(prefixURI.toASCIIString())));
+ } else {
+ handler = OperationInvocationHandler.getInstance(EntityInvocationHandler.getInstance(
+ prefixURI, targetRef, service));
+ }
+ }
+
+ return Proxy.newProxyInstance(
+ Thread.currentThread().getContextClassLoader(),
+ new Class<?>[] {operationRef}, handler);
+
} else if (isSelfMethod(method, args)) {
return invokeSelfMethod(method, args);
} else {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
index 0fb8b96..1ff39e1 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
@@ -18,11 +18,8 @@
*/
package org.apache.olingo.ext.proxy.commons;
-import org.apache.olingo.client.api.uri.CommonURIBuilder;
-import org.apache.olingo.commons.api.domain.CommonODataEntity;
import org.apache.olingo.commons.api.domain.ODataOperation;
import org.apache.olingo.commons.api.edm.EdmAction;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmEntityType;
import org.apache.olingo.commons.api.edm.EdmFunction;
import org.apache.olingo.commons.api.edm.EdmOperation;
@@ -43,7 +40,10 @@ import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import org.apache.olingo.client.api.uri.CommonURIBuilder;
+import org.apache.olingo.commons.api.domain.CommonODataEntity;
import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.core.edm.EdmTypeInfo;
import org.apache.olingo.ext.proxy.utils.CoreUtils;
@@ -63,6 +63,10 @@ final class OperationInvocationHandler extends AbstractInvocationHandler impleme
return new OperationInvocationHandler(entityHandler);
}
+ static OperationInvocationHandler getInstance(final ComplexInvocationHandler complexHandler) {
+ return new OperationInvocationHandler(complexHandler);
+ }
+
static OperationInvocationHandler getInstance(final EntityCollectionInvocationHandler<?> collectionHandler) {
return new OperationInvocationHandler(collectionHandler);
}
@@ -89,6 +93,13 @@ final class OperationInvocationHandler extends AbstractInvocationHandler impleme
this.targetFQN = entityHandler.getEntity().getTypeName();
}
+ private OperationInvocationHandler(final ComplexInvocationHandler complexHandler) {
+ super(complexHandler.service);
+
+ this.target = complexHandler;
+ this.targetFQN = new FullQualifiedName(complexHandler.getComplex().getTypeName());
+ }
+
private OperationInvocationHandler(final EntityCollectionInvocationHandler<?> collectionHandler) {
super(collectionHandler.service);
@@ -184,12 +195,12 @@ final class OperationInvocationHandler extends AbstractInvocationHandler impleme
return Proxy.newProxyInstance(
Thread.currentThread().getContextClassLoader(),
- new Class<?>[] {method.getReturnType()}, new InvokerHandler(
+ new Class<?>[] {ClassUtils.getTypeClass(method.getGenericReturnType())}, new InvokerHandler(
edmOperation.getKey(),
parameterValues,
operation,
edmOperation.getValue(),
- operation.referenceType(),
+ ClassUtils.getTypeArguments(method.getGenericReturnType()),
service));
} else {
throw new NoSuchMethodException(method.getName());
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ClassUtils.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ClassUtils.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ClassUtils.java
index 5e14f3f..8d5c08c 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ClassUtils.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ClassUtils.java
@@ -33,6 +33,7 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
import java.util.HashSet;
import java.util.Set;
@@ -157,7 +158,18 @@ public final class ClassUtils {
return voidConstructor.newInstance();
}
- public static Class<?> getTypeClass(final Type type) {
+ public static Type[] getTypeArguments(final Type type) {
+ if (type instanceof ParameterizedType) {
+ return (ParameterizedType.class.cast(type).getActualTypeArguments());
+ } else if (type instanceof TypeVariable) {
+ return TypeVariable.class.cast(type).getBounds();
+ } else {
+ return new Type[] {};
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T> Class<T> getTypeClass(final Type type) {
if (type instanceof ParameterizedType) {
return getTypeClass(ParameterizedType.class.cast(type).getRawType());
} else if (type instanceof Class) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/pojogen-maven-plugin/src/main/resources/complexCollection.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/complexCollection.vm b/ext/pojogen-maven-plugin/src/main/resources/complexCollection.vm
index 70262d9..6eba868 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/complexCollection.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/complexCollection.vm
@@ -52,10 +52,8 @@ public interface $utility.capitalize($complexType.Name)Collection extends
org.apache.olingo.ext.proxy.api.ComplexCollection<$javaComplexType, ${javaComplexType}Collection, ${javaComplexType}Collection> {
#set( $functions = $utility.getFunctionsBoundTo($complexType.Name, true) )
#set( $actions = $utility.getActionsBoundTo($complexType.Name, true) )
-#if( $functions.size() > 0 || $actions.size() > 0 )
#set($structuredType = $complexType)
#parse( "operation.vm" )
-#end
Object getAnnotation(Class<? extends AbstractTerm> term);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/pojogen-maven-plugin/src/main/resources/container.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/container.vm b/ext/pojogen-maven-plugin/src/main/resources/container.vm
index 939e1f5..827de54 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/container.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/container.vm
@@ -69,19 +69,24 @@ public interface $utility.capitalize($container.Name) extends PersistenceManager
Operations operations();
- public interface Operations {
+ public interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
#foreach($operation in $container.FunctionImports)
#foreach($function in $operation.UnboundFunctions)
#if($function.ReturnType)#*
*##set($defaultType = $utility.getJavaType($function.ReturnType.Type, $function.ReturnType.Collection))#*
+ *##if($function.Composable)#*
+ *##set($composable = "ComposableInvoker<$defaultType, ${defaultType}.Operations>")#*
+ *##{else}#*
+ *##set($composable = "Invoker<$defaultType>")#*
+ *##end#*
*##if(!($function.getReturnType().isCollection() || ${function.ReturnType.Type.Kind} == "ENTITY" || ${function.ReturnType.Type.Kind} == "COMPLEX" || $utility.isStreamType($function.ReturnType.Type)))#*
*##set($returnType = "org.apache.olingo.ext.proxy.api.Invoker<$defaultType>")#*
*##else#*
*##if(${function.ReturnType.Type.Kind} == "ENTITY" || ${function.ReturnType.Type.Kind} == "COMPLEX")#*
*##if($function.getReturnType().isCollection())#*
- *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollectionInvoker<$defaultType>")#*
+ *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollection${composable}")#*
*##{else}#*
- *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredInvoker<$defaultType>")#*
+ *##set($returnType = "org.apache.olingo.ext.proxy.api.Structured${composable}")#*
*##end#*
*##{else}#*
*##if($function.getReturnType().isCollection())#*
@@ -119,14 +124,19 @@ public interface $utility.capitalize($container.Name) extends PersistenceManager
#if($action)
#if($action.ReturnType)#*
*##set($defaultType = $utility.getJavaType($action.ReturnType.Type, $action.ReturnType.Collection))#*
+ *##if($action.Composable)#*
+ *##set($composable = "ComposableInvoker<$defaultType, ${defaultType}.Operations>")#*
+ *##{else}#*
+ *##set($composable = "Invoker<$defaultType>")#*
+ *##end#*
*##if(!($action.getReturnType().isCollection() || ${action.ReturnType.Type.Kind} == "ENTITY" || ${action.ReturnType.Type.Kind} == "COMPLEX" || $utility.isStreamType($action.ReturnType.Type)))#*
*##set($returnType = "org.apache.olingo.ext.proxy.api.Invoker<$defaultType>")#*
*##else#*
*##if(${action.ReturnType.Type.Kind} == "ENTITY" || ${action.ReturnType.Type.Kind} == "COMPLEX")#*
*##if($action.getReturnType().isCollection())#*
- *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollectionInvoker<$defaultType>")#*
+ *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollection${composable}")#*
*##{else}#*
- *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredInvoker<$defaultType>")#*
+ *##set($returnType = "org.apache.olingo.ext.proxy.api.Structured${composable}")#*
*##end#*
*##{else}#*
*##if($action.getReturnType().isCollection())#*
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/pojogen-maven-plugin/src/main/resources/entityCollection.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/entityCollection.vm b/ext/pojogen-maven-plugin/src/main/resources/entityCollection.vm
index bbab76f..855c475 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/entityCollection.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/entityCollection.vm
@@ -52,10 +52,8 @@ public interface $utility.capitalize($entityType.Name)Collection extends
org.apache.olingo.ext.proxy.api.EntityCollection<$javaEntityType, ${javaEntityType}Collection, ${javaEntityType}Collection> {
#set( $functions = $utility.getFunctionsBoundTo($entityType.Name, true) )
#set( $actions = $utility.getActionsBoundTo($entityType.Name, true) )
-#if( $functions.size() > 0 || $actions.size() > 0 )
#set($structuredType = $entityType)
#parse( "operation.vm" )
-#end
Object getAnnotation(Class<? extends AbstractTerm> term);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/pojogen-maven-plugin/src/main/resources/entitySet.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/entitySet.vm b/ext/pojogen-maven-plugin/src/main/resources/entitySet.vm
index ba1d353..9c3627a 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/entitySet.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/entitySet.vm
@@ -63,8 +63,6 @@ public interface $utility.capitalize($entitySet.Name)
#set( $functions = $utility.getFunctionsBoundTo("${container.Namespace}.${entitySet.Name}", false) )
#set( $actions = $utility.getActionsBoundTo("${container.Namespace}.${entitySet.Name}", false) )
-#if( $functions.size() > 0 || $actions.size() > 0 )
#set($structuredType = $entitySet.EntityType)
#parse( "operation.vm" )
-#end
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/entityType.vm b/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
index b87709b..a18f5ac 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
@@ -137,11 +137,9 @@ public interface $utility.capitalize($entityType.Name)
#set( $functions = $utility.getFunctionsBoundTo($entityType.Name, false) )
#set( $actions = $utility.getActionsBoundTo($entityType.Name, false) )
-#set( $inherited = $utility.justInheritedOperationsBoundTo($entityType) )
-#if( $inherited.size() > 0 || $functions.size() > 0 || $actions.size() > 0 )
+#set( $override = $entityType.getBaseType() )
#set($structuredType = $entityType)
#parse( "operation.vm" )
-#end
Annotations annotations();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/ext/pojogen-maven-plugin/src/main/resources/operation.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/operation.vm b/ext/pojogen-maven-plugin/src/main/resources/operation.vm
index 3576357..d8bdae8 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/operation.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/operation.vm
@@ -16,24 +16,28 @@
* specific language governing permissions and limitations
* under the License.
*#
- #if($inherited.size() > 0)
+ #if( $override )
@Override
#end
Operations operations();
- interface Operations #if($inherited.size() > 0)
- extends ${utility.getJavaType($structuredType.getBaseType())}.Operations#end{
+ interface Operations extends #if( $override )${utility.getJavaType($structuredType.getBaseType())}.Operations#{else}org.apache.olingo.ext.proxy.api.Operations#end{
#foreach($operation in $functions)
#if($operation.ReturnType)#*
*##set($defaultType = $utility.getJavaType($operation.ReturnType.Type, $operation.ReturnType.Collection))#*
+ *##if($operationComposable)#*
+ *##set($composable = "ComposableInvoker<$defaultType, ${defaultType}.Operations>")#*
+ *##{else}#*
+ *##set($composable = "Invoker<$defaultType>")#*
+ *##end#*
*##if(!($operation.getReturnType().isCollection() || ${operation.ReturnType.Type.Kind} == "ENTITY" || ${operation.ReturnType.Type.Kind} == "COMPLEX" || $utility.isStreamType($operation.ReturnType.Type)))#*
*##set($returnType = "org.apache.olingo.ext.proxy.api.Invoker<$defaultType>")#*
*##else#*
*##if(${operation.ReturnType.Type.Kind} == "ENTITY" || ${operation.ReturnType.Type.Kind} == "COMPLEX")#*
*##if($operation.getReturnType().isCollection())#*
- *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollectionInvoker<$defaultType>")#*
+ *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollection${composable}")#*
*##{else}#*
- *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredInvoker<$defaultType>")#*
+ *##set($returnType = "org.apache.olingo.ext.proxy.api.Structured${composable}")#*
*##end#*
*##{else}#*
*##if($operation.getReturnType().isCollection())#*
@@ -70,14 +74,19 @@
#foreach($operation in $actions)
#if($operation.ReturnType)#*
*##set($defaultType = $utility.getJavaType($operation.ReturnType.Type, $operation.ReturnType.Collection))#*
+ *##if($operation.Composable)#*
+ *##set($composable = "ComposableInvoker<$defaultType, ${defaultType}.Operations>")#*
+ *##{else}#*
+ *##set($composable = "Invoker<$defaultType>")#*
+ *##end#*
*##if(!($operation.getReturnType().isCollection() || ${operation.ReturnType.Type.Kind} == "ENTITY" || ${operation.ReturnType.Type.Kind} == "COMPLEX" || $utility.isStreamType($operation.ReturnType.Type)))#*
*##set($returnType = "org.apache.olingo.ext.proxy.api.Invoker<$defaultType>")#*
*##else#*
*##if(${operation.ReturnType.Type.Kind} == "ENTITY" || ${operation.ReturnType.Type.Kind} == "COMPLEX")#*
*##if($operation.getReturnType().isCollection())#*
- *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollectionInvoker<$defaultType>")#*
+ *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollection${composable}")#*
*##{else}#*
- *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredInvoker<$defaultType>")#*
+ *##set($returnType = "org.apache.olingo.ext.proxy.api.Structured${composable}")#*
*##end#*
*##{else}#*
*##if($operation.getReturnType().isCollection())#*
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/main/java/org/apache/olingo/fit/V4Services.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4Services.java b/fit/src/main/java/org/apache/olingo/fit/V4Services.java
index 8278e53..347705d 100644
--- a/fit/src/main/java/org/apache/olingo/fit/V4Services.java
+++ b/fit/src/main/java/org/apache/olingo/fit/V4Services.java
@@ -112,6 +112,19 @@ public class V4Services extends AbstractServices {
super(ODataServiceVersion.V40, metadata);
}
+ @POST
+ @Path("/GetAllProducts()/Discount")
+ public Response discount() {
+ try {
+ final String basePath = "Products" + File.separatorChar + "feed";
+
+ final InputStream feed = FSManager.instance(version).readFile(basePath, Accept.JSON_FULLMETA);
+ return xml.createResponse(null, feed, Commons.getETag(basePath, version), Accept.JSON_FULLMETA);
+ } catch (Exception e) {
+ return xml.createFaultResponse(Accept.JSON_FULLMETA.toString(version), e);
+ }
+ }
+
@GET
@Path("/redirect/{name}({id})")
public Response conformanceRedirect(
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/AllGeoCollectionTypesSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/AllGeoCollectionTypesSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/AllGeoCollectionTypesSet.java
index 046b4b9..768476f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/AllGeoCollectionTypesSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/AllGeoCollectionTypesSet.java
@@ -31,4 +31,9 @@ public interface AllGeoCollectionTypesSet
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<AllGeoCollectionTypesSet>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AllSpatialCollectionTypes, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AllSpatialCollectionTypesCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/AllGeoTypesSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/AllGeoTypesSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/AllGeoTypesSet.java
index 67fbe0d..0e3339c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/AllGeoTypesSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/AllGeoTypesSet.java
@@ -31,4 +31,9 @@ public interface AllGeoTypesSet
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<AllGeoTypesSet>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AllSpatialTypes, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AllSpatialTypesCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Car.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Car.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Car.java
index 86efac2..cd9defa 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Car.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Car.java
@@ -31,4 +31,9 @@ public interface Car
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Car>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Car, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.CarCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Computer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Computer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Computer.java
index be9f30c..1334cf6 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Computer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Computer.java
@@ -31,4 +31,9 @@ public interface Computer
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Computer>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Computer, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ComputerCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/ComputerDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/ComputerDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/ComputerDetail.java
index 0d64a8d..615ea48 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/ComputerDetail.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/ComputerDetail.java
@@ -31,4 +31,9 @@ public interface ComputerDetail
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ComputerDetail>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ComputerDetail, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ComputerDetailCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Customer.java
index e368d6f..550b939 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Customer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Customer.java
@@ -31,4 +31,9 @@ public interface Customer
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Customer>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Customer, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.CustomerCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/CustomerInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/CustomerInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/CustomerInfo.java
index 536081c..38a55ea 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/CustomerInfo.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/CustomerInfo.java
@@ -31,4 +31,9 @@ public interface CustomerInfo
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CustomerInfo>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.CustomerInfo, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.CustomerInfoCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
index 760df90..2d8863f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/DefaultContainer.java
@@ -92,7 +92,7 @@ public interface DefaultContainer extends PersistenceManager {
Operations operations();
- public interface Operations {
+ public interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
@org.apache.olingo.ext.proxy.api.annotations.Operation(name = "UpdatePersonInfo",
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Driver.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Driver.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Driver.java
index 79f1a67..0873d1f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Driver.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Driver.java
@@ -31,4 +31,9 @@ public interface Driver
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Driver>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Driver, java.lang.String, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.DriverCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/LastLogin.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/LastLogin.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/LastLogin.java
index 91159ae..e508c8f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/LastLogin.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/LastLogin.java
@@ -31,4 +31,9 @@ public interface LastLogin
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<LastLogin>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.LastLogin, java.lang.String, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.LastLoginCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/License.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/License.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/License.java
index 44b5af2..21bf8e0 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/License.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/License.java
@@ -31,4 +31,9 @@ public interface License
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<License>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.License, java.lang.String, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.LicenseCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Login.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Login.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Login.java
index fba53de..388678c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Login.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Login.java
@@ -31,4 +31,9 @@ public interface Login
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Login>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Login, java.lang.String, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.LoginCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/MappedEntityType.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/MappedEntityType.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/MappedEntityType.java
index a9d30ab..ccef277 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/MappedEntityType.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/MappedEntityType.java
@@ -31,4 +31,9 @@ public interface MappedEntityType
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<MappedEntityType>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.MappedEntityType, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.MappedEntityTypeCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Message.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Message.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Message.java
index 2825214..b31ecac 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Message.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Message.java
@@ -33,4 +33,9 @@ public interface Message
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Message>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Message, MessageKey, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.MessageCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/MessageAttachment.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/MessageAttachment.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/MessageAttachment.java
index 2aaed64..e5ee8b7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/MessageAttachment.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/MessageAttachment.java
@@ -31,4 +31,9 @@ public interface MessageAttachment
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<MessageAttachment>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.MessageAttachment, java.util.UUID, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.MessageAttachmentCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Order.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Order.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Order.java
index de925ae..68f130e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Order.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Order.java
@@ -31,4 +31,9 @@ public interface Order
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Order>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Order, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.OrderCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/OrderLine.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/OrderLine.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/OrderLine.java
index ba78316..062dfb0 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/OrderLine.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/OrderLine.java
@@ -33,4 +33,9 @@ public interface OrderLine
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<OrderLine>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.OrderLine, OrderLineKey, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.OrderLineCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/PageView.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/PageView.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/PageView.java
index 2b9e42e..415dc0d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/PageView.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/PageView.java
@@ -31,4 +31,9 @@ public interface PageView
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PageView>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.PageView, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.PageViewCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Person.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Person.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Person.java
index 6cf0e02..fca1edd 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Person.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Person.java
@@ -31,4 +31,9 @@ public interface Person
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Person>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Person, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.PersonCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/PersonMetadata.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/PersonMetadata.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/PersonMetadata.java
index ff9f8ec..e8e2d56 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/PersonMetadata.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/PersonMetadata.java
@@ -31,4 +31,9 @@ public interface PersonMetadata
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PersonMetadata>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.PersonMetadata, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.PersonMetadataCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Product.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Product.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Product.java
index 1b50dea..27bc7c2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Product.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/Product.java
@@ -31,4 +31,9 @@ public interface Product
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Product>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Product, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ProductCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/86d33380/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/ProductDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/ProductDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/ProductDetail.java
index 45594bc..c25e810 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/ProductDetail.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/ProductDetail.java
@@ -31,4 +31,9 @@ public interface ProductDetail
org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductDetail>,
AbstractEntitySet<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ProductDetail, java.lang.Integer, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ProductDetailCollection> {
-}
+
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.ext.proxy.api.Operations{
+
+ }}