From 54f60e46de6df520867e4d4adbf77fd4ff41787c Mon Sep 17 00:00:00 2001 From: Matteo Merli Date: Wed, 4 Feb 2026 15:53:19 -0800 Subject: [PATCH] Upgrade Jetty from 9.4.57 to 12.1.6 This upgrades Jetty to the latest stable 12.x release, which brings improved performance, HTTP/2 and HTTP/3 support, and ongoing security updates (Jetty 9.x is EOL). Key changes: - Update jetty.version from 9.4.57.v20241219 to 12.1.6 - Use jetty-ee8-* artifacts to maintain javax.servlet compatibility - Update import statements to use org.eclipse.jetty.ee8.servlet package - Update LICENSE and NOTICE files with new artifact names and versions --- .../src/main/resources/LICENSE-all.bin.txt | 16 +++++----- .../src/main/resources/LICENSE-server.bin.txt | 16 +++++----- .../src/main/resources/NOTICE-all.bin.txt | 29 +++++++------------ .../src/main/resources/NOTICE-server.bin.txt | 29 +++++++------------ bookkeeper-http/servlet-http-server/pom.xml | 9 ++++-- .../http/servlet/JettyHttpServer.java | 4 +-- pom.xml | 10 +++---- .../prometheus-metrics-provider/pom.xml | 6 +++- .../prometheus/PrometheusMetricsProvider.java | 4 +-- 9 files changed, 57 insertions(+), 66 deletions(-) diff --git a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt index e6f8d8e1910..bdb9f1f74fc 100644 --- a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt +++ b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt @@ -265,13 +265,13 @@ Apache Software License, Version 2. - lib/org.apache.zookeeper-zookeeper-3.9.3.jar [21] - lib/org.apache.zookeeper-zookeeper-jute-3.9.3.jar [21] - lib/org.apache.zookeeper-zookeeper-3.9.3-tests.jar [21] -- lib/org.eclipse.jetty-jetty-http-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-io-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-security-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-server-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-servlet-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-util-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-util-ajax-9.4.57.v20241219.jar [22] +- lib/org.eclipse.jetty-jetty-http-12.1.6.jar [22] +- lib/org.eclipse.jetty-jetty-io-12.1.6.jar [22] +- lib/org.eclipse.jetty-jetty-security-12.1.6.jar [22] +- lib/org.eclipse.jetty-jetty-server-12.1.6.jar [22] +- lib/org.eclipse.jetty-jetty-session-12.1.6.jar [22] +- lib/org.eclipse.jetty-jetty-util-12.1.6.jar [22] +- lib/org.eclipse.jetty.ee8-jetty-ee8-servlet-12.1.6.jar [22] - lib/org.rocksdb-rocksdbjni-9.9.3.jar [23] - lib/com.beust-jcommander-1.82.jar [24] - lib/com.yahoo.datasketches-memory-0.8.3.jar [25] @@ -379,7 +379,7 @@ Apache Software License, Version 2. [19] Source available at https://github.com/apache/commons-collections/tree/collections-4.1 [20] Source available at https://github.com/apache/commons-lang/tree/LANG_3_6 [21] Source available at https://github.com/apache/zookeeper/tree/release-3.8.0 -[22] Source available at https://github.com/eclipse/jetty.project/tree/jetty-9.4.48.v20220622 +[22] Source available at https://github.com/jetty/jetty.project/tree/jetty-12.1.6 [23] Source available at https://github.com/facebook/rocksdb/tree/v9.9.3 [24] Source available at https://github.com/cbeust/jcommander/tree/1.82 [25] Source available at https://github.com/DataSketches/sketches-core/tree/sketches-0.8.3 diff --git a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt index f26b676f128..0350c4e1b1f 100644 --- a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt +++ b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt @@ -265,13 +265,13 @@ Apache Software License, Version 2. - lib/org.apache.zookeeper-zookeeper-3.9.3.jar [21] - lib/org.apache.zookeeper-zookeeper-jute-3.9.3.jar [21] - lib/org.apache.zookeeper-zookeeper-3.9.3-tests.jar [21] -- lib/org.eclipse.jetty-jetty-http-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-io-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-security-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-server-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-servlet-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-util-9.4.57.v20241219.jar [22] -- lib/org.eclipse.jetty-jetty-util-ajax-9.4.57.v20241219.jar [22] +- lib/org.eclipse.jetty-jetty-http-12.1.6.jar [22] +- lib/org.eclipse.jetty-jetty-io-12.1.6.jar [22] +- lib/org.eclipse.jetty-jetty-security-12.1.6.jar [22] +- lib/org.eclipse.jetty-jetty-server-12.1.6.jar [22] +- lib/org.eclipse.jetty-jetty-session-12.1.6.jar [22] +- lib/org.eclipse.jetty-jetty-util-12.1.6.jar [22] +- lib/org.eclipse.jetty.ee8-jetty-ee8-servlet-12.1.6.jar [22] - lib/org.rocksdb-rocksdbjni-9.9.3.jar [23] - lib/com.beust-jcommander-1.82.jar [24] - lib/com.yahoo.datasketches-memory-0.8.3.jar [25] @@ -375,7 +375,7 @@ Apache Software License, Version 2. [19] Source available at https://github.com/apache/commons-collections/tree/collections-4.1 [20] Source available at https://github.com/apache/commons-lang/tree/LANG_3_6 [21] Source available at https://github.com/apache/zookeeper/tree/release-3.8.0 -[22] Source available at https://github.com/eclipse/jetty.project/tree/jetty-9.4.48.v20220622 +[22] Source available at https://github.com/jetty/jetty.project/tree/jetty-12.1.6 [23] Source available at https://github.com/facebook/rocksdb/tree/v9.9.3 [24] Source available at https://github.com/cbeust/jcommander/tree/1.82 [25] Source available at https://github.com/DataSketches/sketches-core/tree/sketches-0.8.3 diff --git a/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt b/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt index 39a5c1ae70f..9dc52f3078a 100644 --- a/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt +++ b/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt @@ -93,17 +93,17 @@ SoundCloud Ltd. (http://soundcloud.com/). This product includes software developed as part of the Ocelli project by Netflix Inc. (https://github.com/Netflix/ocelli/). ------------------------------------------------------------------------------------ -- lib/org.eclipse.jetty-jetty-http-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-io-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-security-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-server-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-servlet-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-util-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-util-ajax-9.4.57.v20241219.jar +- lib/org.eclipse.jetty-jetty-http-12.1.6.jar +- lib/org.eclipse.jetty-jetty-io-12.1.6.jar +- lib/org.eclipse.jetty-jetty-security-12.1.6.jar +- lib/org.eclipse.jetty-jetty-server-12.1.6.jar +- lib/org.eclipse.jetty-jetty-session-12.1.6.jar +- lib/org.eclipse.jetty-jetty-util-12.1.6.jar +- lib/org.eclipse.jetty.ee8-jetty-ee8-servlet-12.1.6.jar ============================================================== Jetty Web Container - Copyright 1995-2017 Mort Bay Consulting Pty Ltd. + Copyright 1995-2024 Mort Bay Consulting Pty Ltd. ============================================================== The Jetty Web Container is Copyright Mort Bay Consulting Pty Ltd @@ -116,19 +116,10 @@ Jetty is dual licensed under both and - * The Eclipse Public 1.0 License - http://www.eclipse.org/legal/epl-v10.html + * The Eclipse Public License 2.0 + https://www.eclipse.org/legal/epl-2.0/ Jetty may be distributed under either license. - -lib/org.eclipse.jetty-jetty-util-9.4.57.v20241219.jar bundles UnixCrypt - -The UnixCrypt.java code implements the one way cryptography used by -Unix systems for simple password protection. Copyright 1996 Aki Yoshida, -modified April 2001 by Iris Van den Broeke, Daniel Deville. -Permission to use, copy, modify and distribute UnixCrypt -for non-commercial or commercial purposes and without fee is -granted provided that the copyright notice appears in all copies. ------------------------------------------------------------------------------------ - lib/com.beust-jcommander-1.82.jar diff --git a/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt b/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt index b799b0b81b0..c75b956085f 100644 --- a/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt +++ b/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt @@ -75,17 +75,17 @@ SoundCloud Ltd. (http://soundcloud.com/). This product includes software developed as part of the Ocelli project by Netflix Inc. (https://github.com/Netflix/ocelli/). ------------------------------------------------------------------------------------ -- lib/org.eclipse.jetty-jetty-http-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-io-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-security-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-server-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-servlet-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-util-9.4.57.v20241219.jar -- lib/org.eclipse.jetty-jetty-util-ajax-9.4.57.v20241219.jar +- lib/org.eclipse.jetty-jetty-http-12.1.6.jar +- lib/org.eclipse.jetty-jetty-io-12.1.6.jar +- lib/org.eclipse.jetty-jetty-security-12.1.6.jar +- lib/org.eclipse.jetty-jetty-server-12.1.6.jar +- lib/org.eclipse.jetty-jetty-session-12.1.6.jar +- lib/org.eclipse.jetty-jetty-util-12.1.6.jar +- lib/org.eclipse.jetty.ee8-jetty-ee8-servlet-12.1.6.jar ============================================================== Jetty Web Container - Copyright 1995-2017 Mort Bay Consulting Pty Ltd. + Copyright 1995-2024 Mort Bay Consulting Pty Ltd. ============================================================== The Jetty Web Container is Copyright Mort Bay Consulting Pty Ltd @@ -98,19 +98,10 @@ Jetty is dual licensed under both and - * The Eclipse Public 1.0 License - http://www.eclipse.org/legal/epl-v10.html + * The Eclipse Public License 2.0 + https://www.eclipse.org/legal/epl-2.0/ Jetty may be distributed under either license. - -lib/org.eclipse.jetty-jetty-util-9.4.57.v20241219.jar bundles UnixCrypt - -The UnixCrypt.java code implements the one way cryptography used by -Unix systems for simple password protection. Copyright 1996 Aki Yoshida, -modified April 2001 by Iris Van den Broeke, Daniel Deville. -Permission to use, copy, modify and distribute UnixCrypt -for non-commercial or commercial purposes and without fee is -granted provided that the copyright notice appears in all copies. ------------------------------------------------------------------------------------ - lib/com.beust-jcommander-1.82.jar diff --git a/bookkeeper-http/servlet-http-server/pom.xml b/bookkeeper-http/servlet-http-server/pom.xml index 44cecbd2453..2e90f1b5c43 100644 --- a/bookkeeper-http/servlet-http-server/pom.xml +++ b/bookkeeper-http/servlet-http-server/pom.xml @@ -48,8 +48,13 @@ test - org.eclipse.jetty - jetty-webapp + org.eclipse.jetty.ee8 + jetty-ee8-webapp + test + + + org.eclipse.jetty.ee8 + jetty-ee8-servlet test diff --git a/bookkeeper-http/servlet-http-server/src/test/java/org/apache/bookkeeper/http/servlet/JettyHttpServer.java b/bookkeeper-http/servlet-http-server/src/test/java/org/apache/bookkeeper/http/servlet/JettyHttpServer.java index 5eb32a196e5..d4adbc69e18 100644 --- a/bookkeeper-http/servlet-http-server/src/test/java/org/apache/bookkeeper/http/servlet/JettyHttpServer.java +++ b/bookkeeper-http/servlet-http-server/src/test/java/org/apache/bookkeeper/http/servlet/JettyHttpServer.java @@ -27,10 +27,10 @@ import java.nio.file.Files; import java.util.List; import javax.servlet.Servlet; +import org.eclipse.jetty.ee8.servlet.ServletHolder; +import org.eclipse.jetty.ee8.webapp.WebAppContext; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandlerCollection; -import org.eclipse.jetty.servlet.ServletHolder; -import org.eclipse.jetty.webapp.WebAppContext; /** * Jetty based http server. diff --git a/pom.xml b/pom.xml index f2b6db0659e..21581d9be11 100644 --- a/pom.xml +++ b/pom.xml @@ -145,7 +145,7 @@ 2.1.10 2.17.1 1.82 - 9.4.57.v20241219 + 12.1.6 1.37 2.8.2 4.13.2 @@ -598,13 +598,13 @@ ${jetty.version} - org.eclipse.jetty - jetty-webapp + org.eclipse.jetty.ee8 + jetty-ee8-webapp ${jetty.version} - org.eclipse.jetty - jetty-servlet + org.eclipse.jetty.ee8 + jetty-ee8-servlet ${jetty.version} diff --git a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml index c2b584bbe8a..c36284757e8 100644 --- a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml +++ b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml @@ -57,7 +57,11 @@ org.eclipse.jetty - jetty-servlet + jetty-server + + + org.eclipse.jetty.ee8 + jetty-ee8-servlet diff --git a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java index 166ef5e2e30..8fa56ce5ffd 100644 --- a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java +++ b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java @@ -49,9 +49,9 @@ import org.apache.bookkeeper.stats.ThreadRegistry; import org.apache.commons.configuration2.Configuration; import org.apache.commons.lang3.StringUtils; +import org.eclipse.jetty.ee8.servlet.ServletContextHandler; +import org.eclipse.jetty.ee8.servlet.ServletHolder; import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.servlet.ServletContextHandler; -import org.eclipse.jetty.servlet.ServletHolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; // CHECKSTYLE.ON: IllegalImport