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;
         }

Reply via email to