You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2020/04/03 17:40:48 UTC

[tomcat] 03/04: Refactor: Remove HttpServletMapping interface

This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 1a87ea891530d2839586b3221d100bf741af1e20
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Fri Apr 3 16:59:55 2020 +0100

    Refactor: Remove HttpServletMapping interface
---
 java/org/apache/catalina/connector/Request.java    |  4 +-
 .../apache/catalina/connector/RequestFacade.java   |  4 +-
 .../apache/catalina/core/ApplicationContext.java   |  3 +-
 .../catalina/core/ApplicationDispatcher.java       |  9 ++--
 .../catalina/core/ApplicationHttpRequest.java      |  7 ++-
 .../apache/catalina/core/ApplicationMapping.java   |  5 +-
 .../catalina/core/ApplicationMappingImpl.java      | 12 ++---
 .../servlet4preview/http/HttpServletMapping.java   | 55 ----------------------
 .../servlet4preview/http/HttpServletRequest.java   |  4 +-
 .../http/HttpServletRequestWrapper.java            |  3 +-
 ...estApplicationContextGetRequestDispatcherB.java |  8 ++--
 .../catalina/core/TestApplicationMapping.java      |  9 ++--
 12 files changed, 31 insertions(+), 92 deletions(-)

diff --git a/java/org/apache/catalina/connector/Request.java b/java/org/apache/catalina/connector/Request.java
index dbc2c16..71a107d 100644
--- a/java/org/apache/catalina/connector/Request.java
+++ b/java/org/apache/catalina/connector/Request.java
@@ -77,12 +77,12 @@ import org.apache.catalina.TomcatPrincipal;
 import org.apache.catalina.Wrapper;
 import org.apache.catalina.core.ApplicationFilterChain;
 import org.apache.catalina.core.ApplicationMapping;
+import org.apache.catalina.core.ApplicationMappingImpl;
 import org.apache.catalina.core.ApplicationPart;
 import org.apache.catalina.core.ApplicationPushBuilder;
 import org.apache.catalina.core.ApplicationSessionCookieConfig;
 import org.apache.catalina.core.AsyncContextImpl;
 import org.apache.catalina.mapper.MappingData;
-import org.apache.catalina.servlet4preview.http.HttpServletMapping;
 import org.apache.catalina.session.ManagerBase;
 import org.apache.catalina.util.ParameterMap;
 import org.apache.catalina.util.TLSUtil;
@@ -2304,7 +2304,7 @@ public class Request implements org.apache.catalina.servlet4preview.http.HttpSer
 
 
     @Override
