You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2014/05/19 16:32:52 UTC
git commit: [OLINGO-267] Implement getContainer correctly
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 <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\">"));