From a7a9ccce35981925c6375ef01d06440a849d44e0 Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Thu, 19 Oct 2023 13:15:47 +1100 Subject: [PATCH 1/4] deprecate PushCacheFilter Signed-off-by: Lachlan Roberts --- .../java/org/eclipse/jetty/servlets/PushCacheFilter.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/PushCacheFilter.java b/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/PushCacheFilter.java index 39ba36c082c..e3da0619a1a 100644 --- a/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/PushCacheFilter.java +++ b/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/PushCacheFilter.java @@ -66,7 +66,9 @@ import org.slf4j.LoggerFactory; * cache.

*

If the init param useQueryInKey is set, then the query string is used as * as part of the key to identify a resource

+ * @deprecated no replacement for this deprecated http feature */ +@Deprecated @ManagedObject("Push cache based on the HTTP 'Referer' header") public class PushCacheFilter implements Filter { @@ -80,6 +82,11 @@ public class PushCacheFilter implements Filter private long _renew = NanoTime.now(); private boolean _useQueryInKey; + public PushCacheFilter() + { + LOG.warn(PushCacheFilter.class.getSimpleName() + " is an example class not suitable for production."); + } + @Override public void init(FilterConfig config) throws ServletException { From a4b15b1a81295a4abeea119ca1ff427a51d72b3d Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Thu, 19 Oct 2023 19:57:48 +1100 Subject: [PATCH 2/4] remove use of PushCacheFilter from Http2Server demo Signed-off-by: Lachlan Roberts --- .../src/main/java/org/eclipse/jetty/demos/Http2Server.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/demos/embedded/src/main/java/org/eclipse/jetty/demos/Http2Server.java b/demos/embedded/src/main/java/org/eclipse/jetty/demos/Http2Server.java index 4c173a5968a..7c841dff409 100644 --- a/demos/embedded/src/main/java/org/eclipse/jetty/demos/Http2Server.java +++ b/demos/embedded/src/main/java/org/eclipse/jetty/demos/Http2Server.java @@ -53,7 +53,6 @@ import org.eclipse.jetty.server.SslConnectionFactory; import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; -import org.eclipse.jetty.servlets.PushCacheFilter; import org.eclipse.jetty.util.resource.PathResource; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.slf4j.LoggerFactory; @@ -78,8 +77,6 @@ public class Http2Server throw new FileNotFoundException(docroot.toString()); context.setBaseResource(new PathResource(docroot)); - context.addFilter(PushCacheFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST)); - // context.addFilter(PushSessionCacheFilter.class,"/*",EnumSet.of(DispatcherType.REQUEST)); context.addFilter(PushedTilesFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST)); context.addServlet(new ServletHolder(servlet), "/test/*"); context.addServlet(DefaultServlet.class, "/").setInitParameter("maxCacheSize", "81920"); From 36d3377c235fdcd635d78acd639e11058b67a1ee Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Tue, 24 Oct 2023 11:15:28 +1100 Subject: [PATCH 3/4] remove usage of PushCacheFilter from demo-jetty-webapp Signed-off-by: Lachlan Roberts --- .../demo-jetty-webapp/src/main/webapp/WEB-INF/web.xml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/demos/demo-jetty-webapp/src/main/webapp/WEB-INF/web.xml b/demos/demo-jetty-webapp/src/main/webapp/WEB-INF/web.xml index b610408e0da..01f439c69ac 100644 --- a/demos/demo-jetty-webapp/src/main/webapp/WEB-INF/web.xml +++ b/demos/demo-jetty-webapp/src/main/webapp/WEB-INF/web.xml @@ -18,16 +18,6 @@ com.acme.TestListener - - PushFilter - org.eclipse.jetty.servlets.PushCacheFilter - true - - - PushFilter - /* - - QoSFilter org.eclipse.jetty.servlets.QoSFilter From 8587cc9bef60b1546ec148b0e6a9a10be9a8f436 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 24 Oct 2023 09:34:48 -0500 Subject: [PATCH 4/4] More PushCacheFilter deprecation cleanup Signed-off-by: Joakim Erdfelt --- .../gettingstarted/getting-started/jetty-running.adoc | 1 - .../src/main/asciidoc/old_docs/http2/configuring-push.adoc | 2 +- .../org/eclipse/jetty/http2/client/PushCacheFilterTest.java | 4 ++++ jetty-servlets/src/main/config/modules/servlets.mod | 5 +++-- jetty-servlets/src/main/java/module-info.java | 2 +- .../java/org/eclipse/jetty/servlets/PushCacheFilter.java | 2 +- 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/documentation/jetty-documentation/src/main/asciidoc/old_docs/gettingstarted/getting-started/jetty-running.adoc b/documentation/jetty-documentation/src/main/asciidoc/old_docs/gettingstarted/getting-started/jetty-running.adoc index c67eb93d231..11da3b7bccb 100644 --- a/documentation/jetty-documentation/src/main/asciidoc/old_docs/gettingstarted/getting-started/jetty-running.adoc +++ b/documentation/jetty-documentation/src/main/asciidoc/old_docs/gettingstarted/getting-started/jetty-running.adoc @@ -69,7 +69,6 @@ $ cd demo-base/ 2017-09-20 16:23:04.306:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@371a67ec{/async-rest,[file:///private/var/folders/h6/yb_lbnnn11g0y1jjlvqg631h0000gn/T/jetty-0.0.0.0-8080-async-rest.war-_async-rest-any-5319296087878801290.dir/webapp/, jar:file:///private/var/folders/h6/yb_lbnnn11g0y1jjlvqg631h0000gn/T/jetty-0.0.0.0-8080-async-rest.war-_async-rest-any-5319296087878801290.dir/webapp/WEB-INF/lib/example-async-rest-jar-{VERSION}.jar!/META-INF/resources],AVAILABLE}{/async-rest.war} 2017-09-20 16:23:04.429:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=53ms 2017-09-20 16:23:04.432:WARN::main: test webapp is deployed. DO NOT USE IN PRODUCTION! -2017-09-20 16:23:04.511:INFO:oejsh.ManagedAttributeListener:main: update PushFilter null->org.eclipse.jetty.servlets.PushCacheFilter@2362f559 on o.e.j.w.WebAppContext@35e2d654{/test,file:///private/var/folders/h6/yb_lbnnn11g0y1jjlvqg631h0000gn/T/jetty-0.0.0.0-8080-test.war-_test-any-6279588879522983394.dir/webapp/,STARTING}{/test.war} 2017-09-20 16:23:04.516:INFO:oejsh.ManagedAttributeListener:main: update QoSFilter null->org.eclipse.jetty.servlets.QoSFilter@7770f470 on o.e.j.w.WebAppContext@35e2d654{/test,file:///private/var/folders/h6/yb_lbnnn11g0y1jjlvqg631h0000gn/T/jetty-0.0.0.0-8080-test.war-_test-any-6279588879522983394.dir/webapp/,STARTING}{/test.war} 2017-09-20 16:23:04.519:WARN:oeju.DeprecationWarning:main: Using @Deprecated Class org.eclipse.jetty.servlets.MultiPartFilter 2017-09-20 16:23:04.549:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@35e2d654{/test,file:///private/var/folders/h6/yb_lbnnn11g0y1jjlvqg631h0000gn/T/jetty-0.0.0.0-8080-test.war-_test-any-6279588879522983394.dir/webapp/,AVAILABLE}{/test.war} diff --git a/documentation/jetty-documentation/src/main/asciidoc/old_docs/http2/configuring-push.adoc b/documentation/jetty-documentation/src/main/asciidoc/old_docs/http2/configuring-push.adoc index d0611d36e3a..a7d6824c086 100644 --- a/documentation/jetty-documentation/src/main/asciidoc/old_docs/http2/configuring-push.adoc +++ b/documentation/jetty-documentation/src/main/asciidoc/old_docs/http2/configuring-push.adoc @@ -14,7 +14,7 @@ [[http2-configuring-push]] === Configuring HTTP/2 Push -HTTP/2 Push is a mechanism that allows the server to send multiple resources to the client for a single client request. +HTTP/2 Push is a spec deprecated mechanism that allows the server to send multiple resources to the client for a single client request. This will reduce the amount of round-trips necessary to retrieve all the resources that make up a web page and can significantly improve the page load time. HTTP/2 Push can be automated in your application by configuring a link:{JDURL}/org/eclipse/jetty/servlets/PushCacheFilter.html[`PushCacheFilter`] in the `web.xml`, in this way: diff --git a/jetty-http2/http2-client/src/test/java/org/eclipse/jetty/http2/client/PushCacheFilterTest.java b/jetty-http2/http2-client/src/test/java/org/eclipse/jetty/http2/client/PushCacheFilterTest.java index 757783fa441..475c2c20bfa 100644 --- a/jetty-http2/http2-client/src/test/java/org/eclipse/jetty/http2/client/PushCacheFilterTest.java +++ b/jetty-http2/http2-client/src/test/java/org/eclipse/jetty/http2/client/PushCacheFilterTest.java @@ -51,6 +51,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +/** + * @deprecated no replacement for this deprecated http feature (will be removed in Jetty 12) + */ +@Deprecated public class PushCacheFilterTest extends AbstractTest { private String contextPath = "/push"; diff --git a/jetty-servlets/src/main/config/modules/servlets.mod b/jetty-servlets/src/main/config/modules/servlets.mod index dee4a8aa5d2..fece222da3b 100644 --- a/jetty-servlets/src/main/config/modules/servlets.mod +++ b/jetty-servlets/src/main/config/modules/servlets.mod @@ -2,8 +2,9 @@ [description] Adds Jetty utility servlets and filters available to a webapp. -Puts org.eclipse.jetty.servlets on the server classpath (CGI, CrossOriginFilter, DosFilter, -MultiPartFilter, PushCacheFilter, QoSFilter, etc.) for use by all webapplications. +Puts org.eclipse.jetty.servlets on the server classpath +(CrossOriginFilter, DosFilter, MultiPartFilter, QoSFilter, etc.) +for use by all web applications. [depend] servlet diff --git a/jetty-servlets/src/main/java/module-info.java b/jetty-servlets/src/main/java/module-info.java index 06956bb29cf..95152f6fdbe 100644 --- a/jetty-servlets/src/main/java/module-info.java +++ b/jetty-servlets/src/main/java/module-info.java @@ -22,7 +22,7 @@ module org.eclipse.jetty.servlets // Only required if using CloseableDoSFilter. requires static org.eclipse.jetty.io; - // Only required if using DoSFilter, PushCacheFilter, etc. + // Only required if using DoSFilter, IncludeExcludeBasedFilter, etc. requires static org.eclipse.jetty.http; requires static org.eclipse.jetty.server; // Only required if using CrossOriginFilter, DoSFilter, etc. diff --git a/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/PushCacheFilter.java b/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/PushCacheFilter.java index e3da0619a1a..d80e1020779 100644 --- a/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/PushCacheFilter.java +++ b/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/PushCacheFilter.java @@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory; * cache.

*

If the init param useQueryInKey is set, then the query string is used as * as part of the key to identify a resource

- * @deprecated no replacement for this deprecated http feature + * @deprecated no replacement for this deprecated http feature (will be removed in Jetty 12) */ @Deprecated @ManagedObject("Push cache based on the HTTP 'Referer' header")