[OLINGO-806] Minor clean-up

Signed-off-by: Michael Bolz <[email protected]>


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

Branch: refs/heads/master
Commit: 837c3565a12e8f290402f0f87a67525bbb3c0397
Parents: 17e4a3a
Author: Klaus Straubinger <[email protected]>
Authored: Fri Oct 23 16:11:10 2015 +0200
Committer: Michael Bolz <[email protected]>
Committed: Mon Oct 26 09:07:11 2015 +0100

----------------------------------------------------------------------
 .../olingo/fit/base/MetadataTestITCase.java     |  26 +-
 .../olingo/fit/base/OAuth2TestITCase.java       |  17 +-
 .../fit/tecsvc/client/AsyncSupportITCase.java   |   2 +-
 .../fit/tecsvc/client/ConditionalITCase.java    |   6 +-
 .../tecsvc/client/FilterSystemQueryITCase.java  |   4 +-
 .../apache/olingo/fit/util/StringHelper.java    |  15 +-
 .../apache/olingo/client/core/uri/URIUtils.java |   4 +-
 .../org/apache/olingo/client/core/JSONTest.java |   1 -
 .../commons/api/edm/provider/CsdlSchema.java    |   2 +-
 .../edm/provider/annotation/CsdlExpression.java |   6 +-
 .../annotation/CsdlLabeledElementReference.java |   2 +-
 .../core/edm/annotations/EdmRecordImplTest.java |   8 +-
 .../olingo/server/core/MetadataParser.java      |   2 -
 .../olingo/server/core/ServiceHandler.java      |   4 +-
 .../server/core/requests/DataRequest.java       |  11 +-
 .../olingo/server/core/MetadataParserTest.java  |   2 +-
 .../server/core/ServiceDispatcherTest.java      |  18 +-
 .../server/example/TripPinServiceTest.java      |  11 +-
 .../olingo/server/core/ServiceMetadataImpl.java |   5 +-
 .../core/serializer/xml/ODataXmlSerializer.java |   5 +-
 .../core/uri/UriResourceFunctionImpl.java       |  26 +-
 .../core/uri/UriResourceWithKeysImpl.java       |  18 +-
 .../core/uri/parser/UriParseTreeVisitor.java    |  24 +-
 .../uri/queryoption/AliasQueryOptionImpl.java   |   8 +-
 .../core/uri/queryoption/ExpandItemImpl.java    |  45 ++--
 .../core/uri/queryoption/ExpandOptionImpl.java  |   6 +-
 .../core/uri/queryoption/FilterOptionImpl.java  |   8 +-
 .../core/uri/queryoption/OrderByOptionImpl.java |   6 +-
 .../core/uri/queryoption/QueryOptionImpl.java   |   2 +-
 .../core/uri/queryoption/SelectOptionImpl.java  |   6 +-
 .../uri/queryoption/SystemQueryOptionImpl.java  |   2 +-
 .../olingo/server/core/ExceptionHelperTest.java | 109 ++++-----
 .../FixedFormatDeserializerTest.java            |   7 +-
 .../json/ODataJsonDeserializerBasicTest.java    |  36 +--
 .../serializer/FixedFormatSerializerTest.java   |   3 +-
 .../core/serializer/json/ComplexTypeHelper.java |  67 -----
 .../json/ODataJsonSerializerTest.java           |  72 ------
 .../json/ServerErrorSerializerTest.java         |  13 +-
 .../serializer/utils/ContextURLBuilderTest.java | 102 +++-----
 .../xml/MetadataDocumentXmlSerializerTest.java  | 212 +++++++---------
 .../xml/ServerErrorXmlSerializerTest.java       |  32 +--
 .../server/core/PreconditionsValidatorTest.java |   7 +-
 .../json/ODataJsonDeserializerEntityTest.java   |   9 +-
 .../xml/ODataXmlDeserializerTest.java           |  56 ++---
 .../serializer/xml/MetadataDocumentTest.java    |   1 -
 .../olingo/server/core/uri/UriInfoImplTest.java |  13 +-
 .../server/core/uri/UriResourceImplTest.java    | 178 +++++---------
 .../core/uri/antlr/TestFullResourcePath.java    |  69 ++++--
 .../core/uri/antlr/TestUriParserImpl.java       |  84 ++++---
 .../server/core/uri/parser/ParserTest.java      |   9 +-
 .../core/uri/queryoption/QueryOptionTest.java   |  61 ++---
 .../queryoption/expression/ExpressionTest.java  |   9 +-
 .../core/uri/testutil/EdmTechTestProvider.java  | 119 ---------
 .../core/uri/testutil/ExpandValidator.java      |  71 ++----
 .../core/uri/testutil/FilterTreeToText.java     |   4 +-
 .../core/uri/testutil/FilterValidator.java      | 179 +++++---------
 .../core/uri/testutil/ParseTreeToText.java      |  81 ------
 .../core/uri/testutil/ParserValidator.java      | 162 ------------
 .../core/uri/testutil/ResourceValidator.java    | 245 +++++++------------
 .../core/uri/testutil/TestUriValidator.java     |  61 ++---
 .../core/uri/validator/UriValidatorTest.java    |   8 +-
 61 files changed, 784 insertions(+), 1597 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java 
b/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java
index 5509cb2..74a66a8 100644
--- a/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java
@@ -30,6 +30,7 @@ import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmEnumType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.EdmTerm;
@@ -37,7 +38,7 @@ import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.TargetType;
 import org.apache.olingo.commons.api.edm.annotation.EdmRecord;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmBoolean;
+import 
org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.junit.Test;
 
 public class MetadataTestITCase extends AbstractTestITCase {
@@ -57,7 +58,7 @@ public class MetadataTestITCase extends AbstractTestITCase {
 
     final EdmTerm isBoss = edm.getTerm(new 
FullQualifiedName(edm.getSchemas().get(0).getNamespace(), "IsBoss"));
     assertNotNull(isBoss);
-    assertEquals(EdmBoolean.getInstance(), isBoss.getType());
+    
assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean), 
isBoss.getType());
 
     final EdmEntitySet orders = 
edm.getSchemas().get(0).getEntityContainer().getEntitySet("Orders");
     assertNotNull(orders);
@@ -102,10 +103,10 @@ public class MetadataTestITCase extends 
AbstractTestITCase {
     final EdmSchema coreAlias = edm.getSchema("Core");
     assertEquals(core, coreAlias);
 
-    final EdmTerm descriptionTerm = edm.getTerm(new 
FullQualifiedName("Core.Description"));
+    final EdmTerm descriptionTerm = edm.getTerm(new FullQualifiedName("Core", 
"Description"));
     assertNotNull(descriptionTerm);
     assertEquals(descriptionTerm.getFullQualifiedName(),
-        edm.getTerm(new 
FullQualifiedName("Org.OData.Core.V1.Description")).getFullQualifiedName());
+        edm.getTerm(new FullQualifiedName("Org.OData.Core.V1", 
"Description")).getFullQualifiedName());
 
     final EdmAnnotation description = core.getAnnotation(descriptionTerm, 
null);
     assertNotNull(description);
@@ -114,15 +115,16 @@ public class MetadataTestITCase extends 
AbstractTestITCase {
     assertEquals("Core terms needed to write vocabularies",
         description.getExpression().asConstant().getValueAsString());
 
-    final EdmTerm isLanguageDependent = edm.getTerm(new 
FullQualifiedName("Core.IsLanguageDependent"));
+    final EdmTerm isLanguageDependent = edm.getTerm(new 
FullQualifiedName("Core", "IsLanguageDependent"));
     assertNotNull(isLanguageDependent);
     
assertTrue(isLanguageDependent.getAppliesTo().contains(TargetType.Property));
     assertTrue(isLanguageDependent.getAppliesTo().contains(TargetType.Term));
-    assertEquals(edm.getTypeDefinition(new FullQualifiedName("Core.Tag")), 
isLanguageDependent.getType());
-    assertEquals(EdmBoolean.getInstance(), ((EdmTypeDefinition) 
isLanguageDependent.getType()).getUnderlyingType());
+    assertEquals(edm.getTypeDefinition(new FullQualifiedName("Core", "Tag")), 
isLanguageDependent.getType());
+    
assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean),
+        ((EdmTypeDefinition) 
isLanguageDependent.getType()).getUnderlyingType());
     assertNotNull(isLanguageDependent.getAnnotation(descriptionTerm, null));
 
-    final EdmTerm permissions = edm.getTerm(new 
FullQualifiedName("Core.Permissions"));
+    final EdmTerm permissions = edm.getTerm(new FullQualifiedName("Core", 
"Permissions"));
     assertNotNull(permissions);
     assertTrue(permissions.getType() instanceof EdmEnumType);
 
