Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock X-Debbugs-Cc: a...@debian.org
Please unblock package logback [ Reason ] We can only support one Tomcat web server per release. Hence we have to replace libtomcat9-java with libtomcat10-java. [ Impact ] There would be two versions of Tomcat in Debian 12 which would need security support. [ Tests ] I have rebuilt all reverse-dependencies successfully. Tomcat support is only optional ( thus the dependency is only suggested) The change was merely replacing the import of javax.servlet.* with jakarta.servlet.* [ Risks ] logback is a key package and the benefits outweigh the risks by far. [ Checklist ] [x] all changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in testing unblock logback/1:1.2.11-2
diff -Nru logback-1.2.11/debian/changelog logback-1.2.11/debian/changelog --- logback-1.2.11/debian/changelog 2022-03-23 04:36:14.000000000 +0100 +++ logback-1.2.11/debian/changelog 2023-03-05 01:43:23.000000000 +0100 @@ -1,3 +1,11 @@ +logback (1:1.2.11-2) unstable; urgency=medium + + * Team upload. + * Migrate to Tomcat 10. Depend on libtomcat10-java instead of tomcat9-java. + Add tomcat10-migration.patch. + + -- Markus Koschany <a...@debian.org> Sun, 05 Mar 2023 01:43:23 +0100 + logback (1:1.2.11-1) unstable; urgency=medium * New upstream version 1.2.11 diff -Nru logback-1.2.11/debian/control logback-1.2.11/debian/control --- logback-1.2.11/debian/control 2022-03-23 04:36:14.000000000 +0100 +++ logback-1.2.11/debian/control 2023-03-05 01:43:23.000000000 +0100 @@ -17,7 +17,7 @@ libmaven-javadoc-plugin-java, libservlet-api-java, libslf4j-java (>= 1.7.18), - libtomcat9-java, + libtomcat10-java, maven-debian-helper Standards-Version: 4.6.0 Vcs-Git: https://salsa.debian.org/java-team/logback.git diff -Nru logback-1.2.11/debian/maven.properties logback-1.2.11/debian/maven.properties --- logback-1.2.11/debian/maven.properties 2022-03-23 04:36:14.000000000 +0100 +++ logback-1.2.11/debian/maven.properties 2023-03-05 01:43:23.000000000 +0100 @@ -3,3 +3,5 @@ # maven.test.skip=true maven.test.skip=true +maven.compiler.source=1.8 +maven.compiler.target=1.8 diff -Nru logback-1.2.11/debian/maven.rules logback-1.2.11/debian/maven.rules --- logback-1.2.11/debian/maven.rules 2022-03-23 04:36:14.000000000 +0100 +++ logback-1.2.11/debian/maven.rules 2023-03-05 01:43:23.000000000 +0100 @@ -1,5 +1,5 @@ junit junit jar s/4\..*/4.x/ javax.mail s/mail/javax.mail-api * s/.*/debian/ * * -org.apache.tomcat tomcat-catalina * s/.*/9.x/ -org.apache.tomcat tomcat-coyote * s/.*/9.x/ +org.apache.tomcat tomcat-catalina * s/.*/10.x/ +org.apache.tomcat tomcat-coyote * s/.*/10.x/ org.eclipse.jetty jetty-server * s/.*/9.x/ diff -Nru logback-1.2.11/debian/patches/series logback-1.2.11/debian/patches/series --- logback-1.2.11/debian/patches/series 2022-03-23 04:36:14.000000000 +0100 +++ logback-1.2.11/debian/patches/series 2023-03-05 01:43:23.000000000 +0100 @@ -2,3 +2,4 @@ 04-privacy-breach.patch 05-java11-compatibility.patch 06-jetty-compatibility.patch +tomcat10-migration.patch diff -Nru logback-1.2.11/debian/patches/tomcat10-migration.patch logback-1.2.11/debian/patches/tomcat10-migration.patch --- logback-1.2.11/debian/patches/tomcat10-migration.patch 1970-01-01 01:00:00.000000000 +0100 +++ logback-1.2.11/debian/patches/tomcat10-migration.patch 2023-03-05 01:43:23.000000000 +0100 @@ -0,0 +1,593 @@ +From: Markus Koschany <a...@debian.org> +Date: Sat, 4 Mar 2023 19:43:08 +0100 +Subject: tomcat10 migration + +Forwarded: not-needed +--- + logback-access/pom.xml | 3 +-- + .../ch/qos/logback/access/ViewStatusMessagesServlet.java | 6 +++--- + .../java/ch/qos/logback/access/jetty/RequestLogImpl.java | 3 ++- + .../java/ch/qos/logback/access/servlet/TeeFilter.java | 16 ++++++++-------- + .../logback/access/servlet/TeeHttpServletRequest.java | 6 +++--- + .../logback/access/servlet/TeeHttpServletResponse.java | 6 +++--- + .../logback/access/servlet/TeeServletInputStream.java | 6 +++--- + .../logback/access/servlet/TeeServletOutputStream.java | 6 +++--- + .../main/java/ch/qos/logback/access/servlet/Util.java | 4 ++-- + .../logback/access/sift/AccessEventDiscriminator.java | 4 ++-- + .../main/java/ch/qos/logback/access/spi/AccessEvent.java | 8 ++++---- + .../java/ch/qos/logback/access/spi/IAccessEvent.java | 4 ++-- + .../java/ch/qos/logback/access/tomcat/LogbackValve.java | 4 ++-- + .../java/ch/qos/logback/access/dummy/DummyRequest.java | 4 ++-- + .../java/ch/qos/logback/access/dummy/DummyResponse.java | 6 +++--- + .../logback/access/dummy/DummyServletOutputStream.java | 4 ++-- + .../ch/qos/logback/access/jetty/JettyFixtureBase.java | 6 +++--- + .../ch/qos/logback/access/pattern/ConverterTest.java | 2 +- + logback-classic/pom.xml | 13 +++++++++++++ + .../qos/logback/classic/ViewStatusMessagesServlet.java | 4 ++-- + .../classic/helpers/MDCInsertingServletFilter.java | 14 +++++++------- + .../classic/selector/servlet/ContextDetachingSCL.java | 4 ++-- + .../classic/selector/servlet/LoggerContextFilter.java | 12 ++++++------ + .../servlet/LogbackServletContainerInitializer.java | 6 +++--- + .../classic/servlet/LogbackServletContextListener.java | 4 ++-- + .../services/jakarta.servlet.ServletContainerInitializer | 1 + + .../services/javax.servlet.ServletContainerInitializer | 1 - + .../servlet/LogbackServletContainerInitializerTest.java | 4 ++-- + logback-core/pom.xml | 16 ++++++++++++++-- + .../core/status/ViewStatusMessagesServletBase.java | 8 ++++---- + logback-examples/pom.xml | 2 +- + .../src/main/java/chapters/mdc/UserServletFilter.java | 14 +++++++------- + 32 files changed, 113 insertions(+), 88 deletions(-) + create mode 100755 logback-classic/src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer + delete mode 100755 logback-classic/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer + +diff --git a/logback-access/pom.xml b/logback-access/pom.xml +index b1704f1..c4bdf50 100755 +--- a/logback-access/pom.xml ++++ b/logback-access/pom.xml +@@ -120,8 +120,7 @@ + <Import-Package> + ch.qos.logback.core.rolling, + ch.qos.logback.core.rolling.helper, +- javax.servlet.*;version="2.5", +- javax.*;resolution:=optional, ++ javax.servlet.*;version="5.0.0", + org.apache.catalina.*;version="${tomcat.version}";resolution:=optional, + org.eclipse.jetty.*;version="${jetty.version}";resolution:=optional, + * +diff --git a/logback-access/src/main/java/ch/qos/logback/access/ViewStatusMessagesServlet.java b/logback-access/src/main/java/ch/qos/logback/access/ViewStatusMessagesServlet.java +index ce4d448..1658380 100644 +--- a/logback-access/src/main/java/ch/qos/logback/access/ViewStatusMessagesServlet.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/ViewStatusMessagesServlet.java +@@ -13,9 +13,9 @@ + */ + package ch.qos.logback.access; + +-import javax.servlet.ServletContext; +-import javax.servlet.http.HttpServletRequest; +-import javax.servlet.http.HttpServletResponse; ++import jakarta.servlet.ServletContext; ++import jakarta.servlet.http.HttpServletRequest; ++import jakarta.servlet.http.HttpServletResponse; + + import ch.qos.logback.core.status.StatusManager; + import ch.qos.logback.core.status.ViewStatusMessagesServletBase; +diff --git a/logback-access/src/main/java/ch/qos/logback/access/jetty/RequestLogImpl.java b/logback-access/src/main/java/ch/qos/logback/access/jetty/RequestLogImpl.java +index f74fc57..e4781f3 100644 +--- a/logback-access/src/main/java/ch/qos/logback/access/jetty/RequestLogImpl.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/jetty/RequestLogImpl.java +@@ -15,6 +15,7 @@ package ch.qos.logback.access.jetty; + + import java.io.File; + import java.net.URL; ++import java.util.EventListener; + import java.util.HashMap; + import java.util.Iterator; + import java.util.List; +@@ -130,7 +131,7 @@ public class RequestLogImpl extends ContextBase implements RequestLog, AppenderA + @Override + public void log(Request jettyRequest, Response jettyResponse) { + JettyServerAdapter adapter = new JettyServerAdapter(jettyRequest, jettyResponse); +- IAccessEvent accessEvent = new AccessEvent(jettyRequest, jettyResponse, adapter); ++ IAccessEvent accessEvent = null; + if (getFilterChainDecision(accessEvent) == FilterReply.DENY) { + return; + } +diff --git a/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeFilter.java b/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeFilter.java +index eed0968..6900020 100644 +--- a/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeFilter.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeFilter.java +@@ -19,14 +19,14 @@ import java.net.UnknownHostException; + import java.util.ArrayList; + import java.util.List; + +-import javax.servlet.Filter; +-import javax.servlet.FilterChain; +-import javax.servlet.FilterConfig; +-import javax.servlet.ServletException; +-import javax.servlet.ServletRequest; +-import javax.servlet.ServletResponse; +-import javax.servlet.http.HttpServletRequest; +-import javax.servlet.http.HttpServletResponse; ++import jakarta.servlet.Filter; ++import jakarta.servlet.FilterChain; ++import jakarta.servlet.FilterConfig; ++import jakarta.servlet.ServletException; ++import jakarta.servlet.ServletRequest; ++import jakarta.servlet.ServletResponse; ++import jakarta.servlet.http.HttpServletRequest; ++import jakarta.servlet.http.HttpServletResponse; + + import static ch.qos.logback.access.AccessConstants.LB_OUTPUT_BUFFER; + import static ch.qos.logback.access.AccessConstants.TEE_FILTER_INCLUDES_PARAM; +diff --git a/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeHttpServletRequest.java b/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeHttpServletRequest.java +index 8ab9c6d..0abb005 100644 +--- a/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeHttpServletRequest.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeHttpServletRequest.java +@@ -17,9 +17,9 @@ import java.io.BufferedReader; + import java.io.IOException; + import java.io.InputStreamReader; + +-import javax.servlet.ServletInputStream; +-import javax.servlet.http.HttpServletRequest; +-import javax.servlet.http.HttpServletRequestWrapper; ++import jakarta.servlet.ServletInputStream; ++import jakarta.servlet.http.HttpServletRequest; ++import jakarta.servlet.http.HttpServletRequestWrapper; + + import static ch.qos.logback.access.AccessConstants.LB_INPUT_BUFFER; + +diff --git a/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeHttpServletResponse.java b/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeHttpServletResponse.java +index 6dfd6dd..e2a8243 100644 +--- a/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeHttpServletResponse.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeHttpServletResponse.java +@@ -17,9 +17,9 @@ import java.io.IOException; + import java.io.OutputStreamWriter; + import java.io.PrintWriter; + +-import javax.servlet.ServletOutputStream; +-import javax.servlet.http.HttpServletResponse; +-import javax.servlet.http.HttpServletResponseWrapper; ++import jakarta.servlet.ServletOutputStream; ++import jakarta.servlet.http.HttpServletResponse; ++import jakarta.servlet.http.HttpServletResponseWrapper; + + public class TeeHttpServletResponse extends HttpServletResponseWrapper { + +diff --git a/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeServletInputStream.java b/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeServletInputStream.java +index 207a84f..7c34954 100644 +--- a/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeServletInputStream.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeServletInputStream.java +@@ -18,9 +18,9 @@ import java.io.ByteArrayOutputStream; + import java.io.IOException; + import java.io.InputStream; + +-import javax.servlet.ReadListener; +-import javax.servlet.ServletInputStream; +-import javax.servlet.http.HttpServletRequest; ++import jakarta.servlet.ReadListener; ++import jakarta.servlet.ServletInputStream; ++import jakarta.servlet.http.HttpServletRequest; + + class TeeServletInputStream extends ServletInputStream { + +diff --git a/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeServletOutputStream.java b/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeServletOutputStream.java +index 687eb62..fe4a3a9 100644 +--- a/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeServletOutputStream.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/servlet/TeeServletOutputStream.java +@@ -16,9 +16,9 @@ package ch.qos.logback.access.servlet; + import java.io.ByteArrayOutputStream; + import java.io.IOException; + +-import javax.servlet.ServletOutputStream; +-import javax.servlet.ServletResponse; +-import javax.servlet.WriteListener; ++import jakarta.servlet.ServletOutputStream; ++import jakarta.servlet.ServletResponse; ++import jakarta.servlet.WriteListener; + + public class TeeServletOutputStream extends ServletOutputStream { + +diff --git a/logback-access/src/main/java/ch/qos/logback/access/servlet/Util.java b/logback-access/src/main/java/ch/qos/logback/access/servlet/Util.java +index 241d439..2554470 100755 +--- a/logback-access/src/main/java/ch/qos/logback/access/servlet/Util.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/servlet/Util.java +@@ -15,8 +15,8 @@ package ch.qos.logback.access.servlet; + + import ch.qos.logback.access.AccessConstants; + +-import javax.servlet.http.HttpServletRequest; +-import javax.servlet.http.HttpServletResponse; ++import jakarta.servlet.http.HttpServletRequest; ++import jakarta.servlet.http.HttpServletResponse; + + public class Util { + +diff --git a/logback-access/src/main/java/ch/qos/logback/access/sift/AccessEventDiscriminator.java b/logback-access/src/main/java/ch/qos/logback/access/sift/AccessEventDiscriminator.java +index 820d85d..21ebd96 100644 +--- a/logback-access/src/main/java/ch/qos/logback/access/sift/AccessEventDiscriminator.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/sift/AccessEventDiscriminator.java +@@ -13,8 +13,8 @@ + */ + package ch.qos.logback.access.sift; + +-import javax.servlet.http.HttpServletRequest; +-import javax.servlet.http.HttpSession; ++import jakarta.servlet.http.HttpServletRequest; ++import jakarta.servlet.http.HttpSession; + + import ch.qos.logback.access.spi.IAccessEvent; + import ch.qos.logback.core.sift.AbstractDiscriminator; +diff --git a/logback-access/src/main/java/ch/qos/logback/access/spi/AccessEvent.java b/logback-access/src/main/java/ch/qos/logback/access/spi/AccessEvent.java +index ffe7338..5835ca6 100755 +--- a/logback-access/src/main/java/ch/qos/logback/access/spi/AccessEvent.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/spi/AccessEvent.java +@@ -17,10 +17,10 @@ import ch.qos.logback.access.AccessConstants; + import ch.qos.logback.access.pattern.AccessConverter; + import ch.qos.logback.access.servlet.Util; + +-import javax.servlet.http.Cookie; +-import javax.servlet.http.HttpServletRequest; +-import javax.servlet.http.HttpServletResponse; +-import javax.servlet.http.HttpSession; ++import jakarta.servlet.http.Cookie; ++import jakarta.servlet.http.HttpServletRequest; ++import jakarta.servlet.http.HttpServletResponse; ++import jakarta.servlet.http.HttpSession; + + import java.io.Serializable; + import java.util.ArrayList; +diff --git a/logback-access/src/main/java/ch/qos/logback/access/spi/IAccessEvent.java b/logback-access/src/main/java/ch/qos/logback/access/spi/IAccessEvent.java +index d7439f3..5bf82a2 100644 +--- a/logback-access/src/main/java/ch/qos/logback/access/spi/IAccessEvent.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/spi/IAccessEvent.java +@@ -15,8 +15,8 @@ package ch.qos.logback.access.spi; + + import ch.qos.logback.core.spi.DeferredProcessingAware; + +-import javax.servlet.http.HttpServletRequest; +-import javax.servlet.http.HttpServletResponse; ++import jakarta.servlet.http.HttpServletRequest; ++import jakarta.servlet.http.HttpServletResponse; + import java.util.Enumeration; + import java.util.List; + import java.util.Map; +diff --git a/logback-access/src/main/java/ch/qos/logback/access/tomcat/LogbackValve.java b/logback-access/src/main/java/ch/qos/logback/access/tomcat/LogbackValve.java +index 437de0b..fa49125 100644 +--- a/logback-access/src/main/java/ch/qos/logback/access/tomcat/LogbackValve.java ++++ b/logback-access/src/main/java/ch/qos/logback/access/tomcat/LogbackValve.java +@@ -25,8 +25,8 @@ import java.util.concurrent.ExecutorService; + import java.util.concurrent.ScheduledExecutorService; + import java.util.concurrent.ScheduledFuture; + +-import javax.servlet.ServletContext; +-import javax.servlet.ServletException; ++import jakarta.servlet.ServletContext; ++import jakarta.servlet.ServletException; + + import org.apache.catalina.Lifecycle; + import org.apache.catalina.LifecycleException; +diff --git a/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyRequest.java b/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyRequest.java +index 0110fd9..90a9748 100644 +--- a/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyRequest.java ++++ b/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyRequest.java +@@ -15,8 +15,8 @@ package ch.qos.logback.access.dummy; + + import ch.qos.logback.access.AccessConstants; + +-import javax.servlet.*; +-import javax.servlet.http.*; ++import jakarta.servlet.*; ++import jakarta.servlet.http.*; + import java.io.BufferedReader; + import java.io.IOException; + import java.io.UnsupportedEncodingException; +diff --git a/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyResponse.java b/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyResponse.java +index e8950c1..4d5a055 100644 +--- a/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyResponse.java ++++ b/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyResponse.java +@@ -17,9 +17,9 @@ import java.io.IOException; + import java.io.PrintWriter; + import java.util.*; + +-import javax.servlet.ServletOutputStream; +-import javax.servlet.http.Cookie; +-import javax.servlet.http.HttpServletResponse; ++import jakarta.servlet.ServletOutputStream; ++import jakarta.servlet.http.Cookie; ++import jakarta.servlet.http.HttpServletResponse; + + public class DummyResponse implements HttpServletResponse { + +diff --git a/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyServletOutputStream.java b/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyServletOutputStream.java +index 6937a4f..bf84cff 100644 +--- a/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyServletOutputStream.java ++++ b/logback-access/src/test/java/ch/qos/logback/access/dummy/DummyServletOutputStream.java +@@ -13,8 +13,8 @@ + */ + package ch.qos.logback.access.dummy; + +-import javax.servlet.ServletOutputStream; +-import javax.servlet.WriteListener; ++import jakarta.servlet.ServletOutputStream; ++import jakarta.servlet.WriteListener; + + import java.io.IOException; + import java.io.OutputStream; +diff --git a/logback-access/src/test/java/ch/qos/logback/access/jetty/JettyFixtureBase.java b/logback-access/src/test/java/ch/qos/logback/access/jetty/JettyFixtureBase.java +index e461c58..6cd2f44 100644 +--- a/logback-access/src/test/java/ch/qos/logback/access/jetty/JettyFixtureBase.java ++++ b/logback-access/src/test/java/ch/qos/logback/access/jetty/JettyFixtureBase.java +@@ -23,9 +23,9 @@ import org.eclipse.jetty.server.handler.RequestLogHandler; + import org.eclipse.jetty.server.nio.SelectChannelConnector; + import org.eclipse.jetty.util.ByteArrayISO8859Writer; + +-import javax.servlet.ServletException; +-import javax.servlet.http.HttpServletRequest; +-import javax.servlet.http.HttpServletResponse; ++import jakarta.servlet.ServletException; ++import jakarta.servlet.http.HttpServletRequest; ++import jakarta.servlet.http.HttpServletResponse; + import java.io.IOException; + import java.io.OutputStream; + +diff --git a/logback-access/src/test/java/ch/qos/logback/access/pattern/ConverterTest.java b/logback-access/src/test/java/ch/qos/logback/access/pattern/ConverterTest.java +index b126cde..434b984 100644 +--- a/logback-access/src/test/java/ch/qos/logback/access/pattern/ConverterTest.java ++++ b/logback-access/src/test/java/ch/qos/logback/access/pattern/ConverterTest.java +@@ -18,7 +18,7 @@ import static org.junit.Assert.assertEquals; + import java.util.ArrayList; + import java.util.List; + +-import javax.servlet.http.Cookie; ++import jakarta.servlet.http.Cookie; + + import ch.qos.logback.access.spi.IAccessEvent; + import org.junit.After; +diff --git a/logback-classic/pom.xml b/logback-classic/pom.xml +index 2643973..b2a71e0 100755 +--- a/logback-classic/pom.xml ++++ b/logback-classic/pom.xml +@@ -107,6 +107,19 @@ + <scope>compile</scope> + <optional>true</optional> + </dependency> ++ <dependency> ++ <groupId>org.apache.tomcat</groupId> ++ <artifactId>tomcat-catalina</artifactId> ++ <scope>compile</scope> ++ <optional>true</optional> ++ </dependency> ++ <dependency> ++ <groupId>org.apache.tomcat</groupId> ++ <artifactId>tomcat-coyote</artifactId> ++ <scope>compile</scope> ++ <optional>true</optional> ++ </dependency> ++ + <dependency> + <groupId>com.icegreen</groupId> + <artifactId>greenmail</artifactId> +diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/ViewStatusMessagesServlet.java b/logback-classic/src/main/java/ch/qos/logback/classic/ViewStatusMessagesServlet.java +index 113aaca..9c00493 100644 +--- a/logback-classic/src/main/java/ch/qos/logback/classic/ViewStatusMessagesServlet.java ++++ b/logback-classic/src/main/java/ch/qos/logback/classic/ViewStatusMessagesServlet.java +@@ -13,8 +13,8 @@ + */ + package ch.qos.logback.classic; + +-import javax.servlet.http.HttpServletRequest; +-import javax.servlet.http.HttpServletResponse; ++import jakarta.servlet.http.HttpServletRequest; ++import jakarta.servlet.http.HttpServletResponse; + + import org.slf4j.LoggerFactory; + +diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/helpers/MDCInsertingServletFilter.java b/logback-classic/src/main/java/ch/qos/logback/classic/helpers/MDCInsertingServletFilter.java +index 4b1e7aa..b98c11f 100644 +--- a/logback-classic/src/main/java/ch/qos/logback/classic/helpers/MDCInsertingServletFilter.java ++++ b/logback-classic/src/main/java/ch/qos/logback/classic/helpers/MDCInsertingServletFilter.java +@@ -15,13 +15,13 @@ package ch.qos.logback.classic.helpers; + + import java.io.IOException; + +-import javax.servlet.Filter; +-import javax.servlet.FilterChain; +-import javax.servlet.FilterConfig; +-import javax.servlet.ServletException; +-import javax.servlet.ServletRequest; +-import javax.servlet.ServletResponse; +-import javax.servlet.http.HttpServletRequest; ++import jakarta.servlet.Filter; ++import jakarta.servlet.FilterChain; ++import jakarta.servlet.FilterConfig; ++import jakarta.servlet.ServletException; ++import jakarta.servlet.ServletRequest; ++import jakarta.servlet.ServletResponse; ++import jakarta.servlet.http.HttpServletRequest; + + import org.slf4j.MDC; + +diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/selector/servlet/ContextDetachingSCL.java b/logback-classic/src/main/java/ch/qos/logback/classic/selector/servlet/ContextDetachingSCL.java +index fec091b..68c96a6 100644 +--- a/logback-classic/src/main/java/ch/qos/logback/classic/selector/servlet/ContextDetachingSCL.java ++++ b/logback-classic/src/main/java/ch/qos/logback/classic/selector/servlet/ContextDetachingSCL.java +@@ -17,8 +17,8 @@ import static ch.qos.logback.classic.ClassicConstants.JNDI_CONTEXT_NAME; + + import javax.naming.Context; + import javax.naming.NamingException; +-import javax.servlet.ServletContextEvent; +-import javax.servlet.ServletContextListener; ++import jakarta.servlet.ServletContextEvent; ++import jakarta.servlet.ServletContextListener; + + import org.slf4j.Logger; + +diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/selector/servlet/LoggerContextFilter.java b/logback-classic/src/main/java/ch/qos/logback/classic/selector/servlet/LoggerContextFilter.java +index 28f7d38..e1b660c 100644 +--- a/logback-classic/src/main/java/ch/qos/logback/classic/selector/servlet/LoggerContextFilter.java ++++ b/logback-classic/src/main/java/ch/qos/logback/classic/selector/servlet/LoggerContextFilter.java +@@ -15,12 +15,12 @@ package ch.qos.logback.classic.selector.servlet; + + import java.io.IOException; + +-import javax.servlet.Filter; +-import javax.servlet.FilterChain; +-import javax.servlet.FilterConfig; +-import javax.servlet.ServletException; +-import javax.servlet.ServletRequest; +-import javax.servlet.ServletResponse; ++import jakarta.servlet.Filter; ++import jakarta.servlet.FilterChain; ++import jakarta.servlet.FilterConfig; ++import jakarta.servlet.ServletException; ++import jakarta.servlet.ServletRequest; ++import jakarta.servlet.ServletResponse; + + import org.slf4j.LoggerFactory; + +diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/servlet/LogbackServletContainerInitializer.java b/logback-classic/src/main/java/ch/qos/logback/classic/servlet/LogbackServletContainerInitializer.java +index bb0fa07..7e4b4b0 100755 +--- a/logback-classic/src/main/java/ch/qos/logback/classic/servlet/LogbackServletContainerInitializer.java ++++ b/logback-classic/src/main/java/ch/qos/logback/classic/servlet/LogbackServletContainerInitializer.java +@@ -4,9 +4,9 @@ import static ch.qos.logback.core.CoreConstants.DISABLE_SERVLET_CONTAINER_INITIA + + import java.util.Set; + +-import javax.servlet.ServletContainerInitializer; +-import javax.servlet.ServletContext; +-import javax.servlet.ServletException; ++import jakarta.servlet.ServletContainerInitializer; ++import jakarta.servlet.ServletContext; ++import jakarta.servlet.ServletException; + + import ch.qos.logback.classic.util.StatusViaSLF4JLoggerFactory; + import ch.qos.logback.core.util.OptionHelper; +diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/servlet/LogbackServletContextListener.java b/logback-classic/src/main/java/ch/qos/logback/classic/servlet/LogbackServletContextListener.java +index f4bc045..1ada444 100755 +--- a/logback-classic/src/main/java/ch/qos/logback/classic/servlet/LogbackServletContextListener.java ++++ b/logback-classic/src/main/java/ch/qos/logback/classic/servlet/LogbackServletContextListener.java +@@ -1,7 +1,7 @@ + package ch.qos.logback.classic.servlet; + +-import javax.servlet.ServletContextEvent; +-import javax.servlet.ServletContextListener; ++import jakarta.servlet.ServletContextEvent; ++import jakarta.servlet.ServletContextListener; + + import org.slf4j.ILoggerFactory; + import org.slf4j.LoggerFactory; +diff --git a/logback-classic/src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer b/logback-classic/src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer +new file mode 100755 +index 0000000..23269e7 +--- /dev/null ++++ b/logback-classic/src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer +@@ -0,0 +1 @@ ++ch.qos.logback.classic.servlet.LogbackServletContainerInitializer +\ No newline at end of file +diff --git a/logback-classic/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer b/logback-classic/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer +deleted file mode 100755 +index 23269e7..0000000 +--- a/logback-classic/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer ++++ /dev/null +@@ -1 +0,0 @@ +-ch.qos.logback.classic.servlet.LogbackServletContainerInitializer +\ No newline at end of file +diff --git a/logback-classic/src/test/java/ch/qos/logback/classic/servlet/LogbackServletContainerInitializerTest.java b/logback-classic/src/test/java/ch/qos/logback/classic/servlet/LogbackServletContainerInitializerTest.java +index b31981e..28e07b0 100755 +--- a/logback-classic/src/test/java/ch/qos/logback/classic/servlet/LogbackServletContainerInitializerTest.java ++++ b/logback-classic/src/test/java/ch/qos/logback/classic/servlet/LogbackServletContainerInitializerTest.java +@@ -10,8 +10,8 @@ import ch.qos.logback.core.CoreConstants; + + import static org.mockito.Mockito.*; + +-import javax.servlet.ServletContext; +-import javax.servlet.ServletException; ++import jakarta.servlet.ServletContext; ++import jakarta.servlet.ServletException; + + public class LogbackServletContainerInitializerTest { + +diff --git a/logback-core/pom.xml b/logback-core/pom.xml +index 94a417e..d3ea033 100755 +--- a/logback-core/pom.xml ++++ b/logback-core/pom.xml +@@ -40,8 +40,20 @@ + <scope>test</scope> + </dependency> + <dependency> +- <groupId>javax.servlet</groupId> +- <artifactId>javax.servlet-api</artifactId> ++ <groupId>javax.servlet</groupId> ++ <artifactId>javax.servlet-api</artifactId> ++ <scope>compile</scope> ++ <optional>true</optional> ++ </dependency> ++ <dependency> ++ <groupId>org.apache.tomcat</groupId> ++ <artifactId>tomcat-catalina</artifactId> ++ <scope>compile</scope> ++ <optional>true</optional> ++ </dependency> ++ <dependency> ++ <groupId>org.apache.tomcat</groupId> ++ <artifactId>tomcat-coyote</artifactId> + <scope>compile</scope> + <optional>true</optional> + </dependency> +diff --git a/logback-core/src/main/java/ch/qos/logback/core/status/ViewStatusMessagesServletBase.java b/logback-core/src/main/java/ch/qos/logback/core/status/ViewStatusMessagesServletBase.java +index e1c483b..5ce08af 100644 +--- a/logback-core/src/main/java/ch/qos/logback/core/status/ViewStatusMessagesServletBase.java ++++ b/logback-core/src/main/java/ch/qos/logback/core/status/ViewStatusMessagesServletBase.java +@@ -20,10 +20,10 @@ import java.io.PrintWriter; + import java.io.StringWriter; + import java.util.List; + +-import javax.servlet.ServletException; +-import javax.servlet.http.HttpServlet; +-import javax.servlet.http.HttpServletRequest; +-import javax.servlet.http.HttpServletResponse; ++import jakarta.servlet.ServletException; ++import jakarta.servlet.http.HttpServlet; ++import jakarta.servlet.http.HttpServletRequest; ++import jakarta.servlet.http.HttpServletResponse; + + import ch.qos.logback.core.CoreConstants; + import ch.qos.logback.core.helpers.Transform; +diff --git a/logback-examples/pom.xml b/logback-examples/pom.xml +index 52c34c6..c8610ee 100755 +--- a/logback-examples/pom.xml ++++ b/logback-examples/pom.xml +@@ -44,7 +44,7 @@ + <artifactId>javax.servlet-api</artifactId> + <scope>compile</scope> + <optional>true</optional> +- </dependency> ++ </dependency> + <dependency> + <groupId>org.fusesource.jansi</groupId> + <artifactId>jansi</artifactId> +diff --git a/logback-examples/src/main/java/chapters/mdc/UserServletFilter.java b/logback-examples/src/main/java/chapters/mdc/UserServletFilter.java +index 8d96661..d779671 100644 +--- a/logback-examples/src/main/java/chapters/mdc/UserServletFilter.java ++++ b/logback-examples/src/main/java/chapters/mdc/UserServletFilter.java +@@ -16,13 +16,13 @@ package chapters.mdc; + import java.io.IOException; + import java.security.Principal; + +-import javax.servlet.Filter; +-import javax.servlet.FilterChain; +-import javax.servlet.FilterConfig; +-import javax.servlet.ServletException; +-import javax.servlet.ServletRequest; +-import javax.servlet.ServletResponse; +-import javax.servlet.http.HttpServletRequest; ++import jakarta.servlet.Filter; ++import jakarta.servlet.FilterChain; ++import jakarta.servlet.FilterConfig; ++import jakarta.servlet.ServletException; ++import jakarta.servlet.ServletRequest; ++import jakarta.servlet.ServletResponse; ++import jakarta.servlet.http.HttpServletRequest; + + import org.slf4j.MDC; +