-    public HttpServletMapping getHttpServletMapping() {
+    public ApplicationMappingImpl getHttpServletMapping() {
         return applicationMapping.getHttpServletMapping();
     }
 
diff --git a/java/org/apache/catalina/connector/RequestFacade.java b/java/org/apache/catalina/connector/RequestFacade.java
index 41d0dde..3ecf5b9 100644
--- a/java/org/apache/catalina/connector/RequestFacade.java
+++ b/java/org/apache/catalina/connector/RequestFacade.java
@@ -40,9 +40,9 @@ import javax.servlet.http.HttpUpgradeHandler;
 import javax.servlet.http.Part;
 
 import org.apache.catalina.Globals;
+import org.apache.catalina.core.ApplicationMappingImpl;
 import org.apache.catalina.core.ApplicationPushBuilder;
 import org.apache.catalina.security.SecurityUtil;
-import org.apache.catalina.servlet4preview.http.HttpServletMapping;
 import org.apache.catalina.servlet4preview.http.HttpServletRequest;
 import org.apache.tomcat.util.res.StringManager;
 
@@ -1123,7 +1123,7 @@ public class RequestFacade implements HttpServletRequest {
      * removed or replaced at any time until Servlet 4.0 becomes final.
      */
     @Override
-    public HttpServletMapping getHttpServletMapping() {
+    public ApplicationMappingImpl getHttpServletMapping() {
         return request.getHttpServletMapping();
     }
 
diff --git a/java/org/apache/catalina/core/ApplicationContext.java b/java/org/apache/catalina/core/ApplicationContext.java
index d44ef02..8a42c24 100644
--- a/java/org/apache/catalina/core/ApplicationContext.java
+++ b/java/org/apache/catalina/core/ApplicationContext.java
@@ -67,7 +67,6 @@ import org.apache.catalina.WebResourceRoot;
 import org.apache.catalina.Wrapper;
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.mapper.MappingData;
-import org.apache.catalina.servlet4preview.http.HttpServletMapping;
 import org.apache.catalina.util.Introspection;
 import org.apache.catalina.util.ServerInfo;
 import org.apache.catalina.util.URLEncoder;
@@ -482,7 +481,7 @@ public class ApplicationContext implements ServletContext {
             Wrapper wrapper = mappingData.wrapper;
             String wrapperPath = mappingData.wrapperPath.toString();
             String pathInfo = mappingData.pathInfo.toString();
-            HttpServletMapping mapping = new ApplicationMapping(mappingData).getHttpServletMapping();
+            ApplicationMappingImpl mapping = new ApplicationMapping(mappingData).getHttpServletMapping();
 
             // Construct a RequestDispatcher to process this request
             return new ApplicationDispatcher(wrapper, uri, wrapperPath, pathInfo,
diff --git a/java/org/apache/catalina/core/ApplicationDispatcher.java b/java/org/apache/catalina/core/ApplicationDispatcher.java
index 1f93011..eb3d420 100644
--- a/java/org/apache/catalina/core/ApplicationDispatcher.java
+++ b/java/org/apache/catalina/core/ApplicationDispatcher.java
@@ -44,7 +44,6 @@ import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.RequestFacade;
 import org.apache.catalina.connector.Response;
 import org.apache.catalina.connector.ResponseFacade;
-import org.apache.catalina.servlet4preview.http.HttpServletMapping;
 import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.res.StringManager;
 
@@ -211,7 +210,7 @@ final class ApplicationDispatcher implements AsyncDispatcher, RequestDispatcher
      */
     public ApplicationDispatcher
         (Wrapper wrapper, String requestURI, String servletPath,
-         String pathInfo, String queryString, HttpServletMapping mapping, String name) {
+         String pathInfo, String queryString, ApplicationMappingImpl mapping, String name) {
 
         super();
 
@@ -268,7 +267,7 @@ final class ApplicationDispatcher implements AsyncDispatcher, RequestDispatcher
     /**
      * The mapping for this RequestDispatcher.
      */
-    private final HttpServletMapping mapping;
+    private final ApplicationMappingImpl mapping;
 
 
     /**
@@ -372,7 +371,7 @@ final class ApplicationDispatcher implements AsyncDispatcher, RequestDispatcher
                                       hrequest.getPathInfo());
                 wrequest.setAttribute(RequestDispatcher.FORWARD_QUERY_STRING,
                                       hrequest.getQueryString());
-                HttpServletMapping mapping;
+                ApplicationMappingImpl mapping;
                 if (hrequest instanceof org.apache.catalina.servlet4preview.http.HttpServletRequest) {
                     mapping = ((org.apache.catalina.servlet4preview.http.HttpServletRequest)
                             hrequest).getHttpServletMapping();
@@ -627,7 +626,7 @@ final class ApplicationDispatcher implements AsyncDispatcher, RequestDispatcher
 
         wrequest.setAttribute(Globals.DISPATCHER_TYPE_ATTR, DispatcherType.ASYNC);
         wrequest.setAttribute(Globals.DISPATCHER_REQUEST_PATH_ATTR, getCombinedPath());
-        HttpServletMapping mapping;
+        ApplicationMappingImpl mapping;
         if (hrequest instanceof org.apache.catalina.servlet4preview.http.HttpServletRequest) {
             mapping = ((org.apache.catalina.servlet4preview.http.HttpServletRequest)
                     hrequest).getHttpServletMapping();
diff --git a/java/org/apache/catalina/core/ApplicationHttpRequest.java b/java/org/apache/catalina/core/ApplicationHttpRequest.java
index 2bb795c..fab0799 100644
--- a/java/org/apache/catalina/core/ApplicationHttpRequest.java
+++ b/java/org/apache/catalina/core/ApplicationHttpRequest.java
@@ -42,7 +42,6 @@ import org.apache.catalina.Globals;
 import org.apache.catalina.Manager;
 import org.apache.catalina.Session;
 import org.apache.catalina.connector.RequestFacade;
-import org.apache.catalina.servlet4preview.http.HttpServletMapping;
 import org.apache.catalina.util.ParameterMap;
 import org.apache.catalina.util.URLEncoder;
 import org.apache.tomcat.util.buf.B2CConverter;
@@ -193,7 +192,7 @@ class ApplicationHttpRequest
     /**
      * The mapping for this request.
      */
-    private HttpServletMapping mapping = null;
+    private ApplicationMappingImpl mapping = null;
 
 
     /**
@@ -528,7 +527,7 @@ class ApplicationHttpRequest
 
 
     @Override
-    public HttpServletMapping getHttpServletMapping() {
+    public ApplicationMappingImpl getHttpServletMapping() {
         return mapping;
     }
 
@@ -781,7 +780,7 @@ class ApplicationHttpRequest
     }
 
 
-    void setMapping(HttpServletMapping mapping) {
+    void setMapping(ApplicationMappingImpl mapping) {
         this.mapping = mapping;
     }
 
diff --git a/java/org/apache/catalina/core/ApplicationMapping.java b/java/org/apache/catalina/core/ApplicationMapping.java
index 9e528b3..0c988cf 100644
--- a/java/org/apache/catalina/core/ApplicationMapping.java
+++ b/java/org/apache/catalina/core/ApplicationMapping.java
@@ -17,19 +17,18 @@
 package org.apache.catalina.core;
 
 import org.apache.catalina.mapper.MappingData;
-import org.apache.catalina.servlet4preview.http.HttpServletMapping;
 
 public class ApplicationMapping {
 
     private final MappingData mappingData;
 
-    private volatile HttpServletMapping mapping = null;
+    private volatile ApplicationMappingImpl mapping = null;
 
     public ApplicationMapping(MappingData mappingData) {
         this.mappingData = mappingData;
     }
 
-    public HttpServletMapping getHttpServletMapping() {
+    public ApplicationMappingImpl getHttpServletMapping() {
         if (mapping == null) {
             if (mappingData == null) {
                 // This can happen when dispatching from an application provided
diff --git a/java/org/apache/catalina/core/ApplicationMappingImpl.java b/java/org/apache/catalina/core/ApplicationMappingImpl.java
index cf64d24..2362b1f 100644
--- a/java/org/apache/catalina/core/ApplicationMappingImpl.java
+++ b/java/org/apache/catalina/core/ApplicationMappingImpl.java
@@ -1,8 +1,6 @@
 package org.apache.catalina.core;
 
-import org.apache.catalina.servlet4preview.http.HttpServletMapping;
-
-public class ApplicationMappingImpl implements HttpServletMapping {
+public class ApplicationMappingImpl {
 
     private final String matchValue;
     private final String pattern;
@@ -16,22 +14,22 @@ public class ApplicationMappingImpl implements HttpServletMapping {
         this.servletName = servletName;
     }
 
-    @Override
+
     public String getMatchValue() {
         return matchValue;
     }
 
-    @Override
+
     public String getPattern() {
         return pattern;
     }
 
-    @Override
+
     public ApplicationMappingMatch getMappingMatch() {
         return mappingType;
     }
 
-    @Override
+
     public String getServletName() {
         return servletName;
     }
diff --git a/java/org/apache/catalina/servlet4preview/http/HttpServletMapping.java b/java/org/apache/catalina/servlet4preview/http/HttpServletMapping.java
deleted file mode 100644
index cad96e1..0000000
--- a/java/org/apache/catalina/servlet4preview/http/HttpServletMapping.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.apache.catalina.servlet4preview.http;
-
-import javax.servlet.annotation.WebServlet;
-
-import org.apache.catalina.core.ApplicationMappingMatch;
-
-/**
- * Represents how the request from which this object was obtained was mapped to
- * the associated servlet.
- *
- * @since 4.0
- */
-public interface HttpServletMapping {
-
-    /**
-     * @return The value that was matched or the empty String if not known.
-     */
-    String getMatchValue();
-
-    /**
-     * @return The {@code url-pattern} that matched this request or the empty
-     *         String if not known.
-     */
-    String getPattern();
-
-    /**
-     * @return The name of the servlet (as specified in web.xml,
-     *         {@link WebServlet#name()},
-     *         {@link javax.servlet.ServletContext#addServlet(String, Class)} or
-     *         one of the other <code>addServlet()</code> methods) that the
-     *         request was mapped to.
-     */
-    String getServletName();
-
-    /**
-     * @return The type of match ({@code null} if not known)
-     */
-    ApplicationMappingMatch getMappingMatch();
-}
diff --git a/java/org/apache/catalina/servlet4preview/http/HttpServletRequest.java b/java/org/apache/catalina/servlet4preview/http/HttpServletRequest.java
index 64ac62b..f605ed7 100644
--- a/java/org/apache/catalina/servlet4preview/http/HttpServletRequest.java
+++ b/java/org/apache/catalina/servlet4preview/http/HttpServletRequest.java
@@ -16,10 +16,12 @@
  */
 package org.apache.catalina.servlet4preview.http;
 
+import org.apache.catalina.core.ApplicationMappingImpl;
+
 /**
  * Provides early access to some parts of the Servlet 4.0 API.
  */
 public interface HttpServletRequest extends javax.servlet.http.HttpServletRequest {
 
-    public HttpServletMapping getHttpServletMapping();
+    public ApplicationMappingImpl getHttpServletMapping();
 }
diff --git a/java/org/apache/catalina/servlet4preview/http/HttpServletRequestWrapper.java b/java/org/apache/catalina/servlet4preview/http/HttpServletRequestWrapper.java
index 67b6efa..7ed31ce 100644
--- a/java/org/apache/catalina/servlet4preview/http/HttpServletRequestWrapper.java
+++ b/java/org/apache/catalina/servlet4preview/http/HttpServletRequestWrapper.java
@@ -16,6 +16,7 @@
  */
 package org.apache.catalina.servlet4preview.http;
 
+import org.apache.catalina.core.ApplicationMappingImpl;
 
 /**
  * Provides early access to some parts of the Servlet 4.0 API.
@@ -47,7 +48,7 @@ public class HttpServletRequestWrapper extends javax.servlet.http.HttpServletReq
      * @since Servlet 4.0
      */
     @Override
-    public HttpServletMapping getHttpServletMapping() {
+    public ApplicationMappingImpl getHttpServletMapping() {
         return this._getHttpServletRequest().getHttpServletMapping();
     }
 }
diff --git a/test/org/apache/catalina/core/TestApplicationContextGetRequestDispatcherB.java b/test/org/apache/catalina/core/TestApplicationContextGetRequestDispatcherB.java
index be1b8a4..8bcbcde 100755
--- a/test/org/apache/catalina/core/TestApplicationContextGetRequestDispatcherB.java
+++ b/test/org/apache/catalina/core/TestApplicationContextGetRequestDispatcherB.java
@@ -38,7 +38,6 @@ import org.junit.runners.Parameterized.Parameters;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Wrapper;
-import org.apache.catalina.servlet4preview.http.HttpServletMapping;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.tomcat.util.buf.ByteChunk;
@@ -527,7 +526,7 @@ public class TestApplicationContextGetRequestDispatcherB extends TomcatBaseTest
             Assert.assertEquals(expectedServletPath, req.getServletPath());
             Assert.assertEquals(expectedPathInfo, req.getPathInfo());
             Assert.assertEquals(expectedQueryString, req.getQueryString());
-            HttpServletMapping mapping =
+            ApplicationMappingImpl mapping =
                     ((org.apache.catalina.servlet4preview.http.HttpServletRequest) req).getHttpServletMapping();
             Assert.assertEquals(expectedMappingMatch, mapping.getMappingMatch());
             Assert.assertEquals(expectedMappingPattern, mapping.getPattern());
@@ -547,9 +546,8 @@ public class TestApplicationContextGetRequestDispatcherB extends TomcatBaseTest
                             req.getAttribute("javax.servlet." + name + ".path_info"));
                     Assert.assertEquals(expectedDispatcherQueryString,
                             req.getAttribute("javax.servlet." + name + ".query_string"));
-                    HttpServletMapping dispatcherMapping =
-                            (HttpServletMapping) ((org.apache.catalina.servlet4preview.http.HttpServletRequest) req).getAttribute(
-                                    "javax.servlet." + name + ".mapping");
+                    ApplicationMappingImpl dispatcherMapping =
+                            (ApplicationMappingImpl) req.getAttribute("javax.servlet." + name + ".mapping");
                     Assert.assertNotNull(dispatcherMapping);
                     Assert.assertEquals(expectedDispatcherMappingMatch,
                             dispatcherMapping.getMappingMatch());
diff --git a/test/org/apache/catalina/core/TestApplicationMapping.java b/test/org/apache/catalina/core/TestApplicationMapping.java
index 2cb9d1b..76ef88c 100644
--- a/test/org/apache/catalina/core/TestApplicationMapping.java
+++ b/test/org/apache/catalina/core/TestApplicationMapping.java
@@ -31,7 +31,6 @@ import org.junit.Test;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Wrapper;
-import org.apache.catalina.servlet4preview.http.HttpServletMapping;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.tomcat.util.buf.ByteChunk;
@@ -340,13 +339,13 @@ public class TestApplicationMapping extends TomcatBaseTest {
                 throws ServletException, IOException {
             resp.setContentType("text/plain;charset=UTF-8");
             PrintWriter pw = resp.getWriter();
-            HttpServletMapping mapping = ((org.apache.catalina.servlet4preview.http.HttpServletRequest)
+            ApplicationMappingImpl mapping = ((org.apache.catalina.servlet4preview.http.HttpServletRequest)
                     req).getHttpServletMapping();
             pw.println("MatchValue=[" + mapping.getMatchValue() + "]");
             pw.println("Pattern=[" + mapping.getPattern() + "]");
             pw.println("MatchType=[" + mapping.getMappingMatch() + "]");
             pw.println("ServletName=[" + mapping.getServletName() + "]");
-            HttpServletMapping includeMapping = (HttpServletMapping) req.getAttribute(
+            ApplicationMappingImpl includeMapping = (ApplicationMappingImpl) req.getAttribute(
                     ApplicationDispatcher.INCLUDE_MAPPING);
             if (includeMapping != null) {
                 pw.println("IncludeMatchValue=[" + includeMapping.getMatchValue() + "]");
@@ -355,7 +354,7 @@ public class TestApplicationMapping extends TomcatBaseTest {
                 pw.println("IncludeServletName=[" + includeMapping.getServletName() + "]");
 
             }
-            HttpServletMapping forwardMapping = (HttpServletMapping) req.getAttribute(
+            ApplicationMappingImpl forwardMapping = (ApplicationMappingImpl) req.getAttribute(
                     ApplicationDispatcher.FORWARD_MAPPING);
             if (forwardMapping != null) {
                 pw.println("ForwardMatchValue=[" + forwardMapping.getMatchValue() + "]");
@@ -363,7 +362,7 @@ public class TestApplicationMapping extends TomcatBaseTest {
                 pw.println("ForwardMatchType=[" + forwardMapping.getMappingMatch() + "]");
                 pw.println("ForwardServletName=[" + forwardMapping.getServletName() + "]");
             }
-            HttpServletMapping asyncMapping = (HttpServletMapping) req.getAttribute(
+            ApplicationMappingImpl asyncMapping = (ApplicationMappingImpl) req.getAttribute(
                     ApplicationDispatcher.ASYNC_MAPPING);
             if (asyncMapping != null) {
                 pw.println("AsyncMatchValue=[" + asyncMapping.getMatchValue() + "]");


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