@@ -130,18 +132,18 @@ public class MetadataTestITCase extends 
AbstractTestITCase {
     final EdmSchema measures = edm.getSchema("UoM");
     assertNotNull(measures);
 
-    final EdmTerm scale = edm.getTerm(new FullQualifiedName("UoM.Scale"));
+    final EdmTerm scale = edm.getTerm(new FullQualifiedName("UoM", "Scale"));
     assertNotNull(scale);
 
     final EdmAnnotation requiresTypeInScale =
-        scale.getAnnotation(edm.getTerm(new 
FullQualifiedName("Core.RequiresType")), null);
+        scale.getAnnotation(edm.getTerm(new FullQualifiedName("Core", 
"RequiresType")), null);
     assertNotNull(requiresTypeInScale);
     assertEquals("Edm.Decimal", 
requiresTypeInScale.getExpression().asConstant().getValueAsString());
 
     // 3. capabilities
-    final EdmTerm deleteRestrictions = edm.getTerm(new 
FullQualifiedName("Capabilities.DeleteRestrictions"));
+    final EdmTerm deleteRestrictions = edm.getTerm(new 
FullQualifiedName("Capabilities", "DeleteRestrictions"));
     assertNotNull(deleteRestrictions);
     assertEquals(deleteRestrictions.getType().getFullQualifiedName(),
-        edm.getComplexType(new 
FullQualifiedName("Capabilities.DeleteRestrictionsType")).getFullQualifiedName());
+        edm.getComplexType(new FullQualifiedName("Capabilities", 
"DeleteRestrictionsType")).getFullQualifiedName());
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/fit/src/test/java/org/apache/olingo/fit/base/OAuth2TestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/base/OAuth2TestITCase.java 
b/fit/src/test/java/org/apache/olingo/fit/base/OAuth2TestITCase.java
index e5f2542..e624918 100644
--- a/fit/src/test/java/org/apache/olingo/fit/base/OAuth2TestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/base/OAuth2TestITCase.java
@@ -20,6 +20,7 @@ package org.apache.olingo.fit.base;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.net.URI;
 
