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 2016/01/07 14:34:19 UTC

[14/14] olingo-odata4 git commit: Merge branch 'master' into OLINGO-834_Filter_Parser

Merge branch 'master' into OLINGO-834_Filter_Parser

Conflicts:
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceComplexPropertyImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceCountImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceEntitySetImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceItImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAllImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAnyImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaVarImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceNavigationPropertyImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourcePrimitivePropertyImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRefImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRootImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceSingletonImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceStartingTypeFilterImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/CheckFullContextListener.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/Parser.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/RawUri.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriContext.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriDecoder.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParseTreeVisitor.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParserSemanticException.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionImpl.java
	lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidator.java
	lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserAndTokenizerTest.java


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

Branch: refs/heads/OLINGO-834_Filter_Parser
Commit: 010642c506d593c83cfb136cd9f5ddb815bf8ba7
Parents: 8925274 0d6f482
Author: Christian Amend <ch...@sap.com>
Authored: Thu Jan 7 14:27:27 2016 +0100
Committer: Christian Amend <ch...@sap.com>
Committed: Thu Jan 7 14:27:27 2016 +0100

----------------------------------------------------------------------
 dist/android-lib/pom.xml                        |   2 +-
 dist/client-lib/pom.xml                         |   2 +-
 dist/javadoc/pom.xml                            |   2 +-
 dist/pom.xml                                    |   2 +-
 dist/server-lib/pom.xml                         |   2 +-
 ext/client-android/pom.xml                      |   2 +-
 ext/client-proxy/pom.xml                        |   2 +-
 ext/karaf/karaf-features/pom.xml                |   2 +-
 ext/karaf/karaf-fit/pom.xml                     |   2 +-
 ext/karaf/pom.xml                               |   2 +-
 ext/pojogen-maven-plugin/pom.xml                |   2 +-
 ext/pom.xml                                     |   2 +-
 fit/pom.xml                                     |   2 +-
 lib/client-api/pom.xml                          |   2 +-
 lib/client-core/pom.xml                         |   2 +-
 .../olingo/client/core/uri/URIBuilderImpl.java  |   4 +-
 .../olingo/client/core/uri/URIBuilderTest.java  |  15 +-
 lib/commons-api/pom.xml                         |   2 +-
 lib/commons-core/pom.xml                        |   2 +-
 lib/pom.xml                                     |   2 +-
 lib/server-api/pom.xml                          |   2 +-
 .../apache/olingo/server/api/HttpHeaders.java   |   4 +-
 .../org/apache/olingo/server/api/OData.java     |   6 +-
 .../server/api/ODataApplicationException.java   |   4 +-
 .../olingo/server/api/ODataHttpHandler.java     |   4 +-
 .../server/api/ODataLibraryException.java       |   4 +-
 .../apache/olingo/server/api/ODataRequest.java  |   6 +-
 .../apache/olingo/server/api/ODataResponse.java |   5 +-
 .../olingo/server/api/ODataServerError.java     |   4 +-
 .../olingo/server/api/ServiceMetadata.java      |   4 +-
 .../olingo/server/api/batch/BatchFacade.java    | 106 +++++-----
 .../olingo/server/api/batch/package-info.java   |   4 +-
 .../server/api/debug/DebugInformation.java      |  16 +-
 .../server/api/debug/DebugResponseHelper.java   |   4 +-
 .../olingo/server/api/debug/DebugSupport.java   |   9 +-
 .../server/api/debug/DefaultDebugSupport.java   |   8 +-
 .../server/api/debug/RuntimeMeasurement.java    |  12 +-
 .../olingo/server/api/debug/package-info.java   |   4 +-
 .../api/deserializer/DeserializerException.java |   4 +-
 .../api/deserializer/DeserializerResult.java    |   4 +-
 .../deserializer/FixedFormatDeserializer.java   |  12 +-
 .../api/deserializer/ODataDeserializer.java     |  10 +-
 .../batch/BatchDeserializerException.java       |  14 +-
 .../api/deserializer/batch/BatchOptions.java    |   8 +-
 .../deserializer/batch/BatchRequestPart.java    |   4 +-
 .../deserializer/batch/ODataResponsePart.java   |   8 +-
 .../api/deserializer/batch/package-info.java    |   4 +-
 .../server/api/deserializer/package-info.java   |   4 +-
 .../server/api/etag/CustomETagSupport.java      |   4 +-
 .../olingo/server/api/etag/ETagHelper.java      |  22 +-
 .../server/api/etag/PreconditionException.java  |   4 +-
 .../api/etag/ServiceMetadataETagSupport.java    |   6 +-
 .../olingo/server/api/etag/package-info.java    |   4 +-
 .../apache/olingo/server/api/package-info.java  |   4 +-
 .../olingo/server/api/prefer/Preferences.java   |  13 +-
 .../server/api/prefer/PreferencesApplied.java   |  16 +-
 .../olingo/server/api/prefer/package-info.java  |   4 +-
 .../ActionComplexCollectionProcessor.java       |   4 +-
 .../api/processor/ActionComplexProcessor.java   |   4 +-
 .../ActionEntityCollectionProcessor.java        |   4 +-
 .../api/processor/ActionEntityProcessor.java    |   4 +-
 .../ActionPrimitiveCollectionProcessor.java     |   4 +-
 .../api/processor/ActionPrimitiveProcessor.java |   4 +-
 .../api/processor/ActionVoidProcessor.java      |   4 +-
 .../server/api/processor/BatchProcessor.java    |   4 +-
 .../processor/ComplexCollectionProcessor.java   |   4 +-
 .../server/api/processor/ComplexProcessor.java  |   4 +-
 .../CountComplexCollectionProcessor.java        |   4 +-
 .../CountEntityCollectionProcessor.java         |   4 +-
 .../CountPrimitiveCollectionProcessor.java      |   4 +-
 .../server/api/processor/DefaultProcessor.java  |   4 +-
 .../server/api/processor/DeltaProcessor.java    |  30 +--
 .../processor/EntityCollectionProcessor.java    |   4 +-
 .../server/api/processor/EntityProcessor.java   |   6 +-
 .../server/api/processor/ErrorProcessor.java    |   6 +-
 .../api/processor/MediaEntityProcessor.java     |   4 +-
 .../server/api/processor/MetadataProcessor.java |   4 +-
 .../processor/PrimitiveCollectionProcessor.java |   4 +-
 .../api/processor/PrimitiveProcessor.java       |   6 +-
 .../api/processor/PrimitiveValueProcessor.java  |   6 +-
 .../olingo/server/api/processor/Processor.java  |   4 +-
 .../processor/ReferenceCollectionProcessor.java |   4 +-
 .../api/processor/ReferenceProcessor.java       |   4 +-
 .../api/processor/ServiceDocumentProcessor.java |   4 +-
 .../server/api/processor/package-info.java      |   5 +-
 .../serializer/BatchSerializerException.java    |   7 +-
 .../serializer/ComplexSerializerOptions.java    |  10 +-
 .../serializer/CustomContentTypeSupport.java    |   4 +-
 .../EntityCollectionSerializerOptions.java      |   8 +-
 .../api/serializer/EntitySerializerOptions.java |   8 +-
 .../api/serializer/FixedFormatSerializer.java   |   6 +-
 .../server/api/serializer/ODataSerializer.java  |  52 ++---
 .../serializer/PrimitiveSerializerOptions.java  |  10 +-
 .../PrimitiveValueSerializerOptions.java        |   4 +-
 .../ReferenceCollectionSerializerOptions.java   |  12 +-
 .../serializer/ReferenceSerializerOptions.java  |   4 +-
 .../api/serializer/RepresentationType.java      |   4 +-
 .../api/serializer/SerializerException.java     |   4 +-
 .../server/api/serializer/SerializerResult.java |   4 +-
 .../server/api/serializer/package-info.java     |   4 +-
 .../apache/olingo/server/api/uri/UriHelper.java |  10 +-
 .../apache/olingo/server/api/uri/UriInfo.java   |   6 +-
 .../olingo/server/api/uri/UriInfoAll.java       |   6 +-
 .../olingo/server/api/uri/UriInfoBatch.java     |   6 +-
 .../olingo/server/api/uri/UriInfoCrossjoin.java |   8 +-
 .../olingo/server/api/uri/UriInfoEntityId.java  |   4 +-
 .../olingo/server/api/uri/UriInfoKind.java      |   4 +-
 .../olingo/server/api/uri/UriInfoMetadata.java  |   4 +-
 .../olingo/server/api/uri/UriInfoResource.java  |   4 +-
 .../olingo/server/api/uri/UriInfoService.java   |   6 +-
 .../olingo/server/api/uri/UriParameter.java     |   4 +-
 .../olingo/server/api/uri/UriResource.java      |   4 +-
 .../server/api/uri/UriResourceAction.java       |   4 +-
 .../api/uri/UriResourceComplexProperty.java     |   4 +-
 .../olingo/server/api/uri/UriResourceCount.java |   6 +-
 .../server/api/uri/UriResourceEntitySet.java    |   4 +-
 .../server/api/uri/UriResourceFunction.java     |   4 +-
 .../olingo/server/api/uri/UriResourceIt.java    |   4 +-
 .../olingo/server/api/uri/UriResourceKind.java  |   4 +-
 .../server/api/uri/UriResourceLambdaAll.java    |   4 +-
 .../server/api/uri/UriResourceLambdaAny.java    |   4 +-
 .../api/uri/UriResourceLambdaVariable.java      |   4 +-
 .../server/api/uri/UriResourceNavigation.java   |   4 +-
 .../server/api/uri/UriResourcePartTyped.java    |   6 +-
 .../api/uri/UriResourcePrimitiveProperty.java   |   6 +-
 .../server/api/uri/UriResourceProperty.java     |   4 +-
 .../olingo/server/api/uri/UriResourceRef.java   |   6 +-
 .../olingo/server/api/uri/UriResourceRoot.java  |   6 +-
 .../server/api/uri/UriResourceSingleton.java    |   4 +-
 .../olingo/server/api/uri/UriResourceValue.java |   6 +-
 .../olingo/server/api/uri/package-info.java     |   6 +-
 .../api/uri/queryoption/AliasQueryOption.java   |   4 +-
 .../server/api/uri/queryoption/CountOption.java |   4 +-
 .../api/uri/queryoption/CustomQueryOption.java  |   6 +-
 .../server/api/uri/queryoption/ExpandItem.java  |   4 +-
 .../api/uri/queryoption/ExpandOption.java       |   4 +-
 .../api/uri/queryoption/FilterOption.java       |   4 +-
 .../api/uri/queryoption/FormatOption.java       |   4 +-
 .../server/api/uri/queryoption/IdOption.java    |   4 +-
 .../api/uri/queryoption/LevelsExpandOption.java |   4 +-
 .../server/api/uri/queryoption/OrderByItem.java |   4 +-
 .../api/uri/queryoption/OrderByOption.java      |   4 +-
 .../server/api/uri/queryoption/QueryOption.java |   4 +-
 .../api/uri/queryoption/SearchOption.java       |   4 +-
 .../server/api/uri/queryoption/SelectItem.java  |   4 +-
 .../api/uri/queryoption/SelectOption.java       |   4 +-
 .../server/api/uri/queryoption/SkipOption.java  |   4 +-
 .../api/uri/queryoption/SkipTokenOption.java    |   4 +-
 .../api/uri/queryoption/SystemQueryOption.java  |   4 +-
 .../uri/queryoption/SystemQueryOptionKind.java  |   4 +-
 .../server/api/uri/queryoption/TopOption.java   |   4 +-
 .../api/uri/queryoption/expression/Alias.java   |   4 +-
 .../api/uri/queryoption/expression/Binary.java  |   4 +-
 .../expression/BinaryOperatorKind.java          |   4 +-
 .../uri/queryoption/expression/Enumeration.java |   4 +-
 .../uri/queryoption/expression/Expression.java  |   6 +-
 .../expression/ExpressionVisitException.java    |   4 +-
 .../expression/ExpressionVisitor.java           |   4 +-
 .../uri/queryoption/expression/LambdaRef.java   |   4 +-
 .../api/uri/queryoption/expression/Literal.java |  10 +-
 .../api/uri/queryoption/expression/Member.java  |   4 +-
 .../api/uri/queryoption/expression/Method.java  |   4 +-
 .../uri/queryoption/expression/MethodKind.java  |   4 +-
 .../uri/queryoption/expression/TypeLiteral.java |   4 +-
 .../api/uri/queryoption/expression/Unary.java   |   4 +-
 .../expression/UnaryOperatorKind.java           |   4 +-
 .../expression/VisitableExpression.java         |   4 +-
 .../queryoption/expression/package-info.java    |   4 +-
 .../api/uri/queryoption/package-info.java       |   4 +-
 .../uri/queryoption/search/SearchBinary.java    |   4 +-
 .../search/SearchBinaryOperatorKind.java        |   4 +-
 .../queryoption/search/SearchExpression.java    |  18 +-
 .../api/uri/queryoption/search/SearchTerm.java  |   4 +-
 .../api/uri/queryoption/search/SearchUnary.java |   5 +-
 .../search/SearchUnaryOperatorKind.java         |   4 +-
 .../uri/queryoption/search/package-info.java    |   4 +-
 .../olingo/server/api/ODataRequestTest.java     |   4 +-
 .../server/api/TranslatedExceptionsTest.java    |   4 +-
 .../api/prefer/PreferencesAppliedTest.java      |  22 +-
 lib/server-core-ext/pom.xml                     |   2 +-
 lib/server-core/pom.xml                         |   2 +-
 .../olingo/server/core/ContentNegotiator.java   |  18 +-
 .../server/core/ContentNegotiatorException.java |   4 +-
 .../server/core/DefaultRedirectProcessor.java   |   4 +-
 .../olingo/server/core/ODataDispatcher.java     | 132 ++++++------
 .../server/core/ODataExceptionHelper.java       |  14 +-
 .../apache/olingo/server/core/ODataHandler.java |  18 +-
 .../server/core/ODataHandlerException.java      |   6 +-
 .../server/core/ODataHttpHandlerImpl.java       |   8 +-
 .../apache/olingo/server/core/ODataImpl.java    |  10 +-
 .../olingo/server/core/RedirectProcessor.java   |   4 +-
 .../olingo/server/core/ServiceMetadataImpl.java |   8 +-
 .../core/batchhandler/BatchFacadeImpl.java      |   8 +-
 .../server/core/batchhandler/BatchHandler.java  |   4 +-
 .../core/batchhandler/BatchPartHandler.java     |   6 +-
 .../BatchReferenceRewriter.java                 |   4 +-
 .../core/debug/DebugResponseHelperImpl.java     | 118 +++++------
 .../olingo/server/core/debug/DebugTab.java      |   5 +-
 .../olingo/server/core/debug/DebugTabBody.java  |  12 +-
 .../server/core/debug/DebugTabRequest.java      |  28 +--
 .../server/core/debug/DebugTabResponse.java     |  14 +-
 .../server/core/debug/DebugTabRuntime.java      |  34 +--
 .../server/core/debug/DebugTabServer.java       |  14 +-
 .../server/core/debug/DebugTabStacktrace.java   |  24 +--
 .../olingo/server/core/debug/DebugTabUri.java   |  49 +++--
 .../core/debug/ExpressionJsonVisitor.java       |  12 +-
 .../server/core/debug/ServerCoreDebugger.java   |  12 +-
 .../deserializer/DeserializerResultImpl.java    |   4 +-
 .../FixedFormatDeserializerImpl.java            |  10 +-
 .../core/deserializer/batch/BatchBodyPart.java  |   8 +-
 .../deserializer/batch/BatchChangeSetPart.java  |   4 +-
 .../deserializer/batch/BatchLineReader.java     |  44 ++--
 .../core/deserializer/batch/BatchParser.java    |  10 +-
 .../deserializer/batch/BatchParserCommon.java   |  14 +-
 .../core/deserializer/batch/BatchPart.java      |   4 +-
 .../deserializer/batch/BatchQueryOperation.java |   4 +-
 .../batch/BatchRequestTransformator.java        |  20 +-
 .../batch/BatchTransformatorCommon.java         |   8 +-
 .../server/core/deserializer/batch/Header.java  |   4 +-
 .../core/deserializer/batch/HeaderField.java    |   4 +-
 .../batch/HttpRequestStatusLine.java            |   6 +-
 .../server/core/deserializer/batch/Line.java    |   4 +-
 .../deserializer/helper/ExpandTreeBuilder.java  |   4 +-
 .../helper/ExpandTreeBuilderImpl.java           |   4 +-
 .../json/ODataJsonDeserializer.java             | 113 +++++-----
 .../deserializer/xml/ODataXmlDeserializer.java  |  34 +--
 .../olingo/server/core/etag/ETagHelperImpl.java |   8 +-
 .../server/core/etag/ETagInformation.java       |   4 +-
 .../olingo/server/core/etag/ETagParser.java     |  22 +-
 .../core/etag/PreconditionsValidator.java       |  14 +-
 .../olingo/server/core/prefer/PreferParser.java |  40 ++--
 .../server/core/prefer/PreferencesImpl.java     |  13 +-
 .../serializer/AbstractODataSerializer.java     |   7 +-
 .../serializer/AsyncResponseSerializer.java     |  18 +-
 .../serializer/BatchResponseSerializer.java     |  45 ++--
 .../serializer/FixedFormatSerializerImpl.java   |   6 +-
 .../core/serializer/SerializerResultImpl.java   |   4 +-
 .../serializer/json/ODataErrorSerializer.java   |   4 +-
 .../serializer/json/ODataJsonSerializer.java    |  94 ++++-----
 .../json/ServiceDocumentJsonSerializer.java     |  12 +-
 .../serializer/utils/CircleStreamBuffer.java    |   4 +-
 .../serializer/utils/ContentTypeHelper.java     |  16 +-
 .../serializer/utils/ContextURLBuilder.java     |  22 +-
 .../core/serializer/utils/ContextURLHelper.java |  17 +-
 .../serializer/utils/ExpandSelectHelper.java    |   4 +-
 .../xml/MetadataDocumentXmlSerializer.java      |  38 ++--
 .../core/serializer/xml/ODataXmlSerializer.java |  27 +--
 .../xml/ServiceDocumentXmlSerializer.java       |  12 +-
 .../olingo/server/core/uri/UriHelperImpl.java   |   8 +-
 .../olingo/server/core/uri/UriInfoImpl.java     |   4 +-
 .../server/core/uri/UriParameterImpl.java       |   4 +-
 .../server/core/uri/UriResourceActionImpl.java  |   8 +-
 .../uri/UriResourceComplexPropertyImpl.java     |   4 +-
 .../server/core/uri/UriResourceCountImpl.java   |   4 +-
 .../core/uri/UriResourceEntitySetImpl.java      |   6 +-
 .../core/uri/UriResourceFunctionImpl.java       |   6 +-
 .../olingo/server/core/uri/UriResourceImpl.java |   4 +-
 .../server/core/uri/UriResourceItImpl.java      |   4 +-
 .../core/uri/UriResourceLambdaAllImpl.java      |   4 +-
 .../core/uri/UriResourceLambdaAnyImpl.java      |   4 +-
 .../core/uri/UriResourceLambdaVarImpl.java      |   4 +-
 .../uri/UriResourceNavigationPropertyImpl.java  |   4 +-
 .../uri/UriResourcePrimitivePropertyImpl.java   |   4 +-
 .../server/core/uri/UriResourceRefImpl.java     |   4 +-
 .../server/core/uri/UriResourceRootImpl.java    |   4 +-
 .../core/uri/UriResourceSingletonImpl.java      |   4 +-
 .../uri/UriResourceStartingTypeFilterImpl.java  |   4 +-
 .../server/core/uri/UriResourceTypedImpl.java   |   5 +-
 .../server/core/uri/UriResourceValueImpl.java   |   4 +-
 .../core/uri/UriResourceWithKeysImpl.java       |   4 +-
 .../uri/parser/CheckFullContextListener.java    |  60 ++++++
 .../olingo/server/core/uri/parser/Parser.java   |   4 +-
 .../olingo/server/core/uri/parser/RawUri.java   |  46 +++++
 .../server/core/uri/parser/UriDecoder.java      |   4 +-
 .../core/uri/parser/UriParserException.java     |   4 +-
 .../uri/parser/UriParserSemanticException.java  |   8 +-
 .../uri/parser/UriParserSyntaxException.java    |   6 +-
 .../uri/parser/search/SearchBinaryImpl.java     |   7 +-
 .../uri/parser/search/SearchExpressionImpl.java |   4 +-
 .../core/uri/parser/search/SearchParser.java    |  60 +++---
 .../parser/search/SearchParserException.java    |   6 +-
 .../uri/parser/search/SearchQueryToken.java     |   9 +-
 .../core/uri/parser/search/SearchTermImpl.java  |   6 +-
 .../core/uri/parser/search/SearchTokenizer.java | 129 ++++++------
 .../parser/search/SearchTokenizerException.java |   6 +-
 .../core/uri/parser/search/SearchUnaryImpl.java |   6 +-
 .../uri/queryoption/AliasQueryOptionImpl.java   |   4 +-
 .../core/uri/queryoption/CountOptionImpl.java   |   4 +-
 .../uri/queryoption/CustomQueryOptionImpl.java  |   4 +-
 .../core/uri/queryoption/ExpandItemImpl.java    |   8 +-
 .../core/uri/queryoption/ExpandOptionImpl.java  |   4 +-
 .../core/uri/queryoption/FilterOptionImpl.java  |   4 +-
 .../core/uri/queryoption/FormatOptionImpl.java  |   4 +-
 .../core/uri/queryoption/IdOptionImpl.java      |   4 +-
 .../core/uri/queryoption/LevelsOptionImpl.java  |   4 +-
 .../core/uri/queryoption/OrderByItemImpl.java   |   4 +-
 .../core/uri/queryoption/OrderByOptionImpl.java |   4 +-
 .../core/uri/queryoption/QueryOptionImpl.java   |   4 +-
 .../core/uri/queryoption/SearchOptionImpl.java  |   6 +-
 .../core/uri/queryoption/SelectItemImpl.java    |   4 +-
 .../core/uri/queryoption/SelectOptionImpl.java  |   4 +-
 .../core/uri/queryoption/SkipOptionImpl.java    |   4 +-
 .../uri/queryoption/SkipTokenOptionImpl.java    |   4 +-
 .../uri/queryoption/SystemQueryOptionImpl.java  |   4 +-
 .../core/uri/queryoption/TopOptionImpl.java     |   4 +-
 .../uri/queryoption/expression/AliasImpl.java   |   4 +-
 .../uri/queryoption/expression/BinaryImpl.java  |   4 +-
 .../queryoption/expression/EnumerationImpl.java |   4 +-
 .../queryoption/expression/ExpressionImpl.java  |  25 +++
 .../queryoption/expression/LambdaRefImpl.java   |   4 +-
 .../uri/queryoption/expression/LiteralImpl.java |   4 +-
 .../uri/queryoption/expression/MemberImpl.java  |   4 +-
 .../uri/queryoption/expression/MethodImpl.java  |   4 +-
 .../queryoption/expression/TypeLiteralImpl.java |   4 +-
 .../uri/queryoption/expression/UnaryImpl.java   |   4 +-
 .../uri/validator/UriValidationException.java   |   7 +-
 .../server/core/uri/validator/UriValidator.java | 161 ++++++++-------
 .../server/core/ContentNegotiatorTest.java      |   8 +-
 .../olingo/server/core/ExceptionHelperTest.java |   6 +-
 .../server/core/ODataHttpHandlerImplTest.java   |   6 +-
 .../olingo/server/core/ODataImplTest.java       |   4 +-
 .../core/TranslatedExceptionSubclassesTest.java |   4 +-
 .../batchhandler/MockedBatchHandlerTest.java    |   4 +-
 .../server/core/debug/AbstractDebugTabTest.java |   8 +-
 .../server/core/debug/DebugTabBodyTest.java     |   4 +-
 .../server/core/debug/DebugTabRequestTest.java  |   4 +-
 .../server/core/debug/DebugTabResponseTest.java |   4 +-
 .../server/core/debug/DebugTabServerTest.java   |   6 +-
 .../core/debug/ServerCoreDebuggerTest.java      |   6 +-
 .../FixedFormatDeserializerTest.java            |   4 +-
 .../deserializer/batch/BatchLineReaderTest.java |   4 +-
 .../batch/BatchParserCommonTest.java            |   4 +-
 .../batch/BatchRequestParserTest.java           |  16 +-
 .../core/deserializer/batch/HeaderTest.java     |   4 +-
 .../batch/HttpRequestStatusLineTest.java        |   4 +-
 .../json/ODataJsonDeserializerBasicTest.java    |   4 +-
 .../olingo/server/core/etag/ETagHelperTest.java |   4 +-
 .../olingo/server/core/etag/ETagParserTest.java |   4 +-
 .../server/core/prefer/PreferencesTest.java     |   8 +-
 .../serializer/AsyncResponseSerializerTest.java |  18 +-
 .../serializer/BatchResponseSerializerTest.java |  20 +-
 .../serializer/FixedFormatSerializerTest.java   |   4 +-
 .../json/ServerErrorSerializerTest.java         |   8 +-
 .../utils/CircleStreamBufferTest.java           |   5 +-
 .../serializer/utils/ContextURLBuilderTest.java |   4 +-
 .../xml/MetadataDocumentXmlSerializerTest.java  | 205 ++++++++++---------
 .../xml/ServerErrorXmlSerializerTest.java       |  18 +-
 .../xml/ServiceDocumentXmlSerializerTest.java   |  24 +--
 .../search/SearchParserAndTokenizerTest.java    |  88 ++++----
 .../uri/parser/search/SearchParserTest.java     |  17 +-
 .../uri/parser/search/SearchTokenizerTest.java  | 112 +++++-----
 lib/server-tecsvc/pom.xml                       |   2 +-
 lib/server-test/pom.xml                         |   2 +-
 pom.xml                                         |   2 +-
 samples/client/pom.xml                          |   2 +-
 samples/osgi/server/pom.xml                     |   2 +-
 samples/pom.xml                                 |   2 +-
 samples/server/pom.xml                          |   2 +-
 samples/tutorials/p0_all/pom.xml                |   4 +-
 samples/tutorials/p10_media/pom.xml             |   4 +-
 samples/tutorials/p11_batch/pom.xml             |   4 +-
 samples/tutorials/p12_deep_insert/pom.xml       |   4 +-
 .../p12_deep_insert_preparation/pom.xml         |   4 +-
 samples/tutorials/p1_read/pom.xml               |   4 +-
 samples/tutorials/p2_readep/pom.xml             |   4 +-
 samples/tutorials/p3_write/pom.xml              |   4 +-
 samples/tutorials/p4_navigation/pom.xml         |   4 +-
 samples/tutorials/p5_queryoptions-tcs/pom.xml   |   4 +-
 samples/tutorials/p6_queryoptions-es/pom.xml    |   4 +-
 samples/tutorials/p7_queryoptions-o/pom.xml     |   4 +-
 samples/tutorials/p8_queryoptions-f/pom.xml     |   4 +-
 samples/tutorials/p9_action/pom.xml             |   4 +-
 samples/tutorials/p9_action_preparation/pom.xml |   4 +-
 samples/tutorials/pom.xml                       |   2 +-
 374 files changed, 2042 insertions(+), 1851 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-api/src/main/java/org/apache/olingo/server/api/uri/queryoption/ExpandItem.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/helper/ExpandTreeBuilder.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriHelperImpl.java
