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!