You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by sk...@apache.org on 2014/05/20 10:15:48 UTC
[1/7] git commit: [OLINGO-267] Implement getContainer correctly
Repository: olingo-odata4
Updated Branches:
refs/heads/olingo-266-tecsvc 6e66fc155 -> 5fb2b80e4
[OLINGO-267] Implement getContainer correctly
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/002161cd
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/002161cd
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/002161cd
Branch: refs/heads/olingo-266-tecsvc
Commit: 002161cd4c54d13ab8a03b279d4959409ac9b4b6
Parents: 6e66fc1
Author: Christian Amend <ch...@apache.org>
Authored: Mon May 19 16:32:17 2014 +0200
Committer: Christian Amend <ch...@apache.org>
Committed: Mon May 19 16:32:17 2014 +0200
----------------------------------------------------------------------
.../server/api/edm/provider/EntitySet.java | 2 +-
.../tecsvc/provider/ContainerProvider.java | 80 +++++++++++++++++++-
.../server/tecsvc/provider/EdmTechProvider.java | 2 +-
.../server/tecsvc/provider/SchemaProvider.java | 76 +------------------
.../serializer/xml/MetadataDocumentTest.java | 3 +-
5 files changed, 83 insertions(+), 80 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/002161cd/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
index 889bc6c..74aa183 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
@@ -24,7 +24,7 @@ import org.apache.olingo.commons.api.edm.FullQualifiedName;
public class EntitySet extends BindingTarget {
- private boolean includeInServiceDocument;
+ private boolean includeInServiceDocument = true;
@Override
public EntitySet setName(final String name) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/002161cd/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
index 24fe6bc..1a6a462 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
@@ -18,7 +18,9 @@
*/
package org.apache.olingo.server.tecsvc.provider;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
import org.apache.olingo.commons.api.ODataException;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -38,6 +40,12 @@ public class ContainerProvider {
EntityContainerInfo entityContainerInfoTest1 =
new EntityContainerInfo().setContainerName(nameContainer);
+ private EdmTechProvider prov;
+
+ public ContainerProvider(EdmTechProvider edmTechProvider) {
+ this.prov = edmTechProvider;
+ }
+
public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException {
if (entityContainerName == null) {
return entityContainerInfoTest1;
@@ -49,7 +57,77 @@ public class ContainerProvider {
}
public EntityContainer getEntityContainer() throws ODataException {
- return null;
+ EntityContainer container = new EntityContainer();
+ container.setName(ContainerProvider.nameContainer.getName());
+
+ // EntitySets
+ List<EntitySet> entitySets = new ArrayList<EntitySet>();
+ container.setEntitySets(entitySets);
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllPrim"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCollAllPrim"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoPrim"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMixPrimCollComp"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBase"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoBase"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoKeyTwoPrim"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBaseTwoKeyTwoPrim"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoBaseTwoKeyTwoPrim"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllKey"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompAllPrim"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompCollAllPrim"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompComp"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompCollComp"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMedia"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESKeyTwoKeyComp"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESInvisible"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESServerSidePaging"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllNullable"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESKeyNav"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoKeyNav"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBaseTwoKeyNav"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompMixPrimCollComp"));
+ entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESFourKeyAlias"));
+
+ // Singletons
+ List<Singleton> singletons = new ArrayList<Singleton>();
+ container.setSingletons(singletons);
+ singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SI"));
+ singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SINav"));
+ singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SIMedia"));
+
+ // ActionImports
+ List<ActionImport> actionImports = new ArrayList<ActionImport>();
+ container.setActionImports(actionImports);
+ actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTPrimParam"));
+ actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTPrimCollParam"));
+ actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTCompParam"));
+ actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTCompCollParam"));
+ actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTETParam"));
+ actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTETCollAllPrimParam"));
+
+ // FunctionImports
+ List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
+ container.setFunctionImports(functionImports);
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINRTInt16"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINInvisibleRTInt16"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINInvisible2RTInt16"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTETKeyNav"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTETTwoKeyNavParam"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTStringTwoParam"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollStringTwoParam"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCTAllPrimTwoParam"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTESMixPrimCollCompTwoParam"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINRTESMixPrimCollCompTwoParam"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollCTTwoPrim"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTETMedia"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCTTwoPrimParam"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCTTwoPrim"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollString"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTString"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTESTwoKeyNavParam"));
+ functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollCTTwoPrimParam"));
+
+ return container;
}
public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String name) throws ODataException {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/002161cd/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
index fd9980a..1b14d88 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
@@ -54,7 +54,7 @@ public class EdmTechProvider extends EdmProvider {
private final TypeDefinitionProvider typeDefinitionProvider;
public EdmTechProvider() {
- containerProvider = new ContainerProvider();
+ containerProvider = new ContainerProvider(this);
entityTypeProvider = new EntityTypeProvider();
complexTypeProvider = new ComplexTypeProvider();
enumTypeProvider = new EnumTypeProvider();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/002161cd/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
index c941c70..59f0f43 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
@@ -23,16 +23,11 @@ import java.util.List;
import org.apache.olingo.commons.api.ODataException;
import org.apache.olingo.server.api.edm.provider.Action;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EntityContainer;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
import org.apache.olingo.server.api.edm.provider.EntityType;
import org.apache.olingo.server.api.edm.provider.EnumType;
import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
import org.apache.olingo.server.api.edm.provider.Schema;
-import org.apache.olingo.server.api.edm.provider.Singleton;
public class SchemaProvider {
@@ -173,76 +168,7 @@ public class SchemaProvider {
// functions.addAll(prov.getFunctions(FunctionProvider.nameBFCCTPrimCompRTESTwoKeyNavParam));
// EntityContainer
- EntityContainer container = new EntityContainer();
- schema.setEntityContainer(container);
- container.setName(ContainerProvider.nameContainer.getName());
-
- // EntitySets
- List<EntitySet> entitySets = new ArrayList<EntitySet>();
- container.setEntitySets(entitySets);
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllPrim"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCollAllPrim"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoPrim"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMixPrimCollComp"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBase"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoBase"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoKeyTwoPrim"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBaseTwoKeyTwoPrim"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoBaseTwoKeyTwoPrim"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllKey"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompAllPrim"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompCollAllPrim"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompComp"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompCollComp"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMedia"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESKeyTwoKeyComp"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESInvisible"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESServerSidePaging"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllNullable"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESKeyNav"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoKeyNav"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESBaseTwoKeyNav"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCompMixPrimCollComp"));
- entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESFourKeyAlias"));
-
- // Singletons
- List<Singleton> singletons = new ArrayList<Singleton>();
- container.setSingletons(singletons);
- singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SI"));
- singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SINav"));
- singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SIMedia"));
-
- // ActionImports
- List<ActionImport> actionImports = new ArrayList<ActionImport>();
- container.setActionImports(actionImports);
- actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTPrimParam"));
- actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTPrimCollParam"));
- actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTCompParam"));
- actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTCompCollParam"));
- actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTETParam"));
- actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, "AIRTETCollAllPrimParam"));
-
- // FunctionImports
- List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
- container.setFunctionImports(functionImports);
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINRTInt16"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINInvisibleRTInt16"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINInvisible2RTInt16"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTETKeyNav"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTETTwoKeyNavParam"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTStringTwoParam"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollStringTwoParam"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCTAllPrimTwoParam"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTESMixPrimCollCompTwoParam"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINRTESMixPrimCollCompTwoParam"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollCTTwoPrim"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTETMedia"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCTTwoPrimParam"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCTTwoPrim"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollString"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTString"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTESTwoKeyNavParam"));
- functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollCTTwoPrimParam"));
+ schema.setEntityContainer(prov.getEntityContainer());
return schemas;
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/002161cd/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
index 475dff1..5721d42 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
@@ -22,7 +22,6 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
-import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
@@ -82,7 +81,7 @@ public class MetadataDocumentTest {
Edm edm = new EdmProviderImpl(new TestMetadataProvider());
InputStream metadata = serializer.metadataDocument(edm);
assertNotNull(metadata);
-
+
String metadataString = IOUtils.toString(metadata);
assertTrue(metadataString
.contains("<edmx:Edmx Version=\"4.0\" xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\">"));
[6/7] git commit: IT: server-side paging
Posted by sk...@apache.org.
IT: server-side paging
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/5c28df50
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/5c28df50
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/5c28df50
Branch: refs/heads/olingo-266-tecsvc
Commit: 5c28df507150ed5573d9ce4a395ec8d2218a6cca
Parents: beae479
Author: Francesco Chicchiriccò <--global>
Authored: Mon May 19 18:02:47 2014 +0200
Committer: Francesco Chicchiriccò <--global>
Committed: Mon May 19 18:02:47 2014 +0200
----------------------------------------------------------------------
.../org/apache/olingo/fit/v4/EntitySetTestITCase.java | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5c28df50/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
index c0449cc..cca2b3b 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
@@ -142,12 +142,13 @@ public class EntitySetTestITCase extends AbstractTestITCase {
readODataEntitySetIterator(ODataPubFormat.JSON_NO_METADATA);
}
- private void readEntitySetWithNextLink(final ODataPubFormat format) {
+ private void readWithNext(final ODataPubFormat format) {
final URIBuilder uriBuilder = client.getURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
getEntitySetRequest(uriBuilder.build());
req.setFormat(format);
+ req.setPrefer(client.newPreferences().maxPageSize(5));
final ODataRetrieveResponse<ODataEntitySet> res = req.execute();
final ODataEntitySet feed = res.getBody();
@@ -164,13 +165,13 @@ public class EntitySetTestITCase extends AbstractTestITCase {
}
@Test
- public void readODataEntitySetWithNextFromAtom() {
- readEntitySetWithNextLink(ODataPubFormat.ATOM);
+ public void readWithNextFromAtom() {
+ readWithNext(ODataPubFormat.ATOM);
}
@Test
- public void readODataEntitySetWithNextFromJSON() {
- readEntitySetWithNextLink(ODataPubFormat.JSON_FULL_METADATA);
+ public void readWithNextFromJSON() {
+ readWithNext(ODataPubFormat.JSON_FULL_METADATA);
}
}
[7/7] git commit: Enhancing the FunctionImport invoke API enhancement
Posted by sk...@apache.org.
Enhancing the FunctionImport invoke API enhancement
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/5fb2b80e
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/5fb2b80e
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/5fb2b80e
Branch: refs/heads/olingo-266-tecsvc
Commit: 5fb2b80e404e6a65ff1d0dcfabaefbbdd182b0c6
Parents: 5c28df5
Author: Francesco Chicchiriccò <--global>
Authored: Tue May 20 08:37:40 2014 +0200
Committer: Francesco Chicchiriccò <--global>
Committed: Tue May 20 08:37:40 2014 +0200
----------------------------------------------------------------------
.../request/invoke/EdmEnabledInvokeRequestFactory.java | 4 ++--
.../invoke/v3/EdmEnabledInvokeRequestFactoryImpl.java | 11 ++++++++++-
.../invoke/v4/EdmEnabledInvokeRequestFactoryImpl.java | 11 ++++++++++-
3 files changed, 22 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5fb2b80e/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
index a29d124..d8d2538 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
@@ -25,7 +25,7 @@ import org.apache.olingo.commons.api.domain.ODataValue;
public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {
/**
- * Gets an invoke request instance for the first function import with the given name (no overloading supported).
+ * Gets an invoke request instance for the function import with the given name and no parameters.
*
* @param <RES> OData domain object result, derived from return type defined in the function import
* @param functionImportName operation to be invoked
@@ -35,7 +35,7 @@ public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {
String functionImportName);
/**
- * Gets an invoke request instance for the first function import with the given name (no overloading supported).
+ * Gets an invoke request instance for the function import with the given name and matching parameter names.
*
* @param <RES> OData domain object result, derived from return type defined in the function import
* @param functionImportName operation to be invoked
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5fb2b80e/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/v3/EdmEnabledInvokeRequestFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/v3/EdmEnabledInvokeRequestFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/v3/EdmEnabledInvokeRequestFactoryImpl.java
index c6a6fd3..de22c30 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/v3/EdmEnabledInvokeRequestFactoryImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/v3/EdmEnabledInvokeRequestFactoryImpl.java
@@ -18,6 +18,7 @@
*/
package org.apache.olingo.client.core.communication.request.invoke.v3;
+import java.util.ArrayList;
import java.util.Map;
import org.apache.olingo.client.api.communication.request.invoke.EdmEnabledInvokeRequestFactory;
import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
@@ -26,6 +27,7 @@ import org.apache.olingo.commons.api.domain.ODataInvokeResult;
import org.apache.olingo.commons.api.domain.ODataValue;
import org.apache.olingo.commons.api.edm.EdmActionImport;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
+import org.apache.olingo.commons.api.edm.EdmFunction;
import org.apache.olingo.commons.api.edm.EdmFunctionImport;
import org.apache.olingo.commons.api.edm.EdmSchema;
@@ -63,9 +65,16 @@ public class EdmEnabledInvokeRequestFactoryImpl
throw new IllegalArgumentException("Could not find FunctionImport for name " + functionImportName);
}
+ final EdmFunction function = edmClient.getCachedEdm().
+ getUnboundFunction(efi.getFunctionFqn(),
+ parameters == null ? null : new ArrayList<String>(parameters.keySet()));
+ if (function == null) {
+ throw new IllegalArgumentException("Could not find Function " + efi.getFunctionFqn());
+ }
+
return getInvokeRequest(
edmClient.getURIBuilder().appendOperationCallSegment(functionImportName).build(),
- efi.getUnboundFunctions().get(0),
+ function,
parameters);
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5fb2b80e/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/v4/EdmEnabledInvokeRequestFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/v4/EdmEnabledInvokeRequestFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/v4/EdmEnabledInvokeRequestFactoryImpl.java
index b33e225..4df6c3f 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/v4/EdmEnabledInvokeRequestFactoryImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/v4/EdmEnabledInvokeRequestFactoryImpl.java
@@ -18,6 +18,7 @@
*/
package org.apache.olingo.client.core.communication.request.invoke.v4;
+import java.util.ArrayList;
import java.util.Map;
import org.apache.olingo.client.api.communication.request.invoke.EdmEnabledInvokeRequestFactory;
import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
@@ -26,6 +27,7 @@ import org.apache.olingo.commons.api.domain.ODataInvokeResult;
import org.apache.olingo.commons.api.domain.ODataValue;
import org.apache.olingo.commons.api.edm.EdmActionImport;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
+import org.apache.olingo.commons.api.edm.EdmFunction;
import org.apache.olingo.commons.api.edm.EdmFunctionImport;
import org.apache.olingo.commons.api.edm.EdmSchema;
@@ -63,9 +65,16 @@ public class EdmEnabledInvokeRequestFactoryImpl
throw new IllegalArgumentException("Could not find FunctionImport for name " + functionImportName);
}
+ final EdmFunction function = edmClient.getCachedEdm().
+ getUnboundFunction(efi.getFunctionFqn(),
+ parameters == null ? null : new ArrayList<String>(parameters.keySet()));
+ if (function == null) {
+ throw new IllegalArgumentException("Could not find Function " + efi.getFunctionFqn());
+ }
+
return getInvokeRequest(
edmClient.getURIBuilder().appendOperationCallSegment(functionImportName).build(),
- efi.getUnboundFunctions().get(0),
+ function,
parameters);
}
[4/7] git commit: [OLINGO-260] Instance annotations test
Posted by sk...@apache.org.
[OLINGO-260] Instance annotations test
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/f59a8fb3
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/f59a8fb3
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/f59a8fb3
Branch: refs/heads/olingo-266-tecsvc
Commit: f59a8fb30ce347a91612c5753f7d90810a3d4f01
Parents: 4a1d5ab
Author: Francesco Chicchiriccò <--global>
Authored: Mon May 19 17:47:46 2014 +0200
Committer: Francesco Chicchiriccò <--global>
Committed: Mon May 19 17:47:46 2014 +0200
----------------------------------------------------------------------
.../ext/proxy/EntityContainerFactory.java | 2 +-
.../ext/proxy/api/AbstractAnnotatable.java | 34 ++++
.../olingo/ext/proxy/api/AbstractOpenType.java | 2 +
.../olingo/ext/proxy/api/AbstractTerm.java | 24 +++
.../olingo/ext/proxy/api/annotations/Term.java | 40 ++++
.../commons/AbstractInvocationHandler.java | 5 +-
.../AbstractStructuredInvocationHandler.java | 23 ++-
.../proxy/commons/ComplexInvocationHandler.java | 10 +-
.../olingo/ext/proxy/commons/ContainerImpl.java | 20 +-
.../EntityCollectionInvocationHandler.java | 53 +++++
.../proxy/commons/EntityInvocationHandler.java | 101 +++++++++-
.../commons/EntitySetInvocationHandler.java | 49 +++--
.../ext/proxy/commons/EntitySetIterator.java | 16 +-
.../olingo/ext/proxy/utils/CoreUtils.java | 192 ++++++++++++-------
.../olingo/ext/pojogen/AbstractPOJOGenMojo.java | 15 +-
.../src/main/resources/entityCollection.vm | 5 +
.../src/main/resources/entityType.vm | 3 +-
.../src/main/resources/services.vm | 21 --
.../src/main/resources/term.vm | 34 ++++
.../fit/proxy/v4/SingletonTestITCase.java | 18 ++
.../services/odatawcfservice/types/Account.java | 3 +-
.../types/AccountCollection.java | 5 +
.../services/odatawcfservice/types/Asset.java | 3 +-
.../odatawcfservice/types/AssetCollection.java | 5 +
.../services/odatawcfservice/types/Club.java | 3 +-
.../odatawcfservice/types/ClubCollection.java | 5 +
.../services/odatawcfservice/types/Company.java | 3 +-
.../types/CompanyCollection.java | 5 +
.../odatawcfservice/types/CreditCardPI.java | 3 +-
.../types/CreditCardPICollection.java | 5 +
.../odatawcfservice/types/CreditRecord.java | 3 +-
.../types/CreditRecordCollection.java | 5 +
.../odatawcfservice/types/Customer.java | 3 +-
.../types/CustomerCollection.java | 5 +
.../odatawcfservice/types/Department.java | 3 +-
.../types/DepartmentCollection.java | 5 +
.../odatawcfservice/types/Employee.java | 3 +-
.../types/EmployeeCollection.java | 5 +
.../odatawcfservice/types/GiftCard.java | 3 +-
.../types/GiftCardCollection.java | 5 +
.../services/odatawcfservice/types/IsBoss.java | 31 +++
.../odatawcfservice/types/LabourUnion.java | 3 +-
.../types/LabourUnionCollection.java | 5 +
.../services/odatawcfservice/types/Order.java | 3 +-
.../odatawcfservice/types/OrderCollection.java | 5 +
.../odatawcfservice/types/OrderDetail.java | 3 +-
.../types/OrderDetailCollection.java | 5 +
.../types/PaymentInstrument.java | 3 +-
.../types/PaymentInstrumentCollection.java | 5 +
.../services/odatawcfservice/types/Person.java | 3 +-
.../odatawcfservice/types/PersonCollection.java | 5 +
.../services/odatawcfservice/types/Product.java | 3 +-
.../types/ProductCollection.java | 5 +
.../odatawcfservice/types/ProductDetail.java | 3 +-
.../types/ProductDetailCollection.java | 5 +
.../odatawcfservice/types/ProductReview.java | 3 +-
.../types/ProductReviewCollection.java | 5 +
.../odatawcfservice/types/PublicCompany.java | 3 +-
.../types/PublicCompanyCollection.java | 5 +
.../odatawcfservice/types/Statement.java | 3 +-
.../types/StatementCollection.java | 5 +
.../odatawcfservice/types/StoredPI.java | 3 +-
.../types/StoredPICollection.java | 5 +
.../odatawcfservice/types/Subscription.java | 3 +-
.../types/SubscriptionCollection.java | 5 +
.../META-INF/org.apache.olingo.ext.proxy.term | 1 +
.../apache/olingo/commons/api/Constants.java | 2 +
67 files changed, 722 insertions(+), 155 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/EntityContainerFactory.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/EntityContainerFactory.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/EntityContainerFactory.java
index c378a7a..9de2d4f 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/EntityContainerFactory.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/EntityContainerFactory.java
@@ -63,10 +63,10 @@ public final class EntityContainerFactory<C extends CommonEdmEnabledODataClient<
final C client, final String serviceRoot) {
if (!FACTORY_PER_SERVICEROOT.containsKey(serviceRoot)) {
+ client.getConfiguration().setDefaultPubFormat(ODataPubFormat.JSON_FULL_METADATA);
final EntityContainerFactory<C> instance = new EntityContainerFactory<C>(client, serviceRoot);
FACTORY_PER_SERVICEROOT.put(serviceRoot, instance);
}
- client.getConfiguration().setDefaultPubFormat(ODataPubFormat.JSON_FULL_METADATA);
return (EntityContainerFactory<C>) FACTORY_PER_SERVICEROOT.get(serviceRoot);
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractAnnotatable.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractAnnotatable.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractAnnotatable.java
new file mode 100644
index 0000000..b0a1f4f
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractAnnotatable.java
@@ -0,0 +1,34 @@
+/*
+ * 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;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+public interface AbstractAnnotatable extends Serializable {
+
+ void addAnnotation(Class<? extends AbstractTerm> term, Object value);
+
+ void removeAnnotation(Class<? extends AbstractTerm> term);
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractOpenType.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractOpenType.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractOpenType.java
index c2f565c..769bd2a 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractOpenType.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractOpenType.java
@@ -25,6 +25,8 @@ public interface AbstractOpenType extends Serializable {
void addAdditionalProperty(String name, Object value);
+ void removeAdditionalProperty(String name);
+
Object getAdditionalProperty(String name);
Collection<String> getAdditionalPropertyNames();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractTerm.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractTerm.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractTerm.java
new file mode 100644
index 0000000..065727c
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractTerm.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;
+
+import java.io.Serializable;
+
+public interface AbstractTerm extends Serializable {
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/Term.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/Term.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/Term.java
new file mode 100644
index 0000000..97ae421
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/Term.java
@@ -0,0 +1,40 @@
+/*
+ * 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.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Mark POJO as term.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+@Inherited
+public @interface Term {
+
+ String name();
+
+ String type();
+
+ String baseTerm() default "";
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
index e3a2bc9..2ce424a 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
@@ -224,7 +224,10 @@ abstract class AbstractInvocationHandler implements InvocationHandler {
false);
}
} else {
- return CoreUtils.getValueFromProperty(client, (CommonODataProperty) result, method.getGenericReturnType(), null);
+ final CommonODataProperty property = (CommonODataProperty) result;
+ return property == null || property.hasNullValue()
+ ? null
+ : CoreUtils.getObjectFromODataValue(client, property.getValue(), method.getGenericReturnType(), null);
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
index 689d99f..3a85895 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
@@ -28,6 +28,7 @@ import java.util.Collection;
import java.util.Collections;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.olingo.client.api.CommonEdmEnabledODataClient;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
import org.apache.olingo.client.core.uri.URIUtils;
import org.apache.olingo.commons.api.domain.CommonODataEntity;
@@ -35,6 +36,7 @@ import org.apache.olingo.commons.api.domain.ODataInlineEntity;
import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
import org.apache.olingo.commons.api.domain.ODataLink;
import org.apache.olingo.commons.api.domain.ODataLinked;
+import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
import org.apache.olingo.ext.proxy.EntityContainerFactory;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
@@ -141,7 +143,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
}
} else {
// if the getter refers to a property .... get property from wrapped entity
- res = getPropertyValue(property, getter.getGenericReturnType());
+ res = getPropertyValue(property.name(), getter.getGenericReturnType());
}
// attach the current handler
@@ -246,8 +248,12 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
} else if (AbstractEntitySet.class.isAssignableFrom(type)) {
navPropValue = getEntitySetProxy(type, uri);
} else {
- final ODataRetrieveResponse<CommonODataEntity> res =
- client.getRetrieveRequestFactory().getEntityRequest(uri).execute();
+ final ODataEntityRequest<CommonODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
+ if (client.getServiceVersion().compareTo(ODataServiceVersion.V30) > 0) {
+ req.setPrefer(client.newPreferences().includeAnnotations("*"));
+ }
+
+ final ODataRetrieveResponse<CommonODataEntity> res = req.execute();
navPropValue = getEntityProxy(
uri,
@@ -265,15 +271,16 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
protected abstract Object getPropertyValue(final String name, final Type type);
- private Object getPropertyValue(final Property property, final Type type) {
- return getPropertyValue(property.name(), type);
- }
-
public void addAdditionalProperty(final String name, final Object value) {
addPropertyChanges(name, value);
attach(AttachedEntityStatus.CHANGED);
}
+ public void removeAdditionalProperty(final String name) {
+ removePropertyChanges(name);
+ attach(AttachedEntityStatus.CHANGED);
+ }
+
public Object getAdditionalProperty(final String name) {
return getPropertyValue(name, null);
}
@@ -313,6 +320,8 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
protected abstract void addPropertyChanges(final String name, final Object value);
+ protected abstract void removePropertyChanges(final String name);
+
protected abstract void addLinkChanges(final NavigationProperty navProp, final Object value);
public abstract boolean isChanged();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
index b85452d..e3743fe 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
@@ -99,7 +99,10 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
@Override
protected Object getPropertyValue(final String name, final Type type) {
try {
- return CoreUtils.getValueFromProperty(client, getComplex().get(name), type, getEntityHandler());
+ final CommonODataProperty property = getComplex().get(name);
+ return property == null || property.hasNullValue()
+ ? null
+ : CoreUtils.getObjectFromODataValue(client, property.getValue(), type, getEntityHandler());
} catch (Exception e) {
throw new IllegalArgumentException("Error getting value for property '" + name + "'", e);
}
@@ -175,6 +178,11 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
}
@Override
+ protected void removePropertyChanges(final String name) {
+ // do nothing ....
+ }
+
+ @Override
protected void addLinkChanges(final NavigationProperty navProp, final Object value) {
// do nothing ....
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ContainerImpl.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ContainerImpl.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ContainerImpl.java
index da9329d..a5aa6b3 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ContainerImpl.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ContainerImpl.java
@@ -51,6 +51,7 @@ import org.apache.olingo.client.core.uri.URIUtils;
import org.apache.olingo.commons.api.domain.CommonODataEntity;
import org.apache.olingo.commons.api.domain.ODataLink;
import org.apache.olingo.commons.api.domain.ODataLinkType;
+import org.apache.olingo.commons.api.domain.v4.ODataEntity;
import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
import org.apache.olingo.commons.api.format.ODataMediaFormat;
import org.apache.olingo.ext.proxy.EntityContainerFactory;
@@ -240,10 +241,10 @@ class ContainerImpl implements Container {
client.getServiceVersion().compareTo(ODataServiceVersion.V30) <= 0
? ((org.apache.olingo.client.api.v3.EdmEnabledODataClient) client).getCUDRequestFactory().
getEntityUpdateRequest(handler.getEntityURI(),
- org.apache.olingo.client.api.communication.request.cud.v3.UpdateType.PATCH, changes)
+ org.apache.olingo.client.api.communication.request.cud.v3.UpdateType.PATCH, changes)
: ((org.apache.olingo.client.api.v4.EdmEnabledODataClient) client).getCUDRequestFactory().
getEntityUpdateRequest(handler.getEntityURI(),
- org.apache.olingo.client.api.communication.request.cud.v4.UpdateType.PATCH, changes);
+ org.apache.olingo.client.api.communication.request.cud.v4.UpdateType.PATCH, changes);
req.setPrefer(new ODataPreferences(client.getServiceVersion()).returnContent());
@@ -266,10 +267,10 @@ class ContainerImpl implements Container {
client.getServiceVersion().compareTo(ODataServiceVersion.V30) <= 0
? ((org.apache.olingo.client.api.v3.EdmEnabledODataClient) client).getCUDRequestFactory().
getEntityUpdateRequest(uri,
- org.apache.olingo.client.api.communication.request.cud.v3.UpdateType.PATCH, changes)
+ org.apache.olingo.client.api.communication.request.cud.v3.UpdateType.PATCH, changes)
: ((org.apache.olingo.client.api.v4.EdmEnabledODataClient) client).getCUDRequestFactory().
getEntityUpdateRequest(uri,
- org.apache.olingo.client.api.communication.request.cud.v4.UpdateType.PATCH, changes);
+ org.apache.olingo.client.api.communication.request.cud.v4.UpdateType.PATCH, changes);
req.setPrefer(new ODataPreferences(client.getServiceVersion()).returnContent());
@@ -316,6 +317,11 @@ class ContainerImpl implements Container {
if (AttachedEntityStatus.DELETED != currentStatus) {
entity.getProperties().clear();
CoreUtils.addProperties(client, handler.getPropertyChanges(), entity);
+
+ if (entity instanceof ODataEntity) {
+ ((ODataEntity) entity).getAnnotations().clear();
+ CoreUtils.addAnnotations(client, handler.getAnnotations(), (ODataEntity) entity);
+ }
}
for (Map.Entry<NavigationProperty, Object> property : handler.getLinkChanges().entrySet()) {
@@ -395,7 +401,7 @@ class ContainerImpl implements Container {
final URI targetURI = currentStatus == AttachedEntityStatus.NEW
? URI.create("$" + startingPos + "/$value")
: URIUtils.getURI(
- factory.getServiceRoot(), handler.getEntity().getEditLink().toASCIIString() + "/$value");
+ factory.getServiceRoot(), handler.getEntity().getEditLink().toASCIIString() + "/$value");
batchUpdateMediaEntity(handler, targetURI, handler.getStreamChanges(), changeset);
@@ -408,8 +414,8 @@ class ContainerImpl implements Container {
for (Map.Entry<String, InputStream> streamedChanges : handler.getStreamedPropertyChanges().entrySet()) {
final URI targetURI = currentStatus == AttachedEntityStatus.NEW
? URI.create("$" + startingPos) : URIUtils.getURI(
- factory.getServiceRoot(),
- CoreUtils.getMediaEditLink(streamedChanges.getKey(), entity).toASCIIString());
+ factory.getServiceRoot(),
+ CoreUtils.getMediaEditLink(streamedChanges.getKey(), entity).toASCIIString());
batchUpdateMediaResource(handler, targetURI, streamedChanges.getValue(), changeset);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java
index 06d03a2..49f61bf 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java
@@ -22,10 +22,19 @@ import java.io.Serializable;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import org.apache.commons.lang3.ArrayUtils;
+import org.apache.olingo.commons.api.domain.v4.ODataAnnotation;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.Term;
+import org.apache.olingo.ext.proxy.utils.CoreUtils;
public class EntityCollectionInvocationHandler<T extends Serializable>
extends AbstractInvocationHandler implements AbstractEntityCollection<T> {
@@ -38,6 +47,11 @@ public class EntityCollectionInvocationHandler<T extends Serializable>
private final URI uri;
+ private final List<ODataAnnotation> annotations = new ArrayList<ODataAnnotation>();
+
+ private final Map<Class<? extends AbstractTerm>, Object> annotationsByTerm =
+ new HashMap<Class<? extends AbstractTerm>, Object>();
+
public EntityCollectionInvocationHandler(final EntityContainerInvocationHandler containerHandler,
final Collection<T> items, final Class<?> itemRef) {
@@ -54,6 +68,12 @@ public class EntityCollectionInvocationHandler<T extends Serializable>
this.uri = uri;
}
+ public void setAnnotations(final List<ODataAnnotation> annotations) {
+ this.annotations.clear();
+ this.annotationsByTerm.clear();
+ this.annotations.addAll(annotations);
+ }
+
public Class<?> getEntityReference() {
return itemRef;
}
@@ -142,4 +162,37 @@ public class EntityCollectionInvocationHandler<T extends Serializable>
public void clear() {
items.clear();
}
+
+ public Object getAnnotation(final Class<? extends AbstractTerm> term) {
+ Object res = null;
+
+ if (annotationsByTerm.containsKey(term)) {
+ res = annotationsByTerm.get(term);
+ } else {
+ try {
+ final Term termAnn = term.getAnnotation(Term.class);
+ final Namespace namespaceAnn = term.getAnnotation(Namespace.class);
+ ODataAnnotation annotation = null;
+ for (ODataAnnotation _annotation : annotations) {
+ if ((namespaceAnn.value() + "." + termAnn.name()).equals(_annotation.getTerm())) {
+ annotation = _annotation;
+ }
+ }
+ res = annotation == null || annotation.hasNullValue()
+ ? null
+ : CoreUtils.getObjectFromODataValue(client, annotation.getValue(), null, null);
+ if (res != null) {
+ annotationsByTerm.put(term, res);
+ }
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Error getting annotation for term '" + term.getName() + "'", e);
+ }
+ }
+
+ return res;
+ }
+
+ public Collection<Class<? extends AbstractTerm>> getAnnotationTerms() {
+ return CoreUtils.getAnnotationTerms(annotations);
+ }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/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 6b1f08b..529c5eb 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
@@ -39,11 +39,16 @@ import org.apache.olingo.client.core.uri.URIUtils;
import org.apache.olingo.commons.api.domain.CommonODataEntity;
import org.apache.olingo.commons.api.domain.CommonODataProperty;
import org.apache.olingo.commons.api.domain.ODataLinked;
+import org.apache.olingo.commons.api.domain.v4.ODataAnnotation;
+import org.apache.olingo.commons.api.domain.v4.ODataEntity;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
import org.apache.olingo.commons.api.format.ODataMediaFormat;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.annotations.Term;
import org.apache.olingo.ext.proxy.context.AttachedEntityStatus;
import org.apache.olingo.ext.proxy.context.EntityUUID;
import org.apache.olingo.ext.proxy.utils.CoreUtils;
@@ -54,15 +59,18 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
private final URI entityURI;
- protected Map<String, Object> propertyChanges = new HashMap<String, Object>();
+ protected final Map<String, Object> propertyChanges = new HashMap<String, Object>();
- protected Map<NavigationProperty, Object> linkChanges = new HashMap<NavigationProperty, Object>();
+ protected final Map<NavigationProperty, Object> linkChanges = new HashMap<NavigationProperty, Object>();
protected int propertiesTag = 0;
protected int linksTag = 0;
- private Map<String, InputStream> streamedPropertyChanges = new HashMap<String, InputStream>();
+ private final Map<String, InputStream> streamedPropertyChanges = new HashMap<String, InputStream>();
+
+ private final Map<Class<? extends AbstractTerm>, Object> annotations =
+ new HashMap<Class<? extends AbstractTerm>, Object>();
private InputStream stream;
@@ -127,6 +135,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
this.linkChanges.clear();
this.propertiesTag = 0;
this.linksTag = 0;
+ this.annotations.clear();
}
public EntityUUID getUUID() {
@@ -175,6 +184,10 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
return linkChanges;
}
+ public Map<Class<? extends AbstractTerm>, Object> getAnnotations() {
+ return annotations;
+ }
+
private void updatePropertiesTag(final int checkpoint) {
if (checkpoint == propertiesTag) {
propertiesTag = propertyChanges.hashCode();
@@ -199,10 +212,12 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
if (propertyChanges.containsKey(name)) {
res = propertyChanges.get(name);
} else {
- res = CoreUtils.getValueFromProperty(client, property, type, this);
+ res = property == null || property.hasNullValue()
+ ? null
+ : CoreUtils.getObjectFromODataValue(client, property.getValue(), type, this);
if (res != null) {
- chacheProperty(name, res);
+ cacheProperty(name, res);
}
}
@@ -238,15 +253,14 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
}
@Override
- @SuppressWarnings("unchecked")
protected void setPropertyValue(final Property property, final Object value) {
- if (property.type().equalsIgnoreCase("Edm." + EdmPrimitiveTypeKind.Stream.toString())) {
+ if (EdmPrimitiveTypeKind.Stream.getFullQualifiedName().toString().equalsIgnoreCase(property.type())) {
setStreamedProperty(property, (InputStream) value);
} else {
addPropertyChanges(property.name(), value);
if (value != null) {
- final Collection<?> coll;
+ Collection<?> coll;
if (Collection.class.isAssignableFrom(value.getClass())) {
coll = Collection.class.cast(value);
} else {
@@ -364,7 +378,12 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
propertyChanges.put(name, value);
}
- protected void chacheProperty(final String name, final Object value) {
+ @Override
+ protected void removePropertyChanges(final String name) {
+ propertyChanges.remove(name);
+ }
+
+ protected void cacheProperty(final String name, final Object value) {
final int checkpoint = propertyChanges.hashCode();
propertyChanges.put(name, value);
updatePropertiesTag(checkpoint);
@@ -381,6 +400,70 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
updateLinksTag(checkpoint);
}
+ public void addAnnotation(final Class<? extends AbstractTerm> term, final Object value) {
+ this.annotations.put(term, value);
+
+ if (value != null) {
+ Collection<?> coll;
+ if (Collection.class.isAssignableFrom(value.getClass())) {
+ coll = Collection.class.cast(value);
+ } else {
+ coll = Collections.singleton(value);
+ }
+
+ for (Object item : coll) {
+ if (item instanceof Proxy) {
+ final InvocationHandler handler = Proxy.getInvocationHandler(item);
+ if ((handler instanceof ComplexInvocationHandler)
+ && ((ComplexInvocationHandler) handler).getEntityHandler() == null) {
+ ((ComplexInvocationHandler) handler).setEntityHandler(this);
+ }
+ }
+ }
+ }
+
+ attach(AttachedEntityStatus.CHANGED);
+ }
+
+ public void removeAnnotation(final Class<? extends AbstractTerm> term) {
+ this.annotations.remove(term);
+ }
+
+ public Object getAnnotation(final Class<? extends AbstractTerm> term) {
+ Object res = null;
+
+ if (annotations.containsKey(term)) {
+ res = annotations.get(term);
+ } else if (getEntity() instanceof ODataEntity) {
+ try {
+ final Term termAnn = term.getAnnotation(Term.class);
+ final Namespace namespaceAnn = term.getAnnotation(Namespace.class);
+ ODataAnnotation annotation = null;
+ for (ODataAnnotation _annotation : ((ODataEntity) getEntity()).getAnnotations()) {
+ if ((namespaceAnn.value() + "." + termAnn.name()).equals(_annotation.getTerm())) {
+ annotation = _annotation;
+ }
+ }
+ res = annotation == null || annotation.hasNullValue()
+ ? null
+ : CoreUtils.getObjectFromODataValue(client, annotation.getValue(), null, this);
+ if (res != null) {
+ annotations.put(term, res);
+ }
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Error getting annotation for term '" + term.getName() + "'", e);
+ }
+ }
+
+ return res;
+ }
+
+ public Collection<Class<? extends AbstractTerm>> getAnnotationTerms() {
+ return getEntity() instanceof ODataEntity
+ ? CoreUtils.getAnnotationTerms(((ODataEntity) getEntity()).getAnnotations())
+ : Collections.<Class<? extends AbstractTerm>>emptyList();
+ }
+
@Override
public String toString() {
return uuid.toString();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
index 6e70a0e..4f4e45a 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
@@ -25,7 +25,6 @@ import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Proxy;
import java.lang.reflect.Type;
import java.net.URI;
-import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
@@ -33,6 +32,10 @@ import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.tuple.ImmutableTriple;
+import org.apache.commons.lang3.tuple.Triple;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
+import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
import org.apache.olingo.client.api.uri.CommonURIBuilder;
@@ -41,6 +44,8 @@ import org.apache.olingo.client.api.v4.EdmEnabledODataClient;
import org.apache.olingo.client.api.v4.ODataClient;
import org.apache.olingo.commons.api.domain.CommonODataEntity;
import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
+import org.apache.olingo.commons.api.domain.v4.ODataAnnotation;
+import org.apache.olingo.commons.api.domain.v4.ODataEntitySet;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
import org.apache.olingo.commons.api.format.ODataValueFormat;
@@ -254,8 +259,13 @@ class EntitySetInvocationHandler<
LOG.debug("GET {}", uriBuilder.toString());
- final ODataRetrieveResponse<CommonODataEntity> res =
- client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build()).execute();
+ final ODataEntityRequest<CommonODataEntity> req =
+ client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+ if (client.getServiceVersion().compareTo(ODataServiceVersion.V30) > 0) {
+ req.setPrefer(client.newPreferences().includeAnnotations("*"));
+ }
+
+ final ODataRetrieveResponse<CommonODataEntity> res = req.execute();
final String etag = res.getETag();
final CommonODataEntity entity = res.getBody();
@@ -282,9 +292,12 @@ class EntitySetInvocationHandler<
}
@SuppressWarnings("unchecked")
- public <S extends T> Map.Entry<List<S>, URI> fetchPartialEntitySet(final URI uri, final Class<S> typeRef) {
+ public <S extends T> Triple<List<S>, URI, List<ODataAnnotation>>
+ fetchPartialEntitySet(final URI uri, final Class<S> typeRef) {
+
final List<CommonODataEntity> entities = new ArrayList<CommonODataEntity>();
final URI next;
+ final List<ODataAnnotation> annotations = new ArrayList<ODataAnnotation>();
if (isSingleton) {
final ODataRetrieveResponse<org.apache.olingo.commons.api.domain.v4.Singleton> res =
@@ -293,12 +306,20 @@ class EntitySetInvocationHandler<
entities.add(res.getBody());
next = null;
} else {
- final ODataRetrieveResponse<CommonODataEntitySet> res =
- client.getRetrieveRequestFactory().getEntitySetRequest(uri).execute();
+ final ODataEntitySetRequest<CommonODataEntitySet> req =
+ client.getRetrieveRequestFactory().getEntitySetRequest(uri);
+ if (client.getServiceVersion().compareTo(ODataServiceVersion.V30) > 0) {
+ req.setPrefer(client.newPreferences().includeAnnotations("*"));
+ }
+
+ final ODataRetrieveResponse<CommonODataEntitySet> res = req.execute();
final CommonODataEntitySet entitySet = res.getBody();
entities.addAll(entitySet.getEntities());
next = entitySet.getNext();
+ if (entitySet instanceof ODataEntitySet) {
+ annotations.addAll(((ODataEntitySet) entitySet).getAnnotations());
+ }
}
final List<S> items = new ArrayList<S>(entities.size());
@@ -316,7 +337,7 @@ class EntitySetInvocationHandler<
handlerInTheContext == null ? handler : handlerInTheContext));
}
- return new AbstractMap.SimpleEntry<List<S>, URI>(items, next);
+ return new ImmutableTriple<List<S>, URI, List<ODataAnnotation>>(items, next, annotations);
}
@SuppressWarnings("unchecked")
@@ -324,18 +345,24 @@ class EntitySetInvocationHandler<
final URI entitySetURI, final Class<S> typeRef, final Class<SEC> collTypeRef) {
final List<S> items = new ArrayList<S>();
+ final List<ODataAnnotation> annotations = new ArrayList<ODataAnnotation>();
URI nextURI = entitySetURI;
while (nextURI != null) {
- final Map.Entry<List<S>, URI> entitySet = fetchPartialEntitySet(nextURI, typeRef);
- nextURI = entitySet.getValue();
- items.addAll(entitySet.getKey());
+ final Triple<List<S>, URI, List<ODataAnnotation>> entitySet = fetchPartialEntitySet(nextURI, typeRef);
+ items.addAll(entitySet.getLeft());
+ nextURI = entitySet.getMiddle();
+ annotations.addAll(entitySet.getRight());
}
+ final EntityCollectionInvocationHandler<S> entityCollectionHandler =
+ new EntityCollectionInvocationHandler<S>(containerHandler, items, typeRef, entitySetURI);
+ entityCollectionHandler.setAnnotations(annotations);
+
return (SEC) Proxy.newProxyInstance(
Thread.currentThread().getContextClassLoader(),
new Class<?>[] {collTypeRef},
- new EntityCollectionInvocationHandler<S>(containerHandler, items, typeRef, entitySetURI));
+ entityCollectionHandler);
}
@Override
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
index 8a14b7e..48405e8 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
@@ -23,8 +23,9 @@ import java.net.URI;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.NoSuchElementException;
+import org.apache.commons.lang3.tuple.Triple;
+import org.apache.olingo.commons.api.domain.v4.ODataAnnotation;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
class EntitySetIterator<T extends Serializable, KEY extends Serializable, EC extends AbstractEntityCollection<T>>
@@ -50,7 +51,7 @@ class EntitySetIterator<T extends Serializable, KEY extends Serializable, EC ext
} else if (this.next == null) {
res = false;
} else {
- goon();
+ goOn();
res = current.hasNext();
}
return res;
@@ -65,7 +66,7 @@ class EntitySetIterator<T extends Serializable, KEY extends Serializable, EC ext
if (this.next == null) {
throw e;
}
- goon();
+ goOn();
res = next();
}
@@ -77,9 +78,10 @@ class EntitySetIterator<T extends Serializable, KEY extends Serializable, EC ext
this.current.remove();
}
- private void goon() {
- final Map.Entry<List<T>, URI> entitySet = esi.fetchPartialEntitySet(this.next, this.esi.getTypeRef());
- this.next = entitySet.getValue();
- this.current = entitySet.getKey().iterator();
+ private void goOn() {
+ final Triple<List<T>, URI, List<ODataAnnotation>> entitySet =
+ esi.fetchPartialEntitySet(this.next, this.esi.getTypeRef());
+ this.current = entitySet.getLeft().iterator();
+ this.next = entitySet.getMiddle();
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
index 3c4843a..5fbdc69 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
@@ -43,23 +43,28 @@ import org.apache.olingo.commons.api.domain.CommonODataProperty;
import org.apache.olingo.commons.api.domain.ODataLink;
import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.v4.ODataAnnotation;
+import org.apache.olingo.commons.api.domain.v4.ODataEntity;
import org.apache.olingo.commons.api.domain.v4.ODataEnumValue;
import org.apache.olingo.commons.api.domain.v4.ODataObjectFactory;
-import org.apache.olingo.commons.api.domain.v4.ODataProperty;
import org.apache.olingo.commons.api.edm.EdmElement;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.EdmType;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.commons.core.domain.v4.ODataAnnotationImpl;
import org.apache.olingo.commons.core.edm.EdmTypeInfo;
import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.annotations.ComplexType;
import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
import org.apache.olingo.ext.proxy.api.annotations.EnumType;
import org.apache.olingo.ext.proxy.api.annotations.Key;
import org.apache.olingo.ext.proxy.api.annotations.Namespace;
import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.annotations.Term;
import org.apache.olingo.ext.proxy.commons.AbstractStructuredInvocationHandler;
import org.apache.olingo.ext.proxy.commons.ComplexInvocationHandler;
import org.apache.olingo.ext.proxy.commons.EntityInvocationHandler;
@@ -189,48 +194,59 @@ public final class CoreUtils {
return getODataProperty(client, property, type, obj);
}
+ public static ODataAnnotation getODataAnnotation(
+ final CommonEdmEnabledODataClient<?> client, final String term, final EdmType type, final Object obj) {
+
+ ODataAnnotation annotation;
+
+ if (obj == null) {
+ annotation = new ODataAnnotationImpl(term, null);
+ } else {
+ final EdmTypeInfo valueType = type == null
+ ? guessTypeFromObject(client, obj)
+ : new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).
+ setTypeExpression(type.getFullQualifiedName().toString()).build();
+
+ annotation = new ODataAnnotationImpl(term,
+ (org.apache.olingo.commons.api.domain.v4.ODataValue) getODataValue(client, valueType, obj));
+ }
+
+ return annotation;
+ }
+
public static CommonODataProperty getODataProperty(
final CommonEdmEnabledODataClient<?> client, final String name, final EdmTypeInfo type, final Object obj) {
- CommonODataProperty oprop;
+ CommonODataProperty property;
try {
if (obj == null) {
- oprop = client.getObjectFactory().newPrimitiveProperty(name, null);
+ property = client.getObjectFactory().newPrimitiveProperty(name, null);
} else {
- final EdmTypeInfo valueType;
- if (type == null) {
- valueType = guessTypeFromObject(client, obj);
- } else {
- valueType = type;
- }
+ final EdmTypeInfo valueType = type == null
+ ? guessTypeFromObject(client, obj)
+ : type;
+ final ODataValue value = getODataValue(client, valueType, obj);
if (valueType.isCollection()) {
- // create collection property
- oprop = client.getObjectFactory().newCollectionProperty(name, getODataValue(client, valueType, obj).
- asCollection());
+ property = client.getObjectFactory().newCollectionProperty(name, value.asCollection());
} else if (valueType.isPrimitiveType()) {
- // create a primitive property
- oprop = client.getObjectFactory().newPrimitiveProperty(name, getODataValue(client, valueType, obj).
- asPrimitive());
+ property = client.getObjectFactory().newPrimitiveProperty(name, value.asPrimitive());
} else if (valueType.isComplexType()) {
- // create a complex property
- oprop = client.getObjectFactory().newComplexProperty(name, getODataValue(client, valueType, obj).
- asComplex());
+ property = client.getObjectFactory().newComplexProperty(name, value.asComplex());
} else if (valueType.isEnumType()) {
if (client.getServiceVersion().compareTo(ODataServiceVersion.V30) <= 0) {
throw new UnsupportedInV3Exception();
} else {
- oprop = ((ODataObjectFactory) client.getObjectFactory()).newEnumProperty(name,
- ((org.apache.olingo.commons.api.domain.v4.ODataValue) getODataValue(client, valueType, obj)).
- asEnum());
+ property = ((ODataObjectFactory) client.getObjectFactory()).newEnumProperty(name,
+ ((org.apache.olingo.commons.api.domain.v4.ODataValue) value).asEnum());
}
} else {
throw new UnsupportedOperationException("Usupported object type " + valueType.getFullQualifiedName());
}
}
- return oprop;
+ return property;
} catch (Exception e) {
throw new IllegalStateException(e);
}
@@ -287,15 +303,28 @@ public final class CoreUtils {
final Map<String, Object> changes,
final CommonODataEntity entity) {
- for (Map.Entry<String, Object> property : changes.entrySet()) {
- // if the getter exists and it is annotated as expected then get value/value and add a new property
- final CommonODataProperty odataProperty = entity.getProperty(property.getKey());
- if (odataProperty != null) {
- entity.getProperties().remove(odataProperty);
- }
-
+ for (Map.Entry<String, Object> entry : changes.entrySet()) {
((List<CommonODataProperty>) entity.getProperties()).add(
- getODataEntityProperty(client, entity.getTypeName(), property.getKey(), property.getValue()));
+ getODataEntityProperty(client, entity.getTypeName(), entry.getKey(), entry.getValue()));
+ }
+ }
+
+ public static void addAnnotations(
+ final CommonEdmEnabledODataClient<?> client,
+ final Map<Class<? extends AbstractTerm>, Object> annotations,
+ final ODataEntity entity) {
+
+ for (Map.Entry<Class<? extends AbstractTerm>, Object> entry : annotations.entrySet()) {
+ final Namespace nsAnn = entry.getKey().getAnnotation(Namespace.class);
+ final Term termAnn = entry.getKey().getAnnotation(Term.class);
+ final FullQualifiedName termName = new FullQualifiedName(nsAnn.value(), termAnn.name());
+ final EdmTerm term = client.getCachedEdm().getTerm(termName);
+ if (term == null) {
+ LOG.error("Could not find term for class {}", entry.getKey().getName());
+ } else {
+ entity.getAnnotations().add(getODataAnnotation(
+ client, term.getFullQualifiedName().toString(), term.getType(), entry.getValue()));
+ }
}
}
@@ -426,7 +455,7 @@ public final class CoreUtils {
Thread.currentThread().getContextClassLoader(),
new Class<?>[] {getter.getReturnType()},
ComplexInvocationHandler.getInstance(
- client, property.getName(), getter.getReturnType(), null));
+ client, property.getName(), getter.getReturnType(), null));
populate(client, complex, Property.class, property.getValue().asComplex().iterator());
setPropertyValue(bean, getter, complex);
@@ -451,7 +480,7 @@ public final class CoreUtils {
Thread.currentThread().getContextClassLoader(),
new Class<?>[] {collItemClass},
ComplexInvocationHandler.getInstance(
- client, property.getName(), collItemClass, null));
+ client, property.getName(), collItemClass, null));
populate(client, collItem, Property.class, value.asComplex().iterator());
collection.add(collItem);
@@ -467,9 +496,9 @@ public final class CoreUtils {
}
@SuppressWarnings("unchecked")
- public static Object getValueFromProperty(
+ public static Object getObjectFromODataValue(
final CommonEdmEnabledODataClient<?> client,
- final CommonODataProperty property,
+ final ODataValue value,
final Type typeRef,
final EntityInvocationHandler entityHandler)
throws InstantiationException, IllegalAccessException {
@@ -487,59 +516,93 @@ public final class CoreUtils {
final Object res;
- if (property == null || property.hasNullValue()) {
+ if (value == null) {
res = null;
- } else if (property.hasComplexValue()) {
+ } else if (value.isComplex()) {
// complex types supports inheritance in V4, best to re-read actual type
- internalRef = getComplexTypeRef(property);
+ internalRef = getComplexTypeRef(value);
res = Proxy.newProxyInstance(
Thread.currentThread().getContextClassLoader(),
new Class<?>[] {internalRef},
ComplexInvocationHandler.getInstance(
- client, property.getValue().asComplex(), internalRef, entityHandler));
- } else if (property.hasCollectionValue()) {
+ client, value.asComplex(), internalRef, entityHandler));
+ } else if (value.isCollection()) {
final ArrayList<Object> collection = new ArrayList<Object>();
- final Iterator<ODataValue> collPropItor = property.getValue().asCollection().iterator();
+ final Iterator<ODataValue> collPropItor = value.asCollection().iterator();
while (collPropItor.hasNext()) {
- final ODataValue value = collPropItor.next();
- if (value.isPrimitive()) {
- collection.add(CoreUtils.primitiveValueToObject(value.asPrimitive(), internalRef));
- } else if (value.isComplex()) {
- internalRef = getComplexTypeRef(property);
+ final ODataValue itemValue = collPropItor.next();
+ if (itemValue.isPrimitive()) {
+ collection.add(CoreUtils.primitiveValueToObject(itemValue.asPrimitive(), internalRef));
+ } else if (itemValue.isComplex()) {
+ internalRef = getComplexTypeRef(value);
final Object collItem = Proxy.newProxyInstance(
Thread.currentThread().getContextClassLoader(),
new Class<?>[] {internalRef},
ComplexInvocationHandler.getInstance(
- client, value.asComplex(), internalRef, entityHandler));
+ client, itemValue.asComplex(), internalRef, entityHandler));
collection.add(collItem);
}
}
res = collection;
- } else if (property instanceof ODataProperty && ((ODataProperty) property).hasEnumValue()) {
+ } else if (value instanceof ODataEnumValue) {
if (internalRef == null) {
- internalRef = getEnumTypeRef(property);
+ internalRef = getEnumTypeRef(value);
}
- res = enumValueToObject(((ODataProperty) property).getEnumValue(), internalRef);
+ res = enumValueToObject((ODataEnumValue) value, internalRef);
} else {
- res = primitiveValueToObject(property.getPrimitiveValue(), internalRef);
+ res = primitiveValueToObject(value.asPrimitive(), internalRef);
+ }
+
+ return res;
+ }
+
+ @SuppressWarnings("unchecked")
+ public static Collection<Class<? extends AbstractTerm>> getAnnotationTerms(final List<ODataAnnotation> annotations) {
+ final List<Class<? extends AbstractTerm>> res = new ArrayList<Class<? extends AbstractTerm>>();
+
+ for (ODataAnnotation annotation : annotations) {
+ res.add((Class<? extends AbstractTerm>) getTermTypeRef(annotation));
}
return res;
}
- private static Class<?> getEnumTypeRef(final CommonODataProperty property) {
- return getTypeRef(property, "META-INF/" + Constants.PROXY_ENUM_CLASS_LIST, EnumType.class);
+ private static Class<?> getTermTypeRef(final ODataAnnotation annotation) {
+ try {
+ final List<String> pkgs = IOUtils.readLines(Thread.currentThread().getContextClassLoader().
+ getResourceAsStream("META-INF/" + Constants.PROXY_TERM_CLASS_LIST),
+ Constants.UTF8);
+ for (String pkg : pkgs) {
+ final Class<?> clazz = Class.forName(pkg);
+ final Term term = clazz.getAnnotation(Term.class);
+ final Namespace ns = clazz.getAnnotation(Namespace.class);
+
+ if (ns != null && term != null
+ && annotation.getTerm().equals(new FullQualifiedName(ns.value(), term.name()).toString())) {
+
+ return clazz;
+ }
+ }
+ } catch (Exception e) {
+ LOG.warn("Error retrieving class list for {}", Term.class.getName(), e);
+ }
+
+ throw new IllegalArgumentException("Could not find Term class for " + annotation.getTerm());
+ }
+
+ private static Class<?> getEnumTypeRef(final ODataValue value) {
+ return getTypeRef(value, "META-INF/" + Constants.PROXY_ENUM_CLASS_LIST, EnumType.class);
}
- private static Class<?> getComplexTypeRef(final CommonODataProperty property) {
- return getTypeRef(property, "META-INF/" + Constants.PROXY_COMPLEX_CLASS_LIST, ComplexType.class);
+ private static Class<?> getComplexTypeRef(final ODataValue value) {
+ return getTypeRef(value, "META-INF/" + Constants.PROXY_COMPLEX_CLASS_LIST, ComplexType.class);
}
private static Class<?> getTypeRef(
- final CommonODataProperty property,
+ final ODataValue value,
final String proxyClassListFile,
final Class<? extends Annotation> annType) {
@@ -549,7 +612,7 @@ public final class CoreUtils {
try {
final List<String> pkgs = IOUtils.readLines(
- CoreUtils.class.getClassLoader().getResourceAsStream(proxyClassListFile),
+ Thread.currentThread().getContextClassLoader().getResourceAsStream(proxyClassListFile),
Constants.UTF8);
for (String pkg : pkgs) {
@@ -557,20 +620,19 @@ public final class CoreUtils {
final Annotation ann = clazz.getAnnotation(annType);
final Namespace ns = clazz.getAnnotation(Namespace.class);
- if (ns != null && ann != null) {
- if (property.getValue().getTypeName().replaceAll("^Collection\\(", "").replaceAll("\\)$", "").equals(
- new FullQualifiedName(ns.value(), annType.isAssignableFrom(EnumType.class)
- ? EnumType.class.cast(ann).name()
- : ComplexType.class.cast(ann).name()).toString())) {
- return clazz;
- }
+ if (ns != null && ann != null
+ && value.getTypeName().replaceAll("^Collection\\(", "").replaceAll("\\)$", "").
+ equals(new FullQualifiedName(ns.value(), annType.isAssignableFrom(EnumType.class)
+ ? EnumType.class.cast(ann).name()
+ : ComplexType.class.cast(ann).name()).toString())) {
+ return clazz;
}
}
} catch (Exception e) {
- LOG.warn("Error retrieving proxy complex class list", e);
+ LOG.warn("Error retrieving class list for {}", annType.getName(), e);
}
- throw new IllegalArgumentException("Provided property '" + property + "' is not complex");
+ throw new IllegalArgumentException("Provided value '" + value + "' is not annotated as " + annType.getName());
}
private static String firstValidEntityKey(final Class<?> entityTypeRef) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java b/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
index f8ab5f2..ee09e65 100644
--- a/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
+++ b/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java
@@ -47,6 +47,7 @@ import org.apache.olingo.commons.api.edm.EdmEnumType;
import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
import org.apache.olingo.commons.api.edm.EdmSchema;
import org.apache.olingo.commons.api.edm.EdmSingleton;
+import org.apache.olingo.commons.api.edm.EdmTerm;
import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
@@ -231,6 +232,7 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
namespaces.add(schema.getNamespace().toLowerCase());
}
+ final StringBuilder termNames = new StringBuilder();
final StringBuilder complexTypeNames = new StringBuilder();
final StringBuilder enumTypeNames = new StringBuilder();
@@ -250,7 +252,14 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
final Map<String, Object> objs = new HashMap<String, Object>();
- // write types into types package
+ for (EdmTerm term : schema.getTerms()) {
+ final String className = utility.capitalize(term.getName());
+ termNames.append(typesPkg).append('.').append(className).append('\n');
+ objs.clear();
+ objs.put("term", term);
+ parseObj(typesBaseDir, typesPkg, "term", className + ".java", objs);
+ }
+
for (EdmEnumType enumType : schema.getEnumTypes()) {
final String className = utility.capitalize(enumType.getName());
enumTypeNames.append(typesPkg).append('.').append(className).append('\n');
@@ -275,7 +284,7 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
|| edm.getEntityType(complex.getBaseType().getFullQualifiedName()).
getNavigationProperty(navPropName) == null)
&& navProp.containsTarget()) {
-
+
objs.clear();
objs.put("navProp", navProp);
parseObj(base, pkg, "containedEntitySet",
@@ -365,6 +374,8 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo {
final File metaInf = mkdir("META-INF");
FileUtils.fileWrite(
+ metaInf.getPath() + File.separator + Constants.PROXY_TERM_CLASS_LIST, termNames.toString());
+ FileUtils.fileWrite(
metaInf.getPath() + File.separator + Constants.PROXY_ENUM_CLASS_LIST, enumTypeNames.toString());
FileUtils.fileWrite(
metaInf.getPath() + File.separator + Constants.PROXY_COMPLEX_CLASS_LIST, complexTypeNames.toString());
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/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 c2d49c8..8df366f 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/entityCollection.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/entityCollection.vm
@@ -20,6 +20,7 @@ package ${package};
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -92,4 +93,8 @@ public interface $utility.capitalize($entityType.Name)Collection extends Abstrac
#end
}
#end
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/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 aeebe7b..e66f936 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
@@ -28,6 +28,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -62,7 +63,7 @@ import javax.xml.datatype.Duration;
isAbstract = $entityType.Abstract#if($entityType.getBaseType()),
baseType = "$entityType.getBaseType().getFullQualifiedName().toString()"#end)
public interface $utility.capitalize($entityType.Name)
- extends #if( $entityType.getBaseType() )$utility.getJavaType($entityType.getBaseType())#{elseif}( $entityType.isOpenType() )AbstractOpenType#{else}Serializable#end {
+ extends AbstractAnnotatable,#if( $entityType.getBaseType() )$utility.getJavaType($entityType.getBaseType())#{elseif}( $entityType.isOpenType() )AbstractOpenType#{else}Serializable#end {
#set( $keys = [] )
#foreach($key in $entityType.KeyPropertyRefs)
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/pojogen-maven-plugin/src/main/resources/services.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/services.vm b/ext/pojogen-maven-plugin/src/main/resources/services.vm
deleted file mode 100644
index 94480f3..0000000
--- a/ext/pojogen-maven-plugin/src/main/resources/services.vm
+++ /dev/null
@@ -1,21 +0,0 @@
-#*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *#
-#foreach ($service in $services)
-$service
-#end
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/ext/pojogen-maven-plugin/src/main/resources/term.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/term.vm b/ext/pojogen-maven-plugin/src/main/resources/term.vm
new file mode 100644
index 0000000..c516209
--- /dev/null
+++ b/ext/pojogen-maven-plugin/src/main/resources/term.vm
@@ -0,0 +1,34 @@
+#*
+ * 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 ${package};
+
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.Term;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+#foreach($ns in $namespaces)
+import ${basePackage}.${ns}.*;
+import ${basePackage}.${ns}.types.*;
+#end
+
+@Namespace("$namespace")
+@Term(name = "$term.Name",
+ type="$term.Type"#if($term.getBaseTerm()),
+ baseTerm = "$term.getBaseTerm().getFullQualifiedName().toString()"#end)
+public interface $utility.capitalize($term.Name) extends AbstractTerm {
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
index d9467bc..9460297 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
@@ -20,8 +20,12 @@ package org.apache.olingo.fit.proxy.v4;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company;
import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory;
+import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.IsBoss;
+import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person;
import org.junit.Test;
public class SingletonTestITCase extends AbstractTestITCase {
@@ -42,4 +46,18 @@ public class SingletonTestITCase extends AbstractTestITCase {
assertEquals(132520L, container.getCompany().get().getRevenue(), 0);
}
+
+ @Test
+ public void readWithAnnotations() {
+ final Company company = container.getCompany().get();
+ assertTrue(company.getAnnotationTerms().isEmpty());
+
+ final Person boss = container.getBoss().get();
+ assertEquals(2, boss.getPersonID(), 0);
+
+ assertEquals(1, boss.getAnnotationTerms().size());
+ final Object isBoss = boss.getAnnotation(IsBoss.class);
+ assertTrue(isBoss instanceof Boolean);
+ assertTrue((Boolean) isBoss);
+ }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
index 4c68b8b..82d6107 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface Account
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java
index 00ec845..b4f069a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface AccountCollection extends AbstractEntityCollection<Account> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
index 6fdc75a..ba5be31 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface Asset
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java
index 12b8ef1..acc55d1 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AssetCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface AssetCollection extends AbstractEntityCollection<Asset> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
index f5dd658..6016e77 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface Club
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java
index 4647fed..e04aa4a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ClubCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface ClubCollection extends AbstractEntityCollection<Club> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
index 38d6e93..1b16a5a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface Company
- extends AbstractOpenType {
+ extends AbstractAnnotatable,AbstractOpenType {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java
index 7eb03e4..a5d0931 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface CompanyCollection extends AbstractEntityCollection<Company> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
index 98139ef..d005712 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +59,7 @@ import javax.xml.datatype.Duration;
isAbstract = false,
baseType = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
public interface CreditCardPI
- extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument {
+ extends AbstractAnnotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java
index d673c51..07139ae 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPICollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface CreditCardPICollection extends AbstractEntityCollection<CreditCardPI> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
[3/7] [OLINGO-260] Instance annotations test
Posted by sk...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
index d63a199..ca1c593 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface CreditRecord
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java
index 2454201..93bdfbe 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecordCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface CreditRecordCollection extends AbstractEntityCollection<CreditRecord> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
index 461cdd3..d545c87 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +59,7 @@ import javax.xml.datatype.Duration;
isAbstract = false,
baseType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
public interface Customer
- extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person {
+ extends AbstractAnnotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java
index 2b0ce94..d4584e2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CustomerCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface CustomerCollection extends AbstractEntityCollection<Customer> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
index dd7ba27..6eed1d3 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface Department
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java
index 27b40de..498bf5b 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/DepartmentCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface DepartmentCollection extends AbstractEntityCollection<Department> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
index aff7b36..87c1486 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +59,7 @@ import javax.xml.datatype.Duration;
isAbstract = false,
baseType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
public interface Employee
- extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person {
+ extends AbstractAnnotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java
index 9ed9987..536d1a0 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/EmployeeCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface EmployeeCollection extends AbstractEntityCollection<Employee> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
index 4c2c83f..e4ccfe2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface GiftCard
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java
index 5ca4350..eb03afd 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCardCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface GiftCardCollection extends AbstractEntityCollection<GiftCard> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
new file mode 100644
index 0000000..f37419b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.Term;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.*;
+import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.*;
+
+@Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@Term(name = "IsBoss",
+ type="Edm.Boolean")
+public interface IsBoss extends AbstractTerm {
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
index 5170a41..699b417 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface LabourUnion
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
index 644f6d8..fcbbd30 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface LabourUnionCollection extends AbstractEntityCollection<LabourUnion> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
index 6e4c539..2d3ea17 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface Order
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
index 3e3712c..5c4fc28 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface OrderCollection extends AbstractEntityCollection<Order> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
index 15a0b9b..f8b0ca3 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface OrderDetail
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
index a0d2058..5e258a8 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface OrderDetailCollection extends AbstractEntityCollection<OrderDetail> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
index 3ecaedf..2915a94 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface PaymentInstrument
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
index 878a3ff..44e8f23 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface PaymentInstrumentCollection extends AbstractEntityCollection<PaymentInstrument> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
index f197b3c..ec17476 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface Person
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
index 778e8cc..9f159dc 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface PersonCollection extends AbstractEntityCollection<Person> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
index 574e98d..88e84bc 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface Product
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java
index 88cd63d..1f408e0 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -56,4 +57,8 @@ public interface ProductCollection extends AbstractEntityCollection<Product> {
);
}
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
index 945bb2b..adb1b84 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface ProductDetail
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java
index 31b8c1b..55ce7a2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface ProductDetailCollection extends AbstractEntityCollection<ProductDetail> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
index 32bfa8f..5c982a7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface ProductReview
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java
index 9825a70..1c98796 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface ProductReviewCollection extends AbstractEntityCollection<ProductReview> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
index a3c9713..31aa470 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +59,7 @@ import javax.xml.datatype.Duration;
isAbstract = false,
baseType = "Microsoft.Test.OData.Services.ODataWCFService.Company")
public interface PublicCompany
- extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company {
+ extends AbstractAnnotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java
index b90e82f..2257e2b 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface PublicCompanyCollection extends AbstractEntityCollection<PublicCompany> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
index 4b7e86f..e12c0f1 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface Statement
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java
index 2f4c0a6..6f325a7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StatementCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface StatementCollection extends AbstractEntityCollection<Statement> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
index a99ff85..0a31c18 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface StoredPI
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java
index ba7ab8f..d4d34fe 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPICollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface StoredPICollection extends AbstractEntityCollection<StoredPI> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
index de3de5d..17dd865 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
@@ -27,6 +27,7 @@ import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
import org.apache.olingo.ext.proxy.api.annotations.Property;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.AbstractAnnotatable;
import org.apache.olingo.ext.proxy.api.AbstractOpenType;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
@@ -57,7 +58,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface Subscription
- extends Serializable {
+ extends AbstractAnnotatable,Serializable {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java
index 08393e7..5e8083b 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/SubscriptionCollection.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.servic
import org.apache.olingo.client.api.http.HttpMethod;
import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
import org.apache.olingo.ext.proxy.api.OperationType;
import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,4 +44,8 @@ import java.util.Calendar;
import javax.xml.datatype.Duration;
public interface SubscriptionCollection extends AbstractEntityCollection<Subscription> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/fit/src/test/resources/META-INF/org.apache.olingo.ext.proxy.term
----------------------------------------------------------------------
diff --git a/fit/src/test/resources/META-INF/org.apache.olingo.ext.proxy.term b/fit/src/test/resources/META-INF/org.apache.olingo.ext.proxy.term
new file mode 100644
index 0000000..4eccd95
--- /dev/null
+++ b/fit/src/test/resources/META-INF/org.apache.olingo.ext.proxy.term
@@ -0,0 +1 @@
+org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.IsBoss
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f59a8fb3/lib/commons-api/src/main/java/org/apache/olingo/commons/api/Constants.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/Constants.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/Constants.java
index acd0fb9..2eacd47 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/Constants.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/Constants.java
@@ -35,6 +35,8 @@ public interface Constants {
public final static Integer DEFAULT_SCALE = 25;
+ public final static String PROXY_TERM_CLASS_LIST = "org.apache.olingo.ext.proxy.term";
+
public final static String PROXY_ENUM_CLASS_LIST = "org.apache.olingo.ext.proxy.enum";
public final static String PROXY_COMPLEX_CLASS_LIST = "org.apache.olingo.ext.proxy.complex";
[2/7] git commit: [OLINGO-266] Fix response sending
Posted by sk...@apache.org.
[OLINGO-266] Fix response sending
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/c93b648b
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/c93b648b
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/c93b648b
Branch: refs/heads/olingo-266-tecsvc
Commit: c93b648b0b62746d6e32fb850cf7a758505121dd
Parents: 002161c
Author: Christian Amend <ch...@apache.org>
Authored: Mon May 19 17:16:57 2014 +0200
Committer: Christian Amend <ch...@apache.org>
Committed: Mon May 19 17:16:57 2014 +0200
----------------------------------------------------------------------
.../apache/olingo/server/core/ODataHandler.java | 3 +--
.../server/core/ODataHttpHandlerImpl.java | 23 ++++++++++----------
.../core/serializer/ODataXmlSerializerImpl.java | 1 +
.../xml/MetadataDocumentXmlSerializer.java | 1 -
4 files changed, 13 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c93b648b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
index d9e1e1f..de8ef23 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
@@ -53,7 +53,6 @@ public class ODataHandler {
case metadata:
serializer = server.createSerializer(ODataFormat.XML);
responseEntity = serializer.metadataDocument(edm);
-
response.setStatusCode(200);
response.setHeader("Content-Type", "application/xml");
response.setContent(responseEntity);
@@ -61,7 +60,7 @@ public class ODataHandler {
case service:
serializer = server.createSerializer(ODataFormat.JSON);
responseEntity = serializer.serviceDocument(edm, odRequest.getRawBaseUri());
-
+
response.setStatusCode(200);
response.setHeader("Content-Type", "application/json");
response.setContent(responseEntity);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c93b648b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
index 09983b1..be61a2b 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
@@ -20,6 +20,7 @@ package org.apache.olingo.server.core;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
@@ -33,8 +34,8 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.olingo.commons.api.ODataRuntimeException;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.http.HttpMethod;
-import org.apache.olingo.server.api.ODataHttpHandler;
import org.apache.olingo.server.api.OData;
+import org.apache.olingo.server.api.ODataHttpHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -67,24 +68,22 @@ public class ODataHttpHandlerImpl implements ODataHttpHandler {
response.setHeader(entry.getKey(), entry.getValue());
}
- InputStream in = odResponse.getContent();
+ InputStream input = odResponse.getContent();
+ OutputStream output;
try {
+ output = response.getOutputStream();
byte[] buffer = new byte[1024];
- int bytesRead = 0;
-
- do {
- bytesRead = in.read(buffer, 0, buffer.length);
- response.getOutputStream().write(buffer, 0, bytesRead);
- } while (bytesRead == buffer.length);
-
- response.getOutputStream().flush();
+ int n = 0;
+ while (-1 != (n = input.read(buffer))) {
+ output.write(buffer, 0, n);
+ }
} catch (IOException e) {
LOG.error(e.getMessage(), e);
throw new ODataRuntimeException(e);
} finally {
- if (in != null) {
+ if (input != null) {
try {
- in.close();
+ input.close();
} catch (IOException e) {
throw new ODataRuntimeException(e);
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c93b648b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/ODataXmlSerializerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/ODataXmlSerializerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/ODataXmlSerializerImpl.java
index 49f8831..a8a943f 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/ODataXmlSerializerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/ODataXmlSerializerImpl.java
@@ -52,6 +52,7 @@ public class ODataXmlSerializerImpl implements ODataSerializer {
xmlStreamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(), DEFAULT_CHARSET);
MetadataDocumentXmlSerializer serializer = new MetadataDocumentXmlSerializer(edm);
serializer.writeMetadataDocument(xmlStreamWriter);
+ xmlStreamWriter.flush();
xmlStreamWriter.close();
return buffer.getInputStream();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c93b648b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
index 61e7af7..a8629d8 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
@@ -118,7 +118,6 @@ public class MetadataDocumentXmlSerializer {
appendDataServices(writer);
writer.writeEndDocument();
-
}
private void appendDataServices(final XMLStreamWriter writer) throws XMLStreamException {
[5/7] git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/olingo-odata4
Posted by sk...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/olingo-odata4
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/beae4797
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/beae4797
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/beae4797
Branch: refs/heads/olingo-266-tecsvc
Commit: beae4797f0bfa2ccd8a8b452a93382dc4559ab2f
Parents: f59a8fb c93b648
Author: Francesco Chicchiriccò <--global>
Authored: Mon May 19 17:47:53 2014 +0200
Committer: Francesco Chicchiriccò <--global>
Committed: Mon May 19 17:47:53 2014 +0200
----------------------------------------------------------------------
.../olingo/commons/api/http/HttpMethod.java | 33 +
lib/pom.xml | 1 +
.../org/apache/olingo/server/api/OData.java | 55 +
.../apache/olingo/server/api/ODataHandler.java | 28 -
.../olingo/server/api/ODataHttpHandler.java | 28 +
.../apache/olingo/server/api/ODataServer.java | 52 -
.../server/api/edm/provider/EntitySet.java | 2 +-
lib/server-core/pom.xml | 32 +-
.../org/apache/olingo/server/core/Decoder.java | 90 +
.../apache/olingo/server/core/ODataHandler.java | 78 +
.../olingo/server/core/ODataHandlerImpl.java | 81 -
.../server/core/ODataHttpHandlerImpl.java | 202 +
.../apache/olingo/server/core/ODataImpl.java | 61 +
.../apache/olingo/server/core/ODataRequest.java | 103 +
.../olingo/server/core/ODataResponse.java | 56 +
.../olingo/server/core/ODataServerImpl.java | 56 -
.../core/edm/provider/EdmComplexTypeImpl.java | 2 +-
.../edm/provider/EdmEntityContainerImpl.java | 8 +-
.../core/edm/provider/EdmEntitySetImpl.java | 5 +-
.../core/edm/provider/EdmEntityTypeImpl.java | 4 +-
.../core/edm/provider/EdmEnumTypeImpl.java | 2 +-
.../server/core/edm/provider/EdmMemberImpl.java | 17 +-
.../edm/provider/EdmNavigationPropertyImpl.java | 6 +-
.../core/edm/provider/EdmOperationImpl.java | 2 +-
.../edm/provider/EdmOperationImportImpl.java | 3 +-
.../core/edm/provider/EdmParameterImpl.java | 5 +-
.../core/edm/provider/EdmPropertyImpl.java | 7 +-
.../core/edm/provider/EdmProviderImpl.java | 18 +-
.../provider/EdmReferentialConstraintImpl.java | 17 +-
.../core/edm/provider/EdmReturnTypeImpl.java | 2 +-
.../server/core/edm/provider/EdmSchemaImpl.java | 6 +-
.../edm/provider/EdmServiceMetadataImpl.java | 2 +-
.../core/edm/provider/EdmSingletonImpl.java | 5 +-
.../provider/EdmStructuredTypeHelperImpl.java | 4 +-
.../edm/provider/EdmTypeDefinitionImpl.java | 9 +-
.../core/serializer/ODataXmlSerializerImpl.java | 1 +
.../json/ServiceDocumentJsonSerializer.java | 13 +-
.../xml/MetadataDocumentXmlSerializer.java | 1 -
.../server/core/uri/parser/UriContext.java | 8 +-
.../server/core/ODataHttpHandlerImplTest.java | 175 +
lib/server-tecsvc/pom.xml | 61 +-
.../olingo/server/tecsvc/TechnicalServlet.java | 29 +-
.../tecsvc/provider/ContainerProvider.java | 80 +-
.../server/tecsvc/provider/EdmTechProvider.java | 2 +-
.../server/tecsvc/provider/SchemaProvider.java | 76 +-
lib/server-tecsvc/src/main/version/version.html | 43 +
.../src/main/webapp/META-INF/MANIFEST.MF | 13 +
.../src/main/webapp/WEB-INF/web.xml | 2 +-
.../src/main/webapp/css/olingo.css | 89 +
.../src/main/webapp/img/OlingoOrangeTM.png | Bin 0 -> 113360 bytes
lib/server-tecsvc/src/main/webapp/index.html | 32 -
lib/server-tecsvc/src/main/webapp/index.jsp | 71 +
.../serializer/json/ServiceDocumentTest.java | 133 -
.../serializer/xml/MetadataDocumentTest.java | 254 -
.../olingo/server/core/uri/RawUriTest.java | 151 -
.../olingo/server/core/uri/UriInfoImplTest.java | 201 -
.../server/core/uri/UriResourceImplTest.java | 508 --
.../core/uri/antlr/TestFullResourcePath.java | 5110 ------------------
.../olingo/server/core/uri/antlr/TestLexer.java | 248 -
.../core/uri/antlr/TestUriParserImpl.java | 1144 ----
.../core/uri/queryoption/QueryOptionTest.java | 303 --
.../queryoption/expression/ExpressionTest.java | 239 -
.../core/uri/testutil/EdmTechTestProvider.java | 100 -
.../core/uri/testutil/ExpandValidator.java | 230 -
.../core/uri/testutil/FilterTreeToText.java | 154 -
.../core/uri/testutil/FilterValidator.java | 534 --
.../core/uri/testutil/ParseTreeToText.java | 82 -
.../core/uri/testutil/ParserValidator.java | 162 -
.../core/uri/testutil/ParserWithLogging.java | 56 -
.../core/uri/testutil/ResourceValidator.java | 599 --
.../core/uri/testutil/TestErrorLogger.java | 105 -
.../core/uri/testutil/TestUriValidator.java | 258 -
.../server/core/uri/testutil/TestValidator.java | 23 -
.../core/uri/testutil/TokenValidator.java | 194 -
.../core/uri/testutil/UriLexerWithTrace.java | 85 -
.../core/uri/validator/UriValidatorTest.java | 378 --
lib/server-test/pom.xml | 71 +
.../olingo/server/core/ODataHandlerTest.java | 86 +
.../serializer/json/ServiceDocumentTest.java | 133 +
.../serializer/xml/MetadataDocumentTest.java | 253 +
.../olingo/server/core/uri/RawUriTest.java | 151 +
.../olingo/server/core/uri/UriInfoImplTest.java | 201 +
.../server/core/uri/UriResourceImplTest.java | 508 ++
.../core/uri/antlr/TestFullResourcePath.java | 5110 ++++++++++++++++++
.../olingo/server/core/uri/antlr/TestLexer.java | 248 +
.../core/uri/antlr/TestUriParserImpl.java | 1144 ++++
.../core/uri/queryoption/QueryOptionTest.java | 303 ++
.../queryoption/expression/ExpressionTest.java | 239 +
.../core/uri/testutil/EdmTechTestProvider.java | 100 +
.../core/uri/testutil/ExpandValidator.java | 230 +
.../core/uri/testutil/FilterTreeToText.java | 154 +
.../core/uri/testutil/FilterValidator.java | 534 ++
.../core/uri/testutil/ParseTreeToText.java | 82 +
.../core/uri/testutil/ParserValidator.java | 162 +
.../core/uri/testutil/ParserWithLogging.java | 56 +
.../core/uri/testutil/ResourceValidator.java | 599 ++
.../core/uri/testutil/TestErrorLogger.java | 105 +
.../core/uri/testutil/TestUriValidator.java | 258 +
.../server/core/uri/testutil/TestValidator.java | 23 +
.../core/uri/testutil/TokenValidator.java | 194 +
.../core/uri/testutil/UriLexerWithTrace.java | 85 +
.../core/uri/validator/UriValidatorTest.java | 378 ++
.../src/test/resources/simplelogger.properties | 20 +
103 files changed, 12775 insertions(+), 11681 deletions(-)
----------------------------------------------------------------------