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/03/12 13:49:35 UTC

[5/5] git commit: Merge branch 'olingo167'

Merge branch 'olingo167'

Conflicts:
	lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java


Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/commit/ec39fd60
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/tree/ec39fd60
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/diff/ec39fd60

Branch: refs/heads/master
Commit: ec39fd600b2b1e73f276fe83f62ce094cfee08b4
Parents: b7869d9 950e90c
Author: Christian Amend <ch...@apache.org>
Authored: Wed Mar 12 13:48:23 2014 +0100
Committer: Christian Amend <ch...@apache.org>
Committed: Wed Mar 12 13:48:23 2014 +0100

----------------------------------------------------------------------
 .../olingo/client/core/edm/EdmActionImpl.java   |   1 -
 .../olingo/client/core/edm/EdmClientImpl.java   |  11 +
 .../client/core/edm/EdmEntityContainerImpl.java | 115 ++++++-
 .../client/core/edm/EdmEntitySetImpl.java       |   7 +
 .../client/core/edm/EdmFunctionImportImpl.java  |  24 +-
 .../client/core/edm/EdmOperationImpl.java       |  29 ++
 .../olingo/client/core/edm/EdmSchemaImpl.java   | 166 +++++++++
 .../client/core/edm/v3/EdmEntitySetProxy.java   |   6 +
 .../core/edm/v3/EdmFunctionImportProxy.java     |  12 +
 .../client/core/edm/v3/EdmOperationProxy.java   |  12 +
 .../commons/api/ODataRuntimeException.java      |  37 ++
 .../org/apache/olingo/commons/api/edm/Edm.java  |   6 +
 .../commons/api/edm/EdmEntityContainer.java     |  52 ++-
 .../olingo/commons/api/edm/EdmEntitySet.java    |   5 +
 .../commons/api/edm/EdmFunctionImport.java      |  12 +-
 .../olingo/commons/api/edm/EdmOperation.java    |  10 +
 .../olingo/commons/api/edm/EdmSchema.java       |  70 ++++
 .../commons/api/edm/FullQualifiedName.java      |  26 +-
 .../core/edm/AbstractEdmEntityContainer.java    |  71 +++-
 .../commons/core/edm/AbstractEdmImpl.java       | 157 ++++++---
 .../commons/core/edm/AbstractEdmSchemaImpl.java | 128 +++++++
 .../commons/core/edm/EdmImplCachingTest.java    |  21 ++
 .../commons/core/edm/EdmImplCallCreateTest.java |  12 +
 .../apache/olingo/server/api/ODataFormat.java   |  23 ++
 .../olingo/server/api/ODataSerializer.java      |  31 ++
 .../apache/olingo/server/api/ODataServer.java   |  48 +++
 .../server/api/edm/provider/EdmProvider.java    |   8 +
 lib/server-core/pom.xml                         | 135 ++++----
 .../olingo/server/core/CircleStreamBuffer.java  | 327 ++++++++++++++++++
 .../olingo/server/core/ODataJsonSerializer.java | 147 ++++++++
 .../olingo/server/core/ODataSerializerImpl.java |  38 +++
 .../olingo/server/core/ODataServerImpl.java     |  45 +++
 .../core/edm/provider/EdmActionImportImpl.java  |   5 +-
 .../edm/provider/EdmEntityContainerImpl.java    | 107 +++++-
 .../core/edm/provider/EdmEntitySetImpl.java     |   7 +
 .../core/edm/provider/EdmEntityTypeImpl.java    |   7 -
 .../core/edm/provider/EdmEnumTypeImpl.java      |   3 +-
 .../edm/provider/EdmFunctionImportImpl.java     |  31 +-
 .../core/edm/provider/EdmOperationImpl.java     |  36 +-
 .../edm/provider/EdmOperationImportImpl.java    |  23 +-
 .../core/edm/provider/EdmProviderImpl.java      |  54 +--
 .../server/core/edm/provider/EdmSchemaImpl.java | 139 ++++++++
 .../edm/provider/EdmTypeDefinitionImpl.java     |  33 +-
 .../olingo/server/core/ServiceDocumentTest.java | 133 ++++++++
 .../edm/provider/EdmActionImportImplTest.java   |  28 +-
 .../provider/EdmEntityContainerImplTest.java    | 138 +++++++-
 .../edm/provider/EdmEntityTypeImplTest.java     |   7 -
 .../edm/provider/EdmFunctionImportImplTest.java |   4 +-
 .../core/edm/provider/EdmSchemaImplTest.java    | 337 +++++++++++++++++++
 .../edm/provider/EdmTypeDefinitionImplTest.java |   3 +-
 .../server/core/testutil/StringUtils.java       |  52 +++
 pom.xml                                         |   2 +-
 52 files changed, 2666 insertions(+), 275 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ec39fd60/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ec39fd60/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
index 871bfb2,e039954..169aaf9
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
@@@ -45,7 -48,7 +47,7 @@@ public class EdmEntityContainerImpl ext
    private final XMLMetadata xmlMetadata;
  
    public EdmEntityContainerImpl(final Edm edm, final FullQualifiedName entityContainerName,
--          final EntityContainer xmlEntityContainer, final XMLMetadata xmlMetadata) {
++      final EntityContainer xmlEntityContainer, final XMLMetadata xmlMetadata) {
  
      super(edm, entityContainerName);
  
@@@ -60,13 -63,13 +62,13 @@@
      }
  
      final Singleton singleton = ((org.apache.olingo.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).
--            getSingleton(singletonName);
++        getSingleton(singletonName);
      if (singleton == null) {
        throw new EdmException("Singleton named '" + singletonName + "' not found in " + entityContainerName);
      }
 -    return new EdmSingletonImpl(edm, this, singletonName,
 -            new EdmTypeInfo(singleton.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
 -            singleton);
 +    return new EdmSingletonImpl(edm, this, singletonName, new EdmTypeInfo.Builder().
-             setTypeExpression(singleton.getEntityType()).setDefaultNamespace(entityContainerName.getNamespace()).
-             build().getFullQualifiedName(), singleton);
++        setTypeExpression(singleton.getEntityType()).setDefaultNamespace(entityContainerName.getNamespace()).
++        build().getFullQualifiedName(), singleton);
    }
  
    @Override
@@@ -76,22 -79,22 +78,21 @@@
        throw new EdmException("EntitySet named '" + entitySetName + "' not found in " + entityContainerName);
      }
  
 +    final FullQualifiedName entityType = new EdmTypeInfo.Builder().setTypeExpression(entitySet.getEntityType()).
-             setDefaultNamespace(entityContainerName.getNamespace()).build().getFullQualifiedName();
++        setDefaultNamespace(entityContainerName.getNamespace()).build().getFullQualifiedName();
      if (entitySet instanceof org.apache.olingo.client.api.edm.xml.v4.EntitySet) {
 -      return new EdmEntitySetImpl(edm, this, entitySetName,
 -              new EdmTypeInfo(entitySet.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
 -              (org.apache.olingo.client.api.edm.xml.v4.EntitySet) entitySet);
 +      return new EdmEntitySetImpl(edm, this, entitySetName, entityType,
-               (org.apache.olingo.client.api.edm.xml.v4.EntitySet) entitySet);
++          (org.apache.olingo.client.api.edm.xml.v4.EntitySet) entitySet);
      } else {
 -      return new EdmEntitySetProxy(edm, this, entitySetName,
 -              new EdmTypeInfo(entitySet.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
 -              xmlMetadata);
 +      return new EdmEntitySetProxy(edm, this, entitySetName, entityType, xmlMetadata);
      }
    }
  
    @Override
    protected EdmActionImport createActionImport(final String actionImportName) {
      if (xmlEntityContainer instanceof org.apache.olingo.client.api.edm.xml.v4.EntityContainer) {
-       final ActionImport actionImport =
-               ((org.apache.olingo.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).
-               getActionImport(actionImportName);
+       final ActionImport actionImport = ((org.apache.olingo.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).
 -              getActionImport(actionImportName);
++          getActionImport(actionImportName);
        if (actionImport == null) {
          throw new EdmException("ActionImport named '" + actionImportName + "' not found in " + entityContainerName);
        }
@@@ -114,10 -117,89 +115,90 @@@
  
      if (functionImport instanceof org.apache.olingo.client.api.edm.xml.v4.FunctionImport) {
        return new EdmFunctionImportImpl(edm, this, functionImportName,
--              (org.apache.olingo.client.api.edm.xml.v4.FunctionImport) functionImport);
++          (org.apache.olingo.client.api.edm.xml.v4.FunctionImport) functionImport);
      } else {
        return new EdmFunctionImportProxy(edm, this, functionImportName,
 -              (org.apache.olingo.client.api.edm.xml.v3.FunctionImport) functionImport);
++          (org.apache.olingo.client.api.edm.xml.v3.FunctionImport) functionImport);
+     }
+   }
+ 
+   @Override
+   protected void loadAllEntitySets() {
+     List<? extends EntitySet> localEntitySets = xmlEntityContainer.getEntitySets();
+     if (localEntitySets != null) {
+       for (EntitySet entitySet : localEntitySets) {
+         EdmEntitySet edmSet;
++        final FullQualifiedName entityType = new EdmTypeInfo.Builder().setTypeExpression(entitySet.getEntityType()).
++            setDefaultNamespace(entityContainerName.getNamespace()).build().getFullQualifiedName();
+         if (entitySet instanceof org.apache.olingo.client.api.edm.xml.v4.EntitySet) {
 -          edmSet = new EdmEntitySetImpl(edm, this, entitySet.getName(),
 -                  new EdmTypeInfo(entitySet.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
++          edmSet =
++              new EdmEntitySetImpl(edm, this, entitySet.getName(), entityType,
+                   (org.apache.olingo.client.api.edm.xml.v4.EntitySet) entitySet);
+         } else {
 -          edmSet = new EdmEntitySetProxy(edm, this, entitySet.getName(),
 -                  new EdmTypeInfo(entitySet.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
 -                  xmlMetadata);
++          edmSet = new EdmEntitySetProxy(edm, this, entitySet.getName(), entityType, xmlMetadata);
+         }
+         entitySets.put(edmSet.getName(), edmSet);
+       }
+     }
+ 
+   }
+ 
+   @Override
+   protected void loadAllFunctionImports() {
+     final List<? extends CommonFunctionImport> localFunctionImports = xmlEntityContainer.getFunctionImports();
+     if (localFunctionImports != null) {
+       for (CommonFunctionImport functionImport : localFunctionImports) {
+         EdmFunctionImport edmFunctionImport;
+         if (functionImport instanceof org.apache.olingo.client.api.edm.xml.v4.FunctionImport) {
+           edmFunctionImport = new EdmFunctionImportImpl(edm, this, functionImport.getName(),
 -                  (org.apache.olingo.client.api.edm.xml.v4.FunctionImport) functionImport);
++              (org.apache.olingo.client.api.edm.xml.v4.FunctionImport) functionImport);
+         } else {
+           edmFunctionImport = new EdmFunctionImportProxy(edm, this, functionImport.getName(),
 -                  (org.apache.olingo.client.api.edm.xml.v3.FunctionImport) functionImport);
 +              (org.apache.olingo.client.api.edm.xml.v3.FunctionImport) functionImport);
+         }
+         functionImports.put(edmFunctionImport.getName(), edmFunctionImport);
+       }
+     }
+   }
+ 
+   @Override
+   protected void loadAllSingletons() {
+     if (!(xmlEntityContainer instanceof org.apache.olingo.client.api.edm.xml.v4.EntityContainer)) {
+       throw new UnsupportedInV3Exception();
+     }
+ 
+     final List<Singleton> localSingletons =
 -            ((org.apache.olingo.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).getSingletons();
++        ((org.apache.olingo.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).getSingletons();
+     if (localSingletons != null) {
+       for (Singleton singleton : localSingletons) {
+         singletons.put(singleton.getName(), new EdmSingletonImpl(edm, this, singleton.getName(),
 -                new EdmTypeInfo(singleton.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
 -                singleton));
++            new EdmTypeInfo.Builder().
++                setTypeExpression(singleton.getEntityType()).setDefaultNamespace(entityContainerName.getNamespace()).
++                build().getFullQualifiedName(), singleton));
+       }
+     }
+   }
+ 
+   @Override
+   protected void loadAllActionImports() {
+     if (xmlEntityContainer instanceof org.apache.olingo.client.api.edm.xml.v4.EntityContainer) {
+       final List<ActionImport> localActionImports =
 -              ((org.apache.olingo.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).getActionImports();
++          ((org.apache.olingo.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).getActionImports();
+       if (actionImports != null) {
+         for (ActionImport actionImport : localActionImports) {
+           actionImports.put(actionImport.getName(),
 -                  new EdmActionImportImpl(edm, this, actionImport.getName(), actionImport));
++              new EdmActionImportImpl(edm, this, actionImport.getName(), actionImport));
+         }
+       }
+     } else {
+       @SuppressWarnings("unchecked")
+       final List<FunctionImport> localFunctionImports = (List<FunctionImport>) xmlEntityContainer.getFunctionImports();
+       if (localFunctionImports != null) {
+         for (FunctionImport functionImport : localFunctionImports) {
+           actionImports.put(functionImport.getName(),
 -                  new EdmActionImportProxy(edm, this, functionImport.getName(), functionImport));
++              new EdmActionImportProxy(edm, this, functionImport.getName(), functionImport));
+         }
+       }
      }
    }
  }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ec39fd60/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
index ced5ae4,ce5f6de..27d6d10
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
@@@ -39,8 -41,18 +40,17 @@@ public class EdmFunctionImportImpl exte
  
    @Override
    public EdmFunction getFunction(final List<String> parameterNames) {
 -    return edm.getFunction(
 -            new EdmTypeInfo(functionImport.getFunction(), container.getNamespace()).getFullQualifiedName(),
 -            null, null, parameterNames);
 +    return edm.getFunction(new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(functionImport.getFunction()).
 +            setDefaultNamespace(container.getNamespace()).build().getFullQualifiedName(), null, null, parameterNames);
    }
  
+   @Override
+   public boolean isIncludeInServiceDocument() {
+     return functionImport.isIncludeInServiceDocument();
+   }
+ 
+   @Override
+   public FullQualifiedName getFunctionFqn() {
+     return new FullQualifiedName(functionImport.getFunction());
+   }
  }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ec39fd60/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmFunctionImportProxy.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmFunctionImportProxy.java
index 9076a52,cc2a621..90364a8
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmFunctionImportProxy.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmFunctionImportProxy.java
@@@ -41,7 -42,19 +42,18 @@@ public class EdmFunctionImportProxy ext
  
    @Override
    public EdmFunction getFunction(final List<String> parameterNames) {
 -    return edm.getFunction(
 -            new EdmTypeInfo(functionImport.getName(), container.getNamespace()).getFullQualifiedName(),
 -            null, null, parameterNames);
 +    return edm.getFunction(new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(functionImport.getName()).
 +            setDefaultNamespace(container.getNamespace()).build().getFullQualifiedName(), null, null, parameterNames);
    }
+ 
+   @Override
+   public boolean isIncludeInServiceDocument() {
+     //V3 states that all function imports are included in the service document
+     return true;
+   }
+ 
+   @Override
+   public FullQualifiedName getFunctionFqn() {
+     return new FullQualifiedName(container.getNamespace(), getName());
+   }
  }