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 aa7271f41b730edbfe4a069f97b29840f31a2029 Author: Mark Thomas <ma...@apache.org> AuthorDate: Fri Apr 3 16:53:53 2020 +0100 Refactor: Replace MappingMatch enum with ApplicationMappingMatch --- java/javax/el/ImportHandler.java | 2 +- .../catalina/core/ApplicationMappingImpl.java | 7 +- .../ApplicationMappingMatch.java} | 6 +- .../org/apache/catalina/filters/ExpiresFilter.java | 4 +- java/org/apache/catalina/mapper/Mapper.java | 12 +- java/org/apache/catalina/mapper/MappingData.java | 4 +- .../servlet4preview/http/HttpServletMapping.java | 4 +- ...estApplicationContextGetRequestDispatcherB.java | 189 ++++++++++----------- 8 files changed, 113 insertions(+), 115 deletions(-) diff --git a/java/javax/el/ImportHandler.java b/java/javax/el/ImportHandler.java index b31a75f..151b3ab 100644 --- a/java/javax/el/ImportHandler.java +++ b/java/javax/el/ImportHandler.java @@ -114,7 +114,7 @@ public class ImportHandler { servletHttpClassNames.add("HttpSessionEvent"); servletHttpClassNames.add("HttpUtils"); // Enums - servletHttpClassNames.add("MappingMatch"); + servletHttpClassNames.add("ApplicationMappingMatch"); standardPackages.put("javax.servlet.http", servletHttpClassNames); // JSP 2.3 diff --git a/java/org/apache/catalina/core/ApplicationMappingImpl.java b/java/org/apache/catalina/core/ApplicationMappingImpl.java index e8d21c6..cf64d24 100644 --- a/java/org/apache/catalina/core/ApplicationMappingImpl.java +++ b/java/org/apache/catalina/core/ApplicationMappingImpl.java @@ -1,16 +1,15 @@ package org.apache.catalina.core; import org.apache.catalina.servlet4preview.http.HttpServletMapping; -import org.apache.catalina.servlet4preview.http.MappingMatch; public class ApplicationMappingImpl implements HttpServletMapping { private final String matchValue; private final String pattern; - private final MappingMatch mappingType; + private final ApplicationMappingMatch mappingType; private final String servletName; - public ApplicationMappingImpl(String matchValue, String pattern, MappingMatch mappingType, String servletName) { + public ApplicationMappingImpl(String matchValue, String pattern, ApplicationMappingMatch mappingType, String servletName) { this.matchValue = matchValue; this.pattern = pattern; this.mappingType = mappingType; @@ -28,7 +27,7 @@ public class ApplicationMappingImpl implements HttpServletMapping { } @Override - public MappingMatch getMappingMatch() { + public ApplicationMappingMatch getMappingMatch() { return mappingType; } diff --git a/java/org/apache/catalina/servlet4preview/http/MappingMatch.java b/java/org/apache/catalina/core/ApplicationMappingMatch.java similarity index 90% rename from java/org/apache/catalina/servlet4preview/http/MappingMatch.java rename to java/org/apache/catalina/core/ApplicationMappingMatch.java index 3dd54b0..cb1a9d8 100644 --- a/java/org/apache/catalina/servlet4preview/http/MappingMatch.java +++ b/java/org/apache/catalina/core/ApplicationMappingMatch.java @@ -14,14 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.catalina.servlet4preview.http; +package org.apache.catalina.core; /** * Represents the ways that a request can be mapped to a servlet - * - * @since 4.0 */ -public enum MappingMatch { +public enum ApplicationMappingMatch { CONTEXT_ROOT, DEFAULT, diff --git a/java/org/apache/catalina/filters/ExpiresFilter.java b/java/org/apache/catalina/filters/ExpiresFilter.java index 8f1dab4..6c7ff78 100644 --- a/java/org/apache/catalina/filters/ExpiresFilter.java +++ b/java/org/apache/catalina/filters/ExpiresFilter.java @@ -42,7 +42,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; -import org.apache.catalina.servlet4preview.http.MappingMatch; +import org.apache.catalina.core.ApplicationMappingMatch; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -1296,7 +1296,7 @@ public class ExpiresFilter extends FilterBase { org.apache.catalina.servlet4preview.http.HttpServletRequest servlet4Request = (org.apache.catalina.servlet4preview.http.HttpServletRequest) innerRequest; - if (servlet4Request.getHttpServletMapping().getMappingMatch() == MappingMatch.DEFAULT && + if (servlet4Request.getHttpServletMapping().getMappingMatch() == ApplicationMappingMatch.DEFAULT && response.getStatus() == HttpServletResponse.SC_NOT_MODIFIED) { // Default servlet normally sets the content type but does not for // 304 responses. Look it up. diff --git a/java/org/apache/catalina/mapper/Mapper.java b/java/org/apache/catalina/mapper/Mapper.java index f8b6606..02dd2d1 100644 --- a/java/org/apache/catalina/mapper/Mapper.java +++ b/java/org/apache/catalina/mapper/Mapper.java @@ -30,7 +30,7 @@ import org.apache.catalina.Host; import org.apache.catalina.WebResource; import org.apache.catalina.WebResourceRoot; import org.apache.catalina.Wrapper; -import org.apache.catalina.servlet4preview.http.MappingMatch; +import org.apache.catalina.core.ApplicationMappingMatch; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.buf.Ascii; @@ -1019,7 +1019,7 @@ public final class Mapper { (path.getBuffer(), path.getStart(), path.getLength()); mappingData.wrapperPath.setChars (path.getBuffer(), path.getStart(), path.getLength()); - mappingData.matchType = MappingMatch.DEFAULT; + mappingData.matchType = ApplicationMappingMatch.DEFAULT; } // Redirection to a folder char[] buf = path.getBuffer(); @@ -1075,10 +1075,10 @@ 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; + mappingData.matchType = ApplicationMappingMatch.CONTEXT_ROOT; } else { mappingData.wrapperPath.setString(wrapper.name); - mappingData.matchType = MappingMatch.EXACT; + mappingData.matchType = ApplicationMappingMatch.EXACT; } } } @@ -1130,7 +1130,7 @@ public final class Mapper { (path.getBuffer(), path.getOffset(), path.getLength()); mappingData.wrapper = wrappers[pos].object; mappingData.jspWildCard = wrappers[pos].jspWildCard; - mappingData.matchType = MappingMatch.PATH; + mappingData.matchType = ApplicationMappingMatch.PATH; } } } @@ -1175,7 +1175,7 @@ public final class Mapper { mappingData.requestPath.setChars(buf, servletPath, pathEnd - servletPath); mappingData.wrapper = wrapper.object; - mappingData.matchType = MappingMatch.EXTENSION; + mappingData.matchType = ApplicationMappingMatch.EXTENSION; } path.setOffset(servletPath); path.setEnd(pathEnd); diff --git a/java/org/apache/catalina/mapper/MappingData.java b/java/org/apache/catalina/mapper/MappingData.java index 7578f49..9ad15be 100644 --- a/java/org/apache/catalina/mapper/MappingData.java +++ b/java/org/apache/catalina/mapper/MappingData.java @@ -20,7 +20,7 @@ package org.apache.catalina.mapper; import org.apache.catalina.Context; import org.apache.catalina.Host; import org.apache.catalina.Wrapper; -import org.apache.catalina.servlet4preview.http.MappingMatch; +import org.apache.catalina.core.ApplicationMappingMatch; import org.apache.tomcat.util.buf.MessageBytes; /** @@ -49,7 +49,7 @@ public class MappingData { public final MessageBytes redirectPath = MessageBytes.newInstance(); // Fields used by ApplicationMapping to implement javax.servlet.http.HttpServletMapping - public MappingMatch matchType = null; + public ApplicationMappingMatch matchType = null; public void recycle() { host = null; diff --git a/java/org/apache/catalina/servlet4preview/http/HttpServletMapping.java b/java/org/apache/catalina/servlet4preview/http/HttpServletMapping.java index 3a14feb..cad96e1 100644 --- a/java/org/apache/catalina/servlet4preview/http/HttpServletMapping.java +++ b/java/org/apache/catalina/servlet4preview/http/HttpServletMapping.java @@ -18,6 +18,8 @@ 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. @@ -49,5 +51,5 @@ public interface HttpServletMapping { /** * @return The type of match ({@code null} if not known) */ - MappingMatch getMappingMatch(); + ApplicationMappingMatch getMappingMatch(); } diff --git a/test/org/apache/catalina/core/TestApplicationContextGetRequestDispatcherB.java b/test/org/apache/catalina/core/TestApplicationContextGetRequestDispatcherB.java index ca74a95..be1b8a4 100755 --- a/test/org/apache/catalina/core/TestApplicationContextGetRequestDispatcherB.java +++ b/test/org/apache/catalina/core/TestApplicationContextGetRequestDispatcherB.java @@ -39,7 +39,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.servlet4preview.http.MappingMatch; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.startup.TomcatBaseTest; import org.apache.tomcat.util.buf.ByteChunk; @@ -64,135 +63,135 @@ public class TestApplicationContextGetRequestDispatcherB extends TomcatBaseTest // Simple dispatch for each type { "/start", "/start", DispatcherType.INCLUDE, "/target", "/target", Boolean.TRUE, "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "OK"}, { "/start", "/start", DispatcherType.FORWARD, "/target", "/target", Boolean.TRUE, "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, { "/start", "/start", DispatcherType.ASYNC, "/target", "/target", Boolean.TRUE, "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, // Simple dispatch with query strings { "/start", "/start?abcde=fghij", DispatcherType.INCLUDE, "/target", "/target?zyxwv=utsrq", Boolean.TRUE, "/test/start", "/test", "/start", null, "abcde=fghij", - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/target", "/test", "/target", null, "zyxwv=utsrq", - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "OK"}, { "/start", "/start?abcde=fghij", DispatcherType.FORWARD, "/target", "/target?zyxwv=utsrq", Boolean.TRUE, "/test/target", "/test", "/target", null, "zyxwv=utsrq", - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start", "/test", "/start", null, "abcde=fghij", - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, { "/start", "/start?abcde=fghij", DispatcherType.ASYNC, "/target", "/target?zyxwv=utsrq", Boolean.TRUE, "/test/target", "/test", "/target", null, "zyxwv=utsrq", - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start", "/test", "/start", null, "abcde=fghij", - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, // Simple dispatch with trailing path parameters at start { "/start", "/start;abcde=fghij", DispatcherType.INCLUDE, "/target", "/target", Boolean.TRUE, "/test/start;abcde=fghij", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "OK"}, { "/start", "/start;abcde=fghij", DispatcherType.FORWARD, "/target", "/target", Boolean.TRUE, "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start;abcde=fghij", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, { "/start", "/start;abcde=fghij", DispatcherType.ASYNC, "/target", "/target", Boolean.TRUE, "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start;abcde=fghij", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, // Simple dispatch with path parameters at start { "/start", ";abcde=fghij/start", DispatcherType.INCLUDE, "/target", "/target", Boolean.TRUE, "/test;abcde=fghij/start", "/test;abcde=fghij", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "OK"}, { "/start", ";abcde=fghij/start", DispatcherType.FORWARD, "/target", "/target", Boolean.TRUE, "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test;abcde=fghij/start", "/test;abcde=fghij", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, { "/start", ";abcde=fghij/start", DispatcherType.ASYNC, "/target", "/target", Boolean.TRUE, "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test;abcde=fghij/start", "/test;abcde=fghij", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, // Simple dispatch with path parameters on dispatch { "/start", "/start", DispatcherType.INCLUDE, "/target", "/target;abcde=fghij", Boolean.TRUE, "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/target;abcde=fghij", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "OK"}, { "/start", "/start", DispatcherType.FORWARD, "/target", "/target;abcde=fghij", Boolean.TRUE, "/test/target;abcde=fghij", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, { "/start", "/start", DispatcherType.ASYNC, "/target", "/target;abcde=fghij", Boolean.TRUE, "/test/target;abcde=fghij", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, // Simple dispatch with multiple path parameters on start and dispatch { "/start", "/start;abcde=fghij", DispatcherType.INCLUDE, "/target", ";klmno=pqrst/target;uvwxy=z0123", Boolean.TRUE, "/test/start;abcde=fghij", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/;klmno=pqrst/target;uvwxy=z0123", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "OK"}, { "/start", "/start;abcde=fghij", DispatcherType.FORWARD, "/target", ";klmno=pqrst/target;uvwxy=z0123", Boolean.TRUE, "/test/;klmno=pqrst/target;uvwxy=z0123", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start;abcde=fghij", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, { "/start", "/start;abcde=fghij", DispatcherType.ASYNC, "/target", ";klmno=pqrst/target;uvwxy=z0123", Boolean.TRUE, "/test/;klmno=pqrst/target;uvwxy=z0123", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start;abcde=fghij", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "ASYNC-IAE"}, // Simple dispatch with directory traversal { "/start/*", "/start/foo", DispatcherType.INCLUDE, "/target", "../target", Boolean.TRUE, "/test/start/foo", "/test", "/start", "/foo", null, - MappingMatch.PATH, "/start/*", "foo", "rd", + ApplicationMappingMatch.PATH, "/start/*", "foo", "rd", "/test/start/../target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "OK"}, { "/start/*", "/start/foo", DispatcherType.FORWARD, "/target", "../target", Boolean.TRUE, "/test/start/../target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start/foo", "/test", "/start", "/foo", null, - MappingMatch.PATH, "/start/*", "foo", "rd", + ApplicationMappingMatch.PATH, "/start/*", "foo", "rd", "OK"}, { "/start/*", "/start/foo", DispatcherType.ASYNC, "/target", "../target", Boolean.TRUE, "/test/start/../target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start/foo", "/test", "/start", "/foo", null, - MappingMatch.PATH, "/start/*", "foo", "rd", + ApplicationMappingMatch.PATH, "/start/*", "foo", "rd", "ASYNC-IAE"}, // Simple dispatch with directory traversal and path parameters // Note comments in Request.getRequestDispatcher(String) that @@ -200,154 +199,154 @@ public class TestApplicationContextGetRequestDispatcherB extends TomcatBaseTest // dispatched requestURI { "/start/*", "/start;abcde=fghij/foo", DispatcherType.INCLUDE, "/target", "../target;klmno=pqrst", Boolean.TRUE, "/test/start;abcde=fghij/foo", "/test", "/start", "/foo", null, - MappingMatch.PATH, "/start/*", "foo", "rd", + ApplicationMappingMatch.PATH, "/start/*", "foo", "rd", "/test/start/../target;klmno=pqrst", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "OK"}, { "/start/*", "/start;abcde=fghij/foo", DispatcherType.FORWARD, "/target", "../target;klmno=pqrst", Boolean.TRUE, "/test/start/../target;klmno=pqrst", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start;abcde=fghij/foo", "/test", "/start", "/foo", null, - MappingMatch.PATH, "/start/*", "foo", "rd", + ApplicationMappingMatch.PATH, "/start/*", "foo", "rd", "OK"}, { "/start/*", "/start;abcde=fghij/foo", DispatcherType.ASYNC, "/target", "../target;klmno=pqrst", Boolean.TRUE, "/test/start;abcde=fghij/../target;klmno=pqrst", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start;abcde=fghij/foo", "/test", "/start", "/foo", null, - MappingMatch.PATH, "/start/*", "foo", "rd", + ApplicationMappingMatch.PATH, "/start/*", "foo", "rd", "ASYNC-IAE"}, // Simple dispatch with invalid directory traversal { "/start/*", "/start/foo", DispatcherType.INCLUDE, "/target", "../../target", Boolean.TRUE, "/test/start/foo", "/test", "/start", "/foo", null, - MappingMatch.PATH, "/start/*", "foo", "rd", + ApplicationMappingMatch.PATH, "/start/*", "foo", "rd", "/test/start/../target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "RD-NULL"}, { "/start/*", "/start/foo", DispatcherType.FORWARD, "/target", "../../target", Boolean.TRUE, "/test/start/../target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start/foo", "/test", "/start", "/foo", null, - MappingMatch.PATH, "/start/*", "foo", "rd", + ApplicationMappingMatch.PATH, "/start/*", "foo", "rd", "RD-NULL"}, { "/start/*", "/start/foo", DispatcherType.ASYNC, "/target", "../../target", Boolean.TRUE, "/test/start/../target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start/foo", "/test", "/start", "/foo", null, - MappingMatch.PATH, "/start/*", "foo", "rd", + ApplicationMappingMatch.PATH, "/start/*", "foo", "rd", "ASYNC-IAE"}, // Simple dispatch with invalid target { "/start", "/start", DispatcherType.INCLUDE, "/target", "/does-not-exist", Boolean.TRUE, "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "RD-NULL"}, { "/start", "/start", DispatcherType.FORWARD, "/target", "/does-not-exist", Boolean.TRUE, "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "RD-NULL"}, { "/start", "/start", DispatcherType.ASYNC, "/target", "/does-not-exist", Boolean.TRUE, "/test/target", "/test", "/target", null, null, - MappingMatch.EXACT, "/target", "target", "target", + ApplicationMappingMatch.EXACT, "/target", "target", "target", "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "ASYNC-RD-NULL"}, // Welcome files { "/start", "/start", DispatcherType.INCLUDE, "*.html", "/", Boolean.TRUE, "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "OK"}, { "/start", "/start", DispatcherType.FORWARD, "*.html", "/", Boolean.TRUE, "/test/", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, { "/start", "/start", DispatcherType.ASYNC, "*.html", "/", Boolean.TRUE, "/test/", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, // Welcome files with query strings { "/start", "/start?abcde=fghij", DispatcherType.INCLUDE, "*.html", "/?zyxwv=utsrq", Boolean.TRUE, "/test/start", "/test", "/start", null, "abcde=fghij", - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/", "/test", "/index.html", null, "zyxwv=utsrq", - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "OK"}, { "/start", "/start?abcde=fghij", DispatcherType.FORWARD, "*.html", "/?zyxwv=utsrq", Boolean.TRUE, "/test/", "/test", "/index.html", null, "zyxwv=utsrq", - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "/test/start", "/test", "/start", null, "abcde=fghij", - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, { "/start", "/start?abcde=fghij", DispatcherType.ASYNC, "*.html", "/?zyxwv=utsrq", Boolean.TRUE, "/test/", "/test", "/index.html", null, "zyxwv=utsrq", - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "/test/start", "/test", "/start", null, "abcde=fghij", - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, // Welcome files with trailing path parameters at start { "/start", "/start;abcde=fghij", DispatcherType.INCLUDE, "*.html", "/", Boolean.TRUE, "/test/start;abcde=fghij", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "OK"}, { "/start", "/start;abcde=fghij", DispatcherType.FORWARD, "*.html", "/", Boolean.TRUE, "/test/", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "/test/start;abcde=fghij", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, { "/start", "/start;abcde=fghij", DispatcherType.ASYNC, "*.html", "/", Boolean.TRUE, "/test/", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "/test/start;abcde=fghij", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, // Welcome files with path parameters at start { "/start", ";abcde=fghij/start", DispatcherType.INCLUDE, "*.html", "/", Boolean.TRUE, "/test;abcde=fghij/start", "/test;abcde=fghij", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "OK"}, { "/start", ";abcde=fghij/start", DispatcherType.FORWARD, "*.html", "/", Boolean.TRUE, "/test/", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "/test;abcde=fghij/start", "/test;abcde=fghij", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, { "/start", ";abcde=fghij/start", DispatcherType.ASYNC, "*.html", "/", Boolean.TRUE, "/test/", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "/test;abcde=fghij/start", "/test;abcde=fghij", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, // Welcome files with trailing path parameters on dispatch { "/start", "/start", DispatcherType.INCLUDE, "*.html", "/;abcde=fghij", Boolean.TRUE, "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "/test/;abcde=fghij", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "OK"}, { "/start", "/start", DispatcherType.FORWARD, "*.html", "/;abcde=fghij", Boolean.TRUE, "/test/;abcde=fghij", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, { "/start", "/start", DispatcherType.ASYNC, "*.html", "/;abcde=fghij", Boolean.TRUE, "/test/;abcde=fghij", "/test", "/index.html", null, null, - MappingMatch.EXTENSION, "*.html", "index", "target", + ApplicationMappingMatch.EXTENSION, "*.html", "index", "target", "/test/start", "/test", "/start", null, null, - MappingMatch.EXACT, "/start", "start", "rd", + ApplicationMappingMatch.EXACT, "/start", "start", "rd", "OK"}, }); } @@ -365,7 +364,7 @@ public class TestApplicationContextGetRequestDispatcherB extends TomcatBaseTest private final String expectedServletPath; private final String expectedPathInfo; private final String expectedQueryString; - private final MappingMatch expectedMappingMatch; + private final ApplicationMappingMatch expectedMappingMatch; private final String expectedMappingPattern; private final String expectedMappingMatchValue; private final String expectedMappingServletName; @@ -374,7 +373,7 @@ public class TestApplicationContextGetRequestDispatcherB extends TomcatBaseTest private final String expectedDispatcherServletPath; private final String expectedDispatcherPathInfo; private final String expectedDispatcherQueryString; - private final MappingMatch expectedDispatcherMappingMatch; + private final ApplicationMappingMatch expectedDispatcherMappingMatch; private final String expectedDispatcherMappingPattern; private final String expectedDispatcherMappingMatchValue; private final String expectedDispatcherMappingServletName; @@ -385,12 +384,12 @@ public class TestApplicationContextGetRequestDispatcherB extends TomcatBaseTest DispatcherType dispatcherType, String targetMapping, String targetUri, boolean useEncodedDispatchPaths, String expectedRequestURI, String expectedContextPath, String expectedServletPath, - String expectedPathInfo, String expectedQueryString, MappingMatch expectedMappingMatch, + String expectedPathInfo, String expectedQueryString, ApplicationMappingMatch expectedMappingMatch, String expectedMappingPattern, String expectedMappingMatchValue, String expectedMappingServletName, String expectedDispatcherRequestURI, String expectedDispatcherContextPath, String expectedDispatcherServletPath, String expectedDispatcherPathInfo, - String expectedDispatcherQueryString, MappingMatch expectedDispatcherMappingMatch, + String expectedDispatcherQueryString, ApplicationMappingMatch expectedDispatcherMappingMatch, String expectedDispatcherMappingPattern, String expectedDispatcherMappingMatchValue, String expectedDispatcherMappingServletName, String expectedBody) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org