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 2015/03/06 14:54:18 UTC

[4/5] olingo-odata4 git commit: [OLINGO-575] Cleanup ServiceVersion Enum part 2

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/07c37106/fit/src/main/java/org/apache/olingo/fit/V4Services.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4Services.java b/fit/src/main/java/org/apache/olingo/fit/V4Services.java
index 9ae4648..d4a3e4a 100644
--- a/fit/src/main/java/org/apache/olingo/fit/V4Services.java
+++ b/fit/src/main/java/org/apache/olingo/fit/V4Services.java
@@ -92,18 +92,18 @@ import javax.ws.rs.BadRequestException;
 
 @Service
 @Path("/V40/Static.svc")
-@InInterceptors(classes = {XHTTPMethodInterceptor.class, ResolvingReferencesInterceptor.class})
+@InInterceptors(classes = { XHTTPMethodInterceptor.class, ResolvingReferencesInterceptor.class })
 public class V4Services extends AbstractServices {
 
   /**
    * CR/LF.
    */
-  protected static final byte[] CRLF = {13, 10};
+  protected static final byte[] CRLF = { 13, 10 };
 
   protected static final Pattern RELENTITY_SELECT_PATTERN = Pattern.compile("^.*\\(\\$select=.*\\)$");
 
   protected static final Pattern CROSSJOIN_PATTERN = Pattern.compile(
-          "^\\$crossjoin\\(.*\\)\\?\\$filter=\\([a-zA-Z/]+ eq [a-zA-Z/]+\\)$");
+      "^\\$crossjoin\\(.*\\)\\?\\$filter=\\([a-zA-Z/]+ eq [a-zA-Z/]+\\)$");
 
   private final Map<String, String> providedAsync = new HashMap<String, String>();
 
@@ -118,18 +118,18 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/redirect/{name}({id})")
   public Response conformanceRedirect(
-          @Context final UriInfo uriInfo,
-          @PathParam("name") final String name,
-          @PathParam("id") final String id) {
+      @Context final UriInfo uriInfo,
+      @PathParam("name") final String name,
+      @PathParam("id") final String id) {
     return Response.temporaryRedirect(
-            URI.create(uriInfo.getRequestUri().toASCIIString().replace("/redirect", ""))).build();
+        URI.create(uriInfo.getRequestUri().toASCIIString().replace("/redirect", ""))).build();
   }
 
   @GET
   @Path("/$crossjoin({elements:.*})")
   public Response crossjoin(
-          @PathParam("elements") final String elements,
-          @QueryParam("$filter") final String filter) {
+      @PathParam("elements") final String elements,
+      @QueryParam("$filter") final String filter) {
 
     try {
       if (CROSSJOIN_PATTERN.matcher("$crossjoin(" + elements + ")?$filter=" + filter).matches()) {
@@ -140,20 +140,20 @@ public class V4Services extends AbstractServices {
         throw new IOException("Unexpected crossjoin pattern");
       }
     } catch (Exception e) {
-      return xml.createFaultResponse(Accept.JSON.toString(version), e);
+      return xml.createFaultResponse(Accept.JSON.toString(), e);
     }
   }
 
   @GET
   @Path("/relatedEntitySelect/{path:.*}")
   public Response relatedEntitySelect(
-          @PathParam("path") final String path,
-          @QueryParam("$expand") final String expand) {
+      @PathParam("path") final String path,
+      @QueryParam("$expand") final String expand) {
 
     if (RELENTITY_SELECT_PATTERN.matcher(expand).matches()) {
       return xml.createResponse(null, null, Accept.JSON_FULLMETA);
     } else {
-      return xml.createFaultResponse(Accept.JSON.toString(version), new Exception("Unexpected expand pattern"));
+      return xml.createFaultResponse(Accept.JSON.toString(), new Exception("Unexpected expand pattern"));
     }
   }
 
@@ -178,7 +178,7 @@ public class V4Services extends AbstractServices {
       return xml.createFaultResponse(Accept.JSON_FULLMETA.toString(), e);
     }
   }
-  
+
   @PUT
   @Path("/People(1)/Parent")
   @SuppressWarnings("unused")
@@ -189,24 +189,24 @@ public class V4Services extends AbstractServices {
       final String content) {
 
     try {
-        final Accept contentTypeValue = Accept.parse(contentType, version);
-        assert contentTypeValue == Accept.JSON;
-        
-        ResWrap<Entity> entity = jsonDeserializer.toEntity(IOUtils.toInputStream(content, Constants.ENCODING));
-        
-        return Response.noContent().type(MediaType.APPLICATION_JSON).build();
-      }catch (Exception e) {
-        LOG.error("While update single property reference", e);
-        return xml.createFaultResponse(accept, e);
-      }
+      final Accept contentTypeValue = Accept.parse(contentType);
+      assert contentTypeValue == Accept.JSON;
+
+      ResWrap<Entity> entity = jsonDeserializer.toEntity(IOUtils.toInputStream(content, Constants.ENCODING));
+
+      return Response.noContent().type(MediaType.APPLICATION_JSON).build();
+    } catch (Exception e) {
+      LOG.error("While update single property reference", e);
+      return xml.createFaultResponse(accept, e);
+    }
   }
