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
commit ab71607eccb28e786b64fafbad76a1a2c6f02fdd Author: Carsten Ziegeler <[email protected]> AuthorDate: Fri Sep 1 09:49:00 2023 +0200 FELIX-6646 : Plugin registered using AbstractServlet renders a blank page. --- .../internal/servlet/JakartaServletAdapter.java | 3 ++- .../apache/felix/webconsole/servlet/AbstractServlet.java | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/JakartaServletAdapter.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/JakartaServletAdapter.java index e5b14f297f..c25883f0de 100644 --- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/JakartaServletAdapter.java +++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/JakartaServletAdapter.java @@ -43,6 +43,7 @@ import org.osgi.framework.ServiceReference; * {@link org.apache.felix.webconsole.WebConsoleConstants#PLUGIN_TITLE} * service attribute using jakarta.servlet.Servlet */ +@SuppressWarnings("deprecation") public class JakartaServletAdapter extends AbstractWebConsolePlugin { /** serial UID */ @@ -220,7 +221,7 @@ public class JakartaServletAdapter extends AbstractWebConsolePlugin { } catch (final jakarta.servlet.ServletException s) { throw ServletExceptionUtil.getServletException(s); } - // if a GET request and plugin did not create a response yet, call super to get full HTML response + // if a plugin did not create a response yet, call doGet to get a response if ( !checkResponse.isDone()) { this.doGet( req, resp ); } diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/servlet/AbstractServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/servlet/AbstractServlet.java index 429a66bc6d..71a848f359 100644 --- a/webconsole/src/main/java/org/apache/felix/webconsole/servlet/AbstractServlet.java +++ b/webconsole/src/main/java/org/apache/felix/webconsole/servlet/AbstractServlet.java @@ -44,11 +44,24 @@ import jakarta.servlet.http.HttpServletResponse; * requests to resources with a path of "LABEL/res/*" are automatically * handled. * <p> - * For html (content) requests, the web console automatically draws the header, + * For html (content) requests, the web console automatically renders the header, * footer and navigation. * <p> * Support for Jakarta servlets requires that the Jakarta Servlet API and the * Apache Felix Http Wrappers are available in the runtime. + * <p> + * If you are upgrading from {@link org.apache.felix.webconsole.AbstractWebConsolePlugin} + * there are some changes to be aware of: + * <ul> + * <li>Resources are detected via the {@link #getResource(String)} method.</li> + * <li>Regardless of the http method, if the corresponding doXXX method does not create + * a response, the {@link #renderContent(HttpServletRequest, HttpServletResponse)} + * method is invoked.</li> + * <li>If a doXXX method other than doGet wants to create a response, it must not call + * doGet or renderContent directly. It rather just does not create any response and + * returns. In this case the web console will invoke the renderContent method + * afterwards.</li> + * </ul> * * @see ServletConstants#PLUGIN_LABEL * @see ServletConstants#PLUGIN_TITLE
