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

cziegeler pushed a commit to branch http-4.x
in repository https://gitbox.apache.org/repos/asf/felix-dev.git


The following commit(s) were added to refs/heads/http-4.x by this push:
     new fb073764f9 FELIX-6599 : javax.servlet incompatibility between Felix 
HTTP Jetty Light 4.2.8 and Jetty 9.4.x
fb073764f9 is described below

commit fb073764f93d97428002182418024200be0544e9
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Thu Mar 9 09:07:13 2023 +0100

    FELIX-6599 : javax.servlet incompatibility between Felix HTTP Jetty Light 
4.2.8 and Jetty 9.4.x
---
 .../http/base/internal/dispatch/Dispatcher.java    |  2 +-
 .../internal/dispatch/HttpServletMappingImpl.java  | 62 ++++++++++++++++++++++
 .../http/base/internal/dispatch/RequestInfo.java   | 23 ++++----
 .../internal/dispatch/ServletRequestWrapper.java   |  2 +-
 .../internal/dispatch/ServletResponseWrapper.java  | 23 +++++---
 .../{PathResolution.java => MappingType.java}      | 26 +++------
 .../base/internal/registry/PathResolution.java     |  4 +-
 .../internal/registry/PathResolverFactory.java     | 20 ++++---
 .../base/internal/service/ServletContextImpl.java  |  6 +--
 .../whiteboard/SharedServletContextImpl.java       |  6 +--
 .../internal/registry/PathResolverFactoryTest.java | 28 +++++-----
 http/bridge/pom.xml                                |  5 +-
 http/itest/pom.xml                                 |  2 +-
 http/jetty/pom.xml                                 | 11 ++--
 14 files changed, 134 insertions(+), 86 deletions(-)

diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/Dispatcher.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/Dispatcher.java
index bcf5d76f67..d0356776aa 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/Dispatcher.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/Dispatcher.java
@@ -135,7 +135,7 @@ public final class Dispatcher
 
                        final ExtServletContext servletContext = 
pr.handler.getContext();
                        final RequestInfo requestInfo = new 
RequestInfo(pr.servletPath, pr.pathInfo, null, req.getRequestURI(),
-                               pr.handler.getName(), pr.matchedPattern, 
pr.matchValue, pr.match, false);
+                               pr.handler.getName(), pr.matchedPattern, 
pr.matchValue, pr.mappingType, false);
                        final HttpServletRequest wrappedRequest = new 
