diff -r 62e05e3bed38 modules/org.openbravo.client.application/src/org/openbravo/client/application/window/servlet/CalloutHttpServletResponse.java
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/servlet/CalloutHttpServletResponse.java	Wed Jul 30 14:37:44 2014 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/servlet/CalloutHttpServletResponse.java	Fri Aug 01 09:13:11 2014 +0200
@@ -21,18 +21,17 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
-import java.util.Locale;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletResponseWrapper;
 
-public class CalloutHttpServletResponse implements HttpServletResponse {
+public class CalloutHttpServletResponse extends HttpServletResponseWrapper {
   HttpServletResponse wrappedResponse;
   StringWriter sWriter = new StringWriter();
   PrintWriter writer = new PrintWriter(sWriter);
 
   public CalloutHttpServletResponse(HttpServletResponse wrappedResponse) {
+    super(wrappedResponse);
     this.wrappedResponse = wrappedResponse;
   }
 
@@ -40,135 +39,7 @@
     return sWriter.toString();
   }
 
-  public void addCookie(Cookie arg0) {
-    wrappedResponse.addCookie(arg0);
-  }
-
-  public void addDateHeader(String arg0, long arg1) {
-    wrappedResponse.addDateHeader(arg0, arg1);
-  }
-
-  public void addHeader(String arg0, String arg1) {
-    wrappedResponse.addHeader(arg0, arg1);
-  }
-
-  public void addIntHeader(String arg0, int arg1) {
-    wrappedResponse.addIntHeader(arg0, arg1);
-  }
-
-  public boolean containsHeader(String arg0) {
-    return wrappedResponse.containsHeader(arg0);
-  }
-
-  @Deprecated
-  public String encodeRedirectUrl(String arg0) {
-    return wrappedResponse.encodeRedirectUrl(arg0);
-  }
-
-  public String encodeRedirectURL(String arg0) {
-    return wrappedResponse.encodeRedirectURL(arg0);
-  }
-
-  @Deprecated
-  public String encodeUrl(String arg0) {
-    return wrappedResponse.encodeUrl(arg0);
-  }
-
-  public String encodeURL(String arg0) {
-    return wrappedResponse.encodeURL(arg0);
-  }
-
-  public void flushBuffer() throws IOException {
-    wrappedResponse.flushBuffer();
-  }
-
-  public int getBufferSize() {
-    return wrappedResponse.getBufferSize();
-  }
-
-  public String getCharacterEncoding() {
-    return wrappedResponse.getCharacterEncoding();
-  }
-
-  public String getContentType() {
-    return wrappedResponse.getContentType();
-  }
-
-  public Locale getLocale() {
-    return wrappedResponse.getLocale();
-  }
-
-  public ServletOutputStream getOutputStream() throws IOException {
-    return wrappedResponse.getOutputStream();
-  }
-
   public PrintWriter getWriter() throws IOException {
     return writer;
   }
-
-  public boolean isCommitted() {
-    return wrappedResponse.isCommitted();
-  }
-
-  public void reset() {
-    wrappedResponse.reset();
-  }
-
-  public void resetBuffer() {
-    wrappedResponse.resetBuffer();
-  }
-
-  public void sendError(int arg0, String arg1) throws IOException {
-    wrappedResponse.sendError(arg0, arg1);
-  }
-
-  public void sendError(int arg0) throws IOException {
-    wrappedResponse.sendError(arg0);
-  }
-
-  public void sendRedirect(String arg0) throws IOException {
-    wrappedResponse.sendRedirect(arg0);
-  }
-
-  public void setBufferSize(int arg0) {
-    wrappedResponse.setBufferSize(arg0);
-  }
-
-  public void setCharacterEncoding(String arg0) {
-    wrappedResponse.setCharacterEncoding(arg0);
-  }
-
-  public void setContentLength(int arg0) {
-    wrappedResponse.setContentLength(arg0);
-  }
-
-  public void setContentType(String arg0) {
-    wrappedResponse.setContentType(arg0);
-  }
-
-  public void setDateHeader(String arg0, long arg1) {
-    wrappedResponse.setDateHeader(arg0, arg1);
-  }
-
-  public void setHeader(String arg0, String arg1) {
-    wrappedResponse.setHeader(arg0, arg1);
-  }
-
-  public void setIntHeader(String arg0, int arg1) {
-    wrappedResponse.setIntHeader(arg0, arg1);
-  }
-
-  public void setLocale(Locale arg0) {
-    wrappedResponse.setLocale(arg0);
-  }
-
-  @Deprecated
-  public void setStatus(int arg0, String arg1) {
-    wrappedResponse.setStatus(arg0, arg1);
-  }
-
-  public void setStatus(int arg0) {
-    wrappedResponse.setStatus(arg0);
-  }
-
 }
diff -r 62e05e3bed38 modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseKernelServlet.java
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseKernelServlet.java	Wed Jul 30 14:37:44 2014 +0200
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseKernelServlet.java	Fri Aug 01 09:13:11 2014 +0200
@@ -19,15 +19,12 @@
 package org.openbravo.client.kernel;
 
 import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Locale;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletResponseWrapper;
 import javax.servlet.http.HttpSession;
 
 import org.openbravo.base.secureApp.HttpSecureAppServlet;
@@ -56,8 +53,8 @@
       throws ServletException, IOException {
     // encapsulate the response to catch any redirects
     // redirects are done by the authentication manager
-    final KernelHttpServletResponse localResponse = new KernelHttpServletResponse();
-    localResponse.setDelegate(response);
+    final KernelHttpServletResponse localResponse = new KernelHttpServletResponse(response);
+
     RequestContext.get().setResponse(localResponse);
 
     callServiceInSuper(request, localResponse);
@@ -99,12 +96,14 @@
     }
   }
 
-  public static class KernelHttpServletResponse implements HttpServletResponse {
-    private HttpServletResponse delegate;
-
+  public static class KernelHttpServletResponse extends HttpServletResponseWrapper {
     private String redirectTarget = null;
     private boolean doLogout = false;
 
+    public KernelHttpServletResponse(HttpServletResponse response) {
+      super(response);
+    }
+
     public boolean isDoLogout() {
       return doLogout;
     }
@@ -121,136 +120,5 @@
       this.redirectTarget = redirectTarget;
     }
 
-    public void addCookie(Cookie arg0) {
-      delegate.addCookie(arg0);
-    }
-
-    public void addDateHeader(String arg0, long arg1) {
-      delegate.addDateHeader(arg0, arg1);
-    }
-
-    public void addHeader(String arg0, String arg1) {
-      delegate.addHeader(arg0, arg1);
-    }
-
-    public void addIntHeader(String arg0, int arg1) {
-      delegate.addIntHeader(arg0, arg1);
-    }
-
-    public boolean containsHeader(String arg0) {
-      return delegate.containsHeader(arg0);
-    }
-
-    public String encodeRedirectUrl(String arg0) {
-      return delegate.encodeRedirectUrl(arg0);
-    }
-
-    public String encodeRedirectURL(String arg0) {
-      return delegate.encodeRedirectURL(arg0);
-    }
-
-    public String encodeUrl(String arg0) {
-      return delegate.encodeUrl(arg0);
-    }
-
-    public String encodeURL(String arg0) {
-      return delegate.encodeURL(arg0);
-    }
-
-    public void flushBuffer() throws IOException {
-      delegate.flushBuffer();
-    }
-
-    public int getBufferSize() {
-      return delegate.getBufferSize();
-    }
-
-    public String getCharacterEncoding() {
-      return delegate.getCharacterEncoding();
-    }
-
-    public String getContentType() {
-      return delegate.getContentType();
-    }
-
-    public Locale getLocale() {
-      return delegate.getLocale();
-    }
-
-    public ServletOutputStream getOutputStream() throws IOException {
-      return delegate.getOutputStream();
-    }
-
-    public PrintWriter getWriter() throws IOException {
-      return delegate.getWriter();
-    }
-
-    public boolean isCommitted() {
-      return delegate.isCommitted();
-    }
-
-    public void reset() {
-      delegate.reset();
-    }
-
-    public void resetBuffer() {
-      delegate.resetBuffer();
-    }
-
-    public void sendError(int arg0, String arg1) throws IOException {
-      delegate.sendError(arg0, arg1);
-    }
-
-    public void sendError(int arg0) throws IOException {
-      delegate.sendError(arg0);
-    }
-
-    public void sendRedirect(String arg0) throws IOException {
-      setRedirectTarget(arg0);
-    }
-
-    public void setBufferSize(int arg0) {
-      delegate.setBufferSize(arg0);
-    }
-
-    public void setCharacterEncoding(String arg0) {
-      delegate.setCharacterEncoding(arg0);
-    }
-
-    public void setContentLength(int arg0) {
-      delegate.setContentLength(arg0);
-    }
-
-    public void setContentType(String arg0) {
-      delegate.setContentType(arg0);
-    }
-
-    public void setDateHeader(String arg0, long arg1) {
-      delegate.setDateHeader(arg0, arg1);
-    }
-
-    public void setHeader(String arg0, String arg1) {
-      delegate.setHeader(arg0, arg1);
-    }
-
-    public void setIntHeader(String arg0, int arg1) {
-      delegate.setIntHeader(arg0, arg1);
-    }
-
-    public void setLocale(Locale arg0) {
-      delegate.setLocale(arg0);
-    }
-
-    public void setStatus(int arg0, String arg1) {
-      delegate.setStatus(arg0, arg1);
-    }
-
-    public void setStatus(int arg0) {
-      delegate.setStatus(arg0);
-    }
-
-    public void setDelegate(HttpServletResponse delegate) {
-      this.delegate = delegate;
-    }
   }
 }
diff -r 62e05e3bed38 modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/RequestContext.java
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/RequestContext.java	Wed Jul 30 14:37:44 2014 +0200
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/RequestContext.java	Fri Aug 01 09:13:11 2014 +0200
@@ -24,26 +24,23 @@
 import java.io.InputStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
-import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.security.Principal;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;
+import java.util.EventListener;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
+import javax.servlet.Filter;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.Servlet;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.ServletInputStream;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
@@ -155,8 +152,7 @@
 
   public HttpServletRequest getRequest() {
     if (!(request instanceof HttpServletRequestWrapper)) {
-      final HttpServletRequestWrapper wrapper = new HttpServletRequestWrapper();
-      wrapper.setDelegate(request);
+      final HttpServletRequestWrapper wrapper = new HttpServletRequestWrapper(request);
       request = wrapper;
     }
     return request;
@@ -188,7 +184,7 @@
 
   public HttpServletResponse getResponse() {
     if (response == null) {
-      response = new HttpServletResponseWrapper();
+      response = new HttpServletResponseWrapper(null);
     }
     return response;
   }
@@ -197,16 +193,23 @@
     this.response = response;
   }
 
-  public static class HttpServletRequestWrapper implements HttpServletRequest {
+  public static class HttpServletRequestWrapper extends
+      javax.servlet.http.HttpServletRequestWrapper {
+
     private HttpServletRequest delegate;
     private Map<String, Object> attributes = new HashMap<String, Object>();
-    private Map<String, String> parameters = new HashMap<String, String>();
+    private Map<String, String[]> parameters = new HashMap<String, String[]>();
     private HttpSession localSession = null;
     private String requestContent;
     private ServletInputStream inputStream;
 
+    public HttpServletRequestWrapper(HttpServletRequest request) {
+      super(request);
+      delegate = request;
+    }
+
     public void setParameter(String arg0, String arg1) {
-      parameters.put(arg0, arg1);
+      parameters.put(arg0, new String[] { arg1 });
     }
 
     public Object getAttribute(String arg0) {
@@ -216,7 +219,7 @@
       return delegate.getAttribute(arg0);
     }
 
-    public Enumeration<?> getAttributeNames() {
+    public Enumeration<String> getAttributeNames() {
       if (delegate == null) {
         final List<String> names = new ArrayList<String>();
         names.addAll(attributes.keySet());
@@ -225,18 +228,6 @@
       return delegate.getAttributeNames();
     }
 
-    public String getAuthType() {
-      return delegate.getAuthType();
-    }
-
-    public String getCharacterEncoding() {
-      return delegate.getCharacterEncoding();
-    }
-
-    public int getContentLength() {
-      return delegate.getContentLength();
-    }
-
     public String getContentType() {
       if (delegate == null) {
         return "text/html";
@@ -244,30 +235,6 @@
       return delegate.getContentType();
     }
 
-    public String getContextPath() {
-      return delegate.getContextPath();
-    }
-
-    public Cookie[] getCookies() {
-      return delegate.getCookies();
-    }
-
-    public long getDateHeader(String arg0) {
-      return delegate.getDateHeader(arg0);
-    }
-
-    public String getHeader(String arg0) {
-      return delegate.getHeader(arg0);
-    }
-
-    public Enumeration<?> getHeaderNames() {
-      return delegate.getHeaderNames();
-    }
-
-    public Enumeration<?> getHeaders(String arg0) {
-      return delegate.getHeaders(arg0);
-    }
-
     public ServletInputStream getInputStream() throws IOException {
       if (delegate == null) {
         if (inputStream == null) {
@@ -290,47 +257,18 @@
       return delegate.getInputStream();
     }
 
-    public int getIntHeader(String arg0) {
-      return delegate.getIntHeader(arg0);
-    }
-
-    public String getLocalAddr() {
-      return delegate.getLocalAddr();
-    }
-
-    public Locale getLocale() {
-      return delegate.getLocale();
-    }
-
-    public Enumeration<?> getLocales() {
-      return delegate.getLocales();
-    }
-
-    public String getLocalName() {
-      return delegate.getLocalName();
-    }
-
-    public int getLocalPort() {
-      return delegate.getLocalPort();
-    }
-
-    public String getMethod() {
-      return delegate.getMethod();
-    }
-
     public String getParameter(String arg0) {
       if (delegate == null || parameters.containsKey(arg0)) {
-        return parameters.get(arg0);
+        return parameters.get(arg0)[0];
       }
       return delegate.getParameter(arg0);
     }
 
-    public Map<?, ?> getParameterMap() {
+    public Map<String, String[]> getParameterMap() {
       return parameters;
     }
 
-    @SuppressWarnings("unchecked")
-    public Enumeration<?> getParameterNames() {
+    public Enumeration<String> getParameterNames() {
       final List<String> names = new ArrayList<String>();
       names.addAll(parameters.keySet());
       if (delegate != null) {
@@ -341,64 +279,11 @@
 
     public String[] getParameterValues(String arg0) {
       if (delegate == null || parameters.containsKey(arg0)) {
-        final String value = parameters.get(arg0);
-        if (value == null) {
-          return null;
-        }
-        final String[] strArray = { value };
-        return strArray;
+        return parameters.get(arg0);
       }
       return delegate.getParameterValues(arg0);
     }
 
-    public String getPathInfo() {
-      return delegate.getPathInfo();
-    }
-
-    public String getPathTranslated() {
-      return delegate.getPathTranslated();
-    }
-
-    public String getProtocol() {
-      return delegate.getProtocol();
-    }
-
-    public String getQueryString() {
-      return delegate.getQueryString();
-    }
-
-    public BufferedReader getReader() throws IOException {
-      return delegate.getReader();
-    }
-
-    public String getRealPath(String arg0) {
-      return delegate.getRealPath(arg0);
-    }
-
-    public String getRemoteAddr() {
-      return delegate.getRemoteAddr();
-    }
-
-    public String getRemoteHost() {
-      return delegate.getRemoteHost();
-    }
-
-    public int getRemotePort() {
-      return delegate.getRemotePort();
-    }
-
-    public String getRemoteUser() {
-      return delegate.getRemoteUser();
-    }
-
-    public RequestDispatcher getRequestDispatcher(String arg0) {
-      return delegate.getRequestDispatcher(arg0);
-    }
-
-    public String getRequestedSessionId() {
-      return delegate.getRequestedSessionId();
-    }
-
     public String getRequestURI() {
       if (delegate == null) {
         return "";
@@ -406,26 +291,6 @@
       return delegate.getRequestURI();
     }
 
-    public StringBuffer getRequestURL() {
-      return delegate.getRequestURL();
-    }
-
-    public String getScheme() {
-      return delegate.getScheme();
-    }
-
-    public String getServerName() {
-      return delegate.getServerName();
-    }
-
-    public int getServerPort() {
-      return delegate.getServerPort();
-    }
-
-    public String getServletPath() {
-      return delegate.getServletPath();
-    }
-
     public HttpSession getSession() {
       if (delegate == null) {
         if (localSession == null) {
@@ -446,34 +311,6 @@
       return delegate.getSession(arg0);
     }
 
-    public Principal getUserPrincipal() {
-      return delegate.getUserPrincipal();
-    }
-
-    public boolean isRequestedSessionIdFromCookie() {
-      return delegate.isRequestedSessionIdFromCookie();
-    }
-
-    public boolean isRequestedSessionIdFromUrl() {
-      return delegate.isRequestedSessionIdFromUrl();
-    }
-
-    public boolean isRequestedSessionIdFromURL() {
-      return delegate.isRequestedSessionIdFromURL();
-    }
-
-    public boolean isRequestedSessionIdValid() {
-      return delegate.isRequestedSessionIdValid();
-    }
-
-    public boolean isSecure() {
-      return delegate.isSecure();
-    }
-
-    public boolean isUserInRole(String arg0) {
-      return delegate.isUserInRole(arg0);
-    }
-
     public void removeAttribute(String arg0) {
       if (delegate == null) {
         attributes.remove(arg0);
@@ -490,22 +327,6 @@
       delegate.setAttribute(arg0, arg1);
     }
 
-    public void setCharacterEncoding(String arg0) throws UnsupportedEncodingException {
-      delegate.setCharacterEncoding(arg0);
-    }
-
-    public HttpServletRequest getDelegate() {
-      return delegate;
-    }
-
-    public void setDelegate(HttpServletRequest delegate) {
-      this.delegate = delegate;
-    }
-
-    public String getRequestContent() {
-      return requestContent;
-    }
-
     public void setRequestContent(String requestContent) {
       this.requestContent = requestContent;
     }
@@ -521,7 +342,7 @@
     }
 
     @Override
-    public Enumeration<?> getAttributeNames() {
+    public Enumeration<String> getAttributeNames() {
       return Collections.enumeration(attributes.keySet());
     }
 
@@ -612,10 +433,16 @@
     }
   }
 
-  public static class HttpServletResponseWrapper implements HttpServletResponse {
+  public static class HttpServletResponseWrapper extends
+      javax.servlet.http.HttpServletResponseWrapper {
+
     private StringWriter sWriter = new StringWriter();
     private PrintWriter writer = new PrintWriter(sWriter);
 
+    public HttpServletResponseWrapper(HttpServletResponse response) {
+      super(response);
+    }
+
     public String getResponseContent() {
       writer.flush();
       sWriter.flush();
@@ -623,195 +450,9 @@
     }
 
     @Override
-    public void addCookie(Cookie arg0) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void addDateHeader(String arg0, long arg1) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void addHeader(String arg0, String arg1) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void addIntHeader(String arg0, int arg1) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public boolean containsHeader(String arg0) {
-      // TODO Auto-generated method stub
-      return false;
-    }
-
-    @Override
-    public String encodeRedirectUrl(String arg0) {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public String encodeRedirectURL(String arg0) {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public String encodeUrl(String arg0) {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public String encodeURL(String arg0) {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public void sendError(int arg0, String arg1) throws IOException {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void sendError(int arg0) throws IOException {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void sendRedirect(String arg0) throws IOException {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setDateHeader(String arg0, long arg1) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setHeader(String arg0, String arg1) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setIntHeader(String arg0, int arg1) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setStatus(int arg0, String arg1) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setStatus(int arg0) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void flushBuffer() throws IOException {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public int getBufferSize() {
-      // TODO Auto-generated method stub
-      return 0;
-    }
-
-    @Override
-    public String getCharacterEncoding() {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public String getContentType() {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public Locale getLocale() {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
-    public ServletOutputStream getOutputStream() throws IOException {
-      // TODO Auto-generated method stub
-      return null;
-    }
-
-    @Override
     public PrintWriter getWriter() throws IOException {
       return writer;
     }
-
-    @Override
-    public boolean isCommitted() {
-      // TODO Auto-generated method stub
-      return false;
-    }
-
-    @Override
-    public void reset() {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void resetBuffer() {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setBufferSize(int arg0) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setCharacterEncoding(String arg0) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setContentLength(int arg0) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setContentType(String arg0) {
-      // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setLocale(Locale arg0) {
-      // TODO Auto-generated method stub
-
-    }
   }
 
   private static class LocalServletInputStream extends ServletInputStream {
@@ -1028,6 +669,156 @@
     public void setAttribute(String arg0, Object arg1) {
       attributes.put(arg0, arg1);
     }
+
+    // ------------------------------------------------------------------------
+    // Methods starting from here are added to support servlet-api spec 3.0
+    // they cannot be marked with @Override to make it possible to compile with spec 2.5
+    public int getEffectiveMajorVersion() {
+      // TODO Auto-generated method stub
+      return 0;
+    }
+
+    public int getEffectiveMinorVersion() {
+      // TODO Auto-generated method stub
+      return 0;
+    }
+
+    public boolean setInitParameter(String name, String value) {
+      // TODO Auto-generated method stub
+      return false;
+    }
+
+    public Dynamic addServlet(String servletName, String className) {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    public Dynamic addServlet(String servletName, Servlet servlet) {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    public Dynamic addServlet(String servletName, Class<? extends Servlet> servletClass) {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    public <T extends Servlet> T createServlet(Class<T> c) throws ServletException {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    public ServletRegistration getServletRegistration(String servletName) {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    public Map<String, ? extends ServletRegistration> getServletRegistrations() {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className) {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Filter filter) {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName,
+        Class<? extends Filter> filterClass) {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public <T extends Filter> T createFilter(Class<T> c) throws ServletException {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public FilterRegistration getFilterRegistration(String filterName) {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public Map<String, ? extends FilterRegistration> getFilterRegistrations() {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public SessionCookieConfig getSessionCookieConfig() {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public void setSessionTrackingModes(Set<SessionTrackingMode> sessionTrackingModes)
+        throws IllegalStateException, IllegalArgumentException {
+      // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public Set<SessionTrackingMode> getDefaultSessionTrackingModes() {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public void addListener(String className) {
+      // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public <T extends EventListener> void addListener(T t) {
+      // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void addListener(Class<? extends EventListener> listenerClass) {
+      // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public <T extends EventListener> T createListener(Class<T> c) throws ServletException {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public void declareRoles(String... roleNames) {
+      // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public ClassLoader getClassLoader() {
+      // TODO Auto-generated method stub
+      return null;
+    }
+
+    @Override
+    public JspConfigDescriptor getJspConfigDescriptor() {
+      // TODO Auto-generated method stub
+      return null;
+    }
   }
 
 }
