Upgrade to Jetty 12.1.0

Closes gh-46906
This commit is contained in:
Stéphane Nicoll 2025-08-19 11:26:52 +02:00
parent 85fa6bb4ba
commit 4a8dc3efd2
26 changed files with 68 additions and 69 deletions

View File

@ -37,8 +37,8 @@ dependencies {
testRuntimeOnly("ch.qos.logback:logback-classic")
testRuntimeOnly("io.undertow:undertow-servlet")
testRuntimeOnly("org.eclipse.jetty.ee10:jetty-ee10-servlets")
testRuntimeOnly("org.eclipse.jetty.ee10:jetty-ee10-webapp")
testRuntimeOnly("org.eclipse.jetty.ee11:jetty-ee11-servlets")
testRuntimeOnly("org.eclipse.jetty.ee11:jetty-ee11-webapp")
}
test {

View File

@ -94,7 +94,7 @@ dependencies {
testImplementation("org.apache.tomcat.embed:tomcat-embed-websocket")
testImplementation("org.apache.tomcat.embed:tomcat-embed-core")
testImplementation("org.apache.tomcat.embed:tomcat-embed-jasper")
testImplementation("org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-client")
testImplementation("org.eclipse.jetty.ee11.websocket:jetty-ee11-websocket-jakarta-client")
testImplementation("org.hsqldb:hsqldb")
testImplementation("org.postgresql:postgresql")
testImplementation("org.springframework:spring-webmvc")

View File

@ -26,16 +26,16 @@ description = "Spring Boot Jetty"
dependencies {
api(project(":module:spring-boot-web-server"))
api("org.eclipse.jetty.ee10:jetty-ee10-servlets")
api("org.eclipse.jetty.ee10:jetty-ee10-webapp")
api("org.eclipse.jetty.ee11:jetty-ee11-servlets")
api("org.eclipse.jetty.ee11:jetty-ee11-webapp")
optional(project(":core:spring-boot-autoconfigure"))
optional(project(":module:spring-boot-actuator-autoconfigure"))
optional(project(":module:spring-boot-metrics"))
optional("org.apache.tomcat.embed:tomcat-embed-jasper")
optional("org.eclipse.jetty:jetty-alpn-conscrypt-server")
optional("org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-server")
optional("org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jetty-server")
optional("org.eclipse.jetty.ee11.websocket:jetty-ee11-websocket-jakarta-server")
optional("org.eclipse.jetty.ee11.websocket:jetty-ee11-websocket-jetty-server")
optional("org.eclipse.jetty.http2:jetty-http2-server")
optional("org.springframework:spring-webflux")

View File

@ -24,8 +24,8 @@ import java.util.stream.Collectors;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
import org.eclipse.jetty.ee10.servlet.ServletHolder;
import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
import org.eclipse.jetty.ee11.servlet.ServletHolder;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.NetworkConnector;

View File

@ -25,8 +25,8 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.Executor;
import org.eclipse.jetty.ee10.webapp.Configuration;
import org.eclipse.jetty.ee10.webapp.WebAppContext;
import org.eclipse.jetty.ee11.webapp.Configuration;
import org.eclipse.jetty.ee11.webapp.WebAppContext;
import org.eclipse.jetty.http2.server.HTTP2CServerConnectionFactory;
import org.eclipse.jetty.io.ByteBufferPool;
import org.eclipse.jetty.server.AbstractConnector;

View File

@ -23,7 +23,7 @@ import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.stream.Stream;
import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
import org.eclipse.jetty.server.AbstractConnector;
import org.eclipse.jetty.server.ConnectionFactory;
import org.eclipse.jetty.server.Connector;
@ -93,7 +93,7 @@ public class JettyWebServerFactoryCustomizer
map.from(this.jettyProperties::getMaxHttpResponseHeaderSize)
.asInt(DataSize::toBytes)
.when(this::isPositive)
.to(customizeHttpConfigurations(factory, HttpConfiguration::setResponseHeaderSize));
.to(customizeHttpConfigurations(factory, HttpConfiguration::setMaxResponseHeaderSize));
map.from(this.jettyProperties::getMaxHttpFormPostSize)
.asInt(DataSize::toBytes)
.when(this::isPositive)

View File

@ -16,8 +16,8 @@
package org.springframework.boot.jetty.autoconfigure.reactive;
import org.eclipse.jetty.ee10.servlet.ServletHolder;
import org.eclipse.jetty.ee10.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer;
import org.eclipse.jetty.ee11.servlet.ServletHolder;
import org.eclipse.jetty.ee11.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer;
import org.eclipse.jetty.server.Server;
import org.springframework.beans.factory.ObjectProvider;

View File

@ -17,10 +17,10 @@
package org.springframework.boot.jetty.autoconfigure.reactive;
import jakarta.servlet.ServletContext;
import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
import org.eclipse.jetty.ee10.websocket.jakarta.server.JakartaWebSocketServerContainer;
import org.eclipse.jetty.ee10.websocket.server.JettyWebSocketServerContainer;
import org.eclipse.jetty.ee10.websocket.servlet.WebSocketUpgradeFilter;
import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
import org.eclipse.jetty.ee11.websocket.jakarta.server.JakartaWebSocketServerContainer;
import org.eclipse.jetty.ee11.websocket.server.JettyWebSocketServerContainer;
import org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.websocket.core.server.WebSocketMappings;
import org.eclipse.jetty.websocket.core.server.WebSocketServerComponents;

View File

@ -21,9 +21,9 @@ import java.util.EnumSet;
import jakarta.servlet.DispatcherType;
import jakarta.servlet.FilterRegistration.Dynamic;
import jakarta.servlet.ServletRequest;
import org.eclipse.jetty.ee10.webapp.WebAppContext;
import org.eclipse.jetty.ee10.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer;
import org.eclipse.jetty.ee10.websocket.servlet.WebSocketUpgradeFilter;
import org.eclipse.jetty.ee11.webapp.WebAppContext;
import org.eclipse.jetty.ee11.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer;
import org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.Loader;

View File

@ -16,11 +16,11 @@
package org.springframework.boot.jetty.autoconfigure.servlet;
import org.eclipse.jetty.ee10.webapp.AbstractConfiguration;
import org.eclipse.jetty.ee10.webapp.WebAppContext;
import org.eclipse.jetty.ee10.websocket.jakarta.server.JakartaWebSocketServerContainer;
import org.eclipse.jetty.ee10.websocket.server.JettyWebSocketServerContainer;
import org.eclipse.jetty.ee10.websocket.servlet.WebSocketUpgradeFilter;
import org.eclipse.jetty.ee11.webapp.AbstractConfiguration;
import org.eclipse.jetty.ee11.webapp.WebAppContext;
import org.eclipse.jetty.ee11.websocket.jakarta.server.JakartaWebSocketServerContainer;
import org.eclipse.jetty.ee11.websocket.server.JettyWebSocketServerContainer;
import org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter;
import org.eclipse.jetty.websocket.core.server.WebSocketMappings;
import org.eclipse.jetty.websocket.core.server.WebSocketServerComponents;

View File

@ -20,8 +20,8 @@ import java.net.InetSocketAddress;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
import org.eclipse.jetty.ee10.servlet.ServletHolder;
import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
import org.eclipse.jetty.ee11.servlet.ServletHolder;
import org.eclipse.jetty.server.NetworkConnectionLimit;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.StatisticsHandler;

View File

@ -24,7 +24,7 @@ import java.net.URLStreamHandler;
import java.net.URLStreamHandlerFactory;
import jakarta.servlet.ServletContainerInitializer;
import org.eclipse.jetty.ee10.webapp.WebAppContext;
import org.eclipse.jetty.ee11.webapp.WebAppContext;
import org.eclipse.jetty.util.component.AbstractLifeCycle;
import org.jspecify.annotations.Nullable;

View File

@ -16,7 +16,7 @@
package org.springframework.boot.jetty.servlet;
import org.eclipse.jetty.ee10.servlet.ErrorPageErrorHandler;
import org.eclipse.jetty.ee11.servlet.ErrorPageErrorHandler;
import org.eclipse.jetty.http.HttpMethod;
/**

View File

@ -16,8 +16,8 @@
package org.springframework.boot.jetty.servlet;
import org.eclipse.jetty.ee10.servlet.ServletHandler;
import org.eclipse.jetty.ee10.webapp.WebAppContext;
import org.eclipse.jetty.ee11.servlet.ServletHandler;
import org.eclipse.jetty.ee11.webapp.WebAppContext;
import org.eclipse.jetty.util.ClassMatcher;
import org.springframework.boot.jetty.JettyWebServer;

View File

@ -31,18 +31,18 @@ import java.util.UUID;
import jakarta.servlet.http.Cookie;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.jetty.ee10.servlet.ErrorHandler;
import org.eclipse.jetty.ee10.servlet.ErrorPageErrorHandler;
import org.eclipse.jetty.ee10.servlet.ListenerHolder;
import org.eclipse.jetty.ee10.servlet.ServletHandler;
import org.eclipse.jetty.ee10.servlet.ServletHolder;
import org.eclipse.jetty.ee10.servlet.ServletMapping;
import org.eclipse.jetty.ee10.servlet.SessionHandler;
import org.eclipse.jetty.ee10.servlet.Source;
import org.eclipse.jetty.ee10.webapp.AbstractConfiguration;
import org.eclipse.jetty.ee10.webapp.Configuration;
import org.eclipse.jetty.ee10.webapp.WebAppContext;
import org.eclipse.jetty.ee10.webapp.WebInfConfiguration;
import org.eclipse.jetty.ee11.servlet.ErrorHandler;
import org.eclipse.jetty.ee11.servlet.ErrorPageErrorHandler;
import org.eclipse.jetty.ee11.servlet.ListenerHolder;
import org.eclipse.jetty.ee11.servlet.ServletHandler;
import org.eclipse.jetty.ee11.servlet.ServletHolder;
import org.eclipse.jetty.ee11.servlet.ServletMapping;
import org.eclipse.jetty.ee11.servlet.SessionHandler;
import org.eclipse.jetty.ee11.servlet.Source;
import org.eclipse.jetty.ee11.webapp.AbstractConfiguration;
import org.eclipse.jetty.ee11.webapp.Configuration;
import org.eclipse.jetty.ee11.webapp.WebAppContext;
import org.eclipse.jetty.ee11.webapp.WebInfConfiguration;
import org.eclipse.jetty.http.CookieCompliance;
import org.eclipse.jetty.http.HttpCookie;
import org.eclipse.jetty.http.HttpField;
@ -50,7 +50,6 @@ import org.eclipse.jetty.http.HttpFields;
import org.eclipse.jetty.http.HttpFields.Mutable;
import org.eclipse.jetty.http.HttpHeader;
import org.eclipse.jetty.http.MimeTypes;
import org.eclipse.jetty.http.MimeTypes.Wrapper;
import org.eclipse.jetty.http.SetCookieParser;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
@ -336,7 +335,7 @@ public class JettyServletWebServerFactory extends JettyWebServerFactory
Assert.notNull(context, "'context' must not be null");
ServletHolder holder = new ServletHolder();
holder.setName("default");
holder.setClassName("org.eclipse.jetty.ee10.servlet.DefaultServlet");
holder.setClassName("org.eclipse.jetty.ee11.servlet.DefaultServlet");
holder.setInitParameter("dirAllowed", "false");
holder.setInitOrder(1);
context.getServletHandler().addServletWithMapping(holder, "/");
@ -406,8 +405,8 @@ public class JettyServletWebServerFactory extends JettyWebServerFactory
@Override
public void configure(WebAppContext context) throws Exception {
MimeTypes.Wrapper mimeTypes = (Wrapper) context.getMimeTypes();
mimeTypes.setWrapped(new MimeTypes(null));
MimeTypes.Mutable mimeTypes = context.getMimeTypes();
mimeTypes.clear();
for (MimeMappings.Mapping mapping : getSettings().getMimeMappings()) {
mimeTypes.addMimeMapping(mapping.getExtension(), mapping.getMimeType());
}

View File

@ -17,9 +17,9 @@
package org.springframework.boot.jetty.servlet;
import jakarta.servlet.ServletException;
import org.eclipse.jetty.ee10.webapp.AbstractConfiguration;
import org.eclipse.jetty.ee10.webapp.Configuration;
import org.eclipse.jetty.ee10.webapp.WebAppContext;
import org.eclipse.jetty.ee11.webapp.AbstractConfiguration;
import org.eclipse.jetty.ee11.webapp.Configuration;
import org.eclipse.jetty.ee11.webapp.WebAppContext;
import org.springframework.boot.web.server.servlet.ServletContextInitializers;
import org.springframework.boot.web.servlet.ServletContextInitializer;

View File

@ -21,7 +21,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.junit.jupiter.api.Test;

View File

@ -26,7 +26,7 @@ import java.util.concurrent.BlockingQueue;
import java.util.concurrent.SynchronousQueue;
import java.util.function.Function;
import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
import org.eclipse.jetty.server.AbstractConnector;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.CustomRequestLog;

View File

@ -17,7 +17,7 @@
package org.springframework.boot.jetty.autoconfigure.reactive;
import jakarta.websocket.server.ServerContainer;
import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.StatisticsHandler;
import org.junit.jupiter.api.Test;

View File

@ -19,7 +19,7 @@ package org.springframework.boot.jetty.autoconfigure.servlet;
import java.util.Map;
import jakarta.servlet.Filter;
import org.eclipse.jetty.ee10.websocket.servlet.WebSocketUpgradeFilter;
import org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter;
import org.eclipse.jetty.server.Server;
import org.junit.jupiter.api.Test;

View File

@ -42,11 +42,11 @@ import org.apache.hc.core5.http.HttpResponse;
import org.apache.jasper.servlet.JspServlet;
import org.assertj.core.api.InstanceOfAssertFactories;
import org.awaitility.Awaitility;
import org.eclipse.jetty.ee10.servlet.ErrorPageErrorHandler;
import org.eclipse.jetty.ee10.servlet.ServletHolder;
import org.eclipse.jetty.ee10.webapp.AbstractConfiguration;
import org.eclipse.jetty.ee10.webapp.Configuration;
import org.eclipse.jetty.ee10.webapp.WebAppContext;
import org.eclipse.jetty.ee11.servlet.ErrorPageErrorHandler;
import org.eclipse.jetty.ee11.servlet.ServletHolder;
import org.eclipse.jetty.ee11.webapp.AbstractConfiguration;
import org.eclipse.jetty.ee11.webapp.Configuration;
import org.eclipse.jetty.ee11.webapp.WebAppContext;
import org.eclipse.jetty.server.AbstractConnector;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;

View File

@ -60,7 +60,7 @@ dependencies {
testImplementation("io.micrometer:micrometer-registry-prometheus")
testImplementation("io.opentelemetry:opentelemetry-exporter-common")
testImplementation("io.prometheus:prometheus-metrics-exposition-formats")
testImplementation("org.eclipse.jetty.ee10:jetty-ee10-webapp")
testImplementation("org.eclipse.jetty.ee11:jetty-ee11-webapp")
testImplementation("org.eclipse.jetty.http2:jetty-http2-server")
testRuntimeOnly("ch.qos.logback:logback-classic")

View File

@ -1005,13 +1005,13 @@ bom {
]
}
}
library("Jetty", "12.0.25") {
library("Jetty", "12.1.0") {
prohibit {
contains ".alpha"
because "we don't want alpha dependencies"
}
group("org.eclipse.jetty.ee10") {
bom("jetty-ee10-bom")
group("org.eclipse.jetty.ee11") {
bom("jetty-ee11-bom")
}
group("org.eclipse.jetty") {
bom("jetty-bom")

View File

@ -33,7 +33,7 @@ dependencies {
exclude module: "spring-boot-starter-tomcat"
}
providedRuntime("org.eclipse.jetty.ee10:jetty-ee10-apache-jsp")
providedRuntime("org.eclipse.jetty.ee11:jetty-ee11-apache-jsp")
runtimeOnly("org.glassfish.web:jakarta.servlet.jsp.jstl")

View File

@ -1,4 +1,4 @@
application.message: Hello Spring Boot
server.servlet.jsp.class-name=org.eclipse.jetty.ee10.jsp.JettyJspServlet
server.servlet.jsp.class-name=org.eclipse.jetty.ee11.jsp.JettyJspServlet
spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp

View File

@ -29,11 +29,11 @@ dependencies {
api("jakarta.websocket:jakarta.websocket-api")
api("jakarta.websocket:jakarta.websocket-client-api")
api("org.apache.tomcat.embed:tomcat-embed-el")
api("org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-server") {
api("org.eclipse.jetty.ee11.websocket:jetty-ee11-websocket-jakarta-server") {
exclude group: "jakarta.el", module: "jakarta.el-api"
exclude group: "org.eclipse.jetty", module: "jetty-jndi"
}
api("org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jetty-server") {
api("org.eclipse.jetty.ee11.websocket:jetty-ee11-websocket-jetty-server") {
exclude group: "jakarta.el", module: "jakarta.el-api"
exclude group: "org.eclipse.jetty", module: "jetty-jndi"
}