ServletRequestWrapper(req, servletContext, requestInfo, null,
                                pr.handler.getServletInfo().isAsyncSupported(),
                                pr.handler.getMultipartConfig(),
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/HttpServletMappingImpl.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/HttpServletMappingImpl.java
new file mode 100644
index 0000000000..ad1d1faeac
--- /dev/null
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/HttpServletMappingImpl.java
@@ -0,0 +1,62 @@
+/*
+ * 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.felix.http.base.internal.dispatch;
+
+import javax.servlet.http.HttpServletMapping;
+import javax.servlet.http.MappingMatch;
+
+public class HttpServletMappingImpl implements HttpServletMapping {
+
+    private final RequestInfo info;
+
+    public HttpServletMappingImpl(final RequestInfo info) {
+        this.info = info;
+    }
+
+    @Override
+    public MappingMatch getMappingMatch() {
+        switch (this.info.getMappingType()) {
+            case CONTEXT_ROOT:
+                return MappingMatch.CONTEXT_ROOT;
+            case DEFAULT:
+                return MappingMatch.DEFAULT;
+            case EXACT:
+                return MappingMatch.EXACT;
+            case EXTENSION:
+                return MappingMatch.EXTENSION;
+            case PATH:
+                return MappingMatch.PATH;
+            default:
+                return MappingMatch.DEFAULT;
+        }
+    }
+
+    @Override
+    public String getMatchValue() {
+        return this.info.getMatchValue();
+    }
+
+    @Override
+    public String getPattern() {
+        return this.info.getPattern();
+    }
+
+    @Override
+    public String getServletName() {
+        return this.info.getServletName();
+    }
+}
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/RequestInfo.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/RequestInfo.java
index ce524537e9..6b5ce9fdd6 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/RequestInfo.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/RequestInfo.java
@@ -16,13 +16,12 @@
  */
 package org.apache.felix.http.base.internal.dispatch;
 
-import javax.servlet.http.HttpServletMapping;
-import javax.servlet.http.MappingMatch;
+import org.apache.felix.http.base.internal.registry.MappingType;
 
 /**
  * Information about the request
  */
-public final class RequestInfo implements HttpServletMapping
+public final class RequestInfo
 {
     final String servletPath;
     final String pathInfo;
@@ -31,7 +30,7 @@ public final class RequestInfo implements HttpServletMapping
     private final String matchServletName;
     private final String matchPattern;
     private final String matchValue;
-    private final MappingMatch match;
+    private final MappingType mappingType;
     final boolean nameMatch;
 
     /**
@@ -43,7 +42,7 @@ public final class RequestInfo implements HttpServletMapping
      * @param matchServletName The servlet name
      * @param matchPattern The servlet pattern
      * @param matchValue The value matching
-     * @param match The match type
+     * @param mappingType The mapping type
      * @param nameMatch Is named dispatcher
      */
     public RequestInfo(final String servletPath,
@@ -53,7 +52,7 @@ public final class RequestInfo implements HttpServletMapping
             final String matchServletName,
             final String matchPattern,
             final String matchValue,
-            final MappingMatch match,
+            final MappingType mappingType,
             final boolean nameMatch)
     {
         this.servletPath = servletPath;
@@ -63,30 +62,26 @@ public final class RequestInfo implements HttpServletMapping
         this.matchServletName = matchServletName;
         this.matchPattern = matchPattern;
         this.matchValue = matchValue;
-        this.match = match;
+        this.mappingType = mappingType;
         this.nameMatch = nameMatch;
     }
 
-    @Override
     public String getMatchValue() {
         return this.matchValue;
     }
 
-    @Override
     public String getPattern() {
         return this.matchPattern;
     }
 
-    @Override
     public String getServletName() {
         return this.matchServletName;
     }
 
-    @Override
-    public MappingMatch getMappingMatch() {
-        return this.match;
+    public MappingType getMappingType() {
+        return this.mappingType;
     }
-
+ 
     @Override
     public String toString()
     {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/ServletRequestWrapper.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/ServletRequestWrapper.java
index 18158bb6e6..551ad880e7 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/ServletRequestWrapper.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/ServletRequestWrapper.java
@@ -560,6 +560,6 @@ final class ServletRequestWrapper extends 
HttpServletRequestWrapper
 
     @Override
     public HttpServletMapping getHttpServletMapping() {
-        return this.requestInfo;
+        return new HttpServletMappingImpl(this.requestInfo);
     }
 }
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/ServletResponseWrapper.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/ServletResponseWrapper.java
index e0a26158cc..0f93898026 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/ServletResponseWrapper.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/ServletResponseWrapper.java
@@ -29,6 +29,7 @@ import javax.servlet.http.HttpServletResponseWrapper;
 
 import org.apache.felix.http.base.internal.handler.FilterHandler;
 import org.apache.felix.http.base.internal.handler.ServletHandler;
+import org.apache.felix.http.base.internal.registry.MappingType;
 import org.apache.felix.http.base.internal.registry.PerContextHandlerRegistry;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -101,12 +102,22 @@ final class ServletResponseWrapper extends 
HttpServletResponseWrapper
                         final String pathInfo = request.getRequestURI();
                         final String queryString = null; // XXX
 
-                        final RequestInfo requestInfo = new 
RequestInfo(servletPath, pathInfo, queryString, pathInfo,
-                                
request.getHttpServletMapping().getServletName(),
-                                request.getHttpServletMapping().getPattern(),
-                                
request.getHttpServletMapping().getMatchValue(),
-                                
request.getHttpServletMapping().getMappingMatch(),
-                                false);
+                        final RequestInfo requestInfo;
+                        if 
(request.getServletContext().getEffectiveMajorVersion() > 3) {
+                            requestInfo = new RequestInfo(servletPath, 
pathInfo, queryString, pathInfo,
+                            request.getHttpServletMapping().getServletName(),
+                            request.getHttpServletMapping().getPattern(),
+                            request.getHttpServletMapping().getMatchValue(),
+                            
MappingType.values()[request.getHttpServletMapping().getMappingMatch().ordinal()],
+                            false);
+                        } else {
+                            requestInfo = new RequestInfo(servletPath, 
pathInfo, queryString, pathInfo,
+                            null,
+                            null,
+                            null,
+                            null,
+                            false);
+                        }
 
                         final FilterHandler[] filterHandlers = 
errorRegistry.getFilterHandlers(errorResolution, DispatcherType.ERROR, 
request.getRequestURI());
 
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PathResolution.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/MappingType.java
similarity index 69%
copy from 
http/base/src/main/java/org/apache/felix/http/base/internal/registry/PathResolution.java
copy to 
http/base/src/main/java/org/apache/felix/http/base/internal/registry/MappingType.java
index 3b210cd9d4..84c861d36c 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PathResolution.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/MappingType.java
@@ -16,24 +16,10 @@
  */
 package org.apache.felix.http.base.internal.registry;
 
-import javax.servlet.http.MappingMatch;
-
-/**
- * Resolution of a servlet based on the path
- */
-public class PathResolution extends ServletResolution {
-
-    public String servletPath;
-
-    public String pathInfo;
-
-    public String requestURI;
-
-    public String[] patterns;
-
-    public String matchedPattern;
-
-    public MappingMatch match;
-
-    public String matchValue;
+public enum MappingType {
+    CONTEXT_ROOT,
+    DEFAULT,
+    EXACT,
+    EXTENSION,
+    PATH
 }
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PathResolution.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PathResolution.java
index 3b210cd9d4..346dc365f5 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PathResolution.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PathResolution.java
@@ -16,8 +16,6 @@
  */
 package org.apache.felix.http.base.internal.registry;
 
-import javax.servlet.http.MappingMatch;
-
 /**
  * Resolution of a servlet based on the path
  */
@@ -33,7 +31,7 @@ public class PathResolution extends ServletResolution {
 
     public String matchedPattern;
 
-    public MappingMatch match;
+    public MappingType mappingType;
 
     public String matchValue;
 }
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PathResolverFactory.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PathResolverFactory.java
index d870f083fa..8a4d63b41a 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PathResolverFactory.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PathResolverFactory.java
@@ -18,8 +18,6 @@ package org.apache.felix.http.base.internal.registry;
 
 import java.util.regex.Pattern;
 
-import javax.servlet.http.MappingMatch;
-
 import org.apache.felix.http.base.internal.handler.ServletHandler;
 import org.apache.felix.http.base.internal.service.HttpServiceFactory;
 import org.jetbrains.annotations.NotNull;
@@ -158,7 +156,7 @@ public abstract class PathResolverFactory {
                 pr.handler = this.getServletHandler();
 
                 pr.matchedPattern = this.getPattern();
-                pr.match = MappingMatch.CONTEXT_ROOT;
+                pr.mappingType = MappingType.CONTEXT_ROOT;
                 pr.matchValue = this.getPattern();
 
                 return pr;
@@ -183,7 +181,7 @@ public abstract class PathResolverFactory {
             pr.handler = this.getServletHandler();
 
             pr.matchedPattern = this.getPattern();
-            pr.match = MappingMatch.DEFAULT;
+            pr.mappingType = MappingType.DEFAULT;
             pr.matchValue = "";
 
             return pr;
@@ -214,7 +212,7 @@ public abstract class PathResolverFactory {
                 pr.handler = this.getServletHandler();
 
                 pr.matchedPattern = this.getPattern();
-                pr.match = MappingMatch.EXACT;
+                pr.mappingType = MappingType.EXACT;
                 final int pos = uri.lastIndexOf("/");
                 pr.matchValue = uri.substring(pos + 1, uri.length());
 
@@ -229,7 +227,7 @@ public abstract class PathResolverFactory {
                 pr.handler = this.getServletHandler();
 
                 pr.matchedPattern = this.getPattern();
-                pr.match = MappingMatch.PATH;
+                pr.mappingType = MappingType.PATH;
                 final int pos = uri.lastIndexOf("/");
                 pr.matchValue = uri.substring(pos + 1, uri.length());
 
@@ -266,7 +264,7 @@ public abstract class PathResolverFactory {
                 pr.handler = this.getServletHandler();
 
                 pr.matchedPattern = this.getPattern();
-                pr.match = MappingMatch.EXACT;
+                pr.mappingType = MappingType.EXACT;
                 final int pos = uri.lastIndexOf("/");
                 pr.matchValue = uri.substring(pos + 1, uri.length());
 
@@ -306,7 +304,7 @@ public abstract class PathResolverFactory {
                 pr.handler = this.getServletHandler();
 
                 pr.matchedPattern = this.getPattern();
-                pr.match = MappingMatch.PATH;
+                pr.mappingType = MappingType.PATH;
                 pr.matchValue = uri.length() > 0 ? uri.substring(1) : "";
 
                 return pr;
@@ -320,7 +318,7 @@ public abstract class PathResolverFactory {
                 pr.handler = this.getServletHandler();
 
                 pr.matchedPattern = this.getPattern();
-                pr.match = MappingMatch.PATH;
+                pr.mappingType = MappingType.PATH;
                 pr.matchValue = uri.substring(this.prefix.length(), 
uri.length());
 
                 return pr;
@@ -356,7 +354,7 @@ public abstract class PathResolverFactory {
                 pr.handler = this.getServletHandler();
 
                 pr.matchedPattern = this.getPattern();
-                pr.match = MappingMatch.EXTENSION;
+                pr.mappingType = MappingType.EXTENSION;
                 final int pos = uri.lastIndexOf("/");
                 pr.matchValue = uri.substring(pos + 1, uri.length() - 
this.extension.length());
 
@@ -393,7 +391,7 @@ public abstract class PathResolverFactory {
 
                 // regex is not supported by servlet spec, we use PATH matching
                 pr.matchedPattern = this.getPattern();
-                pr.match = MappingMatch.PATH;
+                pr.mappingType = MappingType.PATH;
                 pr.matchValue = uri;
 
                 return pr;
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/service/ServletContextImpl.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/service/ServletContextImpl.java
index b62da504aa..e17768debb 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/service/ServletContextImpl.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/service/ServletContextImpl.java
@@ -48,7 +48,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSessionAttributeListener;
 import javax.servlet.http.HttpSessionListener;
-import javax.servlet.http.MappingMatch;
 
 import org.apache.felix.http.base.internal.HttpConfig;
 import org.apache.felix.http.base.internal.context.ExtServletContext;
@@ -56,6 +55,7 @@ import 
org.apache.felix.http.base.internal.dispatch.RequestDispatcherImpl;
 import org.apache.felix.http.base.internal.dispatch.RequestInfo;
 import org.apache.felix.http.base.internal.handler.ServletHandler;
 import org.apache.felix.http.base.internal.logger.SystemLogger;
+import org.apache.felix.http.base.internal.registry.MappingType;
 import org.apache.felix.http.base.internal.registry.PathResolution;
 import org.apache.felix.http.base.internal.registry.PerContextHandlerRegistry;
 import org.apache.felix.http.base.internal.registry.ServletResolution;
@@ -511,7 +511,7 @@ public class ServletContextImpl implements ExtServletContext
             resolution.handlerRegistry = this.handlerRegistry;
             // TODO - what is the path of a named servlet?
             final RequestInfo requestInfo = new RequestInfo("", null, null, 
null, name,
-                    "", "", MappingMatch.EXACT, true);
+                    "", "", MappingType.EXACT, true);
             dispatcher = new RequestDispatcherImpl(resolution, requestInfo);
         }
         else
@@ -552,7 +552,7 @@ public class ServletContextImpl implements ExtServletContext
                     UriUtils.concat(this.getContextPath(), encodedRequestURI),
                     pathResolution.handler.getName(),
                     pathResolution.matchedPattern,
-                    pathResolution.matchValue, pathResolution.match, false);
+                    pathResolution.matchValue, pathResolution.mappingType, 
false);
             dispatcher = new RequestDispatcherImpl(pathResolution, 
requestInfo);
         }
         else
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/SharedServletContextImpl.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/SharedServletContextImpl.java
index 3ec5ce4fb0..b49502c27e 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/SharedServletContextImpl.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/SharedServletContextImpl.java
@@ -42,12 +42,12 @@ import javax.servlet.ServletRegistration.Dynamic;
 import javax.servlet.SessionCookieConfig;
 import javax.servlet.SessionTrackingMode;
 import javax.servlet.descriptor.JspConfigDescriptor;
-import javax.servlet.http.MappingMatch;
 
 import org.apache.felix.http.base.internal.dispatch.RequestDispatcherImpl;
 import org.apache.felix.http.base.internal.dispatch.RequestInfo;
 import org.apache.felix.http.base.internal.handler.ServletHandler;
 import org.apache.felix.http.base.internal.logger.SystemLogger;
+import org.apache.felix.http.base.internal.registry.MappingType;
 import org.apache.felix.http.base.internal.registry.PathResolution;
 import org.apache.felix.http.base.internal.registry.PerContextHandlerRegistry;
 import org.apache.felix.http.base.internal.registry.ServletResolution;
@@ -321,7 +321,7 @@ public class SharedServletContextImpl implements 
ServletContext
                resolution.handler = servletHandler;
             resolution.handlerRegistry = this.registry;
             // TODO - what is the path of a named servlet?
-            final RequestInfo requestInfo = new RequestInfo("", null, null, 
null, name, "", "", MappingMatch.EXACT, true);
+            final RequestInfo requestInfo = new RequestInfo("", null, null, 
null, name, "", "", MappingType.EXACT, true);
             dispatcher = new RequestDispatcherImpl(resolution, requestInfo);
         }
         else
@@ -359,7 +359,7 @@ public class SharedServletContextImpl implements 
ServletContext
             final RequestInfo requestInfo = new 
RequestInfo(pathResolution.servletPath, pathResolution.pathInfo, query,
                     UriUtils.concat(this.contextPath, encodedRequestURI),
                     pathResolution.handler.getName(), 
pathResolution.matchedPattern,
-                    pathResolution.matchValue, pathResolution.match,
+                    pathResolution.matchValue, pathResolution.mappingType,
                     false);
             dispatcher = new RequestDispatcherImpl(pathResolution, 
requestInfo);
         }
diff --git 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/PathResolverFactoryTest.java
 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/PathResolverFactoryTest.java
index 3eb447f6f0..94061ebd41 100644
--- 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/PathResolverFactoryTest.java
+++ 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/PathResolverFactoryTest.java
@@ -20,8 +20,6 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-import javax.servlet.http.MappingMatch;
-
 import org.junit.Test;
 
 public class PathResolverFactoryTest {
@@ -30,7 +28,7 @@ public class PathResolverFactoryTest {
             final String path,
             final String expectedServletPath,
             final String expectedPathInfo,
-            final MappingMatch match,
+            final MappingType match,
             final String matchPattern,
             final String matchValue)
     {
@@ -46,7 +44,7 @@ public class PathResolverFactoryTest {
         {
             assertEquals(expectedPathInfo, pr.pathInfo);
         }
-        assertEquals(match, pr.match);
+        assertEquals(match, pr.mappingType);
         assertEquals(matchPattern, pr.matchedPattern);
         assertEquals(matchValue, pr.matchValue);
     }
@@ -56,8 +54,8 @@ public class PathResolverFactoryTest {
         final PathResolver pr = PathResolverFactory.createPatternMatcher(null, 
"");
         assertNotNull(pr);
 
-        assertResult(pr, "/", "", "/", MappingMatch.CONTEXT_ROOT, "", "");
-        assertResult(pr, "", "", "/", MappingMatch.CONTEXT_ROOT, "", "");
+        assertResult(pr, "/", "", "/", MappingType.CONTEXT_ROOT, "", "");
+        assertResult(pr, "", "", "/", MappingType.CONTEXT_ROOT, "", "");
 
         assertNull(pr.resolve("/foo"));
     }
@@ -67,8 +65,8 @@ public class PathResolverFactoryTest {
         final PathResolver pr = PathResolverFactory.createPatternMatcher(null, 
"/");
         assertNotNull(pr);
 
-        assertResult(pr, "/foo/bar", "/foo/bar", null, MappingMatch.DEFAULT, 
"/", "");
-        assertResult(pr, "/foo", "/foo", null, MappingMatch.DEFAULT, "/", "");
+        assertResult(pr, "/foo/bar", "/foo/bar", null, MappingType.DEFAULT, 
"/", "");
+        assertResult(pr, "/foo", "/foo", null, MappingType.DEFAULT, "/", "");
     }
 
     @Test public void testPathMatcherRoot()
@@ -76,12 +74,12 @@ public class PathResolverFactoryTest {
         final PathResolver pr = PathResolverFactory.createPatternMatcher(null, 
"/*");
         assertNotNull(pr);
 
-        assertResult(pr, "/foo", "", "/foo", MappingMatch.PATH, "/*", "foo");
-        assertResult(pr, "/foo/bar", "", "/foo/bar", MappingMatch.PATH, "/*", 
"foo/bar");
+        assertResult(pr, "/foo", "", "/foo", MappingType.PATH, "/*", "foo");
+        assertResult(pr, "/foo/bar", "", "/foo/bar", MappingType.PATH, "/*", 
"foo/bar");
 
-        assertResult(pr, "/", "", "/", MappingMatch.PATH, "/*", "");
+        assertResult(pr, "/", "", "/", MappingType.PATH, "/*", "");
 
-        assertResult(pr, "", "", null, MappingMatch.PATH, "/*", "");
+        assertResult(pr, "", "", null, MappingType.PATH, "/*", "");
     }
 
     @Test public void testPathMatcherSub()
@@ -89,7 +87,7 @@ public class PathResolverFactoryTest {
         final PathResolver pr = PathResolverFactory.createPatternMatcher(null, 
"/path/*");
         assertNotNull(pr);
 
-        assertResult(pr, "/path/foo", "/path", "/foo", MappingMatch.PATH, 
"/path/*", "foo");
+        assertResult(pr, "/path/foo", "/path", "/foo", MappingType.PATH, 
"/path/*", "foo");
     }
 
     @Test public void testExactMatcher()
@@ -97,7 +95,7 @@ public class PathResolverFactoryTest {
         final PathResolver pr = PathResolverFactory.createPatternMatcher(null, 
"/MyServlet");
         assertNotNull(pr);
 
-        assertResult(pr, "/MyServlet", "/MyServlet", null, MappingMatch.EXACT, 
"/MyServlet", "MyServlet");
+        assertResult(pr, "/MyServlet", "/MyServlet", null, MappingType.EXACT, 
"/MyServlet", "MyServlet");
     }
 
     @Test public void testExtensionMatcher()
@@ -105,6 +103,6 @@ public class PathResolverFactoryTest {
         final PathResolver pr = PathResolverFactory.createPatternMatcher(null, 
"*.extension");
         assertNotNull(pr);
 
-        assertResult(pr, "/foo.extension", "/foo.extension", null, 
MappingMatch.EXTENSION, "*.extension", "foo");
+        assertResult(pr, "/foo.extension", "/foo.extension", null, 
MappingType.EXTENSION, "*.extension", "foo");
     }
 }
diff --git a/http/bridge/pom.xml b/http/bridge/pom.xml
index f4e5359bb0..3384889e63 100644
--- a/http/bridge/pom.xml
+++ b/http/bridge/pom.xml
@@ -48,6 +48,7 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
+                <version>5.1.8</version>
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
@@ -111,7 +112,7 @@
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
-            <version>4.0.1</version>
+            <version>3.1.0</version>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
@@ -142,7 +143,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.http.base</artifactId>
-            <version>4.2.4</version>
+            <version>4.2.6</version>
         </dependency>
     </dependencies>
 
diff --git a/http/itest/pom.xml b/http/itest/pom.xml
index f8c4ef26d5..00c960aa11 100644
--- a/http/itest/pom.xml
+++ b/http/itest/pom.xml
@@ -35,7 +35,7 @@
         <pax.exam.version>4.13.1</pax.exam.version>
         <pax.url.aether.version>2.6.2</pax.url.aether.version>
         <http.servlet.api.version>2.0.0</http.servlet.api.version>
-        <http.jetty.version>4.2.9-SNAPSHOT</http.jetty.version>
+        <http.jetty.version>4.2.11-SNAPSHOT</http.jetty.version>
     </properties>
 
     <build>
diff --git a/http/jetty/pom.xml b/http/jetty/pom.xml
index 51322555ea..ffff19fa00 100644
--- a/http/jetty/pom.xml
+++ b/http/jetty/pom.xml
@@ -37,12 +37,11 @@
         
<connection>scm:git:https://github.com/apache/felix-dev.git</connection>
         
<developerConnection>scm:git:https://github.com/apache/felix-dev.git</developerConnection>
         <url>https://gitbox.apache.org/repos/asf?p=felix-dev.git</url>
-      <tag>org.apache.felix.http.jetty-4.2.8</tag>
-  </scm>
+    </scm>
     
     <properties>
         <felix.java.version>8</felix.java.version>
-       <jetty.version>9.4.50.v20221201</jetty.version>
+        <jetty.version>9.4.50.v20221201</jetty.version>
     </properties>
 
     <build>
@@ -209,7 +208,7 @@
                             
osgi.serviceloader;osgi.serviceloader="org.eclipse.jetty.http.HttpFieldPreEncoder"
                         </Provide-Capability>
                         <Require-Capability>
-                            
osgi.contract;filter:="(&amp;(osgi.contract=JavaServlet)(version=4.0))",
+                            
osgi.contract;filter:="(&amp;(osgi.contract=JavaServlet)(version=3.1))",
                             
osgi.extender;filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional,
                             
osgi.extender;filter:="(osgi.extender=osgi.serviceloader.processor)";resolution:=optional,
                             
osgi.serviceloader;filter:="(osgi.serviceloader=org.eclipse.jetty.http.HttpFieldPreEncoder)";resolution:=optional;cardinality:=multiple,
@@ -276,7 +275,7 @@
                                 </Provide-Capability>
                                 <!-- We need to override this from the base 
configuration to exclude the ServiceLoader capabilities -->
                                 <Require-Capability>
-                                    
osgi.contract;filter:="(&amp;(osgi.contract=JavaServlet)(version=4.0))"
+                                    
osgi.contract;filter:="(&amp;(osgi.contract=JavaServlet)(version=3.1))"
                                 </Require-Capability>
                                 <!-- We need to override this from the base 
configuration to exclude the ServiceLoader resources -->
                                 <Include-Resource>
@@ -401,7 +400,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.http.base</artifactId>
-            <version>4.2.4</version>
+            <version>4.2.6</version>
         </dependency>
         <dependency>
             <groupId>commons-fileupload</groupId>

Reply via email to