-  
+
   @POST
   @Path("/async/$batch")
   public Response async(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-          final @Multipart MultipartBody attachment) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      final @Multipart MultipartBody attachment) {
 
     try {
       final ByteArrayOutputStream bos = new ByteArrayOutputStream();
@@ -243,7 +243,7 @@ public class V4Services extends AbstractServices {
       bos.close();
 
       return xml.createAsyncResponse(
-              uriInfo.getRequestUri().toASCIIString().replace("async/$batch", "") + "monitor/" + uuid.toString());
+          uriInfo.getRequestUri().toASCIIString().replace("async/$batch", "") + "monitor/" + uuid.toString());
     } catch (Exception e) {
       return xml.createFaultResponse(Accept.JSON.toString(), e);
     }
@@ -252,12 +252,12 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/async/{name}")
   public Response async(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("name") final String name) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("name") final String name) {
 
     try {
-      final Accept acceptType = Accept.parse(accept, version);
+      final Accept acceptType = Accept.parse(accept);
       if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
         throw new UnsupportedMediaTypeException("Unsupported media type");
       }
@@ -266,8 +266,8 @@ public class V4Services extends AbstractServices {
       final StringBuilder path = new StringBuilder(basePath);
 
       path.append(metadata.getEntitySet(name).isSingleton()
-              ? Constants.get(version, ConstantKey.ENTITY)
-              : Constants.get(version, ConstantKey.FEED));
+          ? Constants.get(ConstantKey.ENTITY)
+          : Constants.get(ConstantKey.FEED));
 
       final InputStream feed = FSManager.instance(version).readFile(path.toString(), acceptType);
 
@@ -281,7 +281,7 @@ public class V4Services extends AbstractServices {
       providedAsync.put(uuid.toString(), builder.toString());
 
       return xml.createAsyncResponse(
-              uriInfo.getRequestUri().toASCIIString().replaceAll("async/" + name, "") + "monitor/" + uuid.toString());
+          uriInfo.getRequestUri().toASCIIString().replaceAll("async/" + name, "") + "monitor/" + uuid.toString());
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -296,8 +296,8 @@ public class V4Services extends AbstractServices {
 
   @Override
   public InputStream exploreMultipart(
-          final List<Attachment> attachments, final String boundary, final boolean continueOnError)
-          throws IOException {
+      final List<Attachment> attachments, final String boundary, final boolean continueOnError)
+      throws IOException {
 
     final ByteArrayOutputStream bos = new ByteArrayOutputStream();
 
@@ -383,59 +383,59 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/People/{type:.*}")
   public Response getPeople(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("type") final String type,
-          @QueryParam("$top") @DefaultValue(StringUtils.EMPTY) final String top,
-          @QueryParam("$skip") @DefaultValue(StringUtils.EMPTY) final String skip,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          @QueryParam("$inlinecount") @DefaultValue(StringUtils.EMPTY) final String count,
-          @QueryParam("$filter") @DefaultValue(StringUtils.EMPTY) final String filter,
-          @QueryParam("$search") @DefaultValue(StringUtils.EMPTY) final String search,
-          @QueryParam("$orderby") @DefaultValue(StringUtils.EMPTY) final String orderby,
-          @QueryParam("$skiptoken") @DefaultValue(StringUtils.EMPTY) final String skiptoken) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("type") final String type,
+      @QueryParam("$top") @DefaultValue(StringUtils.EMPTY) final String top,
+      @QueryParam("$skip") @DefaultValue(StringUtils.EMPTY) final String skip,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      @QueryParam("$inlinecount") @DefaultValue(StringUtils.EMPTY) final String count,
+      @QueryParam("$filter") @DefaultValue(StringUtils.EMPTY) final String filter,
+      @QueryParam("$search") @DefaultValue(StringUtils.EMPTY) final String search,
+      @QueryParam("$orderby") @DefaultValue(StringUtils.EMPTY) final String orderby,
+      @QueryParam("$skiptoken") @DefaultValue(StringUtils.EMPTY) final String skiptoken) {
 
     return StringUtils.isBlank(filter) && StringUtils.isBlank(search)
-            ? NumberUtils.isNumber(type)
+        ? NumberUtils.isNumber(type)
             ? super.getEntityInternal(
-                    uriInfo.getRequestUri().toASCIIString(), accept, "People", type, format, null, null)
+                uriInfo.getRequestUri().toASCIIString(), accept, "People", type, format, null, null)
             : super.getEntitySet(accept, "People", type)
-            : super.getEntitySet(uriInfo, accept, "People", top, skip, format, count, filter, orderby, skiptoken);
+        : super.getEntitySet(uriInfo, accept, "People", top, skip, format, count, filter, orderby, skiptoken);
   }
 
   @GET
   @Path("/Boss")
   public Response getSingletonBoss(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     return getEntityInternal(
-            uriInfo.getRequestUri().toASCIIString(), accept, "Boss", StringUtils.EMPTY, format, null, null);
+        uriInfo.getRequestUri().toASCIIString(), accept, "Boss", StringUtils.EMPTY, format, null, null);
   }
 
   @GET
   @Path("/Company")
   public Response getSingletonCompany(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     return getEntityInternal(
-            uriInfo.getRequestUri().toASCIIString(), accept, "Company", StringUtils.EMPTY, format, null, null);
+        uriInfo.getRequestUri().toASCIIString(), accept, "Company", StringUtils.EMPTY, format, null, null);
   }
 
   @PATCH
   @Path("/Company")
-  @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
-  @Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
+  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
   public Response patchSingletonCompany(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-          @HeaderParam("If-Match") @DefaultValue(StringUtils.EMPTY) final String ifMatch,
-          final String changes) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      @HeaderParam("If-Match") @DefaultValue(StringUtils.EMPTY) final String ifMatch,
+      final String changes) {
 
     return super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, "Company", StringUtils.EMPTY, changes);
   }
@@ -443,24 +443,24 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/Customers")
   public Response getCustomers(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-          @QueryParam("$deltatoken") @DefaultValue(StringUtils.EMPTY) final String deltatoken) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      @QueryParam("$deltatoken") @DefaultValue(StringUtils.EMPTY) final String deltatoken) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
       final InputStream output;
       if (StringUtils.isBlank(deltatoken)) {
         final InputStream input = (InputStream) getEntitySet(
-                uriInfo, accept, "Customers", null, null, format, null, null, null, null).getEntity();
+            uriInfo, accept, "Customers", null, null, format, null, null, null, null).getEntity();
         final EntitySet entitySet = xml.readEntitySet(acceptType, input);
 
         boolean trackChanges = prefer.contains("odata.track-changes");
