From 4a4a73df2eee9140f39d1173aaedf69ea51b706a Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Thu, 22 Oct 2020 16:48:27 +0200 Subject: [PATCH] Fixes #5488 - jetty-dir.css not found when using JPMS. Moved jetty-dir.css from jetty-util to jetty-server, so that it can be found by ResourceHandler when using JPMS. Updated DefaultServlet to call a ResourceHandler method to retrieve the stylesheet. Signed-off-by: Simone Bordet --- .../org/eclipse/jetty/server/handler/ResourceHandler.java | 7 ++++++- .../src/main/resources/jetty-dir.css | 0 .../java/org/eclipse/jetty/servlet/DefaultServlet.java | 3 ++- .../eclipse/jetty/tests/distribution/DemoBaseTests.java | 7 +++++-- 4 files changed, 13 insertions(+), 4 deletions(-) rename {jetty-util => jetty-server}/src/main/resources/jetty-dir.css (100%) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ResourceHandler.java b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ResourceHandler.java index ee3000488725..49ae8e06a980 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ResourceHandler.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ResourceHandler.java @@ -226,12 +226,17 @@ public Resource getStylesheet() { if (_defaultStylesheet == null) { - _defaultStylesheet = Resource.newResource(this.getClass().getResource("/jetty-dir.css")); + _defaultStylesheet = getDefaultStylesheet(); } return _defaultStylesheet; } } + public static Resource getDefaultStylesheet() + { + return Resource.newResource(ResourceHandler.class.getResource("/jetty-dir.css")); + } + public String[] getWelcomeFiles() { return _welcomes; diff --git a/jetty-util/src/main/resources/jetty-dir.css b/jetty-server/src/main/resources/jetty-dir.css similarity index 100% rename from jetty-util/src/main/resources/jetty-dir.css rename to jetty-server/src/main/resources/jetty-dir.css diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java index f242949cf74f..b84618b67ca8 100644 --- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java +++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java @@ -41,6 +41,7 @@ import org.eclipse.jetty.server.ResourceService; import org.eclipse.jetty.server.ResourceService.WelcomeFactory; import org.eclipse.jetty.server.handler.ContextHandler; +import org.eclipse.jetty.server.handler.ResourceHandler; import org.eclipse.jetty.util.URIUtil; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; @@ -223,7 +224,7 @@ public void init() } if (_stylesheet == null) { - _stylesheet = Resource.newResource(this.getClass().getResource("/jetty-dir.css")); + _stylesheet = ResourceHandler.getDefaultStylesheet(); } } catch (Exception e) diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DemoBaseTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DemoBaseTests.java index b5fb2eaf69f0..57956fdc1e78 100644 --- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DemoBaseTests.java +++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DemoBaseTests.java @@ -202,8 +202,11 @@ public void testJPMS() throws Exception assertTrue(run.awaitConsoleLogsFor("Started @", 10, TimeUnit.SECONDS)); startHttpClient(); - ContentResponse response = client.GET("http://localhost:" + httpPort + "/test/hello"); - assertEquals(HttpStatus.OK_200, response.getStatus()); + ContentResponse helloResponse = client.GET("http://localhost:" + httpPort + "/test/hello"); + assertEquals(HttpStatus.OK_200, helloResponse.getStatus()); + + ContentResponse cssResponse = client.GET("http://localhost:" + httpPort + "/jetty-dir.css"); + assertEquals(HttpStatus.OK_200, cssResponse.getStatus()); } }