Repository: olingo-odata4 Updated Branches: refs/heads/master 6e66fc155 -> 002161cd4
[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/master Commit: 002161cd4c54d13ab8a03b279d4959409ac9b4b6 Parents: 6e66fc1 Author: Christian Amend <[email protected]> Authored: Mon May 19 16:32:17 2014 +0200 Committer: Christian Amend <[email protected]> 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\">"));