@@ -103,26 +104,26 @@ public class OAuth2TestITCase extends AbstractTestITCase {
   public void testOAuth() {
     try {
       readAsAtom();
-    } catch (Exception e) {
-      System.out.println("failed for readAsAtom");
+    } catch (RuntimeException e) {
+      fail("failed for readAsAtom");
     }
 
     try {
       readAsFullJSON();
-    } catch (Exception e) {
-      System.out.println("failed for readAsFullJSON");
+    } catch (RuntimeException e) {
+      fail("failed for readAsFullJSON");
     }
 
     try {
       readAsJSON();
-    } catch (Exception e) {
-      System.out.println("failed for readAsJSON");
+    } catch (RuntimeException e) {
+      fail("failed for readAsJSON");
     }
 
     try {
       createAndDelete();
-    } catch (Exception e) {
-      System.out.println("failed for createAndDelete");
+    } catch (RuntimeException e) {
+      fail("failed for createAndDelete");
     }
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/AsyncSupportITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/AsyncSupportITCase.java 
b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/AsyncSupportITCase.java
index f6893d1..ed23cc3 100644
--- 
a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/AsyncSupportITCase.java
+++ 
b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/AsyncSupportITCase.java
@@ -157,7 +157,7 @@ public final class AsyncSupportITCase extends 
AbstractParamTecSvcITCase {
     URI uri = client.newURIBuilder(SERVICE_URI)
         .appendEntitySetSegment(ES_ALL_PRIM).build();
 
-    ClientEntity newEntity = getFactory().newEntity(new 
FullQualifiedName("olingo.odata.test1", "ETAllPrim"));
+    ClientEntity newEntity = getFactory().newEntity(new 
FullQualifiedName(SERVICE_NAMESPACE, "ETAllPrim"));
     
newEntity.getProperties().add(getFactory().newPrimitiveProperty("PropertyInt64",
             getFactory().newPrimitiveValueBuilder().buildInt32(42)));
     
newEntity.addLink(getFactory().newEntityNavigationLink(NAV_PROPERTY_ET_TWO_PRIM_ONE,

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ConditionalITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ConditionalITCase.java 
b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ConditionalITCase.java
index 851c235..ec4dd69 100644
--- 
a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ConditionalITCase.java
+++ 
b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ConditionalITCase.java
@@ -134,14 +134,14 @@ public class ConditionalITCase extends 
AbstractParamTecSvcITCase {
   public void updateWithoutIfMatch() throws Exception {
     executeAndExpectError(
         getClient().getCUDRequestFactory().getEntityUpdateRequest(
-            uriEntity, UpdateType.PATCH, getFactory().newEntity(new 
FullQualifiedName("olingo.Order"))),
+            uriEntity, UpdateType.PATCH, getFactory().newEntity(new 
FullQualifiedName(SERVICE_NAMESPACE, "Order"))),
         HttpStatusCode.PRECONDITION_REQUIRED);
   }
 
   @Test
   public void updateWithWrongIfMatch() throws Exception {
     ODataEntityUpdateRequest<ClientEntity> request = 
getClient().getCUDRequestFactory().getEntityUpdateRequest(
-        uriEntity, UpdateType.PATCH, getFactory().newEntity(new 
FullQualifiedName("olingo.Order")));
+        uriEntity, UpdateType.PATCH, getFactory().newEntity(new 
FullQualifiedName(SERVICE_NAMESPACE, "Order")));
     request.setIfMatch("W/\"1\"");
     executeAndExpectError(request, HttpStatusCode.PRECONDITION_FAILED);
   }
@@ -184,7 +184,7 @@ public class ConditionalITCase extends 
AbstractParamTecSvcITCase {
     final ODataDeleteResponse response = deleteRequest.execute();
 
     ODataEntityUpdateRequest<ClientEntity> request = 
getClient().getCUDRequestFactory().getEntityUpdateRequest(
-        uriEntity, UpdateType.PATCH, getFactory().newEntity(new 
FullQualifiedName("olingo.Order")));
+        uriEntity, UpdateType.PATCH, getFactory().newEntity(new 
FullQualifiedName(SERVICE_NAMESPACE, "Order")));
     request.setIfMatch(eTag);
     // This request has to be in the same session as the first in order to 
access the same data provider.
     request.addCustomHeader(HttpHeader.COOKIE, 
response.getHeader(HttpHeader.SET_COOKIE).iterator().next());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
 
b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
index aa22966..6fe2e5b 100644
--- 
a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
+++ 
b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
@@ -273,7 +273,7 @@ public class FilterSystemQueryITCase extends 
AbstractParamTecSvcITCase {
     // Create new Entries
     final String filterString = "PropertyString eq null";
 
-    ClientEntity entity = getFactory().newEntity(new 
FullQualifiedName("olingo.odata.test1.ETAllPrim"));
+    ClientEntity entity = getFactory().newEntity(new 
FullQualifiedName(SERVICE_NAMESPACE, "ETAllPrim"));
 
     entity.getProperties().add(
         getFactory().newPrimitiveProperty("PropertyInt16", 
getFactory().newPrimitiveValueBuilder()
@@ -903,7 +903,7 @@ public class FilterSystemQueryITCase extends 
AbstractParamTecSvcITCase {
     // is still there, but filled is null values (primitive types)
     // We define a filter, which returns all entry where 
PropertyCompComp/PropertyComp/PropertyInt16 is equals to 1
 
-    ClientEntity newEntity = getFactory().newEntity(new 
FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
+    ClientEntity newEntity = getFactory().newEntity(new 
FullQualifiedName(SERVICE_NAMESPACE, "ETKeyNav"));
     
newEntity.getProperties().add(getFactory().newComplexProperty("PropertyCompCompNav",
 null));
     
newEntity.getProperties().add(getFactory().newPrimitiveProperty("PropertyInt16",
         getFactory().newPrimitiveValueBuilder().buildInt16((short) 4)));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/fit/src/test/java/org/apache/olingo/fit/util/StringHelper.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/util/StringHelper.java 
b/fit/src/test/java/org/apache/olingo/fit/util/StringHelper.java
index 9f3edf3..6f58741 100644
--- a/fit/src/test/java/org/apache/olingo/fit/util/StringHelper.java
+++ b/fit/src/test/java/org/apache/olingo/fit/util/StringHelper.java
@@ -22,7 +22,6 @@ import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
 import java.io.StringReader;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.Charset;
@@ -55,10 +54,7 @@ public class StringHelper {
     }
 
     public int byteLength() {
-      if(data == null) {
-        return -1;
-      }
-      return data.length;
+      return data == null ? -1 : data.length;
     }
 
     public String asString() {
@@ -69,15 +65,6 @@ public class StringHelper {
       return new String(data, Charset.forName(charsetName));
     }
 
-    public Stream print(final OutputStream out) throws IOException {
-      out.write(data);
-      return this;
-    }
-
-    public Stream print() throws IOException {
-      return print(System.out);
-    }
-
     public String asStringWithLineSeparation(String separator) throws 
IOException {
       BufferedReader br = new BufferedReader(new StringReader(asString()));
       StringBuilder sb = new StringBuilder(br.readLine());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
----------------------------------------------------------------------
diff --git 
a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java 
b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
index 5d6c3fb..bf2405d 100644
--- 
a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
+++ 
b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
@@ -259,7 +259,9 @@ public final class URIUtils {
                                                                 ? 
quoteString((String) obj, singleQuoteEscape)
                                                                 : 
obj.toString();
       }
-    } catch (Exception e) {
+    } catch (final EdmPrimitiveTypeException e) {
+      value = obj.toString();
+    } catch (final UnsupportedEncodingException e) {
       value = obj.toString();
     }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/client-core/src/test/java/org/apache/olingo/client/core/JSONTest.java
----------------------------------------------------------------------
diff --git 
a/lib/client-core/src/test/java/org/apache/olingo/client/core/JSONTest.java 
b/lib/client-core/src/test/java/org/apache/olingo/client/core/JSONTest.java
index 11a99ed..9273229 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/JSONTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/JSONTest.java
@@ -145,7 +145,6 @@ public class JSONTest extends AbstractTest {
     final StringWriter writer = new StringWriter();
     getClient().getSerializer(contentType).write(writer, 
getClient().getDeserializer(contentType).toEntity(
         getClass().getResourceAsStream(filename + "." + 
getSuffix(contentType))).getPayload());
-    System.out.println(writer.toString());
     assertSimilar(filename + "." + getSuffix(contentType), writer.toString());
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
index 6068aa1..d601005 100644
--- 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
+++ 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
@@ -331,7 +331,7 @@ public class CsdlSchema extends CsdlAbstractEdmItem 
implements CsdlAnnotatable {
   
   /**
    * Sets a list of annotations
-   * @param annotations list of annotations
+   * @param annotationGroups list of annotations
    * @return this instance
    */
   public CsdlSchema setAnnotationsGroup(final List<CsdlAnnotations> 
annotationGroups) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/CsdlExpression.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/CsdlExpression.java
 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/CsdlExpression.java
index 6c9e88c..795e69b 100644
--- 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/CsdlExpression.java
+++ 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/CsdlExpression.java
@@ -33,7 +33,7 @@ public abstract class CsdlExpression extends 
CsdlAbstractEdmItem {
   }
 
   /**
-   * Casts the expression to {@link 
org.apache.olingo.commons.api.edm.annotation.CsdlConstantExpression}
+   * Casts the expression to {@link CsdlConstantExpression}.
    * @return Constant Expression
    */
   public CsdlConstantExpression asConstant() {
@@ -41,7 +41,7 @@ public abstract class CsdlExpression extends 
CsdlAbstractEdmItem {
   }
 
   /**
-   * Return true if the expression is dynamic
+   * Returns true if the expression is dynamic.
    * @return true if the expression is dynamic
    */
   public boolean isDynamic() {
@@ -49,7 +49,7 @@ public abstract class CsdlExpression extends 
CsdlAbstractEdmItem {
   }
 
   /**
-   * Cast the expression to {@link 
org.apache.olingo.commons.api.edm.annotation.CsdlDynamicExpression}
+   * Cast the expression to {@link CsdlDynamicExpression}.
    * @return Dynamic Expression
    */
   public CsdlDynamicExpression asDynamic() {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/CsdlLabeledElementReference.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/CsdlLabeledElementReference.java
 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/CsdlLabeledElementReference.java
index a309c49..c8ce8e9 100644
--- 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/CsdlLabeledElementReference.java
+++ 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/CsdlLabeledElementReference.java
@@ -20,7 +20,7 @@ package org.apache.olingo.commons.api.edm.provider.annotation;
 
 /**
  * The edm:LabeledElementReference expression returns the value of an
- * edm:LabeledElement (see {@link LabeledElement}) expression.
+ * edm:LabeledElement (see {@link CsdlLabeledElement}) expression.
  */
 public class CsdlLabeledElementReference extends CsdlDynamicExpression {
   private static final long serialVersionUID = -4793707024628773226L;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/annotations/EdmRecordImplTest.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/annotations/EdmRecordImplTest.java
 
b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/annotations/EdmRecordImplTest.java
index bdaca51..ddae8bc 100644
--- 
a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/annotations/EdmRecordImplTest.java
+++ 
b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/annotations/EdmRecordImplTest.java
@@ -79,7 +79,7 @@ public class EdmRecordImplTest extends AbstractAnnotationTest 
{
     CsdlRecord csdlRecord = new CsdlRecord();
     csdlRecord.setType("ns.et");
     Edm mock = mock(Edm.class);
-    when(mock.getEntityType(new 
FullQualifiedName("ns.et"))).thenReturn(mock(EdmEntityType.class));
+    when(mock.getEntityType(new FullQualifiedName("ns", 
"et"))).thenReturn(mock(EdmEntityType.class));
     List<CsdlPropertyValue> propertyValues = new 
ArrayList<CsdlPropertyValue>();
     propertyValues.add(new CsdlPropertyValue());
     csdlRecord.setPropertyValues(propertyValues);
@@ -106,7 +106,7 @@ public class EdmRecordImplTest extends 
AbstractAnnotationTest {
     CsdlRecord csdlRecord = new CsdlRecord();
     csdlRecord.setType("ns.ct");
     Edm mock = mock(Edm.class);
-    when(mock.getComplexType(new 
FullQualifiedName("ns.ct"))).thenReturn(mock(EdmComplexType.class));
+    when(mock.getComplexType(new FullQualifiedName("ns", 
"ct"))).thenReturn(mock(EdmComplexType.class));
     EdmExpression record = AbstractEdmExpression.getExpression(mock, 
csdlRecord);
 
     EdmDynamicExpression dynExp = assertDynamic(record);
@@ -137,7 +137,7 @@ public class EdmRecordImplTest extends 
AbstractAnnotationTest {
     }
 
     // Enum
-    when(edm.getEnumType(new 
FullQualifiedName("ns.enum"))).thenReturn(mock(EdmEnumType.class));
+    when(edm.getEnumType(new FullQualifiedName("ns", 
"enum"))).thenReturn(mock(EdmEnumType.class));
     exp = AbstractEdmExpression.getExpression(edm, new 
CsdlRecord().setType("ns.enum"));
     record = exp.asDynamic().asRecord();
     try {
@@ -147,7 +147,7 @@ public class EdmRecordImplTest extends 
AbstractAnnotationTest {
     }
 
     // Typedef
-    when(edm.getTypeDefinition(new 
FullQualifiedName("ns.typedef"))).thenReturn(mock(EdmTypeDefinition.class));
+    when(edm.getTypeDefinition(new FullQualifiedName("ns", 
"typedef"))).thenReturn(mock(EdmTypeDefinition.class));
     exp = AbstractEdmExpression.getExpression(edm, new 
CsdlRecord().setType("ns.typedef"));
     record = exp.asDynamic().asRecord();
     try {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
 
b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
index b1427d6..b5ffd4a 100644
--- 
a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
+++ 
b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
@@ -631,7 +631,6 @@ public class MetadataParser {
             element = event.asStartElement();
             if (element.getName().getLocalPart().equals(name)) {
               reader.nextEvent(); // advance cursor
-              // System.out.println("reading = "+names[i]);
               build(reader, element, t, name);
               hit = true;
             }
@@ -640,7 +639,6 @@ public class MetadataParser {
             EndElement e = event.asEndElement();
             if (e.getName().getLocalPart().equals(name)) {
               reader.nextEvent(); // advance cursor
-              // System.out.println("done reading = "+names[i]);
               hit = true;
             }
           }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceHandler.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceHandler.java
 
b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceHandler.java
index a223120..68043de 100644
--- 
a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceHandler.java
+++ 
b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceHandler.java
@@ -235,8 +235,8 @@ public interface ServiceHandler extends Processor {
   /**
    * Delete references (relationships) in an Entity
    * @param request
-   * @param deleteId; for collection valued navigation this will be non-null 
value; for single valued
-   * navigation property, this will be null.
+   * @param deleteId for collection valued navigation this will be non-null 
value;
+   *                 for single valued navigation property, this will be null
    * @param entityETag
    * @param response - always should be 204
    * @throws ODataLibraryException

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/DataRequest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/DataRequest.java
 
b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/DataRequest.java
index a14d21a..44c45bf 100644
--- 
a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/DataRequest.java
+++ 
b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/DataRequest.java
@@ -46,8 +46,6 @@ import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.ex.ODataRuntimeException;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.http.HttpHeader;
-import 
org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmStream;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataApplicationException;
 import org.apache.olingo.server.api.ODataLibraryException;
@@ -165,7 +163,7 @@ public class DataRequest extends ServiceRequest {
       return false;
     }
     EdmProperty property = 
((UriResourcePrimitiveProperty)this.uriResourceProperty).getProperty();
-    return (property.getType() instanceof EdmStream);
+    return property.getType() == 
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Stream);
   }
 
   public UriResourceProperty getUriResourceProperty() {
@@ -601,9 +599,10 @@ public class DataRequest extends ServiceRequest {
 
     @Override
     public ContentType getResponseContentType() throws 
ContentNegotiatorException {
-      RepresentationType valueRepresentationType = 
uriResourceProperty.getType() == EdmPrimitiveTypeFactory
-          .getInstance(EdmPrimitiveTypeKind.Binary) ? RepresentationType.BINARY
-          : RepresentationType.VALUE;
+      RepresentationType valueRepresentationType =
+          uriResourceProperty.getType() == 
odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Binary) ?
+              RepresentationType.BINARY :
+              RepresentationType.VALUE;
       return ContentNegotiator.doContentNegotiation(uriInfo.getFormatOption(), 
request,
           getCustomContentTypeSupport(), valueRepresentationType);
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
 
b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
index 1c2b28f..5092357 100644
--- 
a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
+++ 
b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
@@ -128,7 +128,7 @@ public class MetadataParserTest {
     CsdlProperty p = ct.getProperties().get(0);
     assertEquals("CountryRegion", p.getName());
     assertEquals("Edm.String", p.getType());
-    assertEquals(false, p.isNullable());
+    assertFalse(p.isNullable());
 
     ct = provider.getComplexType(new FullQualifiedName(NS, "Location"));
     assertNotNull(ct);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
 
b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
index 636a6b6..a7fc922 100644
--- 
a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
+++ 
b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.server.core;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.FileReader;
@@ -246,8 +248,8 @@ public class ServiceDispatcherTest {
         Mockito.verify(handler).read(arg1.capture(), arg2.capture());
 
         DataRequest request = arg1.getValue();
-        assertEquals(true, request.isPropertyRequest());
-        assertEquals(false, request.isPropertyComplex());
+        assertTrue(request.isPropertyRequest());
+        assertFalse(request.isPropertyComplex());
         assertEquals(1, 
request.getUriResourceEntitySet().getKeyPredicates().size());
         assertEquals("application/json;odata.metadata=minimal", 
request.getResponseContentType()
             .toContentTypeString());
@@ -266,8 +268,8 @@ public class ServiceDispatcherTest {
         Mockito.verify(handler).read(arg1.capture(), arg2.capture());
 
         DataRequest request = arg1.getValue();
-        assertEquals(true, request.isPropertyRequest());
-        assertEquals(true, request.isPropertyComplex());
+        assertTrue(request.isPropertyRequest());
+        assertTrue(request.isPropertyComplex());
         assertEquals(1, 
request.getUriResourceEntitySet().getKeyPredicates().size());
         assertEquals("application/json;odata.metadata=minimal", 
request.getResponseContentType()
             .toContentTypeString());
@@ -287,8 +289,8 @@ public class ServiceDispatcherTest {
         Mockito.verify(handler).read(arg1.capture(), arg2.capture());
 
         DataRequest request = arg1.getValue();
-        assertEquals(true, request.isPropertyRequest());
-        assertEquals(false, request.isPropertyComplex());
+        assertTrue(request.isPropertyRequest());
+        assertFalse(request.isPropertyComplex());
         assertEquals(1, 
request.getUriResourceEntitySet().getKeyPredicates().size());
         assertEquals("text/plain", 
request.getResponseContentType().toContentTypeString());
       }
@@ -307,8 +309,8 @@ public class ServiceDispatcherTest {
         Mockito.verify(handler).read(arg1.capture(), arg2.capture());
 
         DataRequest request = arg1.getValue();
-        assertEquals(true, request.isPropertyRequest());
-        assertEquals(false, request.isPropertyComplex());
+        assertTrue(request.isPropertyRequest());
+        assertFalse(request.isPropertyComplex());
         assertEquals(1, 
request.getUriResourceEntitySet().getKeyPredicates().size());
         assertEquals("text/plain", 
request.getResponseContentType().toContentTypeString());
       }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
 
b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
index b318f42..ef5376d 100644
--- 
a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
+++ 
b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
@@ -42,7 +42,6 @@ import org.apache.http.entity.ContentType;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.util.EntityUtils;
-import org.apache.olingo.commons.core.Encoder;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
@@ -283,8 +282,8 @@ public class TripPinServiceTest {
   public void testLambdaAny() throws Exception {
     // this is just testing to see the lamda expressions are going through the
     // framework, none of the system options are not implemented in example 
service
-    String query = "Friends/any(d:d/UserName eq 'foo')";
-    HttpResponse response = httpGET(baseURL + 
"/People?$filter="+Encoder.encode(query), 200);
+    String query = "Friends/any(d%3Ad/UserName%20eq%20'foo')";
+    HttpResponse response = httpGET(baseURL + "/People?$filter=" + query, 200);
     EntityUtils.consumeQuietly(response.getEntity());
   }
 
@@ -727,9 +726,9 @@ public class TripPinServiceTest {
   }
 
   @Test
-  public void testCrossJoin() throws Exception {
-    String editUrl = baseURL + "/$crossjoin(People,Airlines)?$filter="+
-        Encoder.encode("People/UserName eq Airlines/AirlineCode");
+  public void crossJoin() throws Exception {
+    String editUrl = baseURL + "/$crossjoin(People,Airlines)?$filter="
+        + "People/UserName%20eq%20Airlines/AirlineCode";
     HttpResponse response = httpGET(editUrl, 200);
     EntityUtils.consumeQuietly(response.getEntity());
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
index 4b24156..9fb080b 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
@@ -34,13 +34,14 @@ import 
org.apache.olingo.server.api.etag.ServiceMetadataETagSupport;
  */
 public class ServiceMetadataImpl implements ServiceMetadata {
 
-  private final EdmProviderImpl edm;
-  private final List<EdmxReference> references = new 
ArrayList<EdmxReference>();
+  private final Edm edm;
+  private final List<EdmxReference> references;
   private final ServiceMetadataETagSupport serviceMetadataETagSupport;
 
   public ServiceMetadataImpl(CsdlEdmProvider edmProvider, List<EdmxReference> 
references,
       ServiceMetadataETagSupport serviceMetadataETagSupport) {
     edm = new EdmProviderImpl(edmProvider);
+    this.references = new ArrayList<EdmxReference>();
     this.references.addAll(references);
     this.serviceMetadataETagSupport = serviceMetadataETagSupport;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java
index 3e77239..2af8ede 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializer.java
@@ -44,13 +44,14 @@ import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmStructuredType;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
 import org.apache.olingo.commons.api.ex.ODataErrorDetail;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmString;
+import 
org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.server.api.ODataServerError;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.serializer.ComplexSerializerOptions;
@@ -729,7 +730,7 @@ public class ODataXmlSerializer extends 
AbstractODataSerializer {
       final Boolean isUnicode, final XMLStreamWriter writer)
       throws EdmPrimitiveTypeException, XMLStreamException, 
SerializerException {
     if (property.isPrimitive()) {
-      if (!(type instanceof EdmString)) {
+      if (type != 
EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.String)) {
         writer.writeAttribute(METADATA, NS_METADATA, Constants.ATTR_TYPE,
             type.getKind() == EdmTypeKind.DEFINITION ?
                 "#" + 
type.getFullQualifiedName().getFullQualifiedNameAsString() :

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceFunctionImpl.java
----------------------------------------------------------------------
diff --git 
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
index 072230e..4cf1536 100644
--- 
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
@@ -19,6 +19,7 @@
 package org.apache.olingo.server.core.uri;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.olingo.commons.api.edm.EdmFunction;
@@ -33,7 +34,7 @@ import org.apache.olingo.server.api.uri.UriResourceKind;
  */
 public class UriResourceFunctionImpl extends UriResourceWithKeysImpl 
implements UriResourceFunction {
 
-  protected List<UriParameterImpl> parameters;
+  protected List<UriParameter> parameters;
   protected EdmFunction function;
   protected EdmFunctionImport functionImport;
   private boolean isParameterListFilled = false;
@@ -44,14 +45,12 @@ public class UriResourceFunctionImpl extends 
UriResourceWithKeysImpl implements
 
   @Override
   public List<UriParameter> getParameters() {
-    List<UriParameter> retList = new ArrayList<UriParameter>();
-    for (UriParameterImpl item : parameters) {
-      retList.add(item);
-    }
-    return retList;
+    return parameters == null ?
+        Collections.<UriParameter> emptyList() :
+        new ArrayList<UriParameter>(parameters);
   }
 
-  public UriResourceFunctionImpl setParameters(final List<UriParameterImpl> 
parameters) {
+  public UriResourceFunctionImpl setParameters(final List<UriParameter> 
parameters) {
     isParameterListFilled = true;
     this.parameters = parameters;
     return this;
@@ -73,11 +72,9 @@ public class UriResourceFunctionImpl extends 
UriResourceWithKeysImpl implements
   }
 
   public UriResourceFunctionImpl setFunctionImport(final EdmFunctionImport 
edmFI,
-      final List<UriParameterImpl> parameters) {
+      final List<UriParameter> parameters) {
     functionImport = edmFI;
-
     setParameters(parameters);
-
     return this;
   }
 
@@ -88,14 +85,11 @@ public class UriResourceFunctionImpl extends 
UriResourceWithKeysImpl implements
 
   @Override
   public boolean isCollection() {
-    if (keyPredicates != null) {
-      return false;
-    }
-    return function.getReturnType().isCollection();
+    return keyPredicates == null && function.getReturnType().isCollection();
   }
 
   @Override
-  public String getSegmentValue(){
+  public String getSegmentValue() {
     if (functionImport != null) {
       return functionImport.getName();
     } else if (function != null) {
@@ -103,7 +97,7 @@ public class UriResourceFunctionImpl extends 
UriResourceWithKeysImpl implements
     }
     return "";
   }
-  
+
   @Override
   public String toString() {
     return getSegmentValue();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java
index 2e7fdb5..54d62a1 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/UriResourceWithKeysImpl.java
@@ -19,10 +19,10 @@
 package org.apache.olingo.server.core.uri;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.olingo.commons.api.edm.EdmType;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.server.api.uri.UriParameter;
 import org.apache.olingo.server.api.uri.UriResourceKind;
 import org.apache.olingo.server.api.uri.UriResourcePartTyped;
@@ -30,7 +30,7 @@ import org.apache.olingo.server.api.uri.UriResourcePartTyped;
 public abstract class UriResourceWithKeysImpl extends UriResourceImpl 
implements UriResourcePartTyped {
 
   protected EdmType collectionTypeFilter = null;
-  protected List<UriParameterImpl> keyPredicates = null;
+  protected List<UriParameter> keyPredicates = null;
   protected EdmType entryTypeFilter = null;
 
   public UriResourceWithKeysImpl(final UriResourceKind kind) {
@@ -46,16 +46,12 @@ public abstract class UriResourceWithKeysImpl extends 
UriResourceImpl implements
   }
 
   public List<UriParameter> getKeyPredicates() {
-    List<UriParameter> retList = new ArrayList<UriParameter>();
-    if (keyPredicates != null) {
-      for (UriParameterImpl item : keyPredicates) {
-        retList.add(item);
-      }
-    }
-    return retList;
+    return keyPredicates == null ?
+        Collections.<UriParameter> emptyList() :
+        new ArrayList<UriParameter>(keyPredicates);
   }
 
-  public UriResourceWithKeysImpl setKeyPredicates(final List<UriParameterImpl> 
list) {
+  public UriResourceWithKeysImpl setKeyPredicates(final List<UriParameter> 
list) {
     keyPredicates = list;
     return this;
   }
@@ -100,7 +96,7 @@ public abstract class UriResourceWithKeysImpl extends 
UriResourceImpl implements
   }
 
   private String getFQN(final EdmType type) {
-    return new FullQualifiedName(type.getNamespace(), 
type.getName()).getFullQualifiedNameAsString();
+    return type.getFullQualifiedName().getFullQualifiedNameAsString();
   }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParseTreeVisitor.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParseTreeVisitor.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParseTreeVisitor.java
index 9adf5da..bc6a111 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParseTreeVisitor.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParseTreeVisitor.java
@@ -50,12 +50,14 @@ import 
org.apache.olingo.commons.api.ex.ODataRuntimeException;
 import 
org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.server.api.uri.UriInfoKind;
 import org.apache.olingo.server.api.uri.UriInfoResource;
+import org.apache.olingo.server.api.uri.UriParameter;
 import org.apache.olingo.server.api.uri.UriResource;
 import org.apache.olingo.server.api.uri.UriResourceEntitySet;
 import org.apache.olingo.server.api.uri.UriResourceFunction;
 import org.apache.olingo.server.api.uri.UriResourceNavigation;
 import org.apache.olingo.server.api.uri.UriResourcePartTyped;
 import org.apache.olingo.server.api.uri.UriResourceRoot;
+import org.apache.olingo.server.api.uri.queryoption.SelectItem;
 import 
org.apache.olingo.server.api.uri.queryoption.expression.BinaryOperatorKind;
 import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind;
 import 
org.apache.olingo.server.api.uri.queryoption.expression.UnaryOperatorKind;
@@ -373,7 +375,7 @@ public class UriParseTreeVisitor extends 
UriParserBaseVisitor<Object> {
         }
         context.contextReadingFunctionParameters = true;
         @SuppressWarnings("unchecked")
-        List<UriParameterImpl> parameters = (List<UriParameterImpl>) 
ctx.vlNVO.get(0).accept(this);
+        List<UriParameter> parameters = (List<UriParameter>) 
ctx.vlNVO.get(0).accept(this);
         context.contextReadingFunctionParameters = false;
 
         // mark parameters as consumed
@@ -384,7 +386,7 @@ public class UriParseTreeVisitor extends 
UriParserBaseVisitor<Object> {
 
         // collect parameter names
         List<String> names = new ArrayList<String>();
-        for (UriParameterImpl item : parameters) {
+        for (UriParameter item : parameters) {
           names.add(item.getName());
         }
 
@@ -672,12 +674,12 @@ public class UriParseTreeVisitor extends 
UriParserBaseVisitor<Object> {
 
       context.contextReadingFunctionParameters = true;
       @SuppressWarnings("unchecked")
-      List<UriParameterImpl> parameters = (List<UriParameterImpl>) 
ctx.vlNVO.get(0).accept(this);
+      List<UriParameter> parameters = (List<UriParameter>) 
ctx.vlNVO.get(0).accept(this);
       context.contextReadingFunctionParameters = false;
 
       // get names of function parameters
       List<String> names = new ArrayList<String>();
-      for (UriParameterImpl item : parameters) {
+      for (UriParameter item : parameters) {
         names.add(item.getName());
       }
 
@@ -1907,7 +1909,7 @@ public class UriParseTreeVisitor extends 
UriParserBaseVisitor<Object> {
         }
         
         @SuppressWarnings("unchecked")
-        List<UriParameterImpl> list = (List<UriParameterImpl>) 
ctx.vlNVO.get(0).accept(this);
+        List<UriParameter> list = (List<UriParameter>) 
ctx.vlNVO.get(0).accept(this);
         ((UriResourceWithKeysImpl) pathInfoSegment)
             .setKeyPredicates(list);
       } else {
@@ -2110,10 +2112,9 @@ public class UriParseTreeVisitor extends 
UriParserBaseVisitor<Object> {
 
   @Override
   public Object visitSelect(final SelectContext ctx) {
-    List<SelectItemImpl> selectItems = new ArrayList<SelectItemImpl>();
-
+    List<SelectItem> selectItems = new ArrayList<SelectItem>();
     for (SelectItemContext si : ctx.vlSI) {
-      selectItems.add((SelectItemImpl) si.accept(this));
+      selectItems.add((SelectItem) si.accept(this));
     }
 
     return new 
SelectOptionImpl().setSelectItems(selectItems).setText(ctx.children.get(2).getText());
@@ -2121,10 +2122,9 @@ public class UriParseTreeVisitor extends 
UriParserBaseVisitor<Object> {
 
   @Override
   public Object visitSelectEOF(final SelectEOFContext ctx) {
-    List<SelectItemImpl> selectItems = new ArrayList<SelectItemImpl>();
-
+    List<SelectItem> selectItems = new ArrayList<SelectItem>();
     for (SelectItemContext si : ctx.vlSI) {
-      selectItems.add((SelectItemImpl) si.accept(this));
+      selectItems.add((SelectItem) si.accept(this));
     }
 
     return new 
SelectOptionImpl().setSelectItems(selectItems).setText(ctx.getText());
@@ -2345,7 +2345,7 @@ public class UriParseTreeVisitor extends 
UriParserBaseVisitor<Object> {
         prevType = getTypeInformation(last).type;
       }
 
-      FullQualifiedName finalTypeName = new 
FullQualifiedName(prevType.getNamespace(), prevType.getName());
+      final FullQualifiedName finalTypeName = prevType.getFullQualifiedName();
 
       // check for action
       EdmAction action = edm.getBoundAction(fullName, finalTypeName, null);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/AliasQueryOptionImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/AliasQueryOptionImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/AliasQueryOptionImpl.java
index fd971a2..a4df652 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/AliasQueryOptionImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/AliasQueryOptionImpl.java
@@ -19,18 +19,18 @@
 package org.apache.olingo.server.core.uri.queryoption;
 
 import org.apache.olingo.server.api.uri.queryoption.AliasQueryOption;
-import org.apache.olingo.server.core.uri.queryoption.expression.ExpressionImpl;
+import org.apache.olingo.server.api.uri.queryoption.expression.Expression;
 
 public class AliasQueryOptionImpl extends QueryOptionImpl implements 
AliasQueryOption {
 
-  private ExpressionImpl aliasValue;
+  private Expression aliasValue;
 
   @Override
-  public ExpressionImpl getValue() {
+  public Expression getValue() {
     return aliasValue;
   }
 
-  public AliasQueryOptionImpl setAliasValue(final ExpressionImpl aliasValue) {
+  public AliasQueryOption setAliasValue(final Expression aliasValue) {
     this.aliasValue = aliasValue;
     return this;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandItemImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandItemImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandItemImpl.java
index 8ff22b0..fb1a84e 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandItemImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandItemImpl.java
@@ -53,50 +53,49 @@ public class ExpandItemImpl implements ExpandItem {
   private boolean isRef;
   private EdmType startTypeFilter;
 
-  public ExpandItemImpl setSystemQueryOption(final SystemQueryOptionImpl 
sysItem) {
+  public ExpandItemImpl setSystemQueryOption(final SystemQueryOption sysItem) {
 
-    if (sysItem instanceof ExpandOptionImpl) {
+    if (sysItem instanceof ExpandOption) {
       validateDoubleSystemQueryOption(expandOption, sysItem);
-      expandOption = (ExpandOptionImpl) sysItem;
-    } else if (sysItem instanceof FilterOptionImpl) {
+      expandOption = (ExpandOption) sysItem;
+    } else if (sysItem instanceof FilterOption) {
       validateDoubleSystemQueryOption(filterOption, sysItem);
-      filterOption = (FilterOptionImpl) sysItem;
-    } else if (sysItem instanceof CountOptionImpl) {
+      filterOption = (FilterOption) sysItem;
+    } else if (sysItem instanceof CountOption) {
       validateDoubleSystemQueryOption(inlineCountOption, sysItem);
-      inlineCountOption = (CountOptionImpl) sysItem;
-    } else if (sysItem instanceof OrderByOptionImpl) {
+      inlineCountOption = (CountOption) sysItem;
+    } else if (sysItem instanceof OrderByOption) {
       validateDoubleSystemQueryOption(orderByOption, sysItem);
-      orderByOption = (OrderByOptionImpl) sysItem;
-    } else if (sysItem instanceof SearchOptionImpl) {
+      orderByOption = (OrderByOption) sysItem;
+    } else if (sysItem instanceof SearchOption) {
       validateDoubleSystemQueryOption(searchOption, sysItem);
-      searchOption = (SearchOptionImpl) sysItem;
-    } else if (sysItem instanceof SelectOptionImpl) {
+      searchOption = (SearchOption) sysItem;
+    } else if (sysItem instanceof SelectOption) {
       validateDoubleSystemQueryOption(selectOption, sysItem);
-      selectOption = (SelectOptionImpl) sysItem;
-    } else if (sysItem instanceof SkipOptionImpl) {
+      selectOption = (SelectOption) sysItem;
+    } else if (sysItem instanceof SkipOption) {
       validateDoubleSystemQueryOption(skipOption, sysItem);
-      skipOption = (SkipOptionImpl) sysItem;
-    } else if (sysItem instanceof TopOptionImpl) {
+      skipOption = (SkipOption) sysItem;
+    } else if (sysItem instanceof TopOption) {
       validateDoubleSystemQueryOption(topOption, sysItem);
-      topOption = (TopOptionImpl) sysItem;
+      topOption = (TopOption) sysItem;
     } else if (sysItem instanceof LevelsExpandOption) {
-      if(levelsExpandOption != null) {
+      if (levelsExpandOption != null) {
         throw new ODataRuntimeException("$levels"); 
       }
       levelsExpandOption = (LevelsExpandOption) sysItem;
     }
     return this;
   }
-  
+
   private void validateDoubleSystemQueryOption(final SystemQueryOption 
oldOption, final SystemQueryOption newOption) {
-    if(oldOption != null) {
+    if (oldOption != null) {
       throw new ODataRuntimeException(newOption.getName()); 
     }
   }
-  
-  public ExpandItemImpl setSystemQueryOptions(final 
List<SystemQueryOptionImpl> list) {
 
-    for (SystemQueryOptionImpl item : list) {
+  public ExpandItemImpl setSystemQueryOptions(final List<SystemQueryOption> 
list) {
+    for (SystemQueryOption item : list) {
       setSystemQueryOption(item);
     }
     return this;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandOptionImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandOptionImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandOptionImpl.java
index 6cedc15..1e1542e 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandOptionImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/ExpandOptionImpl.java
@@ -27,20 +27,20 @@ import 
org.apache.olingo.server.api.uri.queryoption.SystemQueryOptionKind;
 
 public class ExpandOptionImpl extends SystemQueryOptionImpl implements 
ExpandOption {
 
-  List<ExpandItemImpl> expandItems = new ArrayList<ExpandItemImpl>();
+  List<ExpandItem> expandItems = new ArrayList<ExpandItem>();
 
   public ExpandOptionImpl() {
     setKind(SystemQueryOptionKind.EXPAND);
   }
 
-  public void addExpandItem(final ExpandItemImpl expandItem) {
+  public void addExpandItem(final ExpandItem expandItem) {
     expandItems.add(expandItem);
   }
 
   @Override
   public List<ExpandItem> getExpandItems() {
     List<ExpandItem> retList = new ArrayList<ExpandItem>();
-    for (ExpandItemImpl item : expandItems) {
+    for (ExpandItem item : expandItems) {
       retList.add(item);
     }
     return retList;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/FilterOptionImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/FilterOptionImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/FilterOptionImpl.java
index 8f0b0be..50e8c46 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/FilterOptionImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/FilterOptionImpl.java
@@ -20,23 +20,23 @@ package org.apache.olingo.server.core.uri.queryoption;
 
 import org.apache.olingo.server.api.uri.queryoption.FilterOption;
 import org.apache.olingo.server.api.uri.queryoption.SystemQueryOptionKind;
-import org.apache.olingo.server.core.uri.queryoption.expression.ExpressionImpl;
+import org.apache.olingo.server.api.uri.queryoption.expression.Expression;
 
 public class FilterOptionImpl extends SystemQueryOptionImpl implements 
FilterOption {
 
-  private ExpressionImpl expression;
+  private Expression expression;
 
   public FilterOptionImpl() {
     setKind(SystemQueryOptionKind.FILTER);
   }
 
-  public FilterOptionImpl setExpression(final ExpressionImpl expression) {
+  public FilterOptionImpl setExpression(final Expression expression) {
     this.expression = expression;
     return this;
   }
 
   @Override
-  public ExpressionImpl getExpression() {
+  public Expression getExpression() {
     return expression;
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/OrderByOptionImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/OrderByOptionImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/OrderByOptionImpl.java
index a278682..53f7225 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/OrderByOptionImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/OrderByOptionImpl.java
@@ -27,7 +27,7 @@ import 
org.apache.olingo.server.api.uri.queryoption.SystemQueryOptionKind;
 
 public class OrderByOptionImpl extends SystemQueryOptionImpl implements 
OrderByOption {
 
-  private List<OrderByItemImpl> orders = new ArrayList<OrderByItemImpl>();
+  private List<OrderByItem> orders = new ArrayList<OrderByItem>();
 
   public OrderByOptionImpl() {
     setKind(SystemQueryOptionKind.ORDERBY);
@@ -36,13 +36,13 @@ public class OrderByOptionImpl extends 
SystemQueryOptionImpl implements OrderByO
   @Override
   public List<OrderByItem> getOrders() {
     List<OrderByItem> retList = new ArrayList<OrderByItem>();
-    for (OrderByItemImpl item : orders) {
+    for (OrderByItem item : orders) {
       retList.add(item);
     }
     return retList;
   }
 
-  public OrderByOptionImpl addOrder(final OrderByItemImpl order) {
+  public OrderByOptionImpl addOrder(final OrderByItem order) {
     orders.add(order);
     return this;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionImpl.java
index 1239cc6..ac3f721 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionImpl.java
@@ -20,7 +20,7 @@ package org.apache.olingo.server.core.uri.queryoption;
 
 import org.apache.olingo.server.api.uri.queryoption.QueryOption;
 
-public class QueryOptionImpl implements QueryOption {
+public abstract class QueryOptionImpl implements QueryOption {
   private String name;
   private String text;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/SelectOptionImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/SelectOptionImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/SelectOptionImpl.java
index b7ead9c..a9caa47 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/SelectOptionImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/SelectOptionImpl.java
@@ -27,13 +27,13 @@ import 
org.apache.olingo.server.api.uri.queryoption.SystemQueryOptionKind;
 
 public class SelectOptionImpl extends SystemQueryOptionImpl implements 
SelectOption {
 
-  private List<SelectItemImpl> selectItems;
+  private List<SelectItem> selectItems;
 
   public SelectOptionImpl() {
     setKind(SystemQueryOptionKind.SELECT);
   }
 
-  public SelectOptionImpl setSelectItems(final List<SelectItemImpl> 
selectItems) {
+  public SelectOptionImpl setSelectItems(final List<SelectItem> selectItems) {
     this.selectItems = selectItems;
     return this;
   }
@@ -41,7 +41,7 @@ public class SelectOptionImpl extends SystemQueryOptionImpl 
implements SelectOpt
   @Override
   public List<SelectItem> getSelectItems() {
     List<SelectItem> retList = new ArrayList<SelectItem>();
-    for (SelectItemImpl item : selectItems) {
+    for (SelectItem item : selectItems) {
       retList.add(item);
     }
     return retList;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/SystemQueryOptionImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/SystemQueryOptionImpl.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/SystemQueryOptionImpl.java
index 99d94fd..8ead93e 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/SystemQueryOptionImpl.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/queryoption/SystemQueryOptionImpl.java
@@ -21,7 +21,7 @@ package org.apache.olingo.server.core.uri.queryoption;
 import org.apache.olingo.server.api.uri.queryoption.SystemQueryOption;
 import org.apache.olingo.server.api.uri.queryoption.SystemQueryOptionKind;
 
-public class SystemQueryOptionImpl extends QueryOptionImpl implements 
SystemQueryOption {
+public abstract class SystemQueryOptionImpl extends QueryOptionImpl implements 
SystemQueryOption {
 
   private SystemQueryOptionKind kind;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/ExceptionHelperTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/ExceptionHelperTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/ExceptionHelperTest.java
index 8b3a853..b3d59da 100644
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/ExceptionHelperTest.java
+++ 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/ExceptionHelperTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.fail;
 
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.server.api.ODataLibraryException.MessageKey;
+import org.apache.olingo.server.api.ODataLibraryException;
 import org.apache.olingo.server.api.ODataServerError;
 import org.apache.olingo.server.api.deserializer.DeserializerException;
 import org.apache.olingo.server.api.etag.PreconditionException;
@@ -36,102 +37,78 @@ public class ExceptionHelperTest {
 
   @Test
   public void withRuntimeException() {
-    try {
-      throw new NullPointerException();
-    } catch (NullPointerException e) {
-      ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e);
-      assertEquals(HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), 
serverError.getStatusCode());
-      assertEquals("OData Library: An exception without message text was 
thrown.", serverError.getMessage());
-      assertEquals(e, serverError.getException());
-    }
+    final Exception e = new NullPointerException();
+    ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e);
+    assertEquals(HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), 
serverError.getStatusCode());
+    assertEquals("OData Library: An exception without message text was 
thrown.", serverError.getMessage());
+    assertEquals(e, serverError.getException());
   }
 
   @Test
   public void withRuntimeExceptionAndText() {
-    try {
-      throw new NullPointerException("Text");
-    } catch (NullPointerException e) {
-      ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e);
-      assertEquals(HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), 
serverError.getStatusCode());
-      assertEquals("Text", serverError.getMessage());
-      assertEquals(e, serverError.getException());
-    }
+    final Exception e = new NullPointerException("Text");
+    ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e);
+    assertEquals(HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), 
serverError.getStatusCode());
+    assertEquals("Text", serverError.getMessage());
+    assertEquals(e, serverError.getException());
   }
 
   @Test
-  public void uriValidatorExceptionMustLeadTo400() {
+  public void uriValidatorExceptionMustLeadToBadRequest() {
     for (MessageKey key : UriValidationException.MessageKeys.values()) {
-      try {
-        throw new UriValidationException(DEV_MSG, key);
-      } catch (UriValidationException e) {
-        ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
-        assertEquals("FailedKey: " + e.getMessageKey().getKey(), 
HttpStatusCode.BAD_REQUEST.getStatusCode(),
-            serverError.getStatusCode());
-      }
+      final UriValidationException e = new UriValidationException(DEV_MSG, 
key);
+      ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
+      checkStatusCode(serverError, HttpStatusCode.BAD_REQUEST, e);
     }
   }
 
   @Test
-  public void deserializerExceptionMustLeadTo400() {
+  public void deserializerExceptionMustLeadToBadRequest() {
     for (MessageKey key : DeserializerException.MessageKeys.values()) {
-      try {
-        throw new DeserializerException(DEV_MSG, key);
-      } catch (DeserializerException e) {
-        ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
-        assertEquals("FailedKey: " + e.getMessageKey().getKey(), 
HttpStatusCode.BAD_REQUEST.getStatusCode(),
-            serverError.getStatusCode());
-      }
+      final DeserializerException e = new DeserializerException(DEV_MSG, key);
+      ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
+      checkStatusCode(serverError, HttpStatusCode.BAD_REQUEST, e);
     }
   }
 
   @Test
-  public void serializerExceptionMustLeadTo400() {
+  public void serializerExceptionMustLeadToBadRequest() {
     for (MessageKey key : SerializerException.MessageKeys.values()) {
-      try {
-        throw new SerializerException(DEV_MSG, key);
-      } catch (SerializerException e) {
-        ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
-        assertEquals("FailedKey: " + e.getMessageKey().getKey(), 
HttpStatusCode.BAD_REQUEST.getStatusCode(),
-            serverError.getStatusCode());
-      }
+      final SerializerException e = new SerializerException(DEV_MSG, key);
+      ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
+      checkStatusCode(serverError, HttpStatusCode.BAD_REQUEST, e);
     }
   }
 
   @Test
-  public void contentNegotiatorExceptionMustLeadTo406() {
+  public void contentNegotiatorExceptionMustLeadToNotAcceptable() {
     for (MessageKey key : ContentNegotiatorException.MessageKeys.values()) {
-      try {
-        throw new ContentNegotiatorException(DEV_MSG, key);
-      } catch (ContentNegotiatorException e) {
-        ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
-        assertEquals("FailedKey: " + e.getMessageKey().getKey(), 
HttpStatusCode.NOT_ACCEPTABLE.getStatusCode(),
-            serverError.getStatusCode());
-      }
+      final ContentNegotiatorException e = new 
ContentNegotiatorException(DEV_MSG, key);
+      ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
+      checkStatusCode(serverError, HttpStatusCode.NOT_ACCEPTABLE, e);
     }
   }
 
   @Test
   public void preconditionRequiredTesting() {
     for (MessageKey key : PreconditionException.MessageKeys.values()) {
-      try {
-        throw new PreconditionException(DEV_MSG, key);
-      } catch (PreconditionException e) {
-        if 
(e.getMessageKey().equals(PreconditionException.MessageKeys.FAILED)) {
-          ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
-          assertEquals("FailedKey: " + e.getMessageKey().getKey(), 
HttpStatusCode.PRECONDITION_FAILED.getStatusCode(),
-              serverError.getStatusCode());
-        } else if 
(e.getMessageKey().equals(PreconditionException.MessageKeys.MISSING_HEADER)) {
-          ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
-          assertEquals("FailedKey: " + e.getMessageKey().getKey(), 
HttpStatusCode.PRECONDITION_REQUIRED.getStatusCode(),
-              serverError.getStatusCode());
-        } else if 
(e.getMessageKey().equals(PreconditionException.MessageKeys.INVALID_URI)) {
-          ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
-          assertEquals("FailedKey: " + e.getMessageKey().getKey(), 
HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(),
-              serverError.getStatusCode());
-        } else {
-          fail("Unexpected message key for: " + e.getClass().getName());
-        }
+      final PreconditionException e = new PreconditionException(DEV_MSG, key);
+      ODataServerError serverError = 
ODataExceptionHelper.createServerErrorObject(e, null);
+      if (e.getMessageKey().equals(PreconditionException.MessageKeys.FAILED)) {
+        checkStatusCode(serverError, HttpStatusCode.PRECONDITION_FAILED, e);
+      } else if 
(e.getMessageKey().equals(PreconditionException.MessageKeys.MISSING_HEADER)) {
+        checkStatusCode(serverError, HttpStatusCode.PRECONDITION_REQUIRED, e);
+      } else if 
(e.getMessageKey().equals(PreconditionException.MessageKeys.INVALID_URI)) {
+        checkStatusCode(serverError, HttpStatusCode.INTERNAL_SERVER_ERROR, e);
+      } else {
+        fail("Unexpected message key for: " + e.getClass().getName());
       }
     }
   }
+
+  private void checkStatusCode(final ODataServerError serverError, final 
HttpStatusCode statusCode,
+      final ODataLibraryException exception) {
+    assertEquals("FailedKey: " + exception.getMessageKey().getKey(),
+        serverError.getStatusCode(), statusCode.getStatusCode());
+  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/FixedFormatDeserializerTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/FixedFormatDeserializerTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/FixedFormatDeserializerTest.java
index 7f061ee..e1d129f 100644
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/FixedFormatDeserializerTest.java
+++ 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/FixedFormatDeserializerTest.java
@@ -26,18 +26,13 @@ import 
org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.deserializer.FixedFormatDeserializer;
-import org.apache.olingo.server.api.serializer.SerializerException;
 import org.junit.Test;
 import org.mockito.Mockito;
 
 public class FixedFormatDeserializerTest {
 
   private static final OData oData = OData.newInstance();
-  private final FixedFormatDeserializer deserializer;
-
-  public FixedFormatDeserializerTest() throws SerializerException {
-    deserializer = oData.createFixedFormatDeserializer();
-  }
+  private final FixedFormatDeserializer deserializer = 
oData.createFixedFormatDeserializer();
 
   @Test
   public void binary() throws Exception {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerBasicTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerBasicTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerBasicTest.java
index ae4b3da..9e22c6c 100644
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerBasicTest.java
+++ 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerBasicTest.java
@@ -19,7 +19,6 @@
 package org.apache.olingo.server.core.deserializer.json;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
@@ -34,23 +33,14 @@ import org.junit.Test;
 
 public class ODataJsonDeserializerBasicTest {
 
-  @Test
-  public void checkSupportedJsonFormats() throws Exception {
-    ODataDeserializer deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON);
-    assertNotNull(deserializer);
-    deserializer = null;
-
-    deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON_NO_METADATA);
-    assertNotNull(deserializer);
-    deserializer = null;
-
-    deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON_FULL_METADATA);
-    assertNotNull(deserializer);
-    deserializer = null;
+  private final ODataDeserializer deserializer;
+
+  public ODataJsonDeserializerBasicTest() throws DeserializerException {
+    deserializer = OData.newInstance().createDeserializer(ContentType.JSON);
   }
 
   @Test
-  public void testReadingCollectionProperties() throws Exception {
+  public void collectionProperties() throws Exception {
     String payload = "{\n" +
         "  \"@odata.context\": 
\"http://host/service/$metadata#Collection($ref)\",\n" +
         "  \"value\": [\n" +
@@ -58,7 +48,6 @@ public class ODataJsonDeserializerBasicTest {
         "    { \"@odata.id\": \"Orders(10759)\" }\n" +
         "  ]\n" +
         "}";
-    ODataDeserializer deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON);
     List<URI> values = deserializer.entityReferences(new 
ByteArrayInputStream(payload.getBytes()))
         .getEntityReferences();
     assertEquals(2, values.size());
@@ -67,12 +56,11 @@ public class ODataJsonDeserializerBasicTest {
   }
 
   @Test
-  public void testReadingProperties() throws Exception {
+  public void properties() throws Exception {
     String payload = "{\n" +
         "  \"@odata.context\": \"http://host/service/$metadata#$ref\",\n"; +
         "  \"@odata.id\": \"Orders(10643)\"\n" +
         "}";
-    ODataDeserializer deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON);
     List<URI> values = deserializer.entityReferences(new 
ByteArrayInputStream(payload
         .getBytes())).getEntityReferences();
     assertEquals(1, values.size());
@@ -87,7 +75,6 @@ public class ODataJsonDeserializerBasicTest {
         + "}";
 
     InputStream stream = new ByteArrayInputStream(entityString.getBytes());
-    ODataDeserializer deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON);
     final List<URI> entityReferences = 
deserializer.entityReferences(stream).getEntityReferences();
 
     assertEquals(1, entityReferences.size());
@@ -105,7 +92,6 @@ public class ODataJsonDeserializerBasicTest {
         "}";
 
     InputStream stream = new ByteArrayInputStream(entityString.getBytes());
-    ODataDeserializer deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON);
     final List<URI> entityReferences = 
deserializer.entityReferences(stream).getEntityReferences();
 
     assertEquals(2, entityReferences.size());
@@ -124,7 +110,6 @@ public class ODataJsonDeserializerBasicTest {
         "}";
 
     InputStream stream = new ByteArrayInputStream(entityString.getBytes());
-    ODataDeserializer deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON);
     final List<URI> entityReferences = 
deserializer.entityReferences(stream).getEntityReferences();
 
     assertEquals(1, entityReferences.size());
@@ -142,7 +127,6 @@ public class ODataJsonDeserializerBasicTest {
         "}";
 
     InputStream stream = new ByteArrayInputStream(entityString.getBytes());
-    ODataDeserializer deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON);
     final List<URI> entityReferences = 
deserializer.entityReferences(stream).getEntityReferences();
 
     assertEquals(1, entityReferences.size());
@@ -158,7 +142,6 @@ public class ODataJsonDeserializerBasicTest {
         "}";
 
     InputStream stream = new ByteArrayInputStream(entityString.getBytes());
-    ODataDeserializer deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON);
     final List<URI> entityReferences = 
deserializer.entityReferences(stream).getEntityReferences();
 
     assertEquals(0, entityReferences.size());
@@ -167,20 +150,18 @@ public class ODataJsonDeserializerBasicTest {
   @Test(expected = DeserializerException.class)
   public void referencesEmpty() throws Exception {
     /*
-     * See OData JSON Format chaper 13
+     * See OData JSON Format chapter 13
      * ... the object that MUST contain the id of the referenced entity
      */
     String entityString = "{ }";
 
     InputStream stream = new ByteArrayInputStream(entityString.getBytes());
-    ODataDeserializer deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON);
     deserializer.entityReferences(stream).getEntityReferences();
   }
 
   @Test(expected = DeserializerException.class)
   public void referencesNoContent() throws Exception {
-    OData.newInstance().createDeserializer(ContentType.JSON).entityReferences(
-        new ByteArrayInputStream(new byte[] {}));
+    deserializer.entityReferences(new ByteArrayInputStream(new byte[] {}));
   }
 
   @Test(expected = DeserializerException.class)
@@ -191,7 +172,6 @@ public class ODataJsonDeserializerBasicTest {
         "}";
 
     InputStream stream = new ByteArrayInputStream(entityString.getBytes());
-    ODataDeserializer deserializer = 
OData.newInstance().createDeserializer(ContentType.JSON);
     deserializer.entityReferences(stream);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/FixedFormatSerializerTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/FixedFormatSerializerTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/FixedFormatSerializerTest.java
index 500d6bb..21c7677 100644
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/FixedFormatSerializerTest.java
+++ 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/FixedFormatSerializerTest.java
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertEquals;
 import org.apache.commons.io.IOUtils;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import 
org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.serializer.FixedFormatSerializer;
 import org.apache.olingo.server.api.serializer.PrimitiveValueSerializerOptions;
@@ -50,7 +49,7 @@ public class FixedFormatSerializerTest {
 
   @Test
   public void primitiveValue() throws Exception {
-    final EdmPrimitiveType type = 
EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Int32);
+    final EdmPrimitiveType type = 
OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int32);
     assertEquals("42", IOUtils.toString(serializer.primitiveValue(type, 42,
         PrimitiveValueSerializerOptions.with().nullable(true).build())));
   }

Reply via email to