@@ -469,20 +469,20 @@ public class V4Services extends AbstractServices {
         }
 
         output = xml.writeEntitySet(acceptType, new ResWrap<EntitySet>(
-                URI.create(Constants.get(version, ConstantKey.ODATA_METADATA_PREFIX) + "Customers"),
-                null,
-                entitySet));
+            URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + "Customers"),
+            null,
+            entitySet));
       } else {
         output = FSManager.instance(version).readFile("delta", acceptType);
       }
 
       final Response response = xml.createResponse(
-              null,
-              output,
-              null,
-              acceptType);
+          null,
+          output,
+          null,
+          acceptType);
       if (StringUtils.isNotBlank(prefer)) {
-        response.getHeaders().put("Preference-Applied", Collections.<Object>singletonList(prefer));
+        response.getHeaders().put("Preference-Applied", Collections.<Object> singletonList(prefer));
       }
       return response;
     } catch (Exception e) {
@@ -493,29 +493,29 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/Company/Microsoft.Test.OData.Services.ODataWCFService.GetEmployeesCount{paren:[\\(\\)]*}")
   public Response functionGetEmployeesCount(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
       final Property property = new PropertyImpl();
       property.setType("Edm.Int32");
       property.setValue(ValueType.PRIMITIVE, 2);
       final ResWrap<Property> container = new ResWrap<Property>(
-              URI.create(Constants.get(version, ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
-              property);
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
+          property);
 
       return xml.createResponse(
-              null,
-              xml.writeProperty(acceptType, container),
-              null,
-              acceptType);
+          null,
+          xml.writeProperty(acceptType, container),
+          null,
+          acceptType);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -524,27 +524,27 @@ public class V4Services extends AbstractServices {
   @POST
   @Path("/Company/Microsoft.Test.OData.Services.ODataWCFService.IncreaseRevenue{paren:[\\(\\)]*}")
   public Response actionIncreaseRevenue(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          final String param) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
-      final Accept contentTypeValue = Accept.parse(contentType, version);
+      final Accept contentTypeValue = Accept.parse(contentType);
       final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
 
       return xml.createResponse(
-              null,
-              xml.writeProperty(acceptType, entry.getProperty("IncreaseValue")),
-              null,
-              acceptType);
+          null,
+          xml.writeProperty(acceptType, entry.getProperty("IncreaseValue")),
+          null,
+          acceptType);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -553,16 +553,16 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/Products({entityId})/Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails({param:.*})")
   public Response functionGetProductDetails(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("entityId") final String entityId,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
       final EntityImpl entry = new EntityImpl();
@@ -581,7 +581,7 @@ public class V4Services extends AbstractServices {
       final Link link = new LinkImpl();
       link.setRel("edit");
       link.setHref(URI.create(
-              Constants.get(version, ConstantKey.DEFAULT_SERVICE_URL)
+          Constants.get(ConstantKey.DEFAULT_SERVICE_URL)
               + "ProductDetails(ProductID=6,ProductDetailID=1)").toASCIIString());
       entry.setEditLink(link);
 
@@ -589,14 +589,14 @@ public class V4Services extends AbstractServices {
       feed.getEntities().add(entry);
 
       final ResWrap<EntitySet> container = new ResWrap<EntitySet>(
-              URI.create(Constants.get(version, ConstantKey.ODATA_METADATA_PREFIX) + "ProductDetail"), null,
-              feed);
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + "ProductDetail"), null,
+          feed);
 
       return xml.createResponse(
-              null,
-              xml.writeEntitySet(acceptType, container),
-              null,
-              acceptType);
+          null,
+          xml.writeEntitySet(acceptType, container),
+          null,
+          acceptType);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -605,20 +605,20 @@ public class V4Services extends AbstractServices {
   @POST
   @Path("/Products({entityId})/Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight{paren:[\\(\\)]*}")
   public Response actionAddAccessRight(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          final String param) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
-      final Accept contentTypeValue = Accept.parse(contentType, version);
+      final Accept contentTypeValue = Accept.parse(contentType);
       final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
 
       assert 1 == entry.getProperties().size();
@@ -628,14 +628,14 @@ public class V4Services extends AbstractServices {
       property.setType("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel");
 
       final ResWrap<Property> result = new ResWrap<Property>(
-              URI.create(Constants.get(version, ConstantKey.ODATA_METADATA_PREFIX) + property.getType()),
-              null, property);
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()),
+          null, property);
 
       return xml.createResponse(
-              null,
-              xml.writeProperty(acceptType, result),
-              null,
-              acceptType);
+          null,
+          xml.writeProperty(acceptType, result),
+          null,
+          acceptType);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -644,15 +644,15 @@ public class V4Services extends AbstractServices {
   @POST
   @Path("/Customers({personId})/Microsoft.Test.OData.Services.ODataWCFService.ResetAddress{paren:[\\(\\)]*}")
   public Response actionResetAddress(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("personId") final String personId,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          final String param) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("personId") final String personId,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
 
     try {
-      final Accept contentTypeValue = Accept.parse(contentType, version);
+      final Accept contentTypeValue = Accept.parse(contentType);
       final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
 
       assert 2 == entry.getProperties().size();
@@ -660,7 +660,7 @@ public class V4Services extends AbstractServices {
       assert entry.getProperty("index") != null;
 
       return getEntityInternal(
-              uriInfo.getRequestUri().toASCIIString(), accept, "Customers", personId, format, null, null);
+          uriInfo.getRequestUri().toASCIIString(), accept, "Customers", personId, format, null, null);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -668,28 +668,28 @@ public class V4Services extends AbstractServices {
 
   @GET
   @Path("/ProductDetails(ProductID={productId},ProductDetailID={productDetailId})"
-          + "/Microsoft.Test.OData.Services.ODataWCFService.GetRelatedProduct{paren:[\\(\\)]*}")
+      + "/Microsoft.Test.OData.Services.ODataWCFService.GetRelatedProduct{paren:[\\(\\)]*}")
   public Response functionGetRelatedProduct(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("productId") final String productId,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("productId") final String productId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     return getEntityInternal(
-            uriInfo.getRequestUri().toASCIIString(), accept, "Products", productId, format, null, null);
+        uriInfo.getRequestUri().toASCIIString(), accept, "Products", productId, format, null, null);
   }
 
   @POST
   @Path("/Accounts({entityId})/Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI{paren:[\\(\\)]*}")
   public Response actionRefreshDefaultPI(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @PathParam("entityId") final String entityId,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          final String param) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @PathParam("entityId") final String entityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
 
     try {
-      final Accept contentTypeValue = Accept.parse(contentType, version);
+      final Accept contentTypeValue = Accept.parse(contentType);
       final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
 
       assert 1 == entry.getProperties().size();
@@ -704,9 +704,9 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/Accounts({entityId})/Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI{paren:[\\(\\)]*}")
   public Response functionGetDefaultPI(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("entityId") final String entityId,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     return getContainedEntity(accept, entityId, "MyPaymentInstruments", entityId + "901", format);
   }
@@ -714,9 +714,9 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/Accounts({entityId})/Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo{paren:[\\(\\)]*}")
   public Response functionGetAccountInfo(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("entityId") final String entityId,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     return getPath(accept, "Accounts", entityId, "AccountInfo", format);
   }
@@ -724,16 +724,16 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/Accounts({entityId})/MyGiftCard/Microsoft.Test.OData.Services.ODataWCFService.GetActualAmount({param:.*})")
   public Response functionGetActualAmount(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("entityId") final String entityId,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
       final Property property = new PropertyImpl();
@@ -743,10 +743,10 @@ public class V4Services extends AbstractServices {
       final ResWrap<Property> container = new ResWrap<Property>((URI) null, null, property);
 
       return xml.createResponse(
-              null,
-              xml.writeProperty(acceptType, container),
-              null,
-              acceptType);
+          null,
+          xml.writeProperty(acceptType, container),
+          null,
+          acceptType);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -763,9 +763,9 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/{path:.*}/$ref")
   public Response getEntityReference(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("path") final String path,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("path") final String path,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     try {
       final Map.Entry<Accept, AbstractUtilities> utils = getUtilities(accept, format);
@@ -777,10 +777,10 @@ public class V4Services extends AbstractServices {
       final String filename = Base64.encodeBase64String(path.getBytes("UTF-8"));
 
       return utils.getValue().createResponse(
-              FSManager.instance(version).readFile(Constants.get(version, ConstantKey.REF)
-                      + File.separatorChar + filename, utils.getKey()),
-              null,
-              utils.getKey());
+          FSManager.instance(version).readFile(Constants.get(ConstantKey.REF)
+              + File.separatorChar + filename, utils.getKey()),
+          null,
+          utils.getKey());
     } catch (Exception e) {
       LOG.error("Error retrieving entity", e);
       return xml.createFaultResponse(accept, e);
@@ -789,14 +789,14 @@ public class V4Services extends AbstractServices {
 
   @POST
   @Path("/People")
-  @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
-  @Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM})
+  @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON })
+  @Consumes({ MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM })
   public Response postPeople(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
-          final String entity) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) final String prefer,
+      final String entity) {
 
     if ("{\"@odata.type\":\"#Microsoft.Test.OData.Services.ODataWCFService.Person\"}".equals(entity)) {
       return xml.createFaultResponse(accept, new BadRequestException());
@@ -807,36 +807,36 @@ public class V4Services extends AbstractServices {
 
   @Override
   public Response patchEntity(
-          final UriInfo uriInfo,
-          final String accept,
-          final String contentType,
-          final String prefer,
-          final String ifMatch,
-          final String entitySetName,
-          final String entityId,
-          final String changes) {
+      final UriInfo uriInfo,
+      final String accept,
+      final String contentType,
+      final String prefer,
+      final String ifMatch,
+      final String entitySetName,
+      final String entityId,
+      final String changes) {
 
     final Response response =
-            getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
-                    accept, entitySetName, entityId, accept, StringUtils.EMPTY, StringUtils.EMPTY);
+        getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
+            accept, entitySetName, entityId, accept, StringUtils.EMPTY, StringUtils.EMPTY);
     return response.getStatus() >= 400
-            ? super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, changes)
-            : super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, entitySetName, entityId, changes);
+        ? super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, changes)
+        : super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, entitySetName, entityId, changes);
   }
 
   @Override
   public Response replaceEntity(
-          final UriInfo uriInfo,
-          final String accept,
-          final String contentType,
-          final String prefer,
-          final String entitySetName,
-          final String entityId,
-          final String entity) {
+      final UriInfo uriInfo,
+      final String accept,
+      final String contentType,
+      final String prefer,
+      final String entitySetName,
+      final String entityId,
+      final String entity) {
 
     try {
       getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
-              accept, entitySetName, entityId, accept, StringUtils.EMPTY, StringUtils.EMPTY);
+          accept, entitySetName, entityId, accept, StringUtils.EMPTY, StringUtils.EMPTY);
       return super.replaceEntity(uriInfo, accept, contentType, prefer, entitySetName, entityId, entity);
     } catch (NotFoundException e) {
       return postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entityId);