----------------------------------------------------------------------
diff --cc lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriHelperImpl.java
index 3bc5ad0,f1bd75e..b2917f4
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriHelperImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriHelperImpl.java
@@@ -108,11 -107,11 +108,11 @@@ public class UriHelperImpl implements U
      oDataPath = oDataPath.startsWith("/") ? oDataPath : "/" + oDataPath;
  
      try {
 -      final List<UriResource> uriResourceParts = new Parser().parseUri(oDataPath, null, null, edm)
 -          .getUriResourceParts();
 +      final List<UriResource> uriResourceParts =
 +          new Parser(edm, new ODataImpl()).parseUri(oDataPath, null, null).getUriResourceParts();
        if (uriResourceParts.size() == 1 && uriResourceParts.get(0).getKind() == UriResourceKind.entitySet) {
          final UriResourceEntitySet entityUriResource = (UriResourceEntitySet) uriResourceParts.get(0);
-         
+ 
          return entityUriResource;
        }
  

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceActionImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceComplexPropertyImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceCountImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceEntitySetImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceFunctionImpl.java
----------------------------------------------------------------------
diff --cc lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceFunctionImpl.java
index 7784062,42361e0..433ebb5
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceFunctionImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceFunctionImpl.java
@@@ -49,9 -46,15 +49,9 @@@ public class UriResourceFunctionImpl ex
    public List<UriParameter> getParameters() {
      return parameters == null ?
          Collections.<UriParameter> emptyList() :
-         Collections.unmodifiableList(parameters);
+           Collections.unmodifiableList(parameters);
    }
  
 -  public UriResourceFunctionImpl setParameters(final List<UriParameter> parameters) {
 -    isParameterListFilled = true;
 -    this.parameters = parameters;
 -    return this;
 -  }
 -
    @Override
    public EdmFunction getFunction() {
      return function;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceItImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAllImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaAnyImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceLambdaVarImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceNavigationPropertyImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourcePrimitivePropertyImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRefImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceRootImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceSingletonImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceStartingTypeFilterImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceTypedImpl.java
----------------------------------------------------------------------
diff --cc lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceTypedImpl.java
index 9930a7e,cdfa013..d44b9e6
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceTypedImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceTypedImpl.java
@@@ -40,10 -40,16 +40,11 @@@ public abstract class UriResourceTypedI
      return this;
    }
  
+   @Override
    public String getSegmentValue(final boolean includeFilters) {
 -    if (includeFilters) {
 -      if (typeFilter != null) {
 -        return getSegmentValue() + "/" + typeFilter.getFullQualifiedName().toString();
 -      } else {
 -        return getSegmentValue();
 -      }
 -    }
 -    return getSegmentValue();
 +    return includeFilters && typeFilter != null ?
 +        getSegmentValue() + "/" + typeFilter.getFullQualifiedName().getFullQualifiedNameAsString() :
 +        getSegmentValue();
    }
  
    @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceValueImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/Parser.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriDecoder.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParserSemanticException.java
----------------------------------------------------------------------
diff --cc lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParserSemanticException.java
index cc31e34,33dd321..8f5aa67
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParserSemanticException.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParserSemanticException.java
@@@ -79,14 -79,12 +79,14 @@@ public class UriParserSemanticExceptio
      /** parameter: not implemented part */
      NOT_IMPLEMENTED,
      /** parameter: namespace **/
-     NAMESPACE_NOT_ALLOWED_AT_FIRST_ELEMENT, 
+     NAMESPACE_NOT_ALLOWED_AT_FIRST_ELEMENT,
      /** parameter: complex parameter value */
-     COMPLEX_PARAMETER_IN_RESOURCE_PATH, 
+     COMPLEX_PARAMETER_IN_RESOURCE_PATH,
      /** parameter: function import name */
 -    FUNCTION_IMPORT_NOT_ALLOWED;
 -
 +    FUNCTION_IMPORT_NOT_ALLOWED, 
 +    /** parameters: left type, right type */
 +    TYPES_NOT_COMPATIBLE;
 +    
      @Override
      public String getKey() {
        return name();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/OrderByItemImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/AliasImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/BinaryImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/EnumerationImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LambdaRefImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/LiteralImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MemberImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/MethodImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/TypeLiteralImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/expression/UnaryImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidator.java
----------------------------------------------------------------------
diff --cc lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidator.java
index 3ccd97a,9ffe696..149d1fc
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidator.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidator.java
@@@ -222,7 -223,14 +222,6 @@@ public class UriValidator 
  
    private RowIndexForUriType rowIndexForResourceKind(final UriInfo uriInfo) throws UriValidationException {
      RowIndexForUriType idx;
 -
 -    final int nonComposableFunctionIndex = getIndexOfLastNonComposableFunction(uriInfo);
 -    if (nonComposableFunctionIndex != -1 && (uriInfo.getUriResourceParts().size() - 1) > nonComposableFunctionIndex) {
 -      throw new UriValidationException("Non composable functions followed by further resource parts are not allowed",
 -          UriValidationException.MessageKeys.UNALLOWED_RESOURCE_PATH,
 -          uriInfo.getUriResourceParts().get(nonComposableFunctionIndex + 1).getSegmentValue());
 -    }
--
      int lastPathSegmentIndex = uriInfo.getUriResourceParts().size() - 1;
      UriResource lastPathSegment = uriInfo.getUriResourceParts().get(lastPathSegmentIndex);
  

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/010642c5/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserAndTokenizerTest.java
----------------------------------------------------------------------
diff --cc lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserAndTokenizerTest.java
index f3e50a2,40c6200..9bb7d6f
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserAndTokenizerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserAndTokenizerTest.java
@@@ -119,71 -119,71 +119,71 @@@ public class SearchParserAndTokenizerTe
     */
    @Test
    public void searchQueryPhraseAbnfTestcases() throws Exception {
-     //    <TestCase Name="5.1.7 Search - simple phrase" Rule="queryOptions">
+     // <TestCase Name="5.1.7 Search - simple phrase" Rule="queryOptions">
      assertQuery("\"blue green\"").resultsIn("'blue green'");
-     //    <TestCase Name="5.1.7 Search - simple phrase" Rule="queryOptions">
+     // <TestCase Name="5.1.7 Search - simple phrase" Rule="queryOptions">
      assertQuery("\"blue green\"").resultsIn("'blue green'");
-     //    <TestCase Name="5.1.7 Search - phrase with escaped double-quote" Rule="queryOptions">
-     //    <Input>$search="blue\"green"</Input>
+     // <TestCase Name="5.1.7 Search - phrase with escaped double-quote" Rule="queryOptions">
+     // <Input>$search="blue\"green"</Input>
      assertQuery("\"blue\\\"green\"").resultsIn("'blue\"green'");
  
-     //    <TestCase Name="5.1.7 Search - phrase with escaped backslash" Rule="queryOptions">
-     //    <Input>$search="blue\\green"</Input>
+     // <TestCase Name="5.1.7 Search - phrase with escaped backslash" Rule="queryOptions">
+     // <Input>$search="blue\\green"</Input>
      assertQuery("\"blue\\\\green\"").resultsIn("'blue\\green'");
-     //    <TestCase Name="5.1.7 Search - phrase with unescaped double-quote" Rule="queryOptions" FailAt="14">
+     // <TestCase Name="5.1.7 Search - phrase with unescaped double-quote" Rule="queryOptions" FailAt="14">
      assertQuery("\"blue\"green\"").resultsIn(SearchParserException.MessageKeys.TOKENIZER_EXCEPTION);
-     //    <TestCase Name="5.1.7 Search - phrase with unescaped double-quote" Rule="queryOptions" FailAt="16">
+     // <TestCase Name="5.1.7 Search - phrase with unescaped double-quote" Rule="queryOptions" FailAt="16">
      assertQuery("\"blue\"green\"").resultsIn(SearchParserException.MessageKeys.TOKENIZER_EXCEPTION);
  
-     //    <TestCase Name="5.1.7 Search - implicit AND" Rule="queryOptions">
-     //    <Input>$search=blue green</Input>
+     // <TestCase Name="5.1.7 Search - implicit AND" Rule="queryOptions">
+     // <Input>$search=blue green</Input>
      assertQuery("blue green").resultsIn("{'blue' AND 'green'}");
-     //    <TestCase Name="5.1.7 Search - implicit AND, encoced" Rule="queryOptions">
+     // <TestCase Name="5.1.7 Search - implicit AND, encoced" Rule="queryOptions">
      assertQuery("blue green").resultsIn("{'blue' AND 'green'}");
  
-     //    <TestCase Name="5.1.7 Search - AND" Rule="queryOptions">
-     //    <Input>$search=blue AND green</Input>
+     // <TestCase Name="5.1.7 Search - AND" Rule="queryOptions">
+     // <Input>$search=blue AND green</Input>
      assertQuery("blue AND green").resultsIn("{'blue' AND 'green'}");
  
-     //    <TestCase Name="5.1.7 Search - OR" Rule="queryOptions">
-     //    <Input>$search=blue OR green</Input>
+     // <TestCase Name="5.1.7 Search - OR" Rule="queryOptions">
+     // <Input>$search=blue OR green</Input>
      assertQuery("blue OR green").resultsIn("{'blue' OR 'green'}");
  
-     //    <TestCase Name="5.1.7 Search - NOT" Rule="queryOptions">
-     //    <Input>$search=blue NOT green</Input>
+     // <TestCase Name="5.1.7 Search - NOT" Rule="queryOptions">
+     // <Input>$search=blue NOT green</Input>
      assertQuery("blue NOT green").resultsIn("{'blue' AND {NOT 'green'}}");
  
-     //    <TestCase Name="5.1.7 Search - only NOT" Rule="queryOptions">
-     //    <Input>$search=NOT blue</Input>
+     // <TestCase Name="5.1.7 Search - only NOT" Rule="queryOptions">
+     // <Input>$search=NOT blue</Input>
      assertQuery("NOT blue").resultsIn("{NOT 'blue'}");
  
-     //    <TestCase Name="5.1.7 Search - multiple" Rule="queryOptions">
-     //    <Input>$search=foo AND bar OR foo AND baz OR that AND bar OR that AND baz</Input>
+     // <TestCase Name="5.1.7 Search - multiple" Rule="queryOptions">
+     // <Input>$search=foo AND bar OR foo AND baz OR that AND bar OR that AND baz</Input>
      assertQuery("foo AND bar OR foo AND baz OR that AND bar OR that AND baz")
 -    .resultsIn("{{{{'foo' AND 'bar'} OR {'foo' AND 'baz'}} OR {'that' AND 'bar'}} OR {'that' AND 'baz'}}");
 +        .resultsIn("{{{{'foo' AND 'bar'} OR {'foo' AND 'baz'}} OR {'that' AND 'bar'}} OR {'that' AND 'baz'}}");
  
-     //    <TestCase Name="5.1.7 Search - multiple" Rule="queryOptions">
-     //    <Input>$search=(foo OR that) AND (bar OR baz)</Input>
+     // <TestCase Name="5.1.7 Search - multiple" Rule="queryOptions">
+     // <Input>$search=(foo OR that) AND (bar OR baz)</Input>
      assertQuery("(foo OR that) AND (bar OR baz)").resultsIn("{{'foo' OR 'that'} AND {'bar' OR 'baz'}}");
  
-     //    <TestCase Name="5.1.7 Search - grouping" Rule="queryOptions">
-     //    <Input>$search=foo AND (bar OR baz)</Input>
+     // <TestCase Name="5.1.7 Search - grouping" Rule="queryOptions">
+     // <Input>$search=foo AND (bar OR baz)</Input>
      assertQuery("foo AND (bar OR baz)").resultsIn("{'foo' AND {'bar' OR 'baz'}}");
  
-     //    <TestCase Name="5.1.7 Search - grouping" Rule="queryOptions">
-     //    <Input>$search=(foo AND bar) OR baz</Input>
+     // <TestCase Name="5.1.7 Search - grouping" Rule="queryOptions">
+     // <Input>$search=(foo AND bar) OR baz</Input>
      assertQuery("(foo AND bar) OR baz").resultsIn("{{'foo' AND 'bar'} OR 'baz'}");
  
-     //    <TestCase Name="5.1.7 Search - grouping" Rule="queryOptions">
-     //    <Input>$search=(NOT foo) OR baz</Input>
+     // <TestCase Name="5.1.7 Search - grouping" Rule="queryOptions">
+     // <Input>$search=(NOT foo) OR baz</Input>
      assertQuery("(NOT foo) OR baz").resultsIn("{{NOT 'foo'} OR 'baz'}");
  
-     //    <TestCase Name="5.1.7 Search - grouping" Rule="queryOptions">
-     //    <Input>$search=(NOT foo)</Input>
+     // <TestCase Name="5.1.7 Search - grouping" Rule="queryOptions">
+     // <Input>$search=(NOT foo)</Input>
      assertQuery("(NOT foo)").resultsIn("{NOT 'foo'}");
  
-     //    <TestCase Name="5.1.7 Search - on entity set" Rule="odataUri">
-     //    <Input>http://serviceRoot/Products?$search=blue</Input>
+     // <TestCase Name="5.1.7 Search - on entity set" Rule="odataUri">
+     // <Input>http://serviceRoot/Products?$search=blue</Input>
      assertQuery("blue").resultsIn("'blue'");
  
      // below cases can not be tested here
@@@ -198,13 -198,19 +198,19 @@@
    }
  
    private static class Validator {
 -    private boolean log;
      private final String searchQuery;
  
-     private Validator(String searchQuery) {
+     private Validator(final String searchQuery) {
        this.searchQuery = searchQuery;
      }
  
-     private void resultsIn(SearchParserException.MessageKey key) throws SearchTokenizerException {
+     private static Validator init(final String searchQuery) {
+       return new Validator(searchQuery);
+     }
+ 
+     private void resultsIn(final SearchParserException.MessageKey key)
+         throws SearchTokenizerException {
++
        try {
          resultsIn(searchQuery);
        } catch (SearchParserException e) {