This is an automated email from the ASF dual-hosted git repository.
cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git
The following commit(s) were added to refs/heads/master by this push:
new c9f3a1112d FELIX-6626 : Support jakarta servlet registration
c9f3a1112d is described below
commit c9f3a1112d964c34896af720d8637f9f3a6632da
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Tue Aug 22 12:55:16 2023 +0200
FELIX-6626 : Support jakarta servlet registration
---
webconsole/pom.xml | 4 +++-
.../webconsole/internal/servlet/JakartaServletTracker.java | 14 +++++++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/webconsole/pom.xml b/webconsole/pom.xml
index 7b3e7ed916..81aec2e835 100644
--- a/webconsole/pom.xml
+++ b/webconsole/pom.xml
@@ -121,6 +121,7 @@
!jakarta.servlet,
!jakarta.servlet.http,
!org.apache.felix.http.javaxwrappers,
+ !org.apache.felix.http.jakartawrappers,
!org.apache.felix.bundlerepository,
!org.osgi.service.obr,
!org.osgi.service.cm,
@@ -145,7 +146,8 @@
org.osgi.service.wireadmin;version="[1.0,2)",
jakarta.servlet;version="[5,6)",
jakarta.servlet.http;version="[5,6)",
- org.apache.felix.http.javaxwrappers;version="[4,6)"
+
org.apache.felix.http.javaxwrappers;version="[1,2)",
+
org.apache.felix.http.jakartawrappers;version="[1,2)"
</DynamicImport-Package>
<Embed-Dependency>
org.apache.felix.utils;inline=org/apache/felix/utils/manifest/**,
diff --git
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/JakartaServletTracker.java
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/JakartaServletTracker.java
index b0e1a140a1..7a9445a311 100644
---
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/JakartaServletTracker.java
+++
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/JakartaServletTracker.java
@@ -20,6 +20,7 @@ package org.apache.felix.webconsole.internal.servlet;
import java.io.Closeable;
+import java.net.URL;
import org.apache.felix.http.javaxwrappers.ServletWrapper;
import org.apache.felix.webconsole.WebConsoleConstants;
@@ -98,7 +99,18 @@ public class JakartaServletTracker implements Closeable,
ServiceTrackerCustomize
if ( servlet instanceof AbstractServlet ) {
return new JakartaServletAdapter((AbstractServlet)servlet,
this.getServiceReference());
}
- return new ServletWrapper(servlet);
+ final String prefix = "/".concat(this.getLabel());
+ final String resStart = prefix.concat("/res/");
+ return new ServletWrapper(servlet) {
+
+ @SuppressWarnings("unused")
+ public URL getResource(String path) {
+ if (path != null && path.startsWith(resStart)) {
+ return
servlet.getClass().getResource(path.substring(prefix.length()));
+ }
+ return null;
+ }
+ };
}
return null;
}