@@ -845,26 +845,26 @@ public class V4Services extends AbstractServices {
 
   private StringBuilder containedPath(final String entityId, final String containedEntitySetName) {
     return new StringBuilder("Accounts").append(File.separatorChar).
-            append(entityId).append(File.separatorChar).
-            append("links").append(File.separatorChar).
-            append(containedEntitySetName);
+        append(entityId).append(File.separatorChar).
+        append("links").append(File.separatorChar).
+        append(containedEntitySetName);
   }
 
   @GET
   @Path("/Accounts({entityId})/{containedEntitySetName}({containedEntityId})")
   public Response getContainedEntity(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("entityId") final String entityId,
-          @PathParam("containedEntitySetName") final String containedEntitySetName,
-          @PathParam("containedEntityId") final String containedEntityId,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @PathParam("containedEntitySetName") final String containedEntitySetName,
+      @PathParam("containedEntityId") final String containedEntityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
       if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
         throw new UnsupportedMediaTypeException("Unsupported media type");
@@ -879,10 +879,10 @@ public class V4Services extends AbstractServices {
       final ResWrap<Entity> container = atomDeserializer.toEntity(entry);
 
       return xml.createResponse(
-              null,
-              xml.writeEntity(acceptType, container),
-              null,
-              acceptType);
+          null,
+          xml.writeEntity(acceptType, container),
+          null,
+          acceptType);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -891,15 +891,15 @@ public class V4Services extends AbstractServices {
   @POST
   @Path("/Accounts({entityId})/{containedEntitySetName:.*}")
   public Response postContainedEntity(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @PathParam("entityId") final String entityId,
-          @PathParam("containedEntitySetName") final String containedEntitySetName,
-          final String entity) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @PathParam("entityId") final String entityId,
+      @PathParam("containedEntitySetName") final String containedEntitySetName,
+      final String entity) {
 
     try {
-      final Accept acceptType = Accept.parse(accept, version);
+      final Accept acceptType = Accept.parse(accept);
       if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
         throw new UnsupportedMediaTypeException("Unsupported media type");
       }
@@ -909,32 +909,32 @@ public class V4Services extends AbstractServices {
       // 1. parse the entry (from Atom or JSON)
       final ResWrap<Entity> entryContainer;
       final Entity entry;
-      final Accept contentTypeValue = Accept.parse(contentType, version);
+      final Accept contentTypeValue = Accept.parse(contentType);
       if (Accept.ATOM == contentTypeValue) {
         entryContainer = atomDeserializer.toEntity(IOUtils.toInputStream(entity, Constants.ENCODING));
         entry = entryContainer.getPayload();
       } else {
         final ResWrap<Entity> jcontainer = jsonDeserializer.toEntity(
-                IOUtils.toInputStream(entity, Constants.ENCODING));
+            IOUtils.toInputStream(entity, Constants.ENCODING));
         entry = jcontainer.getPayload();
 
         entryContainer = new ResWrap<Entity>(
-                jcontainer.getContextURL(),
-                jcontainer.getMetadataETag(),
-                entry);
+            jcontainer.getContextURL(),
+            jcontainer.getMetadataETag(),
+            entry);
       }
 
       final EdmTypeInfo contained = new EdmTypeInfo.Builder().setTypeExpression(metadata.
-              getNavigationProperties("Accounts").get(containedEntitySetName).getType()).build();
+          getNavigationProperties("Accounts").get(containedEntitySetName).getType()).build();
       final String entityKey = getUtilities(contentTypeValue).
-              getDefaultEntryKey(contained.getFullQualifiedName().getName(), entry);
+          getDefaultEntryKey(contained.getFullQualifiedName().getName(), entry);
 
       // 2. Store the new entity
       final String atomEntryRelativePath = containedPath(entityId, containedEntitySetName).
-              append('(').append(entityKey).append(')').toString();
+          append('(').append(entityKey).append(')').toString();
       FSManager.instance(version).putInMemory(
-              utils.writeEntity(Accept.ATOM, entryContainer),
-              FSManager.instance(version).getAbsolutePath(atomEntryRelativePath, Accept.ATOM));
+          utils.writeEntity(Accept.ATOM, entryContainer),
+          FSManager.instance(version).getAbsolutePath(atomEntryRelativePath, Accept.ATOM));
 
       // 3. Update the contained entity set
       final String atomFeedRelativePath = containedPath(entityId, containedEntitySetName).toString();
@@ -949,16 +949,16 @@ public class V4Services extends AbstractServices {
       writer.close();
 
       FSManager.instance(version).putInMemory(
-              new ByteArrayInputStream(content.toByteArray()),
-              FSManager.instance(version).getAbsolutePath(atomFeedRelativePath, Accept.ATOM));
+          new ByteArrayInputStream(content.toByteArray()),
+          FSManager.instance(version).getAbsolutePath(atomFeedRelativePath, Accept.ATOM));
 
       // Finally, return
       return utils.createResponse(
-              uriInfo.getRequestUri().toASCIIString() + "(" + entityKey + ")",
-              utils.writeEntity(acceptType, entryContainer),
-              null,
-              acceptType,
-              Response.Status.CREATED);
+          uriInfo.getRequestUri().toASCIIString() + "(" + entityKey + ")",
+          utils.writeEntity(acceptType, entryContainer),
+          null,
+          acceptType,
+          Response.Status.CREATED);
     } catch (Exception e) {
       LOG.error("While creating new contained entity", e);
       return xml.createFaultResponse(accept, e);
@@ -968,21 +968,21 @@ public class V4Services extends AbstractServices {
   @PATCH
   @Path("/{entitySetName}({entityId})/{containedEntitySetName}({containedEntityId})")
   public Response patchContainedEntity(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @PathParam("entitySetName") final String entitySetName,
-          @PathParam("entityId") final String entityId,
-          @PathParam("containedEntitySetName") final String containedEntitySetName,
-          @PathParam("containedEntityId") final String containedEntityId,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          final String changes) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @PathParam("entitySetName") final String entitySetName,
+      @PathParam("entityId") final String entityId,
+      @PathParam("containedEntitySetName") final String containedEntitySetName,
+      @PathParam("containedEntityId") final String containedEntityId,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String changes) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
       if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
         throw new UnsupportedMediaTypeException("Unsupported media type");
@@ -992,10 +992,10 @@ public class V4Services extends AbstractServices {
       if (StringUtils.isBlank(contentType)) {
         throw new IllegalArgumentException();
       }
-      contentTypeValue = Accept.parse(contentType, version);
+      contentTypeValue = Accept.parse(contentType);
 
       final LinkInfo links = xml.readLinks(
-              entitySetName, entityId, containedEntitySetName + "(" + containedEntityId + ")", Accept.ATOM);
+          entitySetName, entityId, containedEntitySetName + "(" + containedEntityId + ")", Accept.ATOM);
 
       ResWrap<Entity> container = atomDeserializer.toEntity(links.getLinks());
       final Entity original = container.getPayload();
@@ -1007,11 +1007,11 @@ public class V4Services extends AbstractServices {
       } else {
         final String entityType = metadata.getEntitySet(entitySetName).getType();
         final String containedType = metadata.getEntityOrComplexType(entityType).
-                getNavigationProperty(containedEntitySetName).getType();
+            getNavigationProperty(containedEntitySetName).getType();
         final EdmTypeInfo typeInfo = new EdmTypeInfo.Builder().setTypeExpression(containedType).build();
 
         final ResWrap<Entity> jsonContainer = jsonDeserializer.toEntity(
-                IOUtils.toInputStream(changes, Constants.ENCODING));
+            IOUtils.toInputStream(changes, Constants.ENCODING));
         jsonContainer.getPayload().setType(typeInfo.getFullQualifiedName().toString());
         entryChanges = jsonContainer.getPayload();
       }
