Author: markt
Date: Sun Mar 13 13:37:40 2016
New Revision: 1734805

URL: http://svn.apache.org/viewvc?rev=1734805&view=rev
Log:
First pass at reverting Servlet 3.0 to Servlet 4.0.DRAFT changes

Removed:
    tomcat/tc8.5.x/trunk/java/javax/servlet/GenericFilter.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpFilter.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/Mapping.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/MappingMatch.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/PushBuilder.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/resources/javaee_8.xsd
    tomcat/tc8.5.x/trunk/java/javax/servlet/resources/web-app_4_0.xsd
    tomcat/tc8.5.x/trunk/java/javax/servlet/resources/web-common_4_0.xsd
    tomcat/tc8.5.x/trunk/java/javax/servlet/resources/web-fragment_4_0.xsd
    tomcat/tc8.5.x/trunk/java/org/apache/catalina/core/ApplicationMapping.java
    
tomcat/tc8.5.x/trunk/test/org/apache/catalina/core/TestApplicationMapping.java
Modified:
    tomcat/tc8.5.x/trunk/java/javax/el/ImportHandler.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/Filter.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContext.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContextAttributeListener.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContextListener.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRegistration.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequest.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestAttributeListener.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestListener.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestWrapper.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/SingleThreadModel.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/UnavailableException.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletRequest.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletRequestWrapper.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletResponse.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletResponseWrapper.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSession.java
    
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionActivationListener.java
    
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionAttributeListener.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionBindingListener.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionContext.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionListener.java
    tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpUtils.java
    tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/Request.java
    tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/RequestFacade.java
    
tomcat/tc8.5.x/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java
    
tomcat/tc8.5.x/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java
    tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/CorsFilter.java
    tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java
    
tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RequestDumperFilter.java
    tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/WebdavFixFilter.java
    tomcat/tc8.5.x/trunk/java/org/apache/catalina/mapper/Mapper.java
    tomcat/tc8.5.x/trunk/java/org/apache/catalina/mapper/MappingData.java
    tomcat/tc8.5.x/trunk/java/org/apache/catalina/ssi/SSIFilter.java
    tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
    
tomcat/tc8.5.x/trunk/test/org/apache/catalina/core/TestNamingContextListener.java
    tomcat/tc8.5.x/trunk/test/org/apache/catalina/core/TestStandardContext.java
    
tomcat/tc8.5.x/trunk/test/org/apache/catalina/filters/TesterHttpServletRequest.java
    
tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/DuplicateMappingParamFilter.java
    tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/ParamFilter.java
    tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/TestListener.java
    tomcat/tc8.5.x/trunk/test/org/apache/coyote/http2/Http2TestBase.java
    
tomcat/tc8.5.x/trunk/test/org/apache/jasper/compiler/TestELInterpreterFactory.java
    
tomcat/tc8.5.x/trunk/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java
    
tomcat/tc8.5.x/trunk/webapps/examples/WEB-INF/classes/filters/ExampleFilter.java
    
tomcat/tc8.5.x/trunk/webapps/examples/WEB-INF/classes/http2/SimpleImagePush.java
    
tomcat/tc8.5.x/trunk/webapps/examples/WEB-INF/classes/websocket/drawboard/DrawboardContextListener.java

