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:="(&(osgi.contract=JavaServlet)(version=4.0))",
+
osgi.contract;filter:="(&(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:="(&(osgi.contract=JavaServlet)(version=4.0))"
+
osgi.contract;filter:="(&(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>