@@ -1025,7 +1025,7 @@ public class V4Services extends AbstractServices {
       }
 
       FSManager.instance(version).putInMemory(new ResWrap<Entity>((URI) null, null, original),
-              xml.getLinksBasePath(entitySetName, entityId) + containedEntitySetName + "(" + containedEntityId + ")");
+          xml.getLinksBasePath(entitySetName, entityId) + containedEntitySetName + "(" + containedEntityId + ")");
 
       return xml.createResponse(null, null, acceptType, Response.Status.NO_CONTENT);
     } catch (Exception e) {
@@ -1036,20 +1036,20 @@ public class V4Services extends AbstractServices {
   @DELETE
   @Path("/Accounts({entityId})/{containedEntitySetName}({containedEntityId})")
   public Response removeContainedEntity(
-          @PathParam("entityId") final String entityId,
-          @PathParam("containedEntitySetName") final String containedEntitySetName,
-          @PathParam("containedEntityId") final String containedEntityId) {
+      @PathParam("entityId") final String entityId,
+      @PathParam("containedEntitySetName") final String containedEntitySetName,
+      @PathParam("containedEntityId") final String containedEntityId) {
 
     try {
       // 1. Fetch the contained entity to be removed
       final InputStream entry = FSManager.instance(version).
-              readFile(containedPath(entityId, containedEntitySetName).
-                      append('(').append(containedEntityId).append(')').toString(), Accept.ATOM);
+          readFile(containedPath(entityId, containedEntitySetName).
+              append('(').append(containedEntityId).append(')').toString(), Accept.ATOM);
       final ResWrap<Entity> container = atomDeserializer.toEntity(entry);
 
       // 2. Remove the contained entity
       final String atomEntryRelativePath = containedPath(entityId, containedEntitySetName).
-              append('(').append(containedEntityId).append(')').toString();
+          append('(').append(containedEntityId).append(')').toString();
       FSManager.instance(version).deleteFile(atomEntryRelativePath);
 
       // 3. Update the contained entity set
@@ -1065,22 +1065,22 @@ public class V4Services extends AbstractServices {
       writer.close();
 
       FSManager.instance(version).putInMemory(
-              new ByteArrayInputStream(content.toByteArray()),
-              FSManager.instance(version).getAbsolutePath(atomFeedRelativePath, Accept.ATOM));
+          new ByteArrayInputStream(content.toByteArray()),
+          FSManager.instance(version).getAbsolutePath(atomFeedRelativePath, Accept.ATOM));
 
       return xml.createResponse(null, null, null, null, Response.Status.NO_CONTENT);
     } catch (Exception e) {
-      return xml.createFaultResponse(Accept.XML.toString(version), e);
+      return xml.createFaultResponse(Accept.XML.toString(), e);
     }
   }
 
   @GET
   @Path("/Accounts({entityId})/{containedEntitySetName:.*}")
   public Response getContainedEntitySet(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("entityId") final String entityId,
-          @PathParam("containedEntitySetName") String containedEntitySetName,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @PathParam("entityId") final String entityId,
+      @PathParam("containedEntitySetName") String containedEntitySetName,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     if ("MyGiftCard".equals(containedEntitySetName)) {
       return getContainedEntity(accept, entityId, containedEntitySetName, null, format);
@@ -1091,7 +1091,7 @@ public class V4Services extends AbstractServices {
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
       if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
         throw new UnsupportedMediaTypeException("Unsupported media type");
@@ -1105,7 +1105,7 @@ public class V4Services extends AbstractServices {
       }
 
       final InputStream feed = FSManager.instance(version).
-              readFile(containedPath(entityId, containedEntitySetName).toString(), Accept.ATOM);
+          readFile(containedPath(entityId, containedEntitySetName).toString(), Accept.ATOM);
 
       final ResWrap<EntitySet> container = atomDeserializer.toEntitySet(feed);
 
@@ -1120,10 +1120,10 @@ public class V4Services extends AbstractServices {
       }
 
       return xml.createResponse(
-              null,
-              xml.writeEntitySet(acceptType, container),
-              null,
-              acceptType);
+          null,
+          xml.writeEntitySet(acceptType, container),
+          null,
+          acceptType);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -1132,29 +1132,29 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/GetDefaultColor()")
   public Response functionGetDefaultColor(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
       final PropertyImpl property = new PropertyImpl();
       property.setType("Microsoft.Test.OData.Services.ODataWCFService.Color");
       property.setValue(ValueType.ENUM, "Red");
       final ResWrap<Property> container = new ResWrap<Property>(
-              URI.create(Constants.get(version, ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
-              property);
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
+          property);
 
       return xml.createResponse(
-              null,
-              xml.writeProperty(acceptType, container),
-              null,
-              acceptType);
+          null,
+          xml.writeProperty(acceptType, container),
+          null,
+          acceptType);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -1163,19 +1163,19 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/GetPerson2({param:.*})")
   public Response functionGetPerson2(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     return getEntityInternal(
-            uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "1", format, null, null);
+        uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "1", format, null, null);
   }
 
   @GET
   @Path("/GetPerson2({param:.*})/Emails")
   public Response functionGetPerson2Emails(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     return getPath(accept, "Customers", "1", "Emails", format);
   }
@@ -1183,8 +1183,8 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/GetPerson2({param:.*})/HomeAddress")
   public Response functionGetPerson2HomeAddress(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     return getPath(accept, "Customers", "1", "HomeAddress", format);
   }
@@ -1192,31 +1192,31 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/GetPerson2({param:.*})/Parent")
   public Response functionGetPerson2Parent(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     return getEntityInternal(
-            uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "2", format, null, null);
+        uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "2", format, null, null);
   }
 
   @GET
   @Path("/GetPerson({param:.*})")
   public Response functionGetPerson(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     return getEntityInternal(
-            uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "1", format, null, null);
+        uriInfo.getRequestUri().toASCIIString(), accept, "Customers", "1", format, null, null);
   }
 
   @GET
   @Path("/GetAllProducts()")
   public Response functionGetAllProducts(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     return getEntitySet(uriInfo, accept, "Products", null, null, format, null, null, null, null);
   }
@@ -1224,15 +1224,15 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/GetProductsByAccessLevel({param:.*})")
   public Response functionGetProductsByAccessLevel(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
       final PropertyImpl property = new PropertyImpl();
@@ -1240,14 +1240,14 @@ public class V4Services extends AbstractServices {
       final List<String> value = Arrays.asList("Cheetos", "Mushrooms", "Apple", "Car", "Computer");
       property.setValue(ValueType.COLLECTION_PRIMITIVE, value);
       final ResWrap<Property> container = new ResWrap<Property>(
-              URI.create(Constants.get(version, ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
-              property);
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
+          property);
 
       return xml.createResponse(
-              null,
-              xml.writeProperty(acceptType, container),
-              null,
-              acceptType);
+          null,
+          xml.writeProperty(acceptType, container),
+          null,
+          acceptType);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -1256,24 +1256,24 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/GetBossEmails({param:.*})")
   public Response functionGetBossEmails(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
       final PropertyImpl property = new PropertyImpl();
       property.setType("Collection(Edm.String)");
       property.setValue(ValueType.COLLECTION_PRIMITIVE,
-              Arrays.asList("first@olingo.apache.org", "second@olingo.apache.org"));
+          Arrays.asList("first@olingo.apache.org", "second@olingo.apache.org"));
       final ResWrap<Property> container = new ResWrap<Property>(
-              URI.create(Constants.get(version, ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
-              property);
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX) + property.getType()), null,
+          property);
 
       return xml.createResponse(null, xml.writeProperty(acceptType, container), null, acceptType);
     } catch (Exception e) {
@@ -1284,28 +1284,28 @@ public class V4Services extends AbstractServices {
   @POST
   @Path("/Discount()")
   public Response actionDiscount(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          final String param) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
-      final Accept contentTypeValue = Accept.parse(contentType, version);
+      final Accept contentTypeValue = Accept.parse(contentType);
       Property property;
       if (contentTypeValue == Accept.ATOM) {
         final ResWrap<Property> paramContainer = atomDeserializer.toProperty(
-                IOUtils.toInputStream(param, Constants.ENCODING));
+            IOUtils.toInputStream(param, Constants.ENCODING));
         property = paramContainer.getPayload();
       } else {
         final ResWrap<Property> paramContainer = jsonDeserializer.toProperty(
-                IOUtils.toInputStream(param, Constants.ENCODING));
+            IOUtils.toInputStream(param, Constants.ENCODING));
         property = paramContainer.getPayload();
       }
 
@@ -1328,45 +1328,45 @@ public class V4Services extends AbstractServices {
       final String basePath = "Products" + File.separatorChar + "feed";
 
       final InputStream feed = FSManager.instance(version).readFile(basePath, Accept.JSON_FULLMETA);
-      return xml.createResponse(null, feed, Commons.getETag(basePath, version), Accept.JSON_FULLMETA);
+      return xml.createResponse(null, feed, Commons.getETag(basePath), Accept.JSON_FULLMETA);
     } catch (Exception e) {
-      return xml.createFaultResponse(Accept.JSON_FULLMETA.toString(version), e);
+      return xml.createFaultResponse(Accept.JSON_FULLMETA.toString(), e);
     }
   }
 
   @POST
   @Path("/ResetBossAddress()")
   public Response actionResetBossAddress(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          final String param) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
-      final Accept contentTypeValue = Accept.parse(contentType, version);
+      final Accept contentTypeValue = Accept.parse(contentType);
       final Entity entity = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
 
       assert "Microsoft.Test.OData.Services.ODataWCFService.Address".equals(entity.getType());
       assert entity.getProperty("address").isComplex();
 
       final ResWrap<Property> result = new ResWrap<Property>(
-              URI.create(Constants.get(version, ConstantKey.ODATA_METADATA_PREFIX)
-                      + "Microsoft.Test.OData.Services.ODataWCFService.Address"),
-              null,
-              entity.getProperty("address"));
+          URI.create(Constants.get(ConstantKey.ODATA_METADATA_PREFIX)
+              + "Microsoft.Test.OData.Services.ODataWCFService.Address"),
+          null,
+          entity.getProperty("address"));
 
       return xml.createResponse(
-              null,
-              xml.writeProperty(acceptType, result),
-              null,
-              acceptType);
+          null,
+          xml.writeProperty(acceptType, result),
+          null,
+          acceptType);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -1375,20 +1375,20 @@ public class V4Services extends AbstractServices {
   @POST
   @Path("/ResetBossEmail()")
   public Response actionResetBossEmail(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          final String param) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String param) {
 
     try {
       final Accept acceptType;
       if (StringUtils.isNotBlank(format)) {
         acceptType = Accept.valueOf(format.toUpperCase());
       } else {
-        acceptType = Accept.parse(accept, version);
+        acceptType = Accept.parse(accept);
       }
 
-      final Accept contentTypeValue = Accept.parse(contentType, version);
+      final Accept contentTypeValue = Accept.parse(contentType);
       final Entity entry = xml.readEntity(contentTypeValue, IOUtils.toInputStream(param, Constants.ENCODING));
 
       assert 1 == entry.getProperties().size();
@@ -1396,10 +1396,10 @@ public class V4Services extends AbstractServices {
       assert entry.getProperty("emails").isCollection();
 
       return xml.createResponse(
-              null,
-              xml.writeProperty(acceptType, entry.getProperty("emails")),
-              null,
-              acceptType);
+          null,
+          xml.writeProperty(acceptType, entry.getProperty("emails")),
+          null,
+          acceptType);
     } catch (Exception e) {
       return xml.createFaultResponse(accept, e);
     }
@@ -1408,10 +1408,10 @@ public class V4Services extends AbstractServices {
   @POST
   @Path("/Products({productId})/Categories/$ref")
   public Response createLinked(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          final String entity) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String entity) {
 
     return xml.createResponse(null, null, null, Status.NO_CONTENT);
   }
@@ -1419,10 +1419,10 @@ public class V4Services extends AbstractServices {
   @POST
   @Path("/Customers(1)/Orders/$ref")
   public Response linkOrderViaRef(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          final String entity) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String entity) {
 
     return xml.createResponse(null, null, null, Status.NO_CONTENT);
   }
@@ -1430,10 +1430,10 @@ public class V4Services extends AbstractServices {
   @DELETE
   @Path("/Products({productId})/Categories({categoryId})/$ref")
   public Response deleteLinked(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          final String entity) {
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      final String entity) {
 
     return xml.createResponse(null, null, null, Status.NO_CONTENT);
   }
@@ -1441,13 +1441,13 @@ public class V4Services extends AbstractServices {
   @GET
   @Path("/Company/VipCustomer")
   public Response getVipCustomer(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          @QueryParam("$expand") @DefaultValue(StringUtils.EMPTY) final String expand,
-          @QueryParam("$select") @DefaultValue(StringUtils.EMPTY) final String select) {
+      @Context final UriInfo uriInfo,
+      @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
+      @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
+      @QueryParam("$expand") @DefaultValue(StringUtils.EMPTY) final String expand,
+      @QueryParam("$select") @DefaultValue(StringUtils.EMPTY) final String select) {
 
     return super.getEntityInternal(
-            uriInfo.getRequestUri().toASCIIString(), accept, "VipCustomer", "1", format, expand, select);
+        uriInfo.getRequestUri().toASCIIString(), accept, "VipCustomer", "1", format, expand, select);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/07c37106/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java b/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java
index ca8128a..144de7d 100644
--- a/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java
+++ b/fit/src/main/java/org/apache/olingo/fit/V4Vocabularies.java
@@ -18,6 +18,15 @@
  */
 package org.apache.olingo.fit;
 
+import java.io.IOException;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.fit.metadata.Metadata;
 import org.apache.olingo.fit.utils.Accept;
@@ -27,14 +36,6 @@ import org.apache.olingo.fit.utils.FSManager;
 import org.apache.olingo.fit.utils.XMLUtilities;
 import org.springframework.stereotype.Service;
 
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.io.IOException;
-
 @Service
 @Path("/V40/Vocabularies.svc")
 public class V4Vocabularies {
@@ -45,9 +46,8 @@ public class V4Vocabularies {
 
   public V4Vocabularies() throws IOException {
     metadata = new Metadata(FSManager.instance(ODataServiceVersion.V40).readRes(
-            "vocabularies-" + Constants.get(ODataServiceVersion.V40, ConstantKey.METADATA), Accept.XML),
-            ODataServiceVersion.V40);
-    xml = new XMLUtilities(ODataServiceVersion.V40, metadata);
+        "vocabularies-" + Constants.get(ConstantKey.METADATA), Accept.XML));
+    xml = new XMLUtilities(metadata);
   }
 
   @GET
@@ -56,13 +56,13 @@ public class V4Vocabularies {
   public Response getMetadata() {
     try {
       return xml.createResponse(
-              null,
-              FSManager.instance(ODataServiceVersion.V40).readRes(
-                      "vocabularies-" + Constants.get(ODataServiceVersion.V40, ConstantKey.METADATA), Accept.XML),
-              null,
-              Accept.XML);
+          null,
+          FSManager.instance(ODataServiceVersion.V40).readRes(
+              "vocabularies-" + Constants.get(ConstantKey.METADATA), Accept.XML),
+          null,
+          Accept.XML);
     } catch (Exception e) {
-      return xml.createFaultResponse(Accept.XML.toString(ODataServiceVersion.V40), e);
+      return xml.createFaultResponse(Accept.XML.toString(), e);
     }
   }
 
@@ -72,12 +72,12 @@ public class V4Vocabularies {
   public Response getVocabulary(@PathParam("vocabulary") final String vocabulary) {
     try {
       return xml.createResponse(
-              null,
-              FSManager.instance(ODataServiceVersion.V40).readFile(vocabulary, null),
-              null,
-              Accept.XML);
+          null,
+          FSManager.instance(ODataServiceVersion.V40).readFile(vocabulary, null),
+          null,
+          Accept.XML);
     } catch (Exception e) {
-      return xml.createFaultResponse(Accept.XML.toString(ODataServiceVersion.V40), e);
+      return xml.createFaultResponse(Accept.XML.toString(), e);
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/07c37106/fit/src/main/java/org/apache/olingo/fit/metadata/Metadata.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/metadata/Metadata.java b/fit/src/main/java/org/apache/olingo/fit/metadata/Metadata.java
index 31aa9c2..e31d2cd 100644
--- a/fit/src/main/java/org/apache/olingo/fit/metadata/Metadata.java
+++ b/fit/src/main/java/org/apache/olingo/fit/metadata/Metadata.java
@@ -18,14 +18,11 @@
  */
 package org.apache.olingo.fit.metadata;
 
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.fit.utils.ConstantKey;
-import org.apache.olingo.fit.utils.Constants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.io.InputStream;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLEventReader;
@@ -34,11 +31,14 @@ import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.events.Attribute;
 import javax.xml.stream.events.StartElement;
 import javax.xml.stream.events.XMLEvent;
-import java.io.InputStream;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.fit.utils.ConstantKey;
+import org.apache.olingo.fit.utils.Constants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class Metadata extends AbstractMetadataElement {
 
@@ -47,15 +47,13 @@ public class Metadata extends AbstractMetadataElement {
    */
   protected static final Logger LOG = LoggerFactory.getLogger(Metadata.class);
 
-  protected final ODataServiceVersion version;
 
   private final Map<String, Schema> schemas;
 
   private final String DEF_NS;
 
-  public Metadata(final InputStream is, final ODataServiceVersion version) {
-    this.version = version;
-    DEF_NS = Constants.get(version, ConstantKey.EDM_NS);
+  public Metadata(final InputStream is) {
+    DEF_NS = Constants.get(ConstantKey.EDM_NS);
     schemas = new HashMap<String, Schema>();
 
     try {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/07c37106/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java b/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java
index f8cab08..39818c2 100644
--- a/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java
+++ b/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java
@@ -18,6 +18,28 @@
  */
 package org.apache.olingo.fit.utils;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.util.AbstractMap.SimpleEntry;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.ConcurrentModificationException;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.regex.Pattern;
+
+import javax.ws.rs.NotFoundException;
+import javax.ws.rs.core.Response;
+import javax.xml.stream.XMLStreamException;
+
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.vfs2.FileObject;
@@ -41,26 +63,6 @@ import org.apache.olingo.fit.serializer.FITAtomDeserializer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.ws.rs.NotFoundException;
-import javax.ws.rs.core.Response;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
-import java.util.AbstractMap.SimpleEntry;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.ConcurrentModificationException;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.regex.Pattern;
-
 public abstract class AbstractUtilities {
 
   /**
@@ -85,8 +87,6 @@ public abstract class AbstractUtilities {
    */
   public static final String BOUNDARY = "boundary";
 
-  protected final ODataServiceVersion version;
-
   protected final Metadata metadata;
 
   protected final FSManager fsManager;
@@ -99,10 +99,9 @@ public abstract class AbstractUtilities {
 
   protected final ODataSerializer jsonSerializer;
 
-  public AbstractUtilities(final ODataServiceVersion version, final Metadata metadata) throws IOException {
-    this.version = version;
+  public AbstractUtilities(final Metadata metadata) throws IOException {
     this.metadata = metadata;
-    fsManager = FSManager.instance(version);
+    fsManager = FSManager.instance(ODataServiceVersion.V40);
     atomDeserializer = new FITAtomDeserializer();
     jsonDeserializer = new JsonDeserializer(true);
     atomSerializer = new AtomSerializer(true);
@@ -170,7 +169,7 @@ public abstract class AbstractUtilities {
     // -----------------------------------------
     final String path =
         entitySetName + File.separatorChar + Commons.getEntityKey(key) + File.separatorChar
-            + Constants.get(version, ConstantKey.ENTITY);
+            + Constants.get(ConstantKey.ENTITY);
     // -----------------------------------------
 
     // -----------------------------------------
@@ -268,7 +267,7 @@ public abstract class AbstractUtilities {
     // -----------------------------------------
     final FileObject fo = fsManager.putInMemory(
         normalizedEntity,
-        fsManager.getAbsolutePath(path + Constants.get(version, ConstantKey.ENTITY), getDefaultFormat()));
+        fsManager.getAbsolutePath(path + Constants.get(ConstantKey.ENTITY), getDefaultFormat()));
     // -----------------------------------------
 
     // -----------------------------------------
@@ -334,7 +333,7 @@ public abstract class AbstractUtilities {
     // 1. save the media entity value
     // -----------------------------------------
     fsManager.putInMemory(is, fsManager.getAbsolutePath(path
-        + Constants.get(version, ConstantKey.MEDIA_CONTENT_FILENAME), null));
+        + Constants.get(ConstantKey.MEDIA_CONTENT_FILENAME), null));
     IOUtils.closeQuietly(is);
     // -----------------------------------------
   }
@@ -368,12 +367,12 @@ public abstract class AbstractUtilities {
       throws Exception {
 
     fsManager.putInMemory(
-        Commons.getLinksAsJSON(version, entitySetName, new SimpleEntry<String, Collection<String>>(linkName, uris)),
-        Commons.getLinksPath(version, basePath, linkName, Accept.JSON_FULLMETA));
+        Commons.getLinksAsJSON(entitySetName, new SimpleEntry<String, Collection<String>>(linkName, uris)),
+        Commons.getLinksPath(basePath, linkName, Accept.JSON_FULLMETA));
 
     fsManager.putInMemory(
-        Commons.getLinksAsATOM(version, new SimpleEntry<String, Collection<String>>(linkName, uris)),
-        Commons.getLinksPath(version, basePath, linkName, Accept.XML));
+        Commons.getLinksAsATOM(new SimpleEntry<String, Collection<String>>(linkName, uris)),
+        Commons.getLinksPath(basePath, linkName, Accept.XML));
   }
 
   public Response createResponse(
@@ -383,10 +382,6 @@ public abstract class AbstractUtilities {
 
   public Response createAsyncResponse(final String location) {
     final Response.ResponseBuilder builder = Response.accepted();
-    if (version.compareTo(ODataServiceVersion.V30) <= 0) {
-      builder.header(Constants.get(version, ConstantKey.ODATA_SERVICE_VERSION), version.toString() + ";");
-    }
-
     builder.header("Location", location);
     builder.header("Preference-Applied", "Respond-Async");
     builder.header("Retry-After", "10");
@@ -396,10 +391,6 @@ public abstract class AbstractUtilities {
 
   public Response createMonitorResponse(final InputStream res) {
     final Response.ResponseBuilder builder = Response.ok();
-    if (version.compareTo(ODataServiceVersion.V30) <= 0) {
-      builder.header(Constants.get(version, ConstantKey.ODATA_SERVICE_VERSION), version.toString() + ";");
-    }
-
     builder.header("Content-Type", "application/http");
     builder.header("Content-Transfer-Encoding", "binary");
 
@@ -411,10 +402,8 @@ public abstract class AbstractUtilities {
   }
 
   public Response createBatchResponse(final InputStream stream) {
-    final Response.ResponseBuilder builder = version.compareTo(ODataServiceVersion.V30) <= 0
-        ? Response.accepted(stream)
-        : Response.ok(stream);
-    builder.header(Constants.get(version, ConstantKey.ODATA_SERVICE_VERSION), version.toString() + ";");
+    final Response.ResponseBuilder builder = Response.ok(stream);
+    builder.header(Constants.get(ConstantKey.ODATA_SERVICE_VERSION), ODataServiceVersion.V40.toString() + ";");
     return builder.build();
   }
 
@@ -434,10 +423,6 @@ public abstract class AbstractUtilities {
       final Response.Status status) {
 
     final Response.ResponseBuilder builder = Response.ok();
-    if (version.compareTo(ODataServiceVersion.V30) <= 0) {
-      builder.header(Constants.get(version, ConstantKey.ODATA_SERVICE_VERSION), version.toString() + ";");
-    }
-
     if (StringUtils.isNotBlank(etag)) {
       builder.header("ETag", etag);
     }
@@ -455,7 +440,7 @@ public abstract class AbstractUtilities {
         final InputStream toBeStreamedBack;
 
         if (Accept.JSON == accept || Accept.JSON_NOMETA == accept) {
-          toBeStreamedBack = Commons.changeFormat(entity, version, accept);
+          toBeStreamedBack = Commons.changeFormat(entity, accept);
         } else {
           toBeStreamedBack = entity;
         }
@@ -474,7 +459,7 @@ public abstract class AbstractUtilities {
     }
 
     builder.header("Content-Length", contentLength);
-    builder.header("Content-Type", (accept == null ? "*/*" : accept.toString(version)) + contentTypeEncoding);
+    builder.header("Content-Type", (accept == null ? "*/*" : accept.toString()) + contentTypeEncoding);
 
     if (StringUtils.isNotBlank(location)) {
       builder.header("Location", location);
@@ -487,16 +472,12 @@ public abstract class AbstractUtilities {
     LOG.debug("Create fault response about .... ", e);
 
     final Response.ResponseBuilder builder = Response.serverError();
-    if (version.compareTo(ODataServiceVersion.V30) <= 0) {
-      builder.header(Constants.get(version, ConstantKey.ODATA_SERVICE_VERSION), version + ";");
-    }
-
     final String ext;
     final Accept contentType;
     if (accept.startsWith("application/json")) {
       ext = ".json";
       contentType = Accept.JSON;
-    } else if (accept.startsWith("application/xml") || version.compareTo(ODataServiceVersion.V30) <= 0) {
+    } else if (accept.startsWith("application/xml")) {
       ext = ".xml";
       contentType = Accept.XML;
     } else {
@@ -722,7 +703,7 @@ public abstract class AbstractUtilities {
 
   public String getLinksBasePath(final String entitySetName, final String entityId) {
     return entitySetName + File.separatorChar + Commons.getEntityKey(entityId) + File.separatorChar
-        + Constants.get(version, ConstantKey.LINKS_FILE_PATH) + File.separatorChar;
+        + Constants.get(ConstantKey.LINKS_FILE_PATH) + File.separatorChar;
   }
 
   /**
@@ -741,7 +722,7 @@ public abstract class AbstractUtilities {
     final String basePath = getLinksBasePath(entitySetName, entityId);
 
     final LinkInfo linkInfo = new LinkInfo(fsManager.readFile(basePath + linkName, accept));
-    linkInfo.setEtag(Commons.getETag(basePath, version));
+    linkInfo.setEtag(Commons.getETag(basePath));
     final Map<String, NavigationProperty> navigationProperties = metadata.getNavigationProperties(entitySetName);
 
     linkInfo.setFeed(navigationProperties.get(linkName.replaceAll("\\(.*\\)", "")).isEntitySet());
@@ -760,7 +741,7 @@ public abstract class AbstractUtilities {
       throws IOException {
     final FileObject fo = fsManager.putInMemory(value, fsManager.getAbsolutePath(
         Commons.getEntityBasePath(entitySetName, entityId)
-            + (name == null ? Constants.get(version, ConstantKey.MEDIA_CONTENT_FILENAME) : name), null));
+            + (name == null ? Constants.get(ConstantKey.MEDIA_CONTENT_FILENAME) : name), null));
 
     return fo.getContent().getInputStream();
   }
@@ -773,7 +754,7 @@ public abstract class AbstractUtilities {
       final String entitySetName, final String entityId, final String name) {
     final String basePath = Commons.getEntityBasePath(entitySetName, entityId);
     return new SimpleEntry<String, InputStream>(basePath, fsManager.readFile(basePath
-        + (name == null ? Constants.get(version, ConstantKey.MEDIA_CONTENT_FILENAME) : name)));
+        + (name == null ? Constants.get(ConstantKey.MEDIA_CONTENT_FILENAME) : name)));
   }
 
   public Map.Entry<String, InputStream> readEntity(
@@ -785,7 +766,7 @@ public abstract class AbstractUtilities {
 
     final String basePath = Commons.getEntityBasePath(entitySetName, entityId);
     return new SimpleEntry<String, InputStream>(basePath,
-        fsManager.readFile(basePath + Constants.get(version, ConstantKey.ENTITY), accept));
+        fsManager.readFile(basePath + Constants.get(ConstantKey.ENTITY), accept));
   }
 
   public InputStream expandEntity(
@@ -836,16 +817,16 @@ public abstract class AbstractUtilities {
         ? Accept.XML : accept.getExtension().equals(Accept.JSON.getExtension()) ? Accept.JSON_FULLMETA : accept;
 
     // read atom
-    InputStream stream = fsManager.readFile(basePath + Constants.get(version, ConstantKey.ENTITY), acceptType);
+    InputStream stream = fsManager.readFile(basePath + Constants.get(ConstantKey.ENTITY), acceptType);
 
     // change atom
     stream = deleteProperty(stream, path);
 
     // save atom
     fsManager.putInMemory(stream,
-        fsManager.getAbsolutePath(basePath + Constants.get(version, ConstantKey.ENTITY), acceptType));
+        fsManager.getAbsolutePath(basePath + Constants.get(ConstantKey.ENTITY), acceptType));
 
-    return fsManager.readFile(basePath + Constants.get(version, ConstantKey.ENTITY), acceptType);
+    return fsManager.readFile(basePath + Constants.get(ConstantKey.ENTITY), acceptType);
   }
 
   public abstract InputStream readEntities(