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/02/18 15:03:19 UTC

[48/51] [partial] olingo-odata4 git commit: [OLINGO-575] Delete V3 sources from master

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c8865db8/fit/src/it/primitiveKeysServiceV3/verify.groovy
----------------------------------------------------------------------
diff --git a/fit/src/it/primitiveKeysServiceV3/verify.groovy b/fit/src/it/primitiveKeysServiceV3/verify.groovy
deleted file mode 100644
index 9b74ad2..0000000
--- a/fit/src/it/primitiveKeysServiceV3/verify.groovy
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-File basepkg = new File( basedir, "target/generated-sources/ojc-plugin/org/apache/olingo/fit/proxy/v3" );
-assert basepkg.isDirectory() && basepkg.listFiles().length>0;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c8865db8/fit/src/it/staticServiceV3/pom.xml
----------------------------------------------------------------------
diff --git a/fit/src/it/staticServiceV3/pom.xml b/fit/src/it/staticServiceV3/pom.xml
deleted file mode 100644
index 528d94c..0000000
--- a/fit/src/it/staticServiceV3/pom.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>pojogen-maven-plugin-v3test</artifactId>
-  <groupId>org.apache.olingo</groupId>
-  <version>@project.version@</version>
-  <name>${project.artifactId}</name>
-  <description>A simple IT verifying the basic use case of pojogen-maven-plugin.</description>
-
-  <properties>
-    <project.source>1.6</project.source>
-    <compiler.plugin.version>3.2</compiler.plugin.version>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-  </properties>
-  
-  <dependencies>
-    <dependency>
-      <artifactId>pojogen-maven-plugin</artifactId>
-      <groupId>org.apache.olingo</groupId>
-      <version>@project.version@</version>
-      <scope>runtime</scope>
-    </dependency>
-    
-    <dependency>
-      <artifactId>odata-client-proxy</artifactId>
-      <groupId>org.apache.olingo</groupId>
-      <version>@project.version@</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>${compiler.plugin.version}</version>
-        <configuration>
-          <source>${project.source}</source>
-          <target>${project.source}</target>
-          <showWarnings>true</showWarnings>
-          <showDeprecation>true</showDeprecation>
-          <compilerArgument>-Xlint:unchecked</compilerArgument>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <version>1.8</version>
-        <executions>
-          <execution>
-            <phase>process-sources</phase>
-            <goals>
-              <goal>add-source</goal>
-            </goals>
-            <configuration>
-              <sources>
-                <source>${project.build.directory}/generated-sources</source>
-              </sources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      
-      <plugin>
-        <groupId>@project.groupId@</groupId>
-        <artifactId>pojogen-maven-plugin</artifactId>
-        <version>@project.version@</version>
-        <executions>
-          <execution>
-            <configuration>
-              <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
-              <serviceRootURL>http://localhost:9180/stub/StaticService/V30/Static.svc</serviceRootURL>
-              <basePackage>org.apache.olingo.fit.proxy.v3.staticservice</basePackage>
-            </configuration>
-            <id>v3pojoGen</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>v3pojoGen</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c8865db8/fit/src/it/staticServiceV3/verify.groovy
----------------------------------------------------------------------
diff --git a/fit/src/it/staticServiceV3/verify.groovy b/fit/src/it/staticServiceV3/verify.groovy
deleted file mode 100644
index 9b74ad2..0000000
--- a/fit/src/it/staticServiceV3/verify.groovy
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-File basepkg = new File( basedir, "target/generated-sources/ojc-plugin/org/apache/olingo/fit/proxy/v3" );
-assert basepkg.isDirectory() && basepkg.listFiles().length>0;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c8865db8/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java b/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
index 9c91ea3..3d70109 100644
--- a/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
+++ b/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java
@@ -686,7 +686,7 @@ public abstract class AbstractServices {
 
       final String location;
 
-      if ((this instanceof V3KeyAsSegment) || (this instanceof V4KeyAsSegment)) {
+      if ((this instanceof V4KeyAsSegment)) {
         location = uriInfo.getRequestUri().toASCIIString() + "/" + entityKey;
 
         final Link editLink = new LinkImpl();
@@ -1204,7 +1204,7 @@ public abstract class AbstractServices {
       }
       final Entity entry = container.getPayload();
 
-      if ((this instanceof V3KeyAsSegment) || (this instanceof V4KeyAsSegment)) {
+      if ((this instanceof V4KeyAsSegment)) {
         final Link editLink = new LinkImpl();
         editLink.setRel("edit");
         editLink.setTitle(entitySetName);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c8865db8/fit/src/main/java/org/apache/olingo/fit/V3ActionOverloading.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V3ActionOverloading.java b/fit/src/main/java/org/apache/olingo/fit/V3ActionOverloading.java
deleted file mode 100644
index 011552e..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V3ActionOverloading.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.fit.metadata.Metadata;
-import org.apache.olingo.fit.utils.AbstractUtilities;
-import org.apache.olingo.fit.utils.Accept;
-import org.apache.olingo.fit.utils.Commons;
-import org.apache.olingo.fit.utils.ConstantKey;
-import org.apache.olingo.fit.utils.Constants;
-import org.apache.olingo.fit.utils.FSManager;
-import org.springframework.stereotype.Service;
-
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Map;
-
-@Service
-@Path("/V30/ActionOverloading.svc")
-public class V3ActionOverloading extends V3Services {
-
-  public V3ActionOverloading() throws IOException {
-    super(new Metadata(FSManager.instance(ODataServiceVersion.V30).readRes(
-            "actionOverloading" + StringUtils.capitalize(Constants.get(ODataServiceVersion.V30, ConstantKey.METADATA)),
-            Accept.XML), ODataServiceVersion.V30));
-  }
-
-  private Response replaceServiceName(final Response response) {
-    try {
-      final String content = IOUtils.toString((InputStream) response.getEntity(), Constants.ENCODING).
-              replaceAll("Static\\.svc", "ActionOverloading.svc");
-
-      final Response.ResponseBuilder builder = Response.status(response.getStatus());
-      for (String headerName : response.getHeaders().keySet()) {
-        for (Object headerValue : response.getHeaders().get(headerName)) {
-          builder.header(headerName, headerValue);
-        }
-      }
-
-      final InputStream toBeStreamedBack = IOUtils.toInputStream(content, Constants.ENCODING);
-      final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-      IOUtils.copy(toBeStreamedBack, baos);
-      IOUtils.closeQuietly(toBeStreamedBack);
-
-      builder.header("Content-Length", baos.size());
-      builder.entity(new ByteArrayInputStream(baos.toByteArray()));
-
-      return builder.build();
-    } catch (Exception e) {
-      return response;
-    }
-  }
-
-  @GET
-  @Path("/$metadata")
-  @Produces(MediaType.APPLICATION_XML)
-  @Override
-  public Response getMetadata() {
-    return super.getMetadata("actionOverloading"
-            + StringUtils.capitalize(Constants.get(ODataServiceVersion.V30, ConstantKey.METADATA)));
-  }
-
-  @POST
-  @Path("/RetrieveProduct")
-  public Response unboundRetrieveProduct(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType) {
-
-    final Accept acceptType;
-    if (StringUtils.isNotBlank(format)) {
-      acceptType = Accept.valueOf(format.toUpperCase());
-    } else {
-      acceptType = Accept.parse(accept, ODataServiceVersion.V30);
-    }
-    if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
-      throw new UnsupportedMediaTypeException("Unsupported media type");
-    }
-
-    try {
-      final InputStream result = FSManager.instance(ODataServiceVersion.V30).
-              readFile("actionOverloadingRetrieveProduct", acceptType);
-      return replaceServiceName(xml.createResponse(result, null, acceptType));
-    } catch (Exception e) {
-      return replaceServiceName(xml.createFaultResponse(accept, e));
-    }
-  }
-
-  @GET
-  @Path("/Product({entityId})")
-  @Override
-  public Response getProduct(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("entityId") final String entityId,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    final Map.Entry<Accept, AbstractUtilities> utils = super.getUtilities(accept, format);
-
-    if (utils.getKey() == Accept.XML || utils.getKey() == Accept.TEXT) {
-      throw new UnsupportedMediaTypeException("Unsupported media type");
-    }
-
-    final Map.Entry<String, InputStream> entityInfo = utils.getValue().readEntity("Product", entityId, utils.getKey());
-
-    InputStream entity = entityInfo.getValue();
-    try {
-      if (utils.getKey() == Accept.JSON_FULLMETA || utils.getKey() == Accept.ATOM) {
-        entity = utils.getValue().addOperation(entity, "RetrieveProduct", "#DefaultContainer.RetrieveProduct",
-                uriInfo.getAbsolutePath().toASCIIString()
-                + "/RetrieveProduct");
-      }
-
-      return replaceServiceName(utils.getValue().createResponse(
-              entity, Commons.getETag(entityInfo.getKey(), ODataServiceVersion.V30), utils.getKey()));
-    } catch (Exception e) {
-      LOG.error("Error retrieving entity", e);
-      return replaceServiceName(xml.createFaultResponse(accept, e));
-    }
-  }
-
-  @POST
-  @Path("/Product({entityId})/{path:.*RetrieveProduct}")
-  public Response productBoundRetrieveProduct(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType) {
-
-    return unboundRetrieveProduct(accept, format, contentType);
-  }
-
-  @GET
-  @Path("/OrderLine(OrderId={orderId},ProductId={productId})")
-  public Response getOrderLine(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("orderId") final String orderId,
-          @PathParam("productId") final String productId,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    final Map.Entry<Accept, AbstractUtilities> utils = super.getUtilities(accept, format);
-
-    if (utils.getKey() == Accept.XML || utils.getKey() == Accept.TEXT) {
-      throw new UnsupportedMediaTypeException("Unsupported media type");
-    }
-
-    final Map.Entry<String, InputStream> entityInfo = utils.getValue().
-            readEntity("OrderLine", orderId + " " + productId, utils.getKey());
-
-    InputStream entity = entityInfo.getValue();
-    try {
-      if (utils.getKey() == Accept.JSON_FULLMETA || utils.getKey() == Accept.ATOM) {
-        entity = utils.getValue().addOperation(entity, "RetrieveProduct", "#DefaultContainer.RetrieveProduct",
-                uriInfo.getAbsolutePath().toASCIIString()
-                + "/RetrieveProduct");
-      }
-
-      return replaceServiceName(utils.getValue().createResponse(
-              entity, Commons.getETag(entityInfo.getKey(), ODataServiceVersion.V30), utils.getKey()));
-    } catch (Exception e) {
-      LOG.error("Error retrieving entity", e);
-      return replaceServiceName(xml.createFaultResponse(accept, e));
-    }
-  }
-
-  @POST
-  @Path("/OrderLine(OrderId={orderId},ProductId={productId})/{path:.*RetrieveProduct}")
-  public Response orderLineBoundRetrieveProduct(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) final String contentType) {
-
-    return unboundRetrieveProduct(accept, format, contentType);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c8865db8/fit/src/main/java/org/apache/olingo/fit/V3KeyAsSegment.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V3KeyAsSegment.java b/fit/src/main/java/org/apache/olingo/fit/V3KeyAsSegment.java
deleted file mode 100644
index aece8c2..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V3KeyAsSegment.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.fit.methods.MERGE;
-import org.apache.olingo.fit.methods.PATCH;
-import org.apache.olingo.fit.utils.Constants;
-import org.springframework.stereotype.Service;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-@Service
-@Path("/V30/KeyAsSegment.svc")
-public class V3KeyAsSegment extends V3Services {
-
-  public V3KeyAsSegment() throws IOException {
-    super();
-  }
-
-  private Response replaceServiceName(final Response response) {
-    try {
-      final String content = IOUtils.toString((InputStream) response.getEntity(), Constants.ENCODING).
-              replaceAll("Static\\.svc", "KeyAsSegment.svc");
-
-      final Response.ResponseBuilder builder = Response.status(response.getStatus());
-      for (String headerName : response.getHeaders().keySet()) {
-        for (Object headerValue : response.getHeaders().get(headerName)) {
-          builder.header(headerName, headerValue);
-        }
-      }
-
-      final InputStream toBeStreamedBack = IOUtils.toInputStream(content, Constants.ENCODING);
-      final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-      IOUtils.copy(toBeStreamedBack, baos);
-      IOUtils.closeQuietly(toBeStreamedBack);
-
-      builder.header("Content-Length", baos.size());
-      builder.entity(new ByteArrayInputStream(baos.toByteArray()));
-
-      return builder.build();
-    } catch (Exception e) {
-      return response;
-    }
-  }
-
-  @GET
-  @Path("/{entitySetName}/{entityId}")
-  @Override
-  public Response getEntity(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("entitySetName") final String entitySetName,
-          @PathParam("entityId") final String entityId,
-          @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 replaceServiceName(super.getEntityInternal(uriInfo.getRequestUri().toASCIIString(),
-            accept, entitySetName, entityId, format, expand, select));
-  }
-
-  @DELETE
-  @Path("/{entitySetName}/{entityId}")
-  @Override
-  public Response removeEntity(
-          @PathParam("entitySetName") final String entitySetName,
-          @PathParam("entityId") final String entityId) {
-
-    return replaceServiceName(super.removeEntity(entitySetName, entityId));
-  }
-
-  @MERGE
-  @Path("/{entitySetName}/{entityId}")
-  @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
-  @Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
-
-  @Override
-  public Response mergeEntity(
-          @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,
-          @PathParam("entitySetName") final String entitySetName,
-          @PathParam("entityId") final String entityId,
-          final String changes) {
-
-    return replaceServiceName(super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, entitySetName,
-            entityId, changes));
-  }
-
-  @PATCH
-  @Path("/{entitySetName}/{entityId}")
-  @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
-  @Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
-
-  @Override
-  public Response patchEntity(
-          @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,
-          @PathParam("entitySetName") final String entitySetName,
-          @PathParam("entityId") final String entityId,
-          final String changes) {
-
-    return replaceServiceName(super.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, entitySetName,
-            entityId, changes));
-  }
-
-  @PUT
-  @Path("/{entitySetName}/{entityId}")
-  @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
-  @Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
-  public Response putNewEntity(
-          @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,
-          @PathParam("entitySetName") final String entitySetName,
-          @PathParam("entityId") final String entityId,
-          final String entity) {
-
-    return replaceServiceName(super.replaceEntity(uriInfo, accept, contentType, prefer, entitySetName, entityId,
-            entity));
-  }
-
-  @POST
-  @Path("/{entitySetName}")
-  @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
-  @Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM})
-
-  @Override
-  public Response postNewEntity(
-          @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,
-          @PathParam("entitySetName") final String entitySetName,
-          final String entity) {
-
-    return replaceServiceName(super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c8865db8/fit/src/main/java/org/apache/olingo/fit/V3OpenType.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V3OpenType.java b/fit/src/main/java/org/apache/olingo/fit/V3OpenType.java
deleted file mode 100644
index 540c0d8..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V3OpenType.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.fit.metadata.Metadata;
-import org.apache.olingo.fit.utils.Accept;
-import org.apache.olingo.fit.utils.ConstantKey;
-import org.apache.olingo.fit.utils.Constants;
-import org.apache.olingo.fit.utils.FSManager;
-import org.springframework.stereotype.Service;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-@Service
-@Path("/V30/OpenType.svc")
-public class V3OpenType extends V3Services {
-
-  private static final Pattern GUID = Pattern.compile("guid'(.*)'");
-
-  public V3OpenType() throws IOException {
-    super(new Metadata(FSManager.instance(ODataServiceVersion.V30).
-            readRes("openType" + StringUtils.capitalize(Constants.get(ODataServiceVersion.V30, ConstantKey.METADATA)),
-                    Accept.XML), ODataServiceVersion.V30));
-  }
-
-  private Response replaceServiceName(final Response response) {
-    try {
-      final String content = IOUtils.toString((InputStream) response.getEntity(), Constants.ENCODING).
-              replaceAll("Static\\.svc", "OpenType.svc");
-
-      final Response.ResponseBuilder builder = Response.status(response.getStatus());
-      for (String headerName : response.getHeaders().keySet()) {
-        for (Object headerValue : response.getHeaders().get(headerName)) {
-          builder.header(headerName, headerValue);
-        }
-      }
-
-      final InputStream toBeStreamedBack = IOUtils.toInputStream(content, Constants.ENCODING);
-      final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-      IOUtils.copy(toBeStreamedBack, baos);
-      IOUtils.closeQuietly(toBeStreamedBack);
-
-      builder.header("Content-Length", baos.size());
-      builder.entity(new ByteArrayInputStream(baos.toByteArray()));
-
-      return builder.build();
-    } catch (Exception e) {
-      return response;
-    }
-  }
-
-  /**
-   * Provide sample large metadata.
-   *
-   * @return metadata.
-   */
-  @GET
-  @Path("/$metadata")
-  @Produces(MediaType.APPLICATION_XML)
-  @Override
-  public Response getMetadata() {
-    return super.getMetadata("openType" + StringUtils.capitalize(
-            Constants.get(ODataServiceVersion.V30, ConstantKey.METADATA)));
-  }
-
-  @GET
-  @Path("/{entitySetName}({entityId})")
-  @Override
-  public Response getEntity(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("entitySetName") final String entitySetName,
-          @PathParam("entityId") final String entityId,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format,
-          @QueryParam("$expand") @DefaultValue(StringUtils.EMPTY) final String expand,
-          @QueryParam("$select") @DefaultValue(StringUtils.EMPTY) final String select) {
-
-    final Matcher matcher = GUID.matcher(entityId);
-    return replaceServiceName(super.getEntityInternal(
-        uriInfo.getRequestUri().toASCIIString(), accept, entitySetName,
-        matcher.matches() ? matcher.group(1) : entityId, format, expand, select));
-  }
-
-  @POST
-  @Path("/{entitySetName}")
-  @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON})
-  @Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM})
-  @Override
-  public Response postNewEntity(
-          @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,
-          @PathParam("entitySetName") final String entitySetName,
-          final String entity) {
-
-    return replaceServiceName(super.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity));
-  }
-
-  @DELETE
-  @Path("/{entitySetName}({entityId})")
-  @Override
-  public Response removeEntity(
-          @PathParam("entitySetName") final String entitySetName,
-          @PathParam("entityId") final String entityId) {
-
-    final Matcher matcher = GUID.matcher(entityId);
-    return replaceServiceName(super.removeEntity(entitySetName,
-            matcher.matches() ? matcher.group(1) : entityId));
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c8865db8/fit/src/main/java/org/apache/olingo/fit/V3PrimitiveKeys.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V3PrimitiveKeys.java b/fit/src/main/java/org/apache/olingo/fit/V3PrimitiveKeys.java
deleted file mode 100644
index d74d0fd..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V3PrimitiveKeys.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit;
-
-import org.apache.olingo.fit.utils.Accept;
-import org.apache.olingo.fit.utils.FSManager;
-import org.springframework.stereotype.Service;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.io.IOException;
-
-@Service
-@Path("/V30/PrimitiveKeys.svc")
-public class V3PrimitiveKeys extends V3Services {
-
-  public V3PrimitiveKeys() throws IOException {
-    super();
-  }
-
-  @GET
-  @Path("/$metadata")
-  @Produces(MediaType.APPLICATION_XML)
-  @Override
-  public Response getMetadata() {
-    try {
-      return xml.createResponse(
-              null, FSManager.instance(version).readRes("primitiveKeysMetadata", Accept.XML), null, Accept.XML);
-    } catch (Exception e) {
-      return xml.createFaultResponse(Accept.XML.toString(version), e);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c8865db8/fit/src/main/java/org/apache/olingo/fit/V3Services.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/V3Services.java b/fit/src/main/java/org/apache/olingo/fit/V3Services.java
deleted file mode 100644
index 217f012..0000000
--- a/fit/src/main/java/org/apache/olingo/fit/V3Services.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.cxf.interceptor.InInterceptors;
-import org.apache.cxf.jaxrs.ext.multipart.Attachment;
-import org.apache.olingo.commons.api.data.EntitySet;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.fit.metadata.Metadata;
-import org.apache.olingo.fit.methods.MERGE;
-import org.apache.olingo.fit.methods.PATCH;
-import org.apache.olingo.fit.rest.XHTTPMethodInterceptor;
-import org.apache.olingo.fit.utils.AbstractUtilities;
-import org.apache.olingo.fit.utils.Accept;
-import org.apache.olingo.fit.utils.Commons;
-import org.apache.olingo.fit.utils.ConstantKey;
-import org.apache.olingo.fit.utils.Constants;
-import org.apache.olingo.fit.utils.FSManager;
-import org.apache.olingo.fit.utils.LinkInfo;
-import org.springframework.stereotype.Service;
-
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMultipart;
-import javax.ws.rs.BadRequestException;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-@Service
-@Path("/V30/Static.svc")
-@InInterceptors(classes = XHTTPMethodInterceptor.class)
-public class V3Services extends AbstractServices {
-
-  public V3Services() throws IOException {
-    super(ODataServiceVersion.V30, Commons.getMetadata(ODataServiceVersion.V30));
-  }
-
-  protected V3Services(final Metadata metadata) throws IOException {
-    super(ODataServiceVersion.V30, metadata);
-  }
-
-  @GET
-  @Path("/InStreamErrorGetCustomer")
-  public Response instreamErrorGetCustomer(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-
-    final Accept acceptType;
-    if (StringUtils.isNotBlank(format)) {
-      acceptType = Accept.valueOf(format.toUpperCase());
-    } else {
-      acceptType = Accept.parse(accept, version);
-    }
-
-    try {
-      final InputStream error = FSManager.instance(version).readFile("InStreamErrorGetCustomer", acceptType);
-
-      return Response.ok(error).
-              header(Constants.get(version, ConstantKey.ODATA_SERVICE_VERSION), version + ";").
-              header("Content-Type", acceptType.toString(version)).
-              build();
-    } catch (Exception e) {
-      if (acceptType == Accept.XML || acceptType == Accept.TEXT) {
-        throw new UnsupportedMediaTypeException("Unsupported media type");
-      }
-
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  /**
-   * Provide sample large metadata.
-   *
-   * @return metadata.
-   */
-  @GET
-  @Path("/large/$metadata")
-  @Produces(MediaType.APPLICATION_XML)
-  public Response getLargeMetadata() {
-    return getMetadata("large" + StringUtils.capitalize(Constants.get(version, ConstantKey.METADATA)));
-  }
-
-  @Override
-  protected void setInlineCount(final EntitySet feed, final String count) {
-    if ("allpages".equals(count)) {
-      feed.setCount(feed.getEntities().size());
-    }
-  }
-
-  @Override
-  public InputStream exploreMultipart(
-          final List<Attachment> attachments, final String boundary, final boolean contineOnError)
-          throws IOException {
-
-    final ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
-    Response res = null;
-    boolean goon = true;
-    for (int i = 0; i < attachments.size() && goon; i++) {
-      try {
-        final Attachment obj = attachments.get(i);
-        bos.write(("--" + boundary).getBytes());
-        bos.write(Constants.CRLF);
-
-        final Object content = obj.getDataHandler().getContent();
-        if (content instanceof MimeMultipart) {
-          final Map<String, String> references = new HashMap<String, String>();
-
-          final String cboundary = "changeset_" + UUID.randomUUID().toString();
-          bos.write(("Content-Type: multipart/mixed;boundary=" + cboundary).getBytes());
-          bos.write(Constants.CRLF);
-          bos.write(Constants.CRLF);
-
-          final ByteArrayOutputStream chbos = new ByteArrayOutputStream();
-          String lastContebtID = null;
-          try {
-            for (int j = 0; j < ((MimeMultipart) content).getCount(); j++) {
-              final MimeBodyPart part = (MimeBodyPart) ((MimeMultipart) content).getBodyPart(j);
-              lastContebtID = part.getContentID();
-              addChangesetItemIntro(chbos, lastContebtID, cboundary);
-
-              res = bodyPartRequest(new MimeBodyPart(part.getInputStream()), references);
-              if (res == null || res.getStatus() >= 400) {
-                throw new Exception("Failure processing changeset");
-              }
-
-              addSingleBatchResponse(res, lastContebtID, chbos);
-              references.put("$" + lastContebtID, res.getHeaderString("Location"));
-            }
-
-            bos.write(chbos.toByteArray());
-            IOUtils.closeQuietly(chbos);
-
-            bos.write(("--" + cboundary + "--").getBytes());
-            bos.write(Constants.CRLF);
-          } catch (Exception e) {
-            LOG.warn("While processing changeset", e);
-            IOUtils.closeQuietly(chbos);
-
-            addChangesetItemIntro(bos, lastContebtID, cboundary);
-
-            if (res == null || res.getStatus() < 400) {
-              addErrorBatchResponse(e, "1", bos);
-            } else {
-              addSingleBatchResponse(res, lastContebtID, bos);
-            }
-
-            goon = contineOnError;
-          }
-        } else {
-          addItemIntro(bos);
-
-          res = bodyPartRequest(new MimeBodyPart(obj.getDataHandler().getInputStream()));
-
-          if (res.getStatus() >= 400) {
-            goon = contineOnError;
-            throw new Exception("Failure processing changeset");
-          }
-
-          addSingleBatchResponse(res, bos);
-        }
-      } catch (Exception e) {
-        if (res == null || res.getStatus() < 400) {
-          addErrorBatchResponse(e, bos);
-        } else {
-          addSingleBatchResponse(res, bos);
-        }
-      }
-    }
-
-    bos.write(("--" + boundary + "--").getBytes());
-
-    return new ByteArrayInputStream(bos.toByteArray());
-  }
-
-  @GET
-  @Path("/Car/{type:[a-zA-Z].*}")
-  public Response filterCar(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @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("$orderby") @DefaultValue(StringUtils.EMPTY) final String orderby,
-          @QueryParam("$skiptoken") @DefaultValue(StringUtils.EMPTY) final String skiptoken) {
-
-    return super.getEntitySet(uriInfo, accept, "Car", top, skip, format, count, filter, orderby, skiptoken);
-  }
-
-  @GET
-  @Path("/Login({entityId})")
-  public Response getLogin(
-          @Context final UriInfo uriInfo,
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("entityId") final String entityId,
-          @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,
-        "Login", StringUtils.remove(entityId, "'"), format, expand, select);
-  }
-
-  @POST
-  @Path("/Login")
-  @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 postLogin(
-          @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.AstoriaDefaultService.Login\"}".equals(entity)) {
-      return xml.createFaultResponse(accept, new BadRequestException());
-    }
-
-    return super.postNewEntity(uriInfo, accept, contentType, prefer, "Login", entity);
-  }
-
-  @DELETE
-  @Path("/Login({entityId})")
-  public Response removeLogin(
-          @PathParam("entityId") final String entityId) {
-
-    return super.removeEntity("Login", StringUtils.remove(entityId, "'"));
-  }
-
-  /**
-   * Retrieve links sample.
-   *
-   * @param accept Accept header.
-   * @param entitySetName Entity set name.
-   * @param entityId entity id.
-   * @param linkName link name.
-   * @param format format query option.
-   * @return links.
-   */
-  @GET
-  @Path("/{entitySetName}({entityId})/$links/{linkName}")
-  public Response getLinks(
-          @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) final String accept,
-          @PathParam("entitySetName") final String entitySetName,
-          @PathParam("entityId") final String entityId,
-          @PathParam("linkName") final String linkName,
-          @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);
-      }
-
-      if (acceptType == Accept.ATOM) {
-        throw new UnsupportedMediaTypeException("Unsupported media type");
-      }
-
-      final LinkInfo links = xml.readLinks(entitySetName, entityId, linkName, acceptType);
-
-      return xml.createResponse(
-              links.getLinks(),
-              links.getEtag(),
-              acceptType);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @POST
-  @Path("/{entitySetName}({entityId})/$links/{linkName}")
-  public Response postLink(
-          @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("linkName") final String linkName,
-          final String link,
-          @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);
-      }
-
-      if (acceptType == Accept.ATOM) {
-        throw new UnsupportedMediaTypeException("Unsupported media type");
-      }
-
-      final Accept content;
-      if (StringUtils.isNotBlank(contentType)) {
-        content = Accept.parse(contentType, version);
-      } else {
-        content = acceptType;
-      }
-
-      final AbstractUtilities utils = getUtilities(acceptType);
-
-      final List<String> links;
-      if (content == Accept.XML || content == Accept.TEXT || content == Accept.ATOM) {
-        links = xml.extractLinkURIs(IOUtils.toInputStream(link, Constants.ENCODING)).getValue();
-      } else {
-        links = json.extractLinkURIs(IOUtils.toInputStream(link, Constants.ENCODING)).getValue();
-      }
-
-      utils.putLinksInMemory(
-              Commons.getEntityBasePath(entitySetName, entityId),
-              entitySetName,
-              entityId,
-              linkName,
-              links);
-
-      return xml.createResponse(null, null, null, Response.Status.NO_CONTENT);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @MERGE
-  @Path("/{entitySetName}({entityId})/$links/{linkName}")
-  public Response mergeLink(
-          @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("linkName") final String linkName,
-          final String link,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-    return putLink(accept, contentType, entitySetName, entityId, linkName, link, format);
-  }
-
-  @PATCH
-  @Path("/{entitySetName}({entityId})/$links/{linkName}")
-  public Response patchLink(
-          @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("linkName") final String linkName,
-          final String link,
-          @QueryParam("$format") @DefaultValue(StringUtils.EMPTY) final String format) {
-    return putLink(accept, contentType, entitySetName, entityId, linkName, link, format);
-  }
-
-  @PUT
-  @Path("/{entitySetName}({entityId})/$links/{linkName}")
-  public Response putLink(
-          @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("linkName") final String linkName,
-          final String link,
-          @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);
-      }
-
-      if (acceptType == Accept.ATOM) {
-        throw new UnsupportedMediaTypeException("Unsupported media type");
-      }
-
-      final Accept content;
-      if (StringUtils.isNotBlank(contentType)) {
-        content = Accept.parse(contentType, version);
-      } else {
-        content = acceptType;
-      }
-
-      final AbstractUtilities utils = getUtilities(acceptType);
-
-      final List<String> links;
-      if (content == Accept.XML || content == Accept.TEXT || content == Accept.ATOM) {
-        links = xml.extractLinkURIs(IOUtils.toInputStream(link, Constants.ENCODING)).getValue();
-      } else {
-        links = json.extractLinkURIs(IOUtils.toInputStream(link, Constants.ENCODING)).getValue();
-      }
-
-      utils.putLinksInMemory(
-              Commons.getEntityBasePath(entitySetName, entityId),
-              entitySetName,
-              linkName,
-              links);
-
-      return xml.createResponse(null, null, null, Response.Status.NO_CONTENT);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-
-  @DELETE
-  @Path("/{entitySetName}({entityId})/$links/{linkName}({linkId})")
-  public Response deleteLink(
-          @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("linkName") final String linkName,
-          @PathParam("linkId") final String linkId,
-          @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);
-      }
-
-      if (acceptType == Accept.ATOM) {
-        throw new UnsupportedMediaTypeException("Unsupported media type");
-      }
-
-      final AbstractUtilities utils = getUtilities(acceptType);
-
-      final Map.Entry<String, List<String>> currents = json.extractLinkURIs(utils.readLinks(
-              entitySetName, entityId, linkName, Accept.JSON_FULLMETA).getLinks());
-
-      final Map.Entry<String, List<String>> toBeRemoved = json.extractLinkURIs(utils.readLinks(
-              entitySetName, entityId, linkName + "(" + linkId + ")", Accept.JSON_FULLMETA).getLinks());
-
-      final List<String> remains = currents.getValue();
-      remains.removeAll(toBeRemoved.getValue());
-
-      utils.putLinksInMemory(
-              Commons.getEntityBasePath(entitySetName, entityId),
-              entitySetName,
-              linkName,
-              remains);
-
-      return xml.createResponse(null, null, null, Response.Status.NO_CONTENT);
-    } catch (Exception e) {
-      return xml.createFaultResponse(accept, e);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c8865db8/fit/src/main/java/org/apache/olingo/fit/server/TomcatTestServer.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/server/TomcatTestServer.java b/fit/src/main/java/org/apache/olingo/fit/server/TomcatTestServer.java
index be94e8e..5574211 100644
--- a/fit/src/main/java/org/apache/olingo/fit/server/TomcatTestServer.java
+++ b/fit/src/main/java/org/apache/olingo/fit/server/TomcatTestServer.java
@@ -61,11 +61,6 @@ public class TomcatTestServer {
     try {
       LOG.trace("Start tomcat embedded server from main()");
       TestServerBuilder server = TomcatTestServer.init(9180)
-          .addStaticContent("/stub/StaticService/V30/Static.svc/$metadata", "V30/metadata.xml")
-          .addStaticContent("/stub/StaticService/V30/ActionOverloading.svc/$metadata",
-              "V30/actionOverloadingMetadata.xml")
-          .addStaticContent("/stub/StaticService/V30/OpenType.svc/$metadata", "V30/openTypeMetadata.xml")
-          .addStaticContent("/stub/StaticService/V30/PrimitiveKeys.svc/$metadata", "V30/primitiveKeysMetadata.xml")
           .addStaticContent("/stub/StaticService/V40/OpenType.svc/$metadata", "V40/openTypeMetadata.xml")
           .addStaticContent("/stub/StaticService/V40/Demo.svc/$metadata", "V40/demoMetadata.xml")
           .addStaticContent("/stub/StaticService/V40/Static.svc/$metadata", "V40/metadata.xml");

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c8865db8/fit/src/main/resources/V30/AllGeoTypesSet/-10/entity.xml
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V30/AllGeoTypesSet/-10/entity.xml b/fit/src/main/resources/V30/AllGeoTypesSet/-10/entity.xml
deleted file mode 100644
index b6d4244..0000000
--- a/fit/src/main/resources/V30/AllGeoTypesSet/-10/entity.xml
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-<entry xml:base="http://localhost:${tomcat.servlet.port}/stub/StaticService/V30/Static.svc/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml">
-  <id>http://localhost:${tomcat.servlet.port}/stub/StaticService/V30/Static.svc/AllGeoTypesSet(-10)</id>
-  <category term="Microsoft.Test.OData.Services.AstoriaDefaultService.AllSpatialTypes" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
-  <link rel="edit" title="AllSpatialTypes" href="AllGeoTypesSet(-10)" />
-  <title />
-  <updated>2014-05-08T12:27:58Z</updated>
-  <author>
-    <name />
-  </author>
-  <content type="application/xml">
-    <m:properties>
-      <d:Id m:type="Edm.Int32">-10</d:Id>
-      <d:Geog m:type="Edm.GeographyPoint">
-        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:pos>51.65 178.7</gml:pos>
-        </gml:Point>
-      </d:Geog>
-      <d:GeogPoint m:type="Edm.GeographyPoint">
-        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:pos>52.8606 173.334</gml:pos>
-        </gml:Point>
-      </d:GeogPoint>
-      <d:GeogLine m:type="Edm.GeographyLineString">
-        <gml:LineString gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:pos>40.5 40.5</gml:pos>
-          <gml:pos>30.5 30.5</gml:pos>
-          <gml:pos>20.5 40.5</gml:pos>
-          <gml:pos>10.5 30.5</gml:pos>
-        </gml:LineString>
-      </d:GeogLine>
-      <d:GeogPolygon m:type="Edm.GeographyPolygon">
-        <gml:Polygon gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:exterior>
-            <gml:LinearRing>
-              <gml:pos>5 15</gml:pos>
-              <gml:pos>10 40</gml:pos>
-              <gml:pos>20 10</gml:pos>
-              <gml:pos>10 5</gml:pos>
-              <gml:pos>5 15</gml:pos>
-            </gml:LinearRing>
-          </gml:exterior>
-        </gml:Polygon>
-      </d:GeogPolygon>
-      <d:GeogCollection m:null="true" />
-      <d:GeogMultiPoint m:null="true" />
-      <d:GeogMultiLine m:type="Edm.GeographyMultiLineString">
-        <gml:MultiCurve gml:srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
-          <gml:curveMembers>
-            <gml:LineString>
-              <gml:pos>10 10</gml:pos>
-              <gml:pos>20 20</gml:pos>
-              <gml:pos>40 10</gml:pos>
-            </gml:LineString>
-            <gml:LineString>
-              <gml:pos>40 40</gml:pos>
-              <gml:pos>30 30</gml:pos>
-              <gml:pos>20 40</gml:pos>
-              <gml:pos>10 30</gml:pos>
-            </gml:LineString>
-          </gml:curveMembers>
-        </gml:MultiCurve>
-      </d:GeogMultiLine>
-      <d:GeogMultiPolygon m:null="true" />
-      <d:Geom m:type="Edm.GeometryLineString">
-        <gml:LineString gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:pos>1 1</gml:pos>
-          <gml:pos>3 3</gml:pos>
-          <gml:pos>2 4</gml:pos>
-          <gml:pos>2 0</gml:pos>
-        </gml:LineString>
-      </d:Geom>
-      <d:GeomPoint m:type="Edm.GeometryPoint">
-        <gml:Point gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:pos />
-        </gml:Point>
-      </d:GeomPoint>
-      <d:GeomLine m:null="true" />
-      <d:GeomPolygon m:null="true" />
-      <d:GeomCollection m:type="Edm.GeometryCollection">
-        <gml:MultiGeometry gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0" />
-      </d:GeomCollection>
-      <d:GeomMultiPoint m:type="Edm.GeometryMultiPoint">
-        <gml:MultiPoint gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0" />
-      </d:GeomMultiPoint>
-      <d:GeomMultiLine m:type="Edm.GeometryMultiLineString">
-        <gml:MultiCurve gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:curveMembers>
-            <gml:LineString>
-              <gml:pos>10 10</gml:pos>
-              <gml:pos>20 20</gml:pos>
-              <gml:pos>10 40</gml:pos>
-            </gml:LineString>
-            <gml:LineString>
-              <gml:pos>40 40</gml:pos>
-              <gml:pos>30 30</gml:pos>
-              <gml:pos>40 20</gml:pos>
-              <gml:pos>30 10</gml:pos>
-            </gml:LineString>
-          </gml:curveMembers>
-        </gml:MultiCurve>
-      </d:GeomMultiLine>
-      <d:GeomMultiPolygon m:type="Edm.GeometryMultiPolygon">
-        <gml:MultiSurface gml:srsName="http://www.opengis.net/def/crs/EPSG/0/0">
-          <gml:surfaceMembers>
-            <gml:Polygon>
-              <gml:exterior>
-                <gml:LinearRing>
-                  <gml:pos>40 40</gml:pos>
-                  <gml:pos>20 45</gml:pos>
-                  <gml:pos>45 30</gml:pos>
-                  <gml:pos>40 40</gml:pos>
-                </gml:LinearRing>
-              </gml:exterior>
-            </gml:Polygon>
-            <gml:Polygon>
-              <gml:exterior>
-                <gml:LinearRing>
-                  <gml:pos>20 35</gml:pos>
-                  <gml:pos>45 20</gml:pos>
-                  <gml:pos>30 5</gml:pos>
-                  <gml:pos>10 10</gml:pos>
-                  <gml:pos>10 30</gml:pos>
-                  <gml:pos>20 35</gml:pos>
-                </gml:LinearRing>
-              </gml:exterior>
-              <gml:interior>
-                <gml:LinearRing>
-                  <gml:pos>30 20</gml:pos>
-                  <gml:pos>20 25</gml:pos>
-                  <gml:pos>20 15</gml:pos>
-                  <gml:pos>30 20</gml:pos>
-                </gml:LinearRing>
-              </gml:interior>
-            </gml:Polygon>
-          </gml:surfaceMembers>
-        </gml:MultiSurface>
-      </d:GeomMultiPolygon>
-    </m:properties>
-  </content>
-</entry>
\ No newline at end of file