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 5ceeb05087 FELIX-6621 : Regressions caused by FELIX-6607
5ceeb05087 is described below

commit 5ceeb05087cc05545cc772b72eeb4bf35c25cca4
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Sun Jul 30 18:46:51 2023 +0200

    FELIX-6621 : Regressions caused by FELIX-6607
---
 .../webconsole/internal/servlet/OsgiManager.java   |  2 +-
 .../felix/webconsole/internal/servlet/Plugin.java  | 18 ++----------------
 .../webconsole/internal/servlet/PluginHolder.java  | 22 +++++++---------------
 3 files changed, 10 insertions(+), 32 deletions(-)

diff --git 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
index f0497cc9fb..b122e1146d 100644
--- 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
+++ 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
@@ -230,7 +230,7 @@ public class OsgiManager extends GenericServlet
 
     private PluginHolder holder;
 
-    private ServiceTracker brandingTracker;
+    private ServiceTracker<BrandingPlugin, BrandingPlugin> brandingTracker;
 
     private ServiceTracker<WebConsoleSecurityProvider, 
WebConsoleSecurityProvider> securityProviderTracker;
 
diff --git 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/Plugin.java
 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/Plugin.java
index 106271977d..0b63c792f8 100644
--- 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/Plugin.java
+++ 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/Plugin.java
@@ -119,26 +119,12 @@ public abstract class Plugin implements ServletConfig, 
Comparable<Plugin> {
         return label;
     }
 
-    protected void setTitle( String title ) {
+    protected void setTitle(final String title ) {
         this.title = title;
     }
 
     public String getTitle() {
-        if ( this.title == null ) {
-            final String v = this.doGetTitle();
-            this.title = ( v == null ) ? this.label : v;
-        }
-        return this.title;
-    }
-
-    protected String doGetTitle() {
-        // get the service now
-        final AbstractWebConsolePlugin plugin = this.getConsolePlugin();
-
-        // reset the title:
-        // - null if the servlet cannot be loaded
-        // - to the servlet's actual title if the servlet is loaded
-        return ( plugin != null ) ? plugin.getTitle() : null;
+        return this.title != null ? this.title : this.getLabel();
     }
 
     // methods added to support categories
diff --git 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/PluginHolder.java
 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/PluginHolder.java
index 7fb3833dec..e428130f6e 100644
--- 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/PluginHolder.java
+++ 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/PluginHolder.java
@@ -401,21 +401,6 @@ class PluginHolder implements 
ServiceTrackerCustomizer<Servlet, Plugin> {
             return this.getServiceReference().toString();
         }
 
-        protected String doGetTitle() {
-            // check service Reference
-            final String title = getProperty( this.getServiceReference(), 
WebConsoleConstants.PLUGIN_TITLE );
-            if ( title != null ) {
-                return title;
-            }
-
-            // temporarily set the title to a non-null value to prevent
-            // recursion issues if this method or the getServletName
-            // method is called while the servlet is being acquired
-            setTitle(getLabel());
-
-            return super.doGetTitle();
-        }
-
         // added to support categories
         protected String doGetCategory() {
             // check service Reference
@@ -430,12 +415,18 @@ class PluginHolder implements 
ServiceTrackerCustomizer<Servlet, Plugin> {
         protected AbstractWebConsolePlugin doGetConsolePlugin() {
             final Servlet service = getHolder().getBundleContext().getService( 
this.getServiceReference() );
             if ( service != null ) {
+                String title = null;
                 final AbstractWebConsolePlugin servlet;
                 if ( service instanceof AbstractWebConsolePlugin ) {
                     servlet = ( AbstractWebConsolePlugin ) service;
+                    title = servlet.getTitle();
                 } else {
                     servlet = new WebConsolePluginAdapter( getLabel(), 
service, this.getServiceReference() );
                 }
+                if (title == null) {
+                    title = getProperty( this.getServiceReference(), 
WebConsoleConstants.PLUGIN_TITLE );
+                }
+                this.setTitle(title);
 
                 return servlet;
             }
@@ -520,6 +511,7 @@ class PluginHolder implements 
ServiceTrackerCustomizer<Servlet, Plugin> {
                 if (plugin instanceof OsgiManagerPlugin) {
                     ((OsgiManagerPlugin) 
plugin).activate(osgiManager.getBundleContext());
                 }
+                this.setTitle(plugin.getTitle());
                 doLog = true; // reset logging if it succeeded
             } catch (final Throwable t) {
                 plugin = null; // in case only activate has faled!

Reply via email to