Modified: tomcat/tc8.5.x/trunk/java/javax/el/ImportHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/el/ImportHandler.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/el/ImportHandler.java (original)
+++ tomcat/tc8.5.x/trunk/java/javax/el/ImportHandler.java Sun Mar 13 13:37:40 
2016
@@ -30,7 +30,7 @@ import java.util.concurrent.ConcurrentHa
 public class ImportHandler {
 
     private List<String> packageNames = new ArrayList<>();
-    private Map<String,String> classNames = new ConcurrentHashMap<>();
+    private ConcurrentHashMap<String,String> classNames = new 
ConcurrentHashMap<>();
     private Map<String,Class<?>> clazzes = new ConcurrentHashMap<>();
     private Map<String,Class<?>> statics = new ConcurrentHashMap<>();
 

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/Filter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/Filter.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/Filter.java (original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/Filter.java Sun Mar 13 13:37:40 2016
@@ -58,14 +58,13 @@ public interface Filter {
      * <li>Does not return within a time period defined by the web
      *     container</li>
      * </ul>
-     * The default implementation is a NO-OP.
      *
      * @param filterConfig The configuration information associated with the
      *                     filter instance being initialised
      *
      * @throws ServletException if the initialisation fails
      */
-    public default void init(FilterConfig filterConfig) throws 
ServletException {}
+    public void init(FilterConfig filterConfig) throws ServletException;
 
     /**
      * The <code>doFilter</code> method of the Filter is called by the 
container
@@ -113,8 +112,7 @@ public interface Filter {
      * that are being held (for example, memory, file handles, threads) and 
make
      * sure that any persistent state is synchronized with the filter's current
      * state in memory.
-     *
-     * The default implementation is a NO-OP.
      */
-    public default void destroy() {}
+    public void destroy();
+
 }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContext.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContext.java (original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContext.java Sun Mar 13 
13:37:40 2016
@@ -92,19 +92,19 @@ public interface ServletContext {
 
     /**
      * Returns the major version of the Java Servlet API that this servlet
-     * container supports. All implementations that comply with Version 4.0 
must
-     * have this method return the integer 4.
+     * container supports. All implementations that comply with Version 3.1 
must
+     * have this method return the integer 3.
      *
-     * @return 4
+     * @return 3
      */
     public int getMajorVersion();
 
     /**
      * Returns the minor version of the Servlet API that this servlet container
-     * supports. All implementations that comply with Version 4.0 must have 
this
-     * method return the integer 0.
+     * supports. All implementations that comply with Version 3.1 must have 
this
+     * method return the integer 1.
      *
-     * @return 0
+     * @return 1
      */
     public int getMinorVersion();
 
@@ -310,7 +310,8 @@ public interface ServletContext {
      *
      * @deprecated As of Java Servlet API 2.1, with no direct replacement.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public Servlet getServlet(String name) throws ServletException;
 
     /**
@@ -324,7 +325,8 @@ public interface ServletContext {
      *
      * @deprecated As of Java Servlet API 2.0, with no replacement.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public Enumeration<Servlet> getServlets();
 
     /**
@@ -339,7 +341,8 @@ public interface ServletContext {
      *
      * @deprecated As of Java Servlet API 2.1, with no replacement.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public Enumeration<String> getServletNames();
 
     /**
@@ -364,7 +367,8 @@ public interface ServletContext {
      *             stack trace and an explanatory error message to the servlet
      *             log file.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public void log(Exception exception, String msg);
 
     /**
@@ -433,8 +437,6 @@ public interface ServletContext {
      *            whose value is requested
      * @return a <code>String</code> containing the value of the initialization
      *         parameter
-     * @throws NullPointerException If the provided parameter name is
-     *         <code>null</code>
      * @see ServletConfig#getInitParameter
      */
     public String getInitParameter(String name);
@@ -467,8 +469,6 @@ public interface ServletContext {
      *    {@link javax.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
-     * @throws NullPointerException If the provided parameter name is
-     *         <code>null</code>
      * @since Servlet 3.0
      */
     public boolean setInitParameter(String name, String value);
@@ -490,8 +490,6 @@ public interface ServletContext {
      *            a <code>String</code> specifying the name of the attribute
      * @return an <code>Object</code> containing the value of the attribute, or
      *         <code>null</code> if no attribute exists matching the given name
-     * @throws NullPointerException If the provided attribute name is
-     *         <code>null</code>
      * @see ServletContext#getAttributeNames
      */
     public Object getAttribute(String name);
@@ -525,8 +523,6 @@ public interface ServletContext {
      *            a <code>String</code> specifying the name of the attribute
      * @param object
      *            an <code>Object</code> representing the attribute to be bound
-     * @throws NullPointerException If the provided attribute name is
-     *         <code>null</code>
      */
     public void setAttribute(String name, Object object);
 

Modified: 
tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContextAttributeListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContextAttributeListener.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContextAttributeListener.java 
(original)
+++ 
tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContextAttributeListener.java 
Sun Mar 13 13:37:40 2016
@@ -32,27 +32,21 @@ public interface ServletContextAttribute
     /**
      * Notification that a new attribute was added to the servlet context.
      * Called after the attribute is added.
-     * The default implementation is a NO-OP.
      * @param scae Information about the new attribute
      */
-    public default void attributeAdded(ServletContextAttributeEvent scae) {
-    }
+    public void attributeAdded(ServletContextAttributeEvent scae);
 
     /**
      * Notification that an existing attribute has been removed from the 
servlet
      * context. Called after the attribute is removed.
-     * The default implementation is a NO-OP.
      * @param scae Information about the removed attribute
      */
-    public default void attributeRemoved(ServletContextAttributeEvent scae) {
-    }
+    public void attributeRemoved(ServletContextAttributeEvent scae);
 
     /**
      * Notification that an attribute on the servlet context has been replaced.
      * Called after the attribute is replaced.
-     * The default implementation is a NO-OP.
      * @param scae Information about the replaced attribute
      */
-    public default void attributeReplaced(ServletContextAttributeEvent scae) {
-    }
+    public void attributeReplaced(ServletContextAttributeEvent scae);
 }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContextListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContextListener.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContextListener.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/ServletContextListener.java Sun Mar 
13 13:37:40 2016
@@ -34,19 +34,15 @@ public interface ServletContextListener
      ** Notification that the web application initialization process is 
starting.
      * All ServletContextListeners are notified of context initialization 
before
      * any filter or servlet in the web application is initialized.
-     * The default implementation is a NO-OP.
      * @param sce Information about the ServletContext that was initialized
      */
-    public default void contextInitialized(ServletContextEvent sce) {
-    }
+    public void contextInitialized(ServletContextEvent sce);
 
     /**
      ** Notification that the servlet context is about to be shut down. All
      * servlets and filters have been destroy()ed before any
      * ServletContextListeners are notified of context destruction.
-     * The default implementation is a NO-OP.
      * @param sce Information about the ServletContext that was destroyed
      */
-    public default void contextDestroyed(ServletContextEvent sce) {
-    }
+    public void contextDestroyed(ServletContextEvent sce);
 }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRegistration.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRegistration.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRegistration.java (original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRegistration.java Sun Mar 13 
13:37:40 2016
@@ -42,8 +42,8 @@ public interface ServletRegistration ext
     public static interface Dynamic
     extends ServletRegistration, Registration.Dynamic {
         public void setLoadOnStartup(int loadOnStartup);
-        public Set<String> setServletSecurity(ServletSecurityElement 
constraint);
         public void setMultipartConfig(MultipartConfigElement multipartConfig);
         public void setRunAsRole(String roleName);
+        public Set<String> setServletSecurity(ServletSecurityElement 
constraint);
     }
 }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequest.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequest.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequest.java (original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequest.java Sun Mar 13 
13:37:40 2016
@@ -402,7 +402,8 @@ public interface ServletRequest {
      * @deprecated As of Version 2.1 of the Java Servlet API, use
      *             {@link ServletContext#getRealPath} instead.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String getRealPath(String path);
 
     /**

Modified: 
tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestAttributeListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestAttributeListener.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestAttributeListener.java 
(original)
+++ 
tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestAttributeListener.java 
Sun Mar 13 13:37:40 2016
@@ -34,28 +34,22 @@ public interface ServletRequestAttribute
     /**
      * Notification that a new attribute was added to the
      * servlet request. Called after the attribute is added.
-     * The default implementation is a NO-OP.
      * @param srae Information about the new request attribute
      */
-    public default void attributeAdded(ServletRequestAttributeEvent srae) {
-    }
+    public void attributeAdded(ServletRequestAttributeEvent srae);
 
     /**
      * Notification that an existing attribute has been removed from the
      * servlet request. Called after the attribute is removed.
-     * The default implementation is a NO-OP.
      * @param srae Information about the removed request attribute
      */
-    public default void attributeRemoved(ServletRequestAttributeEvent srae) {
-    }
+    public void attributeRemoved(ServletRequestAttributeEvent srae);
 
     /**
      * Notification that an attribute was replaced on the
      * servlet request. Called after the attribute is replaced.
-     * The default implementation is a NO-OP.
      * @param srae Information about the replaced request attribute
      */
-    public default void attributeReplaced(ServletRequestAttributeEvent srae) {
-    }
+    public void attributeReplaced(ServletRequestAttributeEvent srae);
 }
 

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestListener.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestListener.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestListener.java Sun Mar 
13 13:37:40 2016
@@ -32,17 +32,13 @@ public interface ServletRequestListener
 
     /**
      * The request is about to go out of scope of the web application.
-     * The default implementation is a NO-OP.
      * @param sre Information about the request
      */
-    public default void requestDestroyed (ServletRequestEvent sre) {
-    }
+    public void requestDestroyed (ServletRequestEvent sre);
 
     /**
      * The request is about to come into scope of the web application.
-     * The default implementation is a NO-OP.
      * @param sre Information about the request
      */
-    public default void requestInitialized (ServletRequestEvent sre) {
-    }
+    public void requestInitialized (ServletRequestEvent sre);
 }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestWrapper.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestWrapper.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestWrapper.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/ServletRequestWrapper.java Sun Mar 
13 13:37:40 2016
@@ -304,7 +304,8 @@ public class ServletRequestWrapper imple
      * @deprecated As of Version 3.0 of the Java Servlet API
      */
     @Override
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String getRealPath(String path) {
         return this.request.getRealPath(path);
     }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/SingleThreadModel.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/SingleThreadModel.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/SingleThreadModel.java (original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/SingleThreadModel.java Sun Mar 13 
13:37:40 2016
@@ -37,7 +37,8 @@ package javax.servlet;
  *
  * @deprecated As of Java Servlet API 2.4, with no direct replacement.
  */
-@Deprecated
+@SuppressWarnings("dep-ann")
+// Spec API does not use @Deprecated
 public interface SingleThreadModel {
     // No methods
 }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/UnavailableException.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/UnavailableException.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/UnavailableException.java (original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/UnavailableException.java Sun Mar 
13 13:37:40 2016
@@ -55,7 +55,8 @@ public class UnavailableException extend
      * @deprecated As of Java Servlet API 2.2, use
      *             {@link #UnavailableException(String)} instead.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public UnavailableException(Servlet servlet, String msg) {
         super(msg);
         this.servlet = servlet;
@@ -76,7 +77,8 @@ public class UnavailableException extend
      * @deprecated As of Java Servlet API 2.2, use
      *             {@link #UnavailableException(String, int)} instead.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public UnavailableException(int seconds, Servlet servlet, String msg) {
         super(msg);
         this.servlet = servlet;
@@ -151,7 +153,8 @@ public class UnavailableException extend
      *         <code>UnavailableException</code>
      * @deprecated As of Java Servlet API 2.2, with no replacement.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public Servlet getServlet() {
         return servlet;
     }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletRequest.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletRequest.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletRequest.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletRequest.java Sun 
Mar 13 13:37:40 2016
@@ -170,26 +170,6 @@ public interface HttpServletRequest exte
      */
     public int getIntHeader(String name);
 
-    public default Mapping getMapping() {
-        return new Mapping() {
-
-            @Override
-            public String getMatchValue() {
-                return "";
-            }
-
-            @Override
-            public String getPattern() {
-                return "";
-            }
-
-            @Override
-            public MappingMatch getMatchType() {
-                return MappingMatch.UNKNOWN;
-            }
-        };
-    }
-
     /**
      * Returns the name of the HTTP method with which this request was made, 
for
      * example, GET, POST, or PUT. Same as the value of the CGI variable
@@ -235,33 +215,6 @@ public interface HttpServletRequest exte
     public String getPathTranslated();
 
     /**
-     * Does the current request allow push requests. This will return {@code
-     * true} only if the underlying protocol supports server push and if pushes
-     * are permitted from the current request.
-     *
-     * @return {@code true} if server push is supported for the current request
-     *         otherwise {@code false}
-     */
-    public default boolean isPushSupported() {
-        return false;
-    }
-
-    /**
-     * Obtain a builder for generating push requests. {@link PushBuilder}
-     * documents how this request will be used as the basis for a push request.
-     * Each call to this method will return a new instance, independent of any
-     * previous instance obtained.
-     *
-     * @return A builder that can be used to generate push requests based on
-     *         this request.
-     *
-     * @since Servlet 4.0
-     */
-    public default PushBuilder getPushBuilder() {
-        return null;
-    }
-
-    /**
      * Returns the portion of the request URI that indicates the context of the
      * request. The context path always comes first in a request URI. The path
      * starts with a "/" character but does not end with a "/" character. For
@@ -474,7 +427,8 @@ public interface HttpServletRequest exte
      * @deprecated As of Version 2.1 of the Java Servlet API, use
      *             {@link #isRequestedSessionIdFromURL} instead.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public boolean isRequestedSessionIdFromUrl();
 
     /**

Modified: 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletRequestWrapper.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletRequestWrapper.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletRequestWrapper.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletRequestWrapper.java 
Sun Mar 13 13:37:40 2016
@@ -115,15 +115,6 @@ public class HttpServletRequestWrapper e
     }
 
     /**
-     * The default behavior of this method is to return getMapping() on the
-     * wrapped request object.
-     */
-    @Override
-    public Mapping getMapping() {
-        return this._getHttpServletRequest().getMapping();
-    }
-
-    /**
      * The default behavior of this method is to return getMethod() on the
      * wrapped request object.
      */
@@ -292,7 +283,8 @@ public class HttpServletRequestWrapper e
      * @deprecated As of Version 3.0 of the Java Servlet API
      */
     @Override
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public boolean isRequestedSessionIdFromUrl() {
         return this._getHttpServletRequest().isRequestedSessionIdFromUrl();
     }
@@ -383,17 +375,4 @@ public class HttpServletRequestWrapper e
             Class<T> httpUpgradeHandlerClass) throws IOException, 
ServletException {
         return this._getHttpServletRequest().upgrade(httpUpgradeHandlerClass);
     }
-
-    /**
-     * {@inheritDoc}
-     * <p>
-     * The default behavior of this method is to return
-     * {@link HttpServletRequest#isPushSupported()} on the wrapped request 
object.
-     *
-     * @since Servlet 4.0
-     */
-    @Override
-    public boolean isPushSupported() {
-        return this._getHttpServletRequest().isPushSupported();
-    }
 }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletResponse.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletResponse.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletResponse.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletResponse.java Sun 
Mar 13 13:37:40 2016
@@ -100,7 +100,8 @@ public interface HttpServletResponse ext
      *         otherwise.
      * @deprecated As of version 2.1, use encodeURL(String url) instead
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String encodeUrl(String url);
 
     /**
@@ -110,7 +111,8 @@ public interface HttpServletResponse ext
      *         otherwise.
      * @deprecated As of version 2.1, use encodeRedirectURL(String url) instead
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String encodeRedirectUrl(String url);
 
     /**
@@ -289,7 +291,8 @@ public interface HttpServletResponse ext
      *             <code>setStatus(int)</code>, to send an error with a
      *             description use <code>sendError(int, String)</code>.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public void setStatus(int sc, String sm);
 
     /**

Modified: 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletResponseWrapper.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletResponseWrapper.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletResponseWrapper.java 
(original)
+++ 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpServletResponseWrapper.java 
Sun Mar 13 13:37:40 2016
@@ -92,7 +92,8 @@ public class HttpServletResponseWrapper
      * @deprecated As of Version 3.0 of the Java Servlet API
      */
     @Override
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String encodeUrl(String url) {
         return this._getHttpServletResponse().encodeUrl(url);
     }
@@ -104,7 +105,8 @@ public class HttpServletResponseWrapper
      * @deprecated As of Version 3.0 of the Java Servlet API
      */
     @Override
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String encodeRedirectUrl(String url) {
         return this._getHttpServletResponse().encodeRedirectUrl(url);
     }
@@ -206,7 +208,8 @@ public class HttpServletResponseWrapper
      * @deprecated As of Version 3.0 of the Java Servlet API
      */
     @Override
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public void setStatus(int sc, String sm) {
         this._getHttpServletResponse().setStatus(sc, sm);
     }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSession.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSession.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSession.java (original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSession.java Sun Mar 13 
13:37:40 2016
@@ -141,7 +141,8 @@ public interface HttpSession {
      *             replacement. It will be removed in a future version of the
      *             Java Servlet API.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public HttpSessionContext getSessionContext();
 
     /**
@@ -165,7 +166,8 @@ public interface HttpSession {
      * @deprecated As of Version 2.2, this method is replaced by
      *             {@link #getAttribute}.
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public Object getValue(String name);
 
     /**
@@ -187,7 +189,8 @@ public interface HttpSession {
      * @deprecated As of Version 2.2, this method is replaced by
      *             {@link #getAttributeNames}
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public String[] getValueNames();
 
     /**
@@ -226,7 +229,8 @@ public interface HttpSession {
      * @deprecated As of Version 2.2, this method is replaced by
      *             {@link #setAttribute}
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public void putValue(String name, Object value);
 
     /**
@@ -255,7 +259,8 @@ public interface HttpSession {
      * @deprecated As of Version 2.2, this method is replaced by
      *             {@link #removeAttribute}
      */
-    @Deprecated
+    @SuppressWarnings("dep-ann")
+    // Spec API does not use @Deprecated
     public void removeValue(String name);
 
     /**

Modified: 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionActivationListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionActivationListener.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionActivationListener.java 
(original)
+++ 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionActivationListener.java 
Sun Mar 13 13:37:40 2016
@@ -31,20 +31,16 @@ public interface HttpSessionActivationLi
 
     /**
      * Notification that the session is about to be passivated.
-     * The default implementation is a NO-OP.
      *
      * @param se Information about the session this is about to be passivated
      */
-    public default void sessionWillPassivate(HttpSessionEvent se) {
-    }
+    public void sessionWillPassivate(HttpSessionEvent se);
 
     /**
      * Notification that the session has just been activated.
-     * The default implementation is a NO-OP.
      *
      * @param se Information about the session this has just been activated
      */
-    public default void sessionDidActivate(HttpSessionEvent se) {
-    }
+    public void sessionDidActivate(HttpSessionEvent se);
 }
 

Modified: 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionAttributeListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionAttributeListener.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionAttributeListener.java 
(original)
+++ 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionAttributeListener.java 
Sun Mar 13 13:37:40 2016
@@ -29,30 +29,24 @@ public interface HttpSessionAttributeLis
     /**
      * Notification that an attribute has been added to a session. Called after
      * the attribute is added.
-     * The default implementation is a NO-OP.
      *
      * @param se Information about the added attribute
      */
-    public default void attributeAdded(HttpSessionBindingEvent se) {
-    }
+    public void attributeAdded(HttpSessionBindingEvent se);
 
     /**
      * Notification that an attribute has been removed from a session. Called
      * after the attribute is removed.
-     * The default implementation is a NO-OP.
      *
      * @param se Information about the removed attribute
      */
-    public default void attributeRemoved(HttpSessionBindingEvent se) {
-    }
+    public void attributeRemoved(HttpSessionBindingEvent se);
 
     /**
      * Notification that an attribute has been replaced in a session. Called
      * after the attribute is replaced.
-     * The default implementation is a NO-OP.
      *
      * @param se Information about the replaced attribute
      */
-    public default void attributeReplaced(HttpSessionBindingEvent se) {
-    }
+    public void attributeReplaced(HttpSessionBindingEvent se);
 }

Modified: 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionBindingListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionBindingListener.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionBindingListener.java 
(original)
+++ 
tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionBindingListener.java 
Sun Mar 13 13:37:40 2016
@@ -34,24 +34,20 @@ public interface HttpSessionBindingListe
     /**
      * Notifies the object that it is being bound to a session and identifies
      * the session.
-     * The default implementation is a NO-OP.
      *
      * @param event
      *            the event that identifies the session
      * @see #valueUnbound
      */
-    public default void valueBound(HttpSessionBindingEvent event) {
-    }
+    public void valueBound(HttpSessionBindingEvent event);
 
     /**
      * Notifies the object that it is being unbound from a session and
      * identifies the session.
-     * The default implementation is a NO-OP.
      *
      * @param event
      *            the event that identifies the session
      * @see #valueBound
      */
-    public default void valueUnbound(HttpSessionBindingEvent event) {
-    }
+    public void valueUnbound(HttpSessionBindingEvent event);
 }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionContext.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionContext.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionContext.java Sun 
Mar 13 13:37:40 2016
@@ -28,7 +28,8 @@ import java.util.Enumeration;
  * @see HttpSessionBindingEvent
  * @see HttpSessionBindingListener
  */
-@Deprecated
+@SuppressWarnings("dep-ann")
+// Spec API does not use @Deprecated
 public interface HttpSessionContext {
 
     /**
@@ -39,7 +40,7 @@ public interface HttpSessionContext {
      *             must return null and will be removed in a future version of
      *             this API.
      */
-    @Deprecated
+    // Spec API does not use @Deprecated
     public HttpSession getSession(String sessionId);
 
     /**
@@ -49,6 +50,6 @@ public interface HttpSessionContext {
      *             must return an empty <code>Enumeration</code> and will be
      *             removed in a future version of this API.
      */
-    @Deprecated
+    // Spec API does not use @Deprecated
     public Enumeration<String> getIds();
 }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionListener.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionListener.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpSessionListener.java Sun 
Mar 13 13:37:40 2016
@@ -31,21 +31,17 @@ public interface HttpSessionListener ext
 
     /**
      * Notification that a session was created.
-     * The default implementation is a NO-OP.
      *
      * @param se
      *            the notification event
      */
-    public default void sessionCreated(HttpSessionEvent se) {
-    }
+    public void sessionCreated(HttpSessionEvent se);
 
     /**
      * Notification that a session is about to be invalidated.
-     * The default implementation is a NO-OP.
      *
      * @param se
      *            the notification event
      */
-    public default void sessionDestroyed(HttpSessionEvent se) {
-    }
+    public void sessionDestroyed(HttpSessionEvent se);
 }

Modified: tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpUtils.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpUtils.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpUtils.java (original)
+++ tomcat/tc8.5.x/trunk/java/javax/servlet/http/HttpUtils.java Sun Mar 13 
13:37:40 2016
@@ -30,7 +30,7 @@ import javax.servlet.ServletInputStream;
  *                        with the default encoding and have been moved
  *                        to the request interfaces.
  */
-@Deprecated
+@SuppressWarnings("dep-ann") // Spec API does not use @Deprecated
 public class HttpUtils {
 
     private static final String LSTRING_FILE =

Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/Request.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/Request.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/Request.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/Request.java Sun 
Mar 13 13:37:40 2016
@@ -63,9 +63,7 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import javax.servlet.http.HttpUpgradeHandler;
-import javax.servlet.http.Mapping;
 import javax.servlet.http.Part;
-import javax.servlet.http.PushBuilder;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
@@ -76,7 +74,6 @@ import org.apache.catalina.Realm;
 import org.apache.catalina.Session;
 import org.apache.catalina.TomcatPrincipal;
 import org.apache.catalina.Wrapper;
-import org.apache.catalina.core.ApplicationMapping;
 import org.apache.catalina.core.ApplicationPart;
 import org.apache.catalina.core.ApplicationPushBuilder;
 import org.apache.catalina.core.ApplicationSessionCookieConfig;
@@ -484,7 +481,6 @@ public class Request implements HttpServ
         }
 
         mappingData.recycle();
-        applicationMapping.recycle();
 
         applicationRequest = null;
         if (Globals.IS_SECURITY_ENABLED || Connector.RECYCLE_FACADES) {
@@ -623,7 +619,6 @@ public class Request implements HttpServ
      * Mapping data.
      */
     protected final MappingData mappingData = new MappingData();
-    private final ApplicationMapping applicationMapping = new 
ApplicationMapping(mappingData);
 
     /**
      * @return mapping data.
@@ -1895,11 +1890,11 @@ public class Request implements HttpServ
     // --------------------------------------------- HttpServletRequest Methods
 
     /**
-     * {@inheritDoc}
+     * Pulled forward from Servlet 4.0. The method signature may be modified,
+     * removed or replaced at any time until Servlet 4.0 becomes final.
      *
-     * @since Servlet 4.0
+     * @return {@code true} If this request supports server push
      */
-    @Override
     public boolean isPushSupported() {
         AtomicBoolean result = new AtomicBoolean();
         coyoteRequest.action(ActionCode.IS_PUSH_SUPPORTED, result);
@@ -1908,12 +1903,12 @@ public class Request implements HttpServ
 
 
     /**
-     * {@inheritDoc}
+     * Pulled forward from Servlet 4.0. The method signature may be modified,
+     * removed or replaced at any time until Servlet 4.0 becomes final.
      *
-     * @since Servlet 4.0
+     * @return A builder to use to construct the push request
      */
-    @Override
-    public PushBuilder getPushBuilder() {
+    public ApplicationPushBuilder getPushBuilder() {
         return new ApplicationPushBuilder(this);
     }
 
@@ -2179,12 +2174,6 @@ public class Request implements HttpServ
     }
 
 
-    @Override
-    public Mapping getMapping() {
-        return applicationMapping.getMapping();
-    }
-
-
     /**
      * @return the HTTP request method used in this Request.
      */

Modified: 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/RequestFacade.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/RequestFacade.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/RequestFacade.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/connector/RequestFacade.java 
Sun Mar 13 13:37:40 2016
@@ -38,11 +38,10 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import javax.servlet.http.HttpUpgradeHandler;
-import javax.servlet.http.Mapping;
 import javax.servlet.http.Part;
-import javax.servlet.http.PushBuilder;
 
 import org.apache.catalina.Globals;
+import org.apache.catalina.core.ApplicationPushBuilder;
 import org.apache.catalina.security.SecurityUtil;
 import org.apache.tomcat.util.res.StringManager;
 
@@ -738,18 +737,6 @@ public class RequestFacade implements Ht
 
 
     @Override
-    public Mapping getMapping() {
-
-        if (request == null) {
-            throw new IllegalStateException(
-                            sm.getString("requestFacade.nullRequest"));
-        }
-
-        return request.getMapping();
-    }
-
-
-    @Override
     public String getMethod() {
 
         if (request == null) {
@@ -1129,12 +1116,12 @@ public class RequestFacade implements Ht
 
 
     /**
-     * {@inheritDoc}
+     * Pulled forward from Servlet 4.0. The method signature may be modified,
+     * removed or replaced at any time until Servlet 4.0 becomes final.
      *
-     * @since Servlet 4.0
+     * @return A builder to use to construct the push request
      */
-    @Override
-    public PushBuilder getPushBuilder() {
+    public ApplicationPushBuilder getPushBuilder() {
         return request.getPushBuilder();
     }
 }

Modified: 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java 
(original)
+++ 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java 
Sun Mar 13 13:37:40 2016
@@ -33,7 +33,6 @@ import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpSession;
-import javax.servlet.http.PushBuilder;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Globals;
@@ -615,8 +614,7 @@ class ApplicationHttpRequest extends Htt
     }
 
 
-    @Override
-    public PushBuilder getPushBuilder() {
+    public ApplicationPushBuilder getPushBuilder() {
         return new ApplicationPushBuilder(this);
     }
 

Modified: 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java 
(original)
+++ 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java 
Sun Mar 13 13:37:40 2016
@@ -32,7 +32,6 @@ import javax.servlet.SessionTrackingMode
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
-import javax.servlet.http.PushBuilder;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.connector.Request;
@@ -45,7 +44,7 @@ import org.apache.tomcat.util.collection
 import org.apache.tomcat.util.http.CookieProcessor;
 import org.apache.tomcat.util.res.StringManager;
 
-public class ApplicationPushBuilder implements PushBuilder {
+public class ApplicationPushBuilder {
 
     private static final StringManager sm = 
StringManager.getManager(ApplicationPushBuilder.class);
 
@@ -168,8 +167,7 @@ public class ApplicationPushBuilder impl
     }
 
 
-    @Override
-    public PushBuilder path(String path) {
+    public ApplicationPushBuilder path(String path) {
         if (path.startsWith("/")) {
             this.path = path;
         } else {
@@ -185,92 +183,78 @@ public class ApplicationPushBuilder impl
     }
 
 
-    @Override
     public String getPath() {
         return path;
     }
 
 
-    @Override
-    public PushBuilder method(String method) {
+    public ApplicationPushBuilder method(String method) {
         this.method = method;
         return this;
     }
 
 
-    @Override
     public String getMethod() {
         return method;
     }
 
 
-    @Override
-    public PushBuilder etag(String etag) {
+    public ApplicationPushBuilder etag(String etag) {
         this.etag = etag;
         return this;
     }
 
 
-    @Override
     public String getEtag() {
         return etag;
     }
 
 
-    @Override
-    public PushBuilder lastModified(String lastModified) {
+    public ApplicationPushBuilder lastModified(String lastModified) {
         this.lastModified = lastModified;
         return this;
     }
 
 
-    @Override
     public String getLastModified() {
         return lastModified;
     }
 
 
-    @Override
-    public PushBuilder queryString(String queryString) {
+    public ApplicationPushBuilder queryString(String queryString) {
         this.queryString = queryString;
         return this;
     }
 
 
-    @Override
     public String getQueryString() {
         return queryString;
     }
 
 
-    @Override
-    public PushBuilder sessionId(String sessionId) {
+    public ApplicationPushBuilder sessionId(String sessionId) {
         this.sessionId = sessionId;
         return this;
     }
 
 
-    @Override
     public String getSessionId() {
         return sessionId;
     }
 
 
-    @Override
-    public PushBuilder conditional(boolean conditional) {
+    public ApplicationPushBuilder conditional(boolean conditional) {
         this.conditional = conditional;
         return this;
     }
 
 
-    @Override
     public boolean isConditional() {
         return conditional;
     }
 
 
-    @Override
-    public PushBuilder addHeader(String name, String value) {
+    public ApplicationPushBuilder addHeader(String name, String value) {
         List<String> values = headers.get(name);
         if (values == null) {
             values = new ArrayList<>();
@@ -282,8 +266,7 @@ public class ApplicationPushBuilder impl
     }
 
 
-    @Override
-    public PushBuilder setHeader(String name, String value) {
+    public ApplicationPushBuilder setHeader(String name, String value) {
         List<String> values = headers.get(name);
         if (values == null) {
             values = new ArrayList<>();
@@ -297,21 +280,18 @@ public class ApplicationPushBuilder impl
     }
 
 
-    @Override
-    public PushBuilder removeHeader(String name) {
+    public ApplicationPushBuilder removeHeader(String name) {
         headers.remove(name);
 
         return this;
     }
 
 
-    @Override
     public Set<String> getHeaderNames() {
         return Collections.unmodifiableSet(headers.keySet());
     }
 
 
-    @Override
     public String getHeader(String name) {
         List<String> values = headers.get(name);
         if (values == null) {
@@ -322,7 +302,6 @@ public class ApplicationPushBuilder impl
     }
 
 
-    @Override
     public boolean push() {
         if (path == null) {
             throw new 
IllegalStateException(sm.getString("pushBuilder.noPath"));

Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/CorsFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/CorsFilter.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/CorsFilter.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/CorsFilter.java Sun 
Mar 13 13:37:40 2016
@@ -27,8 +27,9 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Set;
 
+import javax.servlet.Filter;
 import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
+import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -41,8 +42,8 @@ import org.apache.tomcat.util.res.String
 
 /**
  * <p>
- * A {@link javax.servlet.Filter} that enable client-side cross-origin requests
- * by implementing W3C's CORS (<b>C</b>ross-<b>O</b>rigin <b>R</b>esource
+ * A {@link Filter} that enable client-side cross-origin requests by
+ * implementing W3C's CORS (<b>C</b>ross-<b>O</b>rigin <b>R</b>esource
  * <b>S</b>haring) specification for resources. Each {@link HttpServletRequest}
  * request is inspected as per specification, and appropriate response headers
  * are added to {@link HttpServletResponse}.
@@ -75,9 +76,8 @@ import org.apache.tomcat.util.res.String
  * @see <a href="http://www.w3.org/TR/cors/";>CORS specification</a>
  *
  */
-public final class CorsFilter extends GenericFilter {
+public final class CorsFilter implements Filter {
 
-    private static final long serialVersionUID = 1L;
     private static final Log log = LogFactory.getLog(CorsFilter.class);
     private static final StringManager sm = 
StringManager.getManager(CorsFilter.class);
 
@@ -132,11 +132,6 @@ public final class CorsFilter extends Ge
 
 
     @Override
-    public void destroy() {
-        // NOOP
-    }
-
-    @Override
     public void doFilter(final ServletRequest servletRequest,
             final ServletResponse servletResponse, final FilterChain 
filterChain)
             throws IOException, ServletException {
@@ -182,26 +177,35 @@ public final class CorsFilter extends Ge
 
 
     @Override
-    public void init() throws ServletException {
+    public void init(final FilterConfig filterConfig) throws ServletException {
         // Initialize defaults
         parseAndStore(DEFAULT_ALLOWED_ORIGINS, DEFAULT_ALLOWED_HTTP_METHODS,
                 DEFAULT_ALLOWED_HTTP_HEADERS, DEFAULT_EXPOSED_HEADERS,
                 DEFAULT_SUPPORTS_CREDENTIALS, DEFAULT_PREFLIGHT_MAXAGE,
                 DEFAULT_DECORATE_REQUEST);
 
-        String configAllowedOrigins = 
getInitParameter(PARAM_CORS_ALLOWED_ORIGINS);
-        String configAllowedHttpMethods = 
getInitParameter(PARAM_CORS_ALLOWED_METHODS);
-        String configAllowedHttpHeaders = 
getInitParameter(PARAM_CORS_ALLOWED_HEADERS);
-        String configExposedHeaders = 
getInitParameter(PARAM_CORS_EXPOSED_HEADERS);
-        String configSupportsCredentials = 
getInitParameter(PARAM_CORS_SUPPORT_CREDENTIALS);
-        String configPreflightMaxAge = 
getInitParameter(PARAM_CORS_PREFLIGHT_MAXAGE);
-        String configDecorateRequest = 
getInitParameter(PARAM_CORS_REQUEST_DECORATE);
+        if (filterConfig != null) {
+            String configAllowedOrigins = filterConfig
+                    .getInitParameter(PARAM_CORS_ALLOWED_ORIGINS);
+            String configAllowedHttpMethods = filterConfig
+                    .getInitParameter(PARAM_CORS_ALLOWED_METHODS);
+            String configAllowedHttpHeaders = filterConfig
+                    .getInitParameter(PARAM_CORS_ALLOWED_HEADERS);
+            String configExposedHeaders = filterConfig
+                    .getInitParameter(PARAM_CORS_EXPOSED_HEADERS);
+            String configSupportsCredentials = filterConfig
+                    .getInitParameter(PARAM_CORS_SUPPORT_CREDENTIALS);
+            String configPreflightMaxAge = filterConfig
+                    .getInitParameter(PARAM_CORS_PREFLIGHT_MAXAGE);
+            String configDecorateRequest = filterConfig
+                    .getInitParameter(PARAM_CORS_REQUEST_DECORATE);
 
         parseAndStore(configAllowedOrigins, configAllowedHttpMethods,
                 configAllowedHttpHeaders, configExposedHeaders,
                 configSupportsCredentials, configPreflightMaxAge,
                 configDecorateRequest);
     }
+    }
 
 
     /**
@@ -450,6 +454,12 @@ public final class CorsFilter extends Ge
     }
 
 
+    @Override
+    public void destroy() {
+        // NOOP
+    }
+
+
     /**
      * Decorates the {@link HttpServletRequest}, with CORS attributes.
      * <ul>

Modified: 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java 
Sun Mar 13 13:37:40 2016
@@ -31,15 +31,15 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.regex.Pattern;
 
+import javax.servlet.Filter;
 import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
+import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.PushBuilder;
 
 import org.apache.catalina.AccessLog;
 import org.apache.catalina.Globals;
@@ -436,10 +436,7 @@ import org.apache.juli.logging.LogFactor
  * </p>
  * <hr>
  */
-public class RemoteIpFilter extends GenericFilter {
-
-    private static final long serialVersionUID = 1L;
-
+public class RemoteIpFilter implements Filter {
     public static class XForwardedRequest extends HttpServletRequestWrapper {
 
         static final ThreadLocal<SimpleDateFormat[]> threadLocalDateFormats = 
new ThreadLocal<SimpleDateFormat[]>() {
@@ -640,8 +637,7 @@ public class RemoteIpFilter extends Gene
             return url;
         }
 
-        @Override
-        public PushBuilder getPushBuilder() {
+        public ApplicationPushBuilder getPushBuilder() {
             return new ApplicationPushBuilder(this);
         }
     }
@@ -955,50 +951,50 @@ public class RemoteIpFilter extends Gene
     }
 
     @Override
-    public void init() throws ServletException {
-        if (getInitParameter(INTERNAL_PROXIES_PARAMETER) != null) {
-            setInternalProxies(getInitParameter(INTERNAL_PROXIES_PARAMETER));
+    public void init(FilterConfig filterConfig) throws ServletException {
+        if (filterConfig.getInitParameter(INTERNAL_PROXIES_PARAMETER) != null) 
{
+            
setInternalProxies(filterConfig.getInitParameter(INTERNAL_PROXIES_PARAMETER));
         }
 
-        if (getInitParameter(PROTOCOL_HEADER_PARAMETER) != null) {
-            setProtocolHeader(getInitParameter(PROTOCOL_HEADER_PARAMETER));
+        if (filterConfig.getInitParameter(PROTOCOL_HEADER_PARAMETER) != null) {
+            
setProtocolHeader(filterConfig.getInitParameter(PROTOCOL_HEADER_PARAMETER));
         }
 
-        if (getInitParameter(PROTOCOL_HEADER_HTTPS_VALUE_PARAMETER) != null) {
-            
setProtocolHeaderHttpsValue(getInitParameter(PROTOCOL_HEADER_HTTPS_VALUE_PARAMETER));
+        if 
(filterConfig.getInitParameter(PROTOCOL_HEADER_HTTPS_VALUE_PARAMETER) != null) {
+            
setProtocolHeaderHttpsValue(filterConfig.getInitParameter(PROTOCOL_HEADER_HTTPS_VALUE_PARAMETER));
         }
 
-        if (getInitParameter(PORT_HEADER_PARAMETER) != null) {
-            setPortHeader(getInitParameter(PORT_HEADER_PARAMETER));
+        if (filterConfig.getInitParameter(PORT_HEADER_PARAMETER) != null) {
+            
setPortHeader(filterConfig.getInitParameter(PORT_HEADER_PARAMETER));
         }
 
-        if (getInitParameter(CHANGE_LOCAL_PORT_PARAMETER) != null) {
-            
setChangeLocalPort(Boolean.parseBoolean(getInitParameter(CHANGE_LOCAL_PORT_PARAMETER)));
+        if (filterConfig.getInitParameter(CHANGE_LOCAL_PORT_PARAMETER) != 
null) {
+            
setChangeLocalPort(Boolean.parseBoolean(filterConfig.getInitParameter(CHANGE_LOCAL_PORT_PARAMETER)));
         }
 
-        if (getInitParameter(PROXIES_HEADER_PARAMETER) != null) {
-            setProxiesHeader(getInitParameter(PROXIES_HEADER_PARAMETER));
+        if (filterConfig.getInitParameter(PROXIES_HEADER_PARAMETER) != null) {
+            
setProxiesHeader(filterConfig.getInitParameter(PROXIES_HEADER_PARAMETER));
         }
 
-        if (getInitParameter(REMOTE_IP_HEADER_PARAMETER) != null) {
-            setRemoteIpHeader(getInitParameter(REMOTE_IP_HEADER_PARAMETER));
+        if (filterConfig.getInitParameter(REMOTE_IP_HEADER_PARAMETER) != null) 
{
+            
setRemoteIpHeader(filterConfig.getInitParameter(REMOTE_IP_HEADER_PARAMETER));
         }
 
-        if (getInitParameter(TRUSTED_PROXIES_PARAMETER) != null) {
-            setTrustedProxies(getInitParameter(TRUSTED_PROXIES_PARAMETER));
+        if (filterConfig.getInitParameter(TRUSTED_PROXIES_PARAMETER) != null) {
+            
setTrustedProxies(filterConfig.getInitParameter(TRUSTED_PROXIES_PARAMETER));
         }
 
-        if (getInitParameter(HTTP_SERVER_PORT_PARAMETER) != null) {
+        if (filterConfig.getInitParameter(HTTP_SERVER_PORT_PARAMETER) != null) 
{
             try {
-                
setHttpServerPort(Integer.parseInt(getInitParameter(HTTP_SERVER_PORT_PARAMETER)));
+                
setHttpServerPort(Integer.parseInt(filterConfig.getInitParameter(HTTP_SERVER_PORT_PARAMETER)));
             } catch (NumberFormatException e) {
                 throw new NumberFormatException("Illegal " + 
HTTP_SERVER_PORT_PARAMETER + " : " + e.getMessage());
             }
         }
 
-        if (getInitParameter(HTTPS_SERVER_PORT_PARAMETER) != null) {
+        if (filterConfig.getInitParameter(HTTPS_SERVER_PORT_PARAMETER) != 
null) {
             try {
-                
setHttpsServerPort(Integer.parseInt(getInitParameter(HTTPS_SERVER_PORT_PARAMETER)));
+                
setHttpsServerPort(Integer.parseInt(filterConfig.getInitParameter(HTTPS_SERVER_PORT_PARAMETER)));
             } catch (NumberFormatException e) {
                 throw new NumberFormatException("Illegal " + 
HTTPS_SERVER_PORT_PARAMETER + " : " + e.getMessage());
             }

Modified: 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RequestDumperFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RequestDumperFilter.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RequestDumperFilter.java 
(original)
+++ 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/RequestDumperFilter.java 
Sun Mar 13 13:37:40 2016
@@ -21,8 +21,9 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Enumeration;
 
+import javax.servlet.Filter;
 import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
+import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -47,9 +48,7 @@ import org.apache.juli.logging.LogFactor
  *
  * @author Craig R. McClanahan
  */
-public class RequestDumperFilter extends GenericFilter {
-
-    private static final long serialVersionUID = 1L;
+public class RequestDumperFilter implements Filter {
 
     private static final String NON_HTTP_REQ_MSG =
         "Not available. Non-http request.";
@@ -70,11 +69,6 @@ public class RequestDumperFilter extends
     private static final Log log = 
LogFactory.getLog(RequestDumperFilter.class);
 
 
-    @Override
-    public void destroy() {
-        // NOOP
-    }
-
     /**
      * Log the interesting request parameters, invoke the next Filter in the
      * sequence, and log the interesting response parameters.
@@ -270,6 +264,16 @@ public class RequestDumperFilter extends
         return ts.dateString;
     }
 
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+        // NOOP
+    }
+
+    @Override
+    public void destroy() {
+        // NOOP
+    }
+
     private static final class Timestamp {
         private final Date date = new Date(0);
         private final SimpleDateFormat format =

Modified: 
tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/WebdavFixFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/WebdavFixFilter.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/WebdavFixFilter.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/filters/WebdavFixFilter.java 
Sun Mar 13 13:37:40 2016
@@ -18,9 +18,9 @@ package org.apache.catalina.filters;
 
 import java.io.IOException;
 
+import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
-import javax.servlet.GenericFilter;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -57,9 +57,7 @@ import javax.servlet.http.HttpServletRes
  *   <li>Unknown issue means it doesn't work</li>
  * </ul>
  */
-public class WebdavFixFilter extends GenericFilter {
-
-    private static final long serialVersionUID = 1L;
+public class WebdavFixFilter implements Filter {
 
     private static final String LOG_MESSAGE_PREAMBLE =
         "WebdavFixFilter: Detected client problem: ";
@@ -112,11 +110,11 @@ public class WebdavFixFilter extends Gen
         } else if (ua.startsWith(UA_MINIDIR_5_2_3790)) {
             // XP 64-bit SP2
             if (!"".equals(httpRequest.getContextPath())) {
-                log("XP-x64-SP2 clients only work with the root context");
+                log(httpRequest, "XP-x64-SP2 clients only work with the root 
context");
             }
             // Namespace issue maybe
             // see http://greenbytes.de/tech/webdav/webdav-redirector-list.html
-            log("XP-x64-SP2 is known not to work with WebDAV Servlet");
+            log(httpRequest, "XP-x64-SP2 is known not to work with WebDAV 
Servlet");
 
             chain.doFilter(request, response);
         } else {
@@ -142,9 +140,9 @@ public class WebdavFixFilter extends Gen
         return location.toString();
     }
 
-    private void log(String msg) {
+    private void log(ServletRequest request, String msg) {
         StringBuilder builder = new StringBuilder(LOG_MESSAGE_PREAMBLE);
         builder.append(msg);
-        getServletContext().log(builder.toString());
+        request.getServletContext().log(builder.toString());
     }
 }

Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/mapper/Mapper.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/mapper/Mapper.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/mapper/Mapper.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/mapper/Mapper.java Sun Mar 13 
13:37:40 2016
@@ -25,8 +25,6 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
-import javax.servlet.http.MappingMatch;
-
 import org.apache.catalina.Context;
 import org.apache.catalina.Host;
 import org.apache.catalina.WebResource;
@@ -994,7 +992,6 @@ public final class Mapper {
                     (path.getBuffer(), path.getStart(), path.getLength());
                 mappingData.wrapperPath.setChars
                     (path.getBuffer(), path.getStart(), path.getLength());
-                mappingData.matchType = MappingMatch.DEFAULT;
             }
             // Redirection to a folder
             char[] buf = path.getBuffer();
@@ -1043,10 +1040,8 @@ public final class Mapper {
                 mappingData.wrapperPath.setString("");
                 // This seems wrong but it is what the spec says...
                 mappingData.contextPath.setString("");
-                mappingData.matchType = MappingMatch.CONTEXT_ROOT;
             } else {
                 mappingData.wrapperPath.setString(wrapper.name);
-                mappingData.matchType = MappingMatch.EXACT;
             }
         }
     }
@@ -1098,7 +1093,6 @@ public final class Mapper {
                     (path.getBuffer(), path.getOffset(), path.getLength());
                 mappingData.wrapper = wrappers[pos].object;
                 mappingData.jspWildCard = wrappers[pos].jspWildCard;
-                mappingData.matchType = MappingMatch.PATH;
             }
         }
     }
@@ -1143,7 +1137,6 @@ public final class Mapper {
                     mappingData.requestPath.setChars(buf, servletPath, pathEnd
                             - servletPath);
                     mappingData.wrapper = wrapper.object;
-                    mappingData.matchType = MappingMatch.EXTENSION;
                 }
                 path.setOffset(servletPath);
                 path.setEnd(pathEnd);

Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/mapper/MappingData.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/mapper/MappingData.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/mapper/MappingData.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/mapper/MappingData.java Sun 
Mar 13 13:37:40 2016
@@ -17,8 +17,6 @@
 
 package org.apache.catalina.mapper;
 
-import javax.servlet.http.MappingMatch;
-
 import org.apache.catalina.Context;
 import org.apache.catalina.Host;
 import org.apache.catalina.Wrapper;
@@ -45,9 +43,6 @@ public class MappingData {
 
     public final MessageBytes redirectPath = MessageBytes.newInstance();
 
-    // Fields used by ApplicationMapping to implement 
javax.servlet.http.Mapping
-    public MappingMatch matchType = MappingMatch.UNKNOWN;
-
     public void recycle() {
         host = null;
         context = null;
@@ -60,6 +55,5 @@ public class MappingData {
         wrapperPath.recycle();
         pathInfo.recycle();
         redirectPath.recycle();
-        matchType = MappingMatch.UNKNOWN;
     }
 }

Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/ssi/SSIFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/ssi/SSIFilter.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/ssi/SSIFilter.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/ssi/SSIFilter.java Sun Mar 13 
13:37:40 2016
@@ -28,8 +28,9 @@ import java.io.Reader;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import javax.servlet.Filter;
 import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
+import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -44,8 +45,8 @@ import org.apache.catalina.Globals;
  * @author David Becker
  * @see org.apache.catalina.ssi.SSIServlet
  */
-public class SSIFilter extends GenericFilter {
-    private static final long serialVersionUID = 1L;
+public class SSIFilter implements Filter {
+    protected FilterConfig config = null;
     /** Debug level for this servlet. */
     protected int debug = 0;
     /** Expiration time in seconds for the doc. */
@@ -62,26 +63,29 @@ public class SSIFilter extends GenericFi
 
 
     @Override
-    public void init() throws ServletException {
-        if (getInitParameter("debug") != null) {
-            debug = Integer.parseInt(getInitParameter("debug"));
+    public void init(FilterConfig config) throws ServletException {
+        this.config = config;
+
+        if (config.getInitParameter("debug") != null) {
+            debug = Integer.parseInt(config.getInitParameter("debug"));
         }
 
-        if (getInitParameter("contentType") != null) {
-            contentTypeRegEx = 
Pattern.compile(getInitParameter("contentType"));
+        if (config.getInitParameter("contentType") != null) {
+            contentTypeRegEx = 
Pattern.compile(config.getInitParameter("contentType"));
         } else {
             contentTypeRegEx = shtmlRegEx;
         }
 
-        isVirtualWebappRelative = 
Boolean.parseBoolean(getInitParameter("isVirtualWebappRelative"));
+        isVirtualWebappRelative =
+            
Boolean.parseBoolean(config.getInitParameter("isVirtualWebappRelative"));
 
-        if (getInitParameter("expires") != null)
-            expires = Long.valueOf(getInitParameter("expires"));
+        if (config.getInitParameter("expires") != null)
+            expires = Long.valueOf(config.getInitParameter("expires"));
 
-        allowExec = Boolean.parseBoolean(getInitParameter("allowExec"));
+        allowExec = Boolean.parseBoolean(config.getInitParameter("allowExec"));
 
         if (debug > 0)
-            getServletContext().log(
+            config.getServletContext().log(
                     "SSIFilter.init() SSI invoker started with 'debug'=" + 
debug);
     }
 
@@ -98,7 +102,7 @@ public class SSIFilter extends GenericFi
         // setup to capture output
         ByteArrayServletOutputStream basos = new 
ByteArrayServletOutputStream();
         ResponseIncludeWrapper responseIncludeWrapper =
-                new ResponseIncludeWrapper(getServletContext(),req, res, 
basos);
+            new ResponseIncludeWrapper(config.getServletContext(),req, res, 
basos);
 
         // process remainder of filter chain
         chain.doFilter(req, responseIncludeWrapper);
@@ -116,7 +120,7 @@ public class SSIFilter extends GenericFi
 
             // set up SSI processing
             SSIExternalResolver ssiExternalResolver =
-                new SSIServletExternalResolver(getServletContext(), req,
+                new SSIServletExternalResolver(config.getServletContext(), req,
                         res, isVirtualWebappRelative, debug, encoding);
             SSIProcessor ssiProcessor = new SSIProcessor(ssiExternalResolver,
                     debug, allowExec);

Modified: 
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java 
(original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java 
Sun Mar 13 13:37:40 2016
@@ -18,8 +18,9 @@ package org.apache.tomcat.websocket.serv
 
 import java.io.IOException;
 
+import javax.servlet.Filter;
 import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
+import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -29,16 +30,14 @@ import javax.servlet.http.HttpServletRes
 /**
  * Handles the initial HTTP connection for WebSocket connections.
  */
-public class WsFilter extends GenericFilter {
-
-    private static final long serialVersionUID = 1L;
+public class WsFilter implements Filter {
 
     private WsServerContainer sc;
 
 
     @Override
-    public void init() throws ServletException {
-        sc = (WsServerContainer) getServletContext().getAttribute(
+    public void init(FilterConfig filterConfig) throws ServletException {
+        sc = (WsServerContainer) filterConfig.getServletContext().getAttribute(
                 Constants.SERVER_CONTAINER_SERVLET_CONTEXT_ATTRIBUTE);
     }
 
@@ -79,10 +78,9 @@ public class WsFilter extends GenericFil
                 mappingResult.getPathParams());
     }
 
+
     @Override
     public void destroy() {
         // NO-OP
     }
-
-
 }

Modified: 
tomcat/tc8.5.x/trunk/test/org/apache/catalina/core/TestNamingContextListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/catalina/core/TestNamingContextListener.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/test/org/apache/catalina/core/TestNamingContextListener.java
 (original)
+++ 
tomcat/tc8.5.x/trunk/test/org/apache/catalina/core/TestNamingContextListener.java
 Sun Mar 13 13:37:40 2016
@@ -71,6 +71,11 @@ public class TestNamingContextListener e
     public static final class Bug49132Listener implements 
ServletContextListener {
 
         @Override
+        public void contextDestroyed(ServletContextEvent sce) {
+            // NOOP
+        }
+
+        @Override
         public void contextInitialized(ServletContextEvent sce) {
             javax.naming.Context initCtx;
             try {
@@ -146,6 +151,11 @@ public class TestNamingContextListener e
             ServletContextListener {
 
         @Override
+        public void contextDestroyed(ServletContextEvent sce) {
+            // NOOP
+        }
+
+        @Override
         public void contextInitialized(ServletContextEvent sce) {
             javax.naming.Context initCtx;
             try {

Modified: 
tomcat/tc8.5.x/trunk/test/org/apache/catalina/core/TestStandardContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/catalina/core/TestStandardContext.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/test/org/apache/catalina/core/TestStandardContext.java 
(original)
+++ tomcat/tc8.5.x/trunk/test/org/apache/catalina/core/TestStandardContext.java 
Sun Mar 13 13:37:40 2016
@@ -23,8 +23,9 @@ import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
+import javax.servlet.Filter;
 import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
+import javax.servlet.FilterConfig;
 import javax.servlet.HttpConstraintElement;
 import javax.servlet.HttpMethodConstraintElement;
 import javax.servlet.MultipartConfigElement;
@@ -160,9 +161,12 @@ public class TestStandardContext extends
         }
     }
 
-    public static final class Bug46243Filter extends GenericFilter {
+    public static final class Bug46243Filter implements Filter {
 
-        private static final long serialVersionUID = 1L;
+        @Override
+        public void destroy() {
+            // NOOP
+        }
 
         @Override
         public void doFilter(ServletRequest request, ServletResponse response,
@@ -173,10 +177,11 @@ public class TestStandardContext extends
         }
 
         @Override
-        public void init() throws ServletException {
-            boolean fail = getInitParameter("fail").equals("true");
+        public void init(FilterConfig filterConfig) throws ServletException {
+            boolean fail = 
filterConfig.getInitParameter("fail").equals("true");
             if (fail) {
-                throw new ServletException("Init fail (test)", new 
ClassNotFoundException());
+                throw new ServletException("Init fail (test)",
+                        new ClassNotFoundException());
             }
         }
     }
@@ -330,9 +335,12 @@ public class TestStandardContext extends
     }
 
 
-    public static final class Bug49922Filter extends GenericFilter {
+    public static final class Bug49922Filter implements Filter {
 
-        private static final long serialVersionUID = 1L;
+        @Override
+        public void destroy() {
+            // NOOP
+        }
 
         @Override
         public void doFilter(ServletRequest request, ServletResponse response,
@@ -341,6 +349,11 @@ public class TestStandardContext extends
             response.getWriter().print("Filter");
             chain.doFilter(request, response);
         }
+
+        @Override
+        public void init(FilterConfig filterConfig) throws ServletException {
+            // NOOP
+        }
     }
 
     public static final class Bug49922ForwardServlet extends HttpServlet {

Modified: 
tomcat/tc8.5.x/trunk/test/org/apache/catalina/filters/TesterHttpServletRequest.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/catalina/filters/TesterHttpServletRequest.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/test/org/apache/catalina/filters/TesterHttpServletRequest.java
 (original)
+++ 
tomcat/tc8.5.x/trunk/test/org/apache/catalina/filters/TesterHttpServletRequest.java
 Sun Mar 13 13:37:40 2016
@@ -42,9 +42,9 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import javax.servlet.http.HttpUpgradeHandler;
-import javax.servlet.http.Mapping;
 import javax.servlet.http.Part;
-import javax.servlet.http.PushBuilder;
+
+import org.apache.catalina.core.ApplicationPushBuilder;
 
 public class TesterHttpServletRequest implements HttpServletRequest {
 
@@ -265,11 +265,6 @@ public class TesterHttpServletRequest im
     }
 
     @Override
-    public Mapping getMapping() {
-        throw new RuntimeException("Not implemented");
-    }
-
-    @Override
     public String getMethod() {
         return method;
     }
@@ -442,8 +437,7 @@ public class TesterHttpServletRequest im
         throw new RuntimeException("Not implemented");
     }
 
-    @Override
-    public PushBuilder getPushBuilder() {
+    public ApplicationPushBuilder getPushBuilder() {
         throw new RuntimeException("Not implemented");
     }
 }

Modified: 
tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/DuplicateMappingParamFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/DuplicateMappingParamFilter.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/DuplicateMappingParamFilter.java
 (original)
+++ 
tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/DuplicateMappingParamFilter.java
 Sun Mar 13 13:37:40 2016
@@ -18,8 +18,9 @@ package org.apache.catalina.startup;
 
 import java.io.IOException;
 
+import javax.servlet.Filter;
 import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
+import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -33,14 +34,23 @@ import javax.servlet.annotation.WebFilte
  */
 @WebFilter(value = "/param", filterName="paramDFilter",
         urlPatterns = { "/param1" , "/param2" })
-public class DuplicateMappingParamFilter extends GenericFilter {
+public class DuplicateMappingParamFilter implements Filter {
 
-    private static final long serialVersionUID = 1L;
 
     @Override
-    public void doFilter(ServletRequest req, ServletResponse res, FilterChain 
chain)
-            throws ServletException, IOException {
+    public void init(FilterConfig filterConfig) throws ServletException {
+        // NO-OP
+    }
+
+    @Override
+    public void doFilter(ServletRequest req, ServletResponse res,
+            FilterChain chain) throws ServletException, IOException {
         chain.doFilter(req, res);
     }
+
+    @Override
+    public void destroy() {
+        // destroy
+    }
 }
 

Modified: tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/ParamFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/ParamFilter.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/ParamFilter.java 
(original)
+++ tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/ParamFilter.java Sun 
Mar 13 13:37:40 2016
@@ -20,8 +20,9 @@ import java.io.IOException;
 import java.io.PrintWriter;
 
 import javax.servlet.DispatcherType;
+import javax.servlet.Filter;
 import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
+import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -32,18 +33,27 @@ import javax.servlet.annotation.WebInitP
  * Test Mock to check Filter Annotations
  * @author Peter Rossbach
  */
-@WebFilter(value = "/param", filterName = "paramFilter",
-        dispatcherTypes = { DispatcherType.ERROR, DispatcherType.ASYNC },
-        initParams = { @WebInitParam(name = "message", value = "Servlet says: 
") })
-public class ParamFilter extends GenericFilter {
+@WebFilter(value = "/param", filterName = "paramFilter", dispatcherTypes = {
+        DispatcherType.ERROR, DispatcherType.ASYNC }, initParams = { 
@WebInitParam(name = "message", value = "Servlet says: ") })
+public class ParamFilter implements Filter {
 
-    private static final long serialVersionUID = 1L;
+    private FilterConfig _filterConfig;
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+        _filterConfig = filterConfig;
+    }
 
     @Override
     public void doFilter(ServletRequest req, ServletResponse res,
             FilterChain chain) throws ServletException, IOException {
         PrintWriter out = res.getWriter();
-        out.print(getInitParameter("message"));
+        out.print(_filterConfig.getInitParameter("message"));
         chain.doFilter(req, res);
     }
+
+    @Override
+    public void destroy() {
+        // destroy
+    }
 }

Modified: 
tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/TestListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/TestListener.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/TestListener.java 
(original)
+++ tomcat/tc8.5.x/trunk/test/org/apache/catalina/startup/TestListener.java Sun 
Mar 13 13:37:40 2016
@@ -88,6 +88,11 @@ public class TestListener extends Tomcat
         public void contextInitialized(ServletContextEvent sce) {
             initialized = true;
         }
+
+        @Override
+        public void contextDestroyed(ServletContextEvent sce) {
+            // NOOP
+        }
     }
 
     public static class SCL2 implements ServletContextListener {
@@ -97,6 +102,11 @@ public class TestListener extends Tomcat
             ServletContext sc = sce.getServletContext();
             sc.addListener(SCL3.class.getName());
         }
+
+        @Override
+        public void contextDestroyed(ServletContextEvent sce) {
+            // NOOP
+        }
     }
 
     public static class SCL3 implements ServletContextListener {
@@ -107,5 +117,10 @@ public class TestListener extends Tomcat
         public void contextInitialized(ServletContextEvent sce) {
             initialized = true;
         }
+
+        @Override
+        public void contextDestroyed(ServletContextEvent sce) {
+            // NOOP
+        }
     }
 }

Modified: tomcat/tc8.5.x/trunk/test/org/apache/coyote/http2/Http2TestBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/coyote/http2/Http2TestBase.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/test/org/apache/coyote/http2/Http2TestBase.java 
(original)
+++ tomcat/tc8.5.x/trunk/test/org/apache/coyote/http2/Http2TestBase.java Sun 
Mar 13 13:37:40 2016
@@ -712,6 +712,21 @@ public abstract class Http2TestBase exte
 
 
         @Override
+        public boolean fill(boolean block, byte[] data) throws IOException {
+            return fill(block, data, 0, data.length);        }
+
+
+        @Override
+        public boolean fill(boolean block, ByteBuffer data, int len) throws 
IOException {
+            boolean result = fill(block, data.array(), data.arrayOffset(), 
len);
+            if (result) {
+                data.position(data.position() + len);
+            }
+            return result;
+        }
+
+
+        @Override
         public boolean fill(boolean block, byte[] data, int offset, int 
length) throws IOException {
             // Note: Block is ignored for this test class. Reads always block.
             int off = offset;

Modified: 
tomcat/tc8.5.x/trunk/test/org/apache/jasper/compiler/TestELInterpreterFactory.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/jasper/compiler/TestELInterpreterFactory.java?rev=1734805&r1=1734804&r2=1734805&view=diff
==============================================================================
--- 
tomcat/tc8.5.x/trunk/test/org/apache/jasper/compiler/TestELInterpreterFactory.java
 (original)
+++ 
tomcat/tc8.5.x/trunk/test/org/apache/jasper/compiler/TestELInterpreterFactory.java
 Sun Mar 13 13:37:40 2016
@@ -93,5 +93,10 @@ public class TestELInterpreterFactory ex
             
sce.getServletContext().setInitParameter(ELInterpreter.class.getName(),
                     SimpleELInterpreter.class.getName());
         }
+
+        @Override
+        public void contextDestroyed(ServletContextEvent sce) {
+            // NO-OP
+        }
     }
 }




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to