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/02/19 14:42:08 UTC

[28/29] git commit: [OLINGO-167] merge master

[OLINGO-167] merge master


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/b4417ffc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/tree/b4417ffc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/diff/b4417ffc

Branch: refs/heads/olingo167MetadataDocument
Commit: b4417ffcaf083d4676a3cb2ebc34c945ef4a536a
Parents: 456b5b1 30ca8f0
Author: Stephan Klevenz <st...@sap.com>
Authored: Wed Feb 19 13:34:10 2014 +0100
Committer: Stephan Klevenz <st...@sap.com>
Committed: Wed Feb 19 13:34:10 2014 +0100

----------------------------------------------------------------------
 .gitignore                                      |    1 +
 .../olingo/odata4/client/api/ODataConsumer.java |    5 -
 .../odata4/client/core/ODataConsumerImpl.java   |    8 -
 .../odata4/client/core/ODataConsumerTest.java   |   18 +-
 .../commons/api/ODataApplicationException.java  |   36 +
 .../odata4/commons/api/ODataException.java      |   36 +
 .../api/ODataNotImplementedException.java       |   33 +
 .../olingo/odata4/commons/api/edm/Edm.java      |    2 -
 .../commons/api/edm/EdmNavigationProperty.java  |    1 -
 .../commons/api/edm/FullQualifiedName.java      |   82 +
 .../odata4/commons/api/edm/provider/Action.java |   53 -
 .../commons/api/edm/provider/ActionImport.java  |   44 -
 .../commons/api/edm/provider/AliasInfo.java     |   43 -
 .../commons/api/edm/provider/Annotation.java    |   66 -
 .../commons/api/edm/provider/BindingTarget.java |   56 -
 .../commons/api/edm/provider/ComplexType.java   |   60 -
 .../commons/api/edm/provider/EdmProvider.java   |  168 --
 .../api/edm/provider/EntityContainer.java       |   87 -
 .../api/edm/provider/EntityContainerInfo.java   |   43 -
 .../commons/api/edm/provider/EntitySet.java     |   53 -
 .../commons/api/edm/provider/EntitySetPath.java |   44 -
 .../commons/api/edm/provider/EntityType.java    |   81 -
 .../commons/api/edm/provider/EnumMember.java    |   49 -
 .../commons/api/edm/provider/EnumType.java      |   69 -
 .../commons/api/edm/provider/Expression.java    |   24 -
 .../api/edm/provider/FullQualifiedName.java     |   82 -
 .../commons/api/edm/provider/Function.java      |   65 -
 .../api/edm/provider/FunctionImport.java        |   60 -
 .../commons/api/edm/provider/Mapping.java       |   89 -
 .../api/edm/provider/NavigationProperty.java    |  112 -
 .../edm/provider/NavigationPropertyBinding.java |   43 -
 .../commons/api/edm/provider/Operation.java     |   78 -
 .../api/edm/provider/OperationImport.java       |   45 -
 .../commons/api/edm/provider/Parameter.java     |  105 -
 .../commons/api/edm/provider/Property.java      |  138 --
 .../commons/api/edm/provider/PropertyRef.java   |   53 -
 .../api/edm/provider/ReferentialConstraint.java |   46 -
 .../commons/api/edm/provider/ReturnType.java    |   85 -
 .../odata4/commons/api/edm/provider/Schema.java |  127 -
 .../commons/api/edm/provider/Singleton.java     |   42 -
 .../api/edm/provider/StructuralType.java        |   87 -
 .../odata4/commons/api/edm/provider/Target.java |   44 -
 .../odata4/commons/api/edm/provider/Term.java   |  139 --
 .../api/edm/provider/TypeDefinition.java        |   89 -
 .../exception/ODataApplicationException.java    |   36 -
 .../commons/api/exception/ODataException.java   |   36 -
 .../exception/ODataNotImplementedException.java |   33 -
 .../commons/core/ODataCommonsCoreImpl.java      |   31 -
 .../odata4/commons/core/edm/ActionMapKey.java   |    2 +-
 .../olingo/odata4/commons/core/edm/EdmImpl.java |    2 +-
 .../odata4/commons/core/edm/FunctionMapKey.java |    2 +-
 .../primitivetype/AbstractPrimitiveType.java    |    2 +-
 .../edm/primitivetype/EdmPrimitiveTypeKind.java |    2 +-
 .../core/edm/provider/EdmActionImpl.java        |   31 -
 .../core/edm/provider/EdmActionImportImpl.java  |   41 -
 .../core/edm/provider/EdmBindingTargetImpl.java |   88 -
 .../core/edm/provider/EdmComplexTypeImpl.java   |   51 -
 .../core/edm/provider/EdmElementImpl.java       |   28 -
 .../edm/provider/EdmEntityContainerImpl.java    |  136 --
 .../core/edm/provider/EdmEntitySetImpl.java     |   31 -
 .../core/edm/provider/EdmEntitySetInfoImpl.java |   53 -
 .../core/edm/provider/EdmEntityTypeImpl.java    |  119 -
 .../commons/core/edm/provider/EdmEnumImpl.java  |  228 --
 .../core/edm/provider/EdmFunctionImpl.java      |   51 -
 .../edm/provider/EdmFunctionImportImpl.java     |   43 -
 .../edm/provider/EdmFunctionImportInfoImpl.java |   53 -
 .../edm/provider/EdmKeyPropertyRefImpl.java     |   89 -
 .../core/edm/provider/EdmMemberImpl.java        |   38 -
 .../commons/core/edm/provider/EdmNamedImpl.java |   39 -
 .../edm/provider/EdmNavigationPropertyImpl.java |   98 -
 .../core/edm/provider/EdmOperationImpl.java     |  110 -
 .../edm/provider/EdmOperationImportImpl.java    |   62 -
 .../core/edm/provider/EdmParameterImpl.java     |   99 -
 .../core/edm/provider/EdmPropertyImpl.java      |  119 -
 .../core/edm/provider/EdmProviderImpl.java      |  294 ---
 .../core/edm/provider/EdmReturnTypeImpl.java    |   95 -
 .../edm/provider/EdmServiceMetadataImpl.java    |  149 --
 .../core/edm/provider/EdmSingletonImpl.java     |   30 -
 .../core/edm/provider/EdmSingletonInfoImpl.java |   53 -
 .../edm/provider/EdmStructuralTypeImpl.java     |  129 --
 .../edm/provider/EdmTypeDefinitionImpl.java     |  126 -
 .../commons/core/edm/provider/EdmTypeImpl.java  |   46 -
 .../commons/core/edm/ActionMapKeyTest.java      |    2 +-
 .../commons/core/edm/EdmImplCachingTest.java    |    2 +-
 .../commons/core/edm/EdmImplCallCreateTest.java |    2 +-
 .../commons/core/edm/FunctionMapKeyTest.java    |    2 +-
 .../core/edm/provider/EdmActionImplTest.java    |  156 --
 .../edm/provider/EdmActionImportImplTest.java   |  100 -
 .../edm/provider/EdmComplexTypeImplTest.java    |  163 --
 .../provider/EdmEntityContainerImplTest.java    |  205 --
 .../core/edm/provider/EdmEntitySetImplTest.java |   81 -
 .../edm/provider/EdmEntitySetInfoImplTest.java  |   51 -
 .../edm/provider/EdmEntityTypeImplTest.java     |  276 ---
 .../commons/core/edm/provider/EdmEnumTest.java  |  178 --
 .../core/edm/provider/EdmFunctionImplTest.java  |   75 -
 .../edm/provider/EdmFunctionImportImplTest.java |   84 -
 .../provider/EdmFunctionImportInfoImplTest.java |   50 -
 .../edm/provider/EdmKeyPropertyRefImplTest.java |  142 --
 .../core/edm/provider/EdmMemberImplTest.java    |   38 -
 .../core/edm/provider/EdmNamedImplTest.java     |   41 -
 .../provider/EdmNavigationPropertyImplTest.java |  144 --
 .../core/edm/provider/EdmParameterImplTest.java |  140 --
 .../core/edm/provider/EdmPropertyImplTest.java  |  155 --
 .../EdmProviderImplOverloadingTest.java         |  198 --
 .../core/edm/provider/EdmProviderImplTest.java  |  231 --
 .../edm/provider/EdmReturnTypeImplTest.java     |  129 --
 .../provider/EdmServiceMetadataImplTest.java    |  188 --
 .../core/edm/provider/EdmSingletonImplTest.java |  129 --
 .../edm/provider/EdmSingletonInfoImplTest.java  |   51 -
 .../edm/provider/EdmTypeDefinitionImplTest.java |   74 -
 .../core/edm/provider/EdmTypeImplTest.java      |   44 -
 odata4-lib/odata4-fit/pom.xml                   |    4 +-
 odata4-lib/odata4-ref/pom.xml                   |    4 +-
 .../odata4/server/api/edm/provider/Action.java  |   53 +
 .../server/api/edm/provider/ActionImport.java   |   46 +
 .../server/api/edm/provider/AliasInfo.java      |   43 +
 .../server/api/edm/provider/Annotation.java     |   68 +
 .../server/api/edm/provider/BindingTarget.java  |   58 +
 .../server/api/edm/provider/ComplexType.java    |   62 +
 .../server/api/edm/provider/EdmProvider.java    |  169 ++
 .../api/edm/provider/EntityContainer.java       |   89 +
 .../api/edm/provider/EntityContainerInfo.java   |   45 +
 .../server/api/edm/provider/EntitySet.java      |   55 +
 .../server/api/edm/provider/EntitySetPath.java  |   44 +
 .../server/api/edm/provider/EntityType.java     |   83 +
 .../server/api/edm/provider/EnumMember.java     |   49 +
 .../server/api/edm/provider/EnumType.java       |   71 +
 .../server/api/edm/provider/Expression.java     |   24 +
 .../server/api/edm/provider/Function.java       |   65 +
 .../server/api/edm/provider/FunctionImport.java |   62 +
 .../odata4/server/api/edm/provider/Mapping.java |   89 +
 .../api/edm/provider/NavigationProperty.java    |  113 +
 .../edm/provider/NavigationPropertyBinding.java |   43 +
 .../server/api/edm/provider/Operation.java      |   78 +
 .../api/edm/provider/OperationImport.java       |   45 +
 .../server/api/edm/provider/Parameter.java      |  107 +
 .../server/api/edm/provider/Property.java       |  140 ++
 .../server/api/edm/provider/PropertyRef.java    |   53 +
 .../api/edm/provider/ReferentialConstraint.java |   46 +
 .../server/api/edm/provider/ReturnType.java     |   87 +
 .../odata4/server/api/edm/provider/Schema.java  |  127 +
 .../server/api/edm/provider/Singleton.java      |   44 +
 .../server/api/edm/provider/StructuralType.java |   89 +
 .../odata4/server/api/edm/provider/Target.java  |   46 +
 .../odata4/server/api/edm/provider/Term.java    |  141 ++
 .../server/api/edm/provider/TypeDefinition.java |   91 +
 .../odata4/server/api/uri/UriInfoMetadata.java  |    6 +-
 .../odata4/server/api/uri/UriParameter.java     |    2 +-
 .../odata4/server/api/uri/UriResource.java      |    4 +-
 .../server/api/uri/UriResourceAction.java       |    2 +-
 .../api/uri/UriResourceComplexProperty.java     |    2 +-
 .../odata4/server/api/uri/UriResourceIt.java    |    6 +-
 .../odata4/server/api/uri/UriResourceKind.java  |    2 +-
 .../server/api/uri/UriResourceLambdaAll.java    |    5 +-
 .../server/api/uri/UriResourceLambdaAny.java    |    4 +-
 .../server/api/uri/UriResourceLambdaRef.java    |    3 +-
 .../server/api/uri/UriResourceNavigation.java   |    2 +-
 .../server/api/uri/UriResourcePartTyped.java    |    4 +-
 .../server/api/uri/UriResourceProperty.java     |    4 +-
 .../server/api/uri/UriResourceSingleton.java    |    2 +-
 .../api/uri/UriResourceStartingTypeFilter.java  |    2 +-
 .../server/api/uri/optiontree/OptionNode.java   |   76 -
 .../api/uri/optiontree/OptionProperty.java      |   27 -
 .../api/uri/queryoption/AliasQueryOption.java   |    2 +-
 .../uri/queryoption/ExceptionVisitExpand.java   |    2 +-
 .../api/uri/queryoption/ExpandOption.java       |    4 +-
 .../api/uri/queryoption/FilterOption.java       |    2 +-
 .../api/uri/queryoption/FormatOption.java       |    4 +-
 .../server/api/uri/queryoption/IdOption.java    |    4 +-
 .../api/uri/queryoption/InlineCountOption.java  |    4 +-
 .../api/uri/queryoption/LevelsExpandOption.java |    2 +-
 .../server/api/uri/queryoption/QueryOption.java |    2 +-
 .../api/uri/queryoption/SearchOption.java       |    2 +-
 .../server/api/uri/queryoption/SelectItem.java  |    4 +-
 .../server/api/uri/queryoption/TopOption.java   |    4 +-
 .../queryoption/expression/AliasExpression.java |    4 +-
 .../expression/BinaryExpression.java            |    2 +-
 .../expression/BinaryOperatorKind.java          |   57 +
 .../uri/queryoption/expression/Constant.java    |   35 -
 .../uri/queryoption/expression/Enumeration.java |    1 +
 .../expression/ExceptionVisitExpression.java    |   25 -
 .../expression/ExpressionVisitException.java    |   25 +
 .../expression/ExpressionVisitor.java           |   39 +-
 .../api/uri/queryoption/expression/Literal.java |    4 +
 .../api/uri/queryoption/expression/Member.java  |    2 +-
 .../uri/queryoption/expression/MethodCall.java  |    2 +-
 .../queryoption/expression/MethodCallKind.java  |   58 +
 .../expression/SupportedBinaryOperators.java    |   56 -
 .../expression/SupportedConstants.java          |   47 -
 .../expression/SupportedMethodCalls.java        |   56 -
 .../expression/SupportedUnaryOperators.java     |   44 -
 .../queryoption/expression/UnaryOperator.java   |    2 +-
 .../expression/UnaryOperatorKind.java           |   44 +
 .../expression/VisitableExression.java          |    8 +-
 .../uri/queryoption/search/SearchBinary.java    |    4 +-
 .../search/SearchBinaryOperatorKind.java        |   45 +
 .../api/uri/queryoption/search/SearchTerm.java  |    4 +-
 .../api/uri/queryoption/search/SearchUnary.java |    4 +-
 .../search/SearchUnaryOperatorKind.java         |   43 +
 .../search/SupportedSearchBinaryOperators.java  |   46 -
 .../search/SupportedSearchUnaryOperators.java   |   43 -
 .../odata4/server/core/uri/antlr/UriLexer.g4    |    7 +-
 .../odata4/server/core/uri/antlr/UriParser.g4   |  312 +--
 .../server/core/edm/provider/EdmActionImpl.java |   31 +
 .../core/edm/provider/EdmActionImportImpl.java  |   41 +
 .../core/edm/provider/EdmBindingTargetImpl.java |   88 +
 .../core/edm/provider/EdmComplexTypeImpl.java   |   51 +
 .../core/edm/provider/EdmElementImpl.java       |   28 +
 .../edm/provider/EdmEntityContainerImpl.java    |  136 ++
 .../core/edm/provider/EdmEntitySetImpl.java     |   31 +
 .../core/edm/provider/EdmEntitySetInfoImpl.java |   53 +
 .../core/edm/provider/EdmEntityTypeImpl.java    |  119 +
 .../server/core/edm/provider/EdmEnumImpl.java   |  228 ++
 .../core/edm/provider/EdmFunctionImpl.java      |   51 +
 .../edm/provider/EdmFunctionImportImpl.java     |   43 +
 .../edm/provider/EdmFunctionImportInfoImpl.java |   53 +
 .../edm/provider/EdmKeyPropertyRefImpl.java     |   89 +
 .../server/core/edm/provider/EdmMemberImpl.java |   38 +
 .../server/core/edm/provider/EdmNamedImpl.java  |   39 +
 .../edm/provider/EdmNavigationPropertyImpl.java |   98 +
 .../core/edm/provider/EdmOperationImpl.java     |  110 +
 .../edm/provider/EdmOperationImportImpl.java    |   62 +
 .../core/edm/provider/EdmParameterImpl.java     |   99 +
 .../core/edm/provider/EdmPropertyImpl.java      |  119 +
 .../core/edm/provider/EdmProviderImpl.java      |  294 +++
 .../core/edm/provider/EdmReturnTypeImpl.java    |   95 +
 .../edm/provider/EdmServiceMetadataImpl.java    |  149 ++
 .../core/edm/provider/EdmSingletonImpl.java     |   30 +
 .../core/edm/provider/EdmSingletonInfoImpl.java |   53 +
 .../edm/provider/EdmStructuralTypeImpl.java     |  129 ++
 .../edm/provider/EdmTypeDefinitionImpl.java     |  126 +
 .../server/core/edm/provider/EdmTypeImpl.java   |   46 +
 .../olingo/odata4/server/core/uri/Parser.java   |  134 --
 .../odata4/server/core/uri/UriInfoImpl.java     |  288 ---
 .../server/core/uri/UriParameterImpl.java       |   83 -
 .../server/core/uri/UriParseTreeVisitor.java    | 2181 ------------------
 .../server/core/uri/UriResourceActionImpl.java  |   77 -
 .../uri/UriResourceComplexPropertyImpl.java     |   70 -
 .../server/core/uri/UriResourceCountImpl.java   |   35 -
 .../core/uri/UriResourceEntitySetImpl.java      |   67 -
 .../core/uri/UriResourceFunctionImpl.java       |  111 -
 .../odata4/server/core/uri/UriResourceImpl.java |   39 -
 .../server/core/uri/UriResourceItImpl.java      |   65 -
 .../core/uri/UriResourceLambdaAllImpl.java      |   73 -
 .../core/uri/UriResourceLambdaAnyImpl.java      |   72 -
 .../core/uri/UriResourceLambdaVarImpl.java      |   70 -
 .../uri/UriResourceNavigationPropertyImpl.java  |   63 -
 .../uri/UriResourcePrimitivePropertyImpl.java   |   59 -
 .../server/core/uri/UriResourceRefImpl.java     |   36 -
 .../server/core/uri/UriResourceRootImpl.java    |   62 -
 .../core/uri/UriResourceSingletonImpl.java      |   71 -
 .../uri/UriResourceStartingTypeFilterImpl.java  |   68 -
 .../server/core/uri/UriResourceTypedImpl.java   |   60 -
 .../server/core/uri/UriResourceValueImpl.java   |   36 -
 .../core/uri/UriResourceWithKeysImpl.java       |   98 -
 .../server/core/uri/apiimpl/UriInfoImpl.java    |  291 +++
 .../core/uri/apiimpl/UriParameterImpl.java      |   83 +
 .../core/uri/apiimpl/UriResourceActionImpl.java |   77 +
 .../apiimpl/UriResourceComplexPropertyImpl.java |   70 +
 .../core/uri/apiimpl/UriResourceCountImpl.java  |   35 +
 .../uri/apiimpl/UriResourceEntitySetImpl.java   |   67 +
 .../uri/apiimpl/UriResourceFunctionImpl.java    |  111 +
 .../core/uri/apiimpl/UriResourceImpl.java       |   39 +
 .../core/uri/apiimpl/UriResourceItImpl.java     |   65 +
 .../uri/apiimpl/UriResourceLambdaAllImpl.java   |   73 +
 .../uri/apiimpl/UriResourceLambdaAnyImpl.java   |   72 +
 .../uri/apiimpl/UriResourceLambdaVarImpl.java   |   70 +
 .../UriResourceNavigationPropertyImpl.java      |   63 +
 .../UriResourcePrimitivePropertyImpl.java       |   59 +
 .../core/uri/apiimpl/UriResourceRefImpl.java    |   36 +
 .../core/uri/apiimpl/UriResourceRootImpl.java   |   62 +
 .../uri/apiimpl/UriResourceSingletonImpl.java   |   71 +
 .../UriResourceStartingTypeFilterImpl.java      |   68 +
 .../core/uri/apiimpl/UriResourceTypedImpl.java  |   60 +
 .../core/uri/apiimpl/UriResourceValueImpl.java  |   36 +
 .../uri/apiimpl/UriResourceWithKeysImpl.java    |   99 +
 .../uri/parser/CheckFullContextListener.java    |   60 +
 .../odata4/server/core/uri/parser/Parser.java   |  462 ++++
 .../odata4/server/core/uri/parser/RawUri.java   |   46 +
 .../server/core/uri/parser/UriContext.java      |   80 +
 .../server/core/uri/parser/UriDecoder.java      |  140 ++
 .../core/uri/parser/UriParseTreeVisitor.java    | 2089 +++++++++++++++++
 .../uri/queryoption/AliasQueryOptionImpl.java   |    2 +-
 .../core/uri/queryoption/CountOptionImpl.java   |   42 +
 .../core/uri/queryoption/ExpandItemImpl.java    |    2 +-
 .../uri/queryoption/InlineCountOptionImpl.java  |   42 -
 .../core/uri/queryoption/LevelsOptionImpl.java  |    4 +-
 .../core/uri/queryoption/OrderByOptionImpl.java |    2 +-
 .../core/uri/queryoption/SearchOptionImpl.java  |    6 +-
 .../core/uri/queryoption/SelectItemImpl.java    |    7 +-
 .../core/uri/queryoption/TopOptionImpl.java     |    2 -
 .../uri/queryoption/expression/AliasImpl.java   |   12 +-
 .../uri/queryoption/expression/BinaryImpl.java  |   14 +-
 .../queryoption/expression/ConstantImpl.java    |   73 -
 .../queryoption/expression/EnumerationImpl.java |    6 +-
 .../queryoption/expression/LambdaRefImpl.java   |    6 +-
 .../uri/queryoption/expression/LiteralImpl.java |   18 +-
 .../uri/queryoption/expression/MemberImpl.java  |   14 +-
 .../queryoption/expression/MethodCallImpl.java  |   14 +-
 .../queryoption/expression/TypeLiteralImpl.java |    6 +-
 .../uri/queryoption/expression/UnaryImpl.java   |   14 +-
 .../core/edm/provider/EdmActionImplTest.java    |  156 ++
 .../edm/provider/EdmActionImportImplTest.java   |  100 +
 .../edm/provider/EdmComplexTypeImplTest.java    |  163 ++
 .../provider/EdmEntityContainerImplTest.java    |  205 ++
 .../core/edm/provider/EdmEntitySetImplTest.java |   81 +
 .../edm/provider/EdmEntitySetInfoImplTest.java  |   51 +
 .../edm/provider/EdmEntityTypeImplTest.java     |  276 +++
 .../server/core/edm/provider/EdmEnumTest.java   |  177 ++
 .../core/edm/provider/EdmFunctionImplTest.java  |   75 +
 .../edm/provider/EdmFunctionImportImplTest.java |   84 +
 .../provider/EdmFunctionImportInfoImplTest.java |   50 +
 .../edm/provider/EdmKeyPropertyRefImplTest.java |  142 ++
 .../core/edm/provider/EdmMemberImplTest.java    |   38 +
 .../core/edm/provider/EdmNamedImplTest.java     |   41 +
 .../provider/EdmNavigationPropertyImplTest.java |  144 ++
 .../core/edm/provider/EdmParameterImplTest.java |  140 ++
 .../core/edm/provider/EdmPropertyImplTest.java  |  155 ++
 .../EdmProviderImplOverloadingTest.java         |  198 ++
 .../core/edm/provider/EdmProviderImplTest.java  |  231 ++
 .../edm/provider/EdmReturnTypeImplTest.java     |  129 ++
 .../provider/EdmServiceMetadataImplTest.java    |  188 ++
 .../core/edm/provider/EdmSingletonImplTest.java |  129 ++
 .../edm/provider/EdmSingletonInfoImplTest.java  |   51 +
 .../edm/provider/EdmTypeDefinitionImplTest.java |   74 +
 .../core/edm/provider/EdmTypeImplTest.java      |   44 +
 .../edm/provider/PrimitiveTypeBaseTest.java     |  117 +
 .../server/core/testutil/EdmTechProvider.java   |   63 +-
 .../core/testutil/EdmTechTestProvider.java      |   19 +-
 .../server/core/testutil/ExpandValidator.java   |   81 +-
 .../server/core/testutil/FilterTreeToText.java  |   43 +-
 .../server/core/testutil/FilterValidator.java   |  133 +-
 .../odata4/server/core/testutil/ParserTest.java |   53 -
 .../server/core/testutil/ParserValidator.java   |  158 +-
 .../server/core/testutil/ParserWithLogging.java |   56 +
 .../server/core/testutil/ResourceValidator.java |  571 +++++
 .../server/core/testutil/TestErrorLogger.java   |   91 +-
 .../core/testutil/UriResourceValidator.java     |  562 -----
 .../server/core/testutil/UriValidator.java      |   50 +-
 .../odata4/server/core/uri/RawUriTest.java      |  149 ++
 .../odata4/server/core/uri/UriInfoImplTest.java |   38 +-
 .../server/core/uri/UriParameterImplTest.java   |   93 +-
 .../core/uri/antlr/TestFullResourcePath.java    |  604 ++---
 .../odata4/server/core/uri/antlr/TestLexer.java |   12 +-
 .../server/core/uri/antlr/TestParser.java       |  243 +-
 .../core/uri/antlr/TestUriParserImpl.java       |   93 +-
 .../core/uri/queryoption/QueryOptionTest.java   |   40 +-
 .../queryoption/expression/ExpressionTest.java  |  132 +-
 pom.xml                                         |   33 +-
 349 files changed, 15177 insertions(+), 14734 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/b4417ffc/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmProviderImpl.java
----------------------------------------------------------------------
diff --cc odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmProviderImpl.java
index 0000000,700f019..a7594ad
mode 000000,100644..100644
--- a/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmProviderImpl.java
+++ b/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmProviderImpl.java
@@@ -1,0 -1,295 +1,294 @@@
+ /*******************************************************************************
+  * 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.odata4.server.core.edm.provider;
+ 
+ import java.util.ArrayList;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+ 
+ import org.apache.olingo.odata4.commons.api.ODataException;
+ import org.apache.olingo.odata4.commons.api.edm.EdmAction;
+ import org.apache.olingo.odata4.commons.api.edm.EdmComplexType;
+ import org.apache.olingo.odata4.commons.api.edm.EdmEntityContainer;
+ import org.apache.olingo.odata4.commons.api.edm.EdmEntityType;
+ import org.apache.olingo.odata4.commons.api.edm.EdmEnumType;
+ import org.apache.olingo.odata4.commons.api.edm.EdmException;
+ import org.apache.olingo.odata4.commons.api.edm.EdmFunction;
+ import org.apache.olingo.odata4.commons.api.edm.EdmServiceMetadata;
+ import org.apache.olingo.odata4.commons.api.edm.EdmTypeDefinition;
+ import org.apache.olingo.odata4.commons.api.edm.FullQualifiedName;
+ import org.apache.olingo.odata4.commons.core.edm.EdmImpl;
+ import org.apache.olingo.odata4.server.api.edm.provider.Action;
+ import org.apache.olingo.odata4.server.api.edm.provider.AliasInfo;
+ import org.apache.olingo.odata4.server.api.edm.provider.ComplexType;
+ import org.apache.olingo.odata4.server.api.edm.provider.EdmProvider;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntityContainerInfo;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntityType;
+ import org.apache.olingo.odata4.server.api.edm.provider.EnumType;
+ import org.apache.olingo.odata4.server.api.edm.provider.Function;
+ import org.apache.olingo.odata4.server.api.edm.provider.Parameter;
+ import org.apache.olingo.odata4.server.api.edm.provider.TypeDefinition;
+ 
+ public class EdmProviderImpl extends EdmImpl {
+ 
+   private final EdmProvider provider;
+   private final Map<FullQualifiedName, List<Action>> actionsMap = new HashMap<FullQualifiedName, List<Action>>();
+   private final Map<FullQualifiedName, List<Function>> functionsMap = new HashMap<FullQualifiedName, List<Function>>();
+ 
+   public EdmProviderImpl(final EdmProvider provider) {
+     this.provider = provider;
+ 
+   }
+ 
+   @Override
+   public EdmEntityContainer createEntityContainer(final FullQualifiedName containerName) {
+     try {
+       EntityContainerInfo entityContainerInfo = provider.getEntityContainerInfo(containerName);
+       if (entityContainerInfo != null) {
+         return new EdmEntityContainerImpl(this, provider, entityContainerInfo);
+       }
+       return null;
+     } catch (ODataException e) {
+       throw new EdmException(e);
+     }
+   }
+ 
+   @Override
+   public EdmEnumType createEnumType(final FullQualifiedName enumName) {
+     try {
+       EnumType enumType = provider.getEnumType(enumName);
+       if (enumType != null) {
+         return new EdmEnumImpl(this, enumName, enumType);
+       }
+       return null;
+     } catch (ODataException e) {
+       throw new EdmException(e);
+     }
+   }
+ 
+   @Override
+   public EdmTypeDefinition createTypeDefinition(final FullQualifiedName typeDefinitionName) {
+     try {
+       TypeDefinition typeDefinition = provider.getTypeDefinition(typeDefinitionName);
+       if (typeDefinition != null) {
+         return new EdmTypeDefinitionImpl(this, typeDefinitionName, typeDefinition);
+       }
+       return null;
+     } catch (ODataException e) {
+       throw new EdmException(e);
+     }
+   }
+ 
+   @Override
+   public EdmEntityType createEntityType(final FullQualifiedName entityTypeName) {
+     try {
+       EntityType entityType = provider.getEntityType(entityTypeName);
+       if (entityType != null) {
+         return new EdmEntityTypeImpl(this, entityTypeName, entityType);
+       }
+       return null;
+     } catch (ODataException e) {
+       throw new EdmException(e);
+     }
+   }
+ 
+   @Override
+   public EdmComplexType createComplexType(final FullQualifiedName complexTypeName) {
+     try {
+       ComplexType complexType = provider.getComplexType(complexTypeName);
+       if (complexType != null) {
+         return new EdmComplexTypeImpl(this, complexTypeName, complexType);
+       }
+       return null;
+     } catch (ODataException e) {
+       throw new EdmException(e);
+     }
+   }
+ 
+   @Override
+   public EdmAction createBoundAction(final FullQualifiedName actionName,
+       final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection) {
+     try {
+       List<Action> actions = actionsMap.get(actionName);
+       if (actions == null) {
+         actions = provider.getActions(actionName);
+         if (actions != null) {
+           actionsMap.put(actionName, actions);
+         } else {
+           return null;
+         }
+       }
+       EdmActionImpl actionImpl = null;
+       // Search for bound action where binding parameter matches
+       for (Action action : actions) {
+         if (action.isBound() == true) {
+           List<Parameter> parameters = action.getParameters();
+           Parameter parameter = parameters.get(0);
+           if (bindingParameterTypeName.equals(parameter.getType())
+               && isBindingParameterCollection.booleanValue() == parameter.isCollection()) {
+             actionImpl = new EdmActionImpl(this, actionName, action);
+             break;
+           }
+ 
+         }
+       }
+       return actionImpl;
+     } catch (ODataException e) {
+       throw new EdmException(e);
+     }
+   }
+ 
+   @Override
+   public EdmFunction createBoundFunction(final FullQualifiedName functionName,
+       final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection,
+       final List<String> parameterNames) {
+     try {
+       List<Function> functions = functionsMap.get(functionName);
+       if (functions == null) {
+         functions = provider.getFunctions(functionName);
+         if (functions != null) {
+           functionsMap.put(functionName, functions);
+         } else {
+           return null;
+         }
+       }
+       List<String> parameterNamesCopy = parameterNames;
+       if (parameterNamesCopy == null) {
+         parameterNamesCopy = Collections.emptyList();
+       }
+       EdmFunctionImpl functionImpl = null;
+       for (Function function : functions) {
+         if (function.isBound() == true) {
+           List<Parameter> providerParameters = function.getParameters();
+           if (providerParameters == null || providerParameters.size() == 0) {
+             throw new EdmException("No parameter specified for bound function: " + functionName);
+           }
+           Parameter bindingParameter = providerParameters.get(0);
+           if (bindingParameterTypeName.equals(bindingParameter.getType())
+               && isBindingParameterCollection.booleanValue() == bindingParameter.isCollection()) {
+             if (parameterNamesCopy.size() == providerParameters.size() - 1) {
+               List<String> providerParameterNames = new ArrayList<String>();
+               for (int i = 1; i < providerParameters.size(); i++) {
+                 providerParameterNames.add(providerParameters.get(i).getName());
+               }
+               if (parameterNamesCopy.containsAll(providerParameterNames)) {
+                 functionImpl = new EdmFunctionImpl(this, functionName, function);
+                 break;
+               }
+             }
+           }
+         }
+       }
+       return functionImpl;
+     } catch (ODataException e) {
+       throw new EdmException(e);
+     }
+   }
+ 
+   @Override
+   public EdmServiceMetadata createServiceMetadata() {
+     return new EdmServiceMetadataImpl(provider);
+   }
+ 
+   @Override
+   protected Map<String, String> createAliasToNamespaceInfo() {
+     Map<String, String> aliasToNamespaceInfos = new HashMap<String, String>();
+     try {
+       List<AliasInfo> aliasInfos = provider.getAliasInfos();
+       if (aliasInfos != null) {
+         for (AliasInfo info : aliasInfos) {
+           aliasToNamespaceInfos.put(info.getAlias(), info.getNamespace());
+         }
+       }
+     } catch (ODataException e) {
+       throw new EdmException(e);
+     }
+     return aliasToNamespaceInfos;
+   }
+ 
+   @Override
+   protected EdmAction createUnboundAction(final FullQualifiedName actionName) {
+     try {
+       List<Action> actions = actionsMap.get(actionName);
+       if (actions == null) {
+         actions = provider.getActions(actionName);
+         if (actions != null) {
+           actionsMap.put(actionName, actions);
+         } else {
+           return null;
+         }
+       }
+       EdmActionImpl actionImpl = null;
+       // Search for first unbound action
+       for (Action action : actions) {
+         if (action.isBound() == false) {
+           actionImpl = new EdmActionImpl(this, actionName, action);
+           break;
+         }
+       }
+       return actionImpl;
+     } catch (ODataException e) {
+       throw new EdmException(e);
+     }
+   }
+ 
+   @Override
+   protected EdmFunction createUnboundFunction(final FullQualifiedName functionName, final List<String> parameterNames) {
+     try {
+       List<Function> functions = functionsMap.get(functionName);
+       if (functions == null) {
+         functions = provider.getFunctions(functionName);
+         if (functions != null) {
+           functionsMap.put(functionName, functions);
+         } else {
+           return null;
+         }
+       }
+       List<String> parameterNamesCopy = parameterNames;
+       if (parameterNamesCopy == null) {
+         parameterNamesCopy = Collections.emptyList();
+       }
+       EdmFunctionImpl functionImpl = null;
+       for (Function function : functions) {
+         if (function.isBound() == false) {
+           List<Parameter> providerParameters = function.getParameters();
+           if (providerParameters == null) {
+             providerParameters = Collections.emptyList();
+           }
+           if (parameterNamesCopy.size() == providerParameters.size()) {
+             List<String> functionParameterNames = new ArrayList<String>();
+             for (Parameter parameter : providerParameters) {
+               functionParameterNames.add(parameter.getName());
+             }
+ 
+             if (parameterNamesCopy.containsAll(functionParameterNames)) {
+               functionImpl = new EdmFunctionImpl(this, functionName, function);
+               break;
+             }
+           }
+         }
+       }
+       return functionImpl;
+     } catch (ODataException e) {
+       throw new EdmException(e);
+     }
+   }
 -
+ }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/b4417ffc/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmServiceMetadataImpl.java
----------------------------------------------------------------------
diff --cc odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmServiceMetadataImpl.java
index 0000000,dc0b556..0007568
mode 000000,100644..100644
--- a/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmServiceMetadataImpl.java
+++ b/odata4-lib/odata4-server-core/src/main/java/org/apache/olingo/odata4/server/core/edm/provider/EdmServiceMetadataImpl.java
@@@ -1,0 -1,148 +1,149 @@@
+ /*******************************************************************************
+  * 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.odata4.server.core.edm.provider;
+ 
+ import java.io.InputStream;
+ import java.util.ArrayList;
+ import java.util.List;
+ 
+ import org.apache.olingo.odata4.commons.api.ODataException;
+ import org.apache.olingo.odata4.commons.api.edm.EdmEntitySetInfo;
+ import org.apache.olingo.odata4.commons.api.edm.EdmException;
+ import org.apache.olingo.odata4.commons.api.edm.EdmFunctionImportInfo;
+ import org.apache.olingo.odata4.commons.api.edm.EdmServiceMetadata;
+ import org.apache.olingo.odata4.commons.api.edm.EdmSingletonInfo;
+ import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
+ import org.apache.olingo.odata4.server.api.edm.provider.EdmProvider;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntityContainer;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntitySet;
+ import org.apache.olingo.odata4.server.api.edm.provider.FunctionImport;
+ import org.apache.olingo.odata4.server.api.edm.provider.Schema;
+ import org.apache.olingo.odata4.server.api.edm.provider.Singleton;
+ 
+ public class EdmServiceMetadataImpl implements EdmServiceMetadata {
+ 
+   private EdmProvider provider;
+   private ArrayList<EdmEntitySetInfo> entitySetInfos;
+   private ArrayList<EdmFunctionImportInfo> functionImportInfos;
+   private ArrayList<EdmSingletonInfo> singletonInfos;
+   private List<Schema> schemas;
+ 
+   public EdmServiceMetadataImpl(final EdmProvider provider) {
+     this.provider = provider;
+   }
+ 
+   @Override
+   public InputStream getMetadata() {
 -    throw new RuntimeException("Not yet implemented");
++    return null;
++//    throw new RuntimeException("Not yet implemented");
+   }
+ 
+   @Override
+   public String getDataServiceVersion() {
+     return ODataServiceVersion.V40;
+   }
+ 
+   @Override
+   public List<EdmEntitySetInfo> getEntitySetInfos() {
+     if (entitySetInfos == null) {
+       try {
+         entitySetInfos = new ArrayList<EdmEntitySetInfo>();
+         if (schemas == null) {
+           schemas = provider.getSchemas();
+           if (schemas == null) {
+             throw new EdmException("Provider doe not define any schemas.");
+           }
+         }
+         for (Schema schema : schemas) {
+           EntityContainer entityContainer = schema.getEntityContainer();
+           if (entityContainer != null) {
+             List<EntitySet> entitySets = entityContainer.getEntitySets();
+             if (entitySets != null) {
+               for (EntitySet set : entitySets) {
+                 entitySetInfos.add(new EdmEntitySetInfoImpl(entityContainer, set));
+               }
+             }
+           }
+         }
+       } catch (ODataException e) {
+         throw new EdmException(e);
+       }
+     }
+     return entitySetInfos;
+   }
+ 
+   @Override
+   public List<EdmSingletonInfo> getSingletonInfos() {
+     if (singletonInfos == null) {
+       try {
+         singletonInfos = new ArrayList<EdmSingletonInfo>();
+         if (schemas == null) {
+           schemas = provider.getSchemas();
+           if (schemas == null) {
+             throw new EdmException("Provider doe not define any schemas.");
+           }
+         }
+         for (Schema schema : schemas) {
+           EntityContainer entityContainer = schema.getEntityContainer();
+           if (entityContainer != null) {
+             List<Singleton> singletons = entityContainer.getSingletons();
+             if (singletons != null) {
+               for (Singleton singleton : singletons) {
+                 singletonInfos.add(new EdmSingletonInfoImpl(entityContainer, singleton));
+               }
+             }
+           }
+         }
+       } catch (ODataException e) {
+         throw new EdmException(e);
+       }
+     }
+     return singletonInfos;
+   }
+ 
+   @Override
+   public List<EdmFunctionImportInfo> getFunctionImportInfos() {
+     if (functionImportInfos == null) {
+       try {
+         functionImportInfos = new ArrayList<EdmFunctionImportInfo>();
+         if (schemas == null) {
+           schemas = provider.getSchemas();
+           if (schemas == null) {
+             throw new EdmException("Provider doe not define any schemas.");
+           }
+         }
+         for (Schema schema : schemas) {
+           EntityContainer entityContainer = schema.getEntityContainer();
+           if (entityContainer != null) {
+             List<FunctionImport> functionImports = entityContainer.getFunctionImports();
+             if (functionImports != null) {
+               for (FunctionImport functionImport : functionImports) {
+                 functionImportInfos.add(new EdmFunctionImportInfoImpl(entityContainer, functionImport));
+               }
+             }
+           }
+         }
+       } catch (ODataException e) {
+         throw new EdmException(e);
+       }
+     }
+     return functionImportInfos;
+   }
+ 
+ }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/b4417ffc/odata4-lib/odata4-server-core/src/test/java/org/apache/olingo/odata4/server/core/testutil/EdmTechProvider.java
----------------------------------------------------------------------
diff --cc odata4-lib/odata4-server-core/src/test/java/org/apache/olingo/odata4/server/core/testutil/EdmTechProvider.java
index 1007a6b,5f10314..1be927d
--- a/odata4-lib/odata4-server-core/src/test/java/org/apache/olingo/odata4/server/core/testutil/EdmTechProvider.java
+++ b/odata4-lib/odata4-server-core/src/test/java/org/apache/olingo/odata4/server/core/testutil/EdmTechProvider.java
@@@ -22,31 -22,30 +22,31 @@@ import java.util.ArrayList
  import java.util.Arrays;
  import java.util.List;
  
- import org.apache.olingo.odata4.commons.api.edm.provider.Action;
- import org.apache.olingo.odata4.commons.api.edm.provider.ActionImport;
- import org.apache.olingo.odata4.commons.api.edm.provider.AliasInfo;
- import org.apache.olingo.odata4.commons.api.edm.provider.ComplexType;
- import org.apache.olingo.odata4.commons.api.edm.provider.EdmProvider;
- import org.apache.olingo.odata4.commons.api.edm.provider.EntityContainerInfo;
- import org.apache.olingo.odata4.commons.api.edm.provider.EntitySet;
- import org.apache.olingo.odata4.commons.api.edm.provider.EntityType;
- import org.apache.olingo.odata4.commons.api.edm.provider.EnumMember;
- import org.apache.olingo.odata4.commons.api.edm.provider.EnumType;
- import org.apache.olingo.odata4.commons.api.edm.provider.FullQualifiedName;
- import org.apache.olingo.odata4.commons.api.edm.provider.Function;
- import org.apache.olingo.odata4.commons.api.edm.provider.FunctionImport;
- import org.apache.olingo.odata4.commons.api.edm.provider.NavigationProperty;
- import org.apache.olingo.odata4.commons.api.edm.provider.NavigationPropertyBinding;
- import org.apache.olingo.odata4.commons.api.edm.provider.Parameter;
- import org.apache.olingo.odata4.commons.api.edm.provider.Property;
- import org.apache.olingo.odata4.commons.api.edm.provider.PropertyRef;
- import org.apache.olingo.odata4.commons.api.edm.provider.ReferentialConstraint;
- import org.apache.olingo.odata4.commons.api.edm.provider.ReturnType;
- import org.apache.olingo.odata4.commons.api.edm.provider.Schema;
- import org.apache.olingo.odata4.commons.api.edm.provider.Singleton;
- import org.apache.olingo.odata4.commons.api.edm.provider.Target;
- import org.apache.olingo.odata4.commons.api.exception.ODataException;
+ import org.apache.olingo.odata4.commons.api.ODataException;
+ import org.apache.olingo.odata4.commons.api.edm.FullQualifiedName;
  import org.apache.olingo.odata4.commons.core.edm.primitivetype.EdmPrimitiveTypeKind;
+ import org.apache.olingo.odata4.server.api.edm.provider.Action;
+ import org.apache.olingo.odata4.server.api.edm.provider.ActionImport;
+ import org.apache.olingo.odata4.server.api.edm.provider.AliasInfo;
+ import org.apache.olingo.odata4.server.api.edm.provider.ComplexType;
+ import org.apache.olingo.odata4.server.api.edm.provider.EdmProvider;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntityContainerInfo;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntitySet;
+ import org.apache.olingo.odata4.server.api.edm.provider.EntityType;
+ import org.apache.olingo.odata4.server.api.edm.provider.EnumMember;
+ import org.apache.olingo.odata4.server.api.edm.provider.EnumType;
+ import org.apache.olingo.odata4.server.api.edm.provider.Function;
+ import org.apache.olingo.odata4.server.api.edm.provider.FunctionImport;
+ import org.apache.olingo.odata4.server.api.edm.provider.NavigationProperty;
+ import org.apache.olingo.odata4.server.api.edm.provider.NavigationPropertyBinding;
+ import org.apache.olingo.odata4.server.api.edm.provider.Parameter;
+ import org.apache.olingo.odata4.server.api.edm.provider.Property;
+ import org.apache.olingo.odata4.server.api.edm.provider.PropertyRef;
+ import org.apache.olingo.odata4.server.api.edm.provider.ReferentialConstraint;
+ import org.apache.olingo.odata4.server.api.edm.provider.ReturnType;
++import org.apache.olingo.odata4.server.api.edm.provider.Schema;
+ import org.apache.olingo.odata4.server.api.edm.provider.Singleton;
+ import org.apache.olingo.odata4.server.api.edm.provider.Target;
  
  public class EdmTechProvider extends EdmProvider {
  

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/b4417ffc/pom.xml
----------------------------------------------------------------------