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 e0ea7186d3 FELIX-6631 : Migrate webconsole plugins to jakarta.servlet
api
e0ea7186d3 is described below
commit e0ea7186d372bdf77555bfb395c41c38f4d50a4b
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Tue Aug 22 08:04:43 2023 +0200
FELIX-6631 : Migrate webconsole plugins to jakarta.servlet api
---
webconsole-plugins/obr/pom.xml | 30 ++++----
.../AbstractBundleRepositoryRenderHelper.java | 12 ++--
.../webconsole/plugins/obr/internal/Activator.java | 11 ++-
.../FelixBundleRepositoryRenderHelper.java | 16 ++---
.../plugins/obr/internal/FelixDeployer.java | 23 +++---
.../internal/OsgiBundleRepositoryRenderHelper.java | 14 ++--
.../plugins/obr/internal/OsgiDeployer.java | 34 ++++-----
.../plugins/obr/internal/WebConsolePlugin.java | 84 +++++++++++++---------
8 files changed, 121 insertions(+), 103 deletions(-)
diff --git a/webconsole-plugins/obr/pom.xml b/webconsole-plugins/obr/pom.xml
index d7fac0e4e3..65364f8bfb 100644
--- a/webconsole-plugins/obr/pom.xml
+++ b/webconsole-plugins/obr/pom.xml
@@ -33,6 +33,10 @@
<url>https://gitbox.apache.org/repos/asf?p=felix-dev.git</url>
</scm>
+ <properties>
+ <felix.java.version>11</felix.java.version>
+ </properties>
+
<build>
<plugins>
<!-- translate UTF-8 encoded properties files to
ISO-8859-1 -->
@@ -55,7 +59,7 @@
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
- <version>3.2.0</version>
+ <version>5.1.9</version>
<extensions>true</extensions>
<configuration>
<instructions>
@@ -96,33 +100,33 @@
<dependencies>
<dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.4</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- <version>4.1.0</version>
+ <artifactId>osgi.core</artifactId>
+ <version>6.0.0</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.utils</artifactId>
- <version>1.9.0</version>
+ <version>1.11.8</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.webconsole</artifactId>
- <version>3.0.0</version>
+ <version>4.8.13-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
diff --git
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/AbstractBundleRepositoryRenderHelper.java
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/AbstractBundleRepositoryRenderHelper.java
index 9e0b5f212e..c1bf8c0a28 100644
---
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/AbstractBundleRepositoryRenderHelper.java
+++
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/AbstractBundleRepositoryRenderHelper.java
@@ -21,25 +21,25 @@ package org.apache.felix.webconsole.plugins.obr.internal;
import java.io.IOException;
-import javax.servlet.ServletException;
-import org.apache.felix.webconsole.AbstractWebConsolePlugin;
+import jakarta.servlet.ServletException;
+
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
abstract class AbstractBundleRepositoryRenderHelper
{
- protected final AbstractWebConsolePlugin logger;
+ protected final Logger logger = LoggerFactory.getLogger(this.getClass());
private final ServiceTracker repositoryAdmin;
- protected AbstractBundleRepositoryRenderHelper( final
AbstractWebConsolePlugin logger,
- final BundleContext bundleContext, final String serviceName )
+ protected AbstractBundleRepositoryRenderHelper( final BundleContext
bundleContext, final String serviceName )
{
- this.logger = logger;
this.repositoryAdmin = new ServiceTracker( bundleContext, serviceName,
null );
this.repositoryAdmin.open();
}
diff --git
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/Activator.java
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/Activator.java
index 0a5338058f..3d0a52a6f6 100644
---
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/Activator.java
+++
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/Activator.java
@@ -16,7 +16,6 @@
*/
package org.apache.felix.webconsole.plugins.obr.internal;
-import org.apache.felix.webconsole.SimpleWebConsolePlugin;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
@@ -34,7 +33,7 @@ public class Activator implements BundleActivator,
ServiceTrackerCustomizer, Con
private ServiceTracker tracker;
private BundleContext context;
- private SimpleWebConsolePlugin plugin;
+ private WebConsolePlugin plugin;
/**
* @see
org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
@@ -76,10 +75,10 @@ public class Activator implements BundleActivator,
ServiceTrackerCustomizer, Con
*/
public final Object addingService(ServiceReference reference)
{
- SimpleWebConsolePlugin plugin = this.plugin;
+ WebConsolePlugin plugin = this.plugin;
if (plugin == null)
{
- this.plugin = plugin = new WebConsolePlugin().register(context);
+ this.plugin = new WebConsolePlugin().register(context);
}
return context.getService(reference);
@@ -91,11 +90,11 @@ public class Activator implements BundleActivator,
ServiceTrackerCustomizer, Con
*/
public final void removedService(ServiceReference reference, Object
service)
{
- SimpleWebConsolePlugin plugin = this.plugin;
+ WebConsolePlugin plugin = this.plugin;
if (tracker.getTrackingCount() == 0 && plugin != null)
{
- plugin.unregister();
+ plugin.deactivate();
this.plugin = null;
}
diff --git
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/FelixBundleRepositoryRenderHelper.java
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/FelixBundleRepositoryRenderHelper.java
index ba5aaa0f4f..b54317b236 100644
---
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/FelixBundleRepositoryRenderHelper.java
+++
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/FelixBundleRepositoryRenderHelper.java
@@ -22,7 +22,7 @@ package org.apache.felix.webconsole.plugins.obr.internal;
import java.io.IOException;
import java.io.StringWriter;
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
import org.apache.felix.bundlerepository.Capability;
import org.apache.felix.bundlerepository.Property;
@@ -33,7 +33,7 @@ import org.apache.felix.bundlerepository.Requirement;
import org.apache.felix.bundlerepository.Resolver;
import org.apache.felix.bundlerepository.Resource;
import org.apache.felix.utils.json.JSONWriter;
-import org.apache.felix.webconsole.AbstractWebConsolePlugin;
+import org.apache.felix.webconsole.servlet.AbstractServlet;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.InvalidSyntaxException;
@@ -47,9 +47,9 @@ import org.osgi.framework.Version;
class FelixBundleRepositoryRenderHelper extends
AbstractBundleRepositoryRenderHelper
{
- FelixBundleRepositoryRenderHelper( AbstractWebConsolePlugin logger,
BundleContext bundleContext )
+ FelixBundleRepositoryRenderHelper( BundleContext bundleContext )
{
- super( logger, bundleContext, RepositoryAdmin.class.getName() );
+ super( bundleContext, RepositoryAdmin.class.getName() );
}
@@ -105,11 +105,11 @@ class FelixBundleRepositoryRenderHelper extends
AbstractBundleRepositoryRenderHe
}
catch ( IOException e )
{
- logger.log( "Failed to serialize repository to JSON object.",
e );
+ logger.info( "Failed to serialize repository to JSON object.",
e );
}
catch ( Exception e )
{
- logger.log( "Failed to parse filter '" + filter + "'", e );
+ logger.info( "Failed to parse filter '" + filter + "'", e );
try
{
String reason = "filter=" + filter;
@@ -178,7 +178,7 @@ class FelixBundleRepositoryRenderHelper extends
AbstractBundleRepositoryRenderHe
// check whether we have to do something
if ( bundles == null || bundles.length == 0 )
{
- logger.log( "No resources to deploy" );
+ logger.info( "No resources to deploy" );
return;
}
@@ -202,7 +202,7 @@ class FelixBundleRepositoryRenderHelper extends
AbstractBundleRepositoryRenderHe
}
}
- FelixDeployer.deploy( resolver, logger, start, optional );
+ FelixDeployer.deploy( resolver, start, optional );
}
catch ( InvalidSyntaxException e )
{
diff --git
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/FelixDeployer.java
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/FelixDeployer.java
index bfed872bf9..06db7b228a 100644
---
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/FelixDeployer.java
+++
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/FelixDeployer.java
@@ -22,8 +22,8 @@ package org.apache.felix.webconsole.plugins.obr.internal;
import org.apache.felix.bundlerepository.Reason;
import org.apache.felix.bundlerepository.Resolver;
import org.apache.felix.bundlerepository.Resource;
-import org.apache.felix.webconsole.AbstractWebConsolePlugin;
-import org.osgi.service.log.LogService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
class FelixDeployer implements Runnable
@@ -31,25 +31,24 @@ class FelixDeployer implements Runnable
private final Resolver obrResolver;
- private final AbstractWebConsolePlugin logger;
+ private final Logger logger = LoggerFactory.getLogger( getClass() );
private final boolean startBundles;
private final boolean optionalDependencies;
- static void deploy(Resolver obrResolver, AbstractWebConsolePlugin logger,
boolean startBundles,
+ static void deploy(Resolver obrResolver, boolean startBundles,
boolean optionalDependencies)
{
- final FelixDeployer d = new FelixDeployer(obrResolver, logger,
startBundles, optionalDependencies);
+ final FelixDeployer d = new FelixDeployer(obrResolver, startBundles,
optionalDependencies);
final Thread t = new Thread(d, "OBR Bundle Deployer (Apache Felix
API)");
t.start();
}
- private FelixDeployer(Resolver obrResolver, AbstractWebConsolePlugin
logger, boolean startBundles,
+ private FelixDeployer(Resolver obrResolver, boolean startBundles,
boolean optionalDependencies)
{
this.obrResolver = obrResolver;
- this.logger = logger;
this.startBundles = startBundles;
this.optionalDependencies = optionalDependencies;
}
@@ -78,7 +77,7 @@ class FelixDeployer implements Runnable
}
catch ( Exception ie )
{
- logger.log( LogService.LOG_ERROR, "Cannot install bundles", ie );
+ logger.error( "Cannot install bundles", ie );
}
}
@@ -87,10 +86,10 @@ class FelixDeployer implements Runnable
{
if ( res != null && res.length > 0 )
{
- logger.log( LogService.LOG_INFO, message );
+ logger.info( message );
for ( int i = 0; i < res.length; i++ )
{
- logger.log( LogService.LOG_INFO, " " + i + ": " +
res[i].getSymbolicName() + ", "
+ logger.info( " " + i + ": " + res[i].getSymbolicName() + ", "
+ res[i].getVersion() );
}
}
@@ -99,7 +98,7 @@ class FelixDeployer implements Runnable
private void logRequirements( String message, Reason[] reasons )
{
- logger.log( LogService.LOG_ERROR, message );
+ logger.error( message );
for ( int i = 0; reasons != null && i < reasons.length; i++ )
{
String moreInfo = reasons[i].getRequirement().getComment();
@@ -107,7 +106,7 @@ class FelixDeployer implements Runnable
{
moreInfo = reasons[i].getRequirement().getFilter().toString();
}
- logger.log( LogService.LOG_ERROR, " " + i + ": " +
reasons[i].getRequirement().getName() + " (" + moreInfo + ")" );
+ logger.error( " " + i + ": " +
reasons[i].getRequirement().getName() + " (" + moreInfo + ")" );
}
}
diff --git
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/OsgiBundleRepositoryRenderHelper.java
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/OsgiBundleRepositoryRenderHelper.java
index 69f913edae..290bf5ff41 100644
---
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/OsgiBundleRepositoryRenderHelper.java
+++
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/OsgiBundleRepositoryRenderHelper.java
@@ -26,7 +26,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
import org.apache.felix.utils.json.JSONWriter;
import org.apache.felix.webconsole.AbstractWebConsolePlugin;
@@ -48,9 +48,9 @@ import org.osgi.service.obr.Resource;
class OsgiBundleRepositoryRenderHelper extends
AbstractBundleRepositoryRenderHelper
{
- OsgiBundleRepositoryRenderHelper( final AbstractWebConsolePlugin logger,
final BundleContext bundleContext )
+ OsgiBundleRepositoryRenderHelper( final BundleContext bundleContext )
{
- super( logger, bundleContext, RepositoryAdmin.class.getName() );
+ super( bundleContext, RepositoryAdmin.class.getName() );
}
@@ -104,11 +104,11 @@ class OsgiBundleRepositoryRenderHelper extends
AbstractBundleRepositoryRenderHel
}
catch ( IOException e )
{
- logger.log( "Failed to serialize repository to JSON object.",
e );
+ logger.error( "Failed to serialize repository to JSON
object.", e );
}
catch ( Exception e )
{
- logger.log( "Failed to parse filter '" + filter + "'", e );
+ logger.error( "Failed to parse filter '" + filter + "'", e );
try
{
String reason = "filter=" + filter;
@@ -175,7 +175,7 @@ class OsgiBundleRepositoryRenderHelper extends
AbstractBundleRepositoryRenderHel
// check whether we have to do something
if ( bundles == null || bundles.length == 0 )
{
- logger.log( "No resources to deploy" );
+ logger.info( "No resources to deploy" );
return;
}
@@ -199,7 +199,7 @@ class OsgiBundleRepositoryRenderHelper extends
AbstractBundleRepositoryRenderHel
}
}
- OsgiDeployer.deploy( resolver, logger, start );
+ OsgiDeployer.deploy( resolver, start );
}
diff --git
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/OsgiDeployer.java
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/OsgiDeployer.java
index e20da6f859..e585585d9a 100644
---
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/OsgiDeployer.java
+++
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/OsgiDeployer.java
@@ -20,10 +20,11 @@ package org.apache.felix.webconsole.plugins.obr.internal;
import org.apache.felix.webconsole.AbstractWebConsolePlugin;
-import org.osgi.service.log.LogService;
import org.osgi.service.obr.Requirement;
import org.osgi.service.obr.Resolver;
import org.osgi.service.obr.Resource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
class OsgiDeployer implements Runnable
@@ -31,21 +32,20 @@ class OsgiDeployer implements Runnable
private final Resolver obrResolver;
- private final AbstractWebConsolePlugin logger;
+ private final static Logger logger = LoggerFactory.getLogger(
OsgiDeployer.class );
private final boolean startBundles;
- OsgiDeployer( Resolver obrResolver, AbstractWebConsolePlugin logger,
boolean startBundles )
+ OsgiDeployer( Resolver obrResolver, boolean startBundles )
{
this.obrResolver = obrResolver;
- this.logger = logger;
this.startBundles = startBundles;
}
- static void deploy( Resolver obrResolver, AbstractWebConsolePlugin logger,
boolean startBundles )
+ static void deploy( Resolver obrResolver, boolean startBundles )
{
- final OsgiDeployer d = new OsgiDeployer( obrResolver, logger,
startBundles );
+ final OsgiDeployer d = new OsgiDeployer( obrResolver, startBundles );
final Thread t = new Thread( d, "OBR Bundle Deployer (OSGi API)" );
t.start();
}
@@ -60,42 +60,42 @@ class OsgiDeployer implements Runnable
if ( obrResolver.resolve() )
{
- logResource( logger, "Installing Requested Resources",
obrResolver.getAddedResources() );
- logResource( logger, "Installing Required Resources",
obrResolver.getRequiredResources() );
- logResource( logger, "Installing Optional Resources",
obrResolver.getOptionalResources() );
+ logResource( "Installing Requested Resources",
obrResolver.getAddedResources() );
+ logResource( "Installing Required Resources",
obrResolver.getRequiredResources() );
+ logResource( "Installing Optional Resources",
obrResolver.getOptionalResources() );
obrResolver.deploy( startBundles );
}
else
{
- logRequirements( logger, "Cannot Install requested bundles due
to unsatisfied requirements",
+ logRequirements( "Cannot Install requested bundles due to
unsatisfied requirements",
obrResolver.getUnsatisfiedRequirements() );
}
}
catch ( Exception ie )
{
- logger.log( LogService.LOG_ERROR, "Cannot install bundles", ie );
+ logger.error( "Cannot install bundles", ie );
}
}
- public static void logResource( AbstractWebConsolePlugin logger, String
message, Resource[] res )
+ public static void logResource( String message, Resource[] res )
{
if ( res != null && res.length > 0 )
{
- logger.log( LogService.LOG_INFO, message );
+ logger.info( message );
for ( int i = 0; i < res.length; i++ )
{
- logger.log( LogService.LOG_INFO, " " + i + ": " +
res[i].getSymbolicName() + ", "
+ logger.info( " " + i + ": " + res[i].getSymbolicName() + ", "
+ res[i].getVersion() );
}
}
}
- public static void logRequirements( AbstractWebConsolePlugin logger,
String message, Requirement[] reasons )
+ public static void logRequirements( String message, Requirement[] reasons )
{
- logger.log( LogService.LOG_ERROR, message );
+ logger.error( message );
for ( int i = 0; reasons != null && i < reasons.length; i++ )
{
String moreInfo = reasons[i].getComment();
@@ -103,7 +103,7 @@ class OsgiDeployer implements Runnable
{
moreInfo = reasons[i].getFilter().toString();
}
- logger.log( LogService.LOG_ERROR, " " + i + ": " +
reasons[i].getName() + " (" + moreInfo + ")" );
+ logger.error( " " + i + ": " + reasons[i].getName() + " (" +
moreInfo + ")" );
}
}
diff --git
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/WebConsolePlugin.java
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/WebConsolePlugin.java
index ef1b85bf9c..cef9b1025c 100644
---
a/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/WebConsolePlugin.java
+++
b/webconsole-plugins/obr/src/main/java/org/apache/felix/webconsole/plugins/obr/internal/WebConsolePlugin.java
@@ -20,22 +20,30 @@ package org.apache.felix.webconsole.plugins.obr.internal;
import java.io.IOException;
+import java.net.URLDecoder;
+import java.nio.charset.StandardCharsets;
+import java.util.Dictionary;
import java.util.Enumeration;
+import java.util.Hashtable;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
-import org.apache.felix.webconsole.DefaultVariableResolver;
-import org.apache.felix.webconsole.SimpleWebConsolePlugin;
-import org.apache.felix.webconsole.WebConsoleUtil;
+import org.apache.felix.webconsole.servlet.AbstractServlet;
+import org.apache.felix.webconsole.servlet.RequestVariableResolver;
+import org.apache.felix.webconsole.servlet.ServletConstants;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+import jakarta.servlet.Servlet;
/**
* This class provides a plugin for rendering the available OSGi Bundle
Repositories
* and the resources they provide.
*/
-class WebConsolePlugin extends SimpleWebConsolePlugin
+class WebConsolePlugin extends AbstractServlet
{
private static final String LABEL = "obr"; //$NON-NLS-1$
private static final String TITLE = "%obr.pluginTitle"; //$NON-NLS-1$
@@ -47,56 +55,64 @@ class WebConsolePlugin extends SimpleWebConsolePlugin
private AbstractBundleRepositoryRenderHelper helper;
+ private ServiceRegistration<Servlet> registration;
+
+ private BundleContext bundleContext;
/**
*
*/
public WebConsolePlugin()
{
- super( LABEL, TITLE, CSS );
-
// load templates
- TEMPLATE = readTemplateFile("/res/plugin.html"); //$NON-NLS-1$
+ try {
+ TEMPLATE = readTemplateFile("/res/plugin.html");
+ } catch (IOException e) {
+ throw new RuntimeException("Unable to read template");
+ }
}
+ public WebConsolePlugin register(final BundleContext context) {
+ this.bundleContext = context;
+ final Dictionary<String, Object> props = new Hashtable<>();
+ props.put(ServletConstants.PLUGIN_LABEL, LABEL);
+ props.put(ServletConstants.PLUGIN_TITLE, TITLE);
+ props.put(ServletConstants.PLUGIN_CATEGORY, CATEGORY);
+ props.put(ServletConstants.PLUGIN_CSS_REFERENCES, CSS);
- public String getCategory()
- {
- return CATEGORY;
+ this.registration = context.registerService(Servlet.class, this,
props);
+ return this;
}
-
- /**
- * @see org.apache.felix.webconsole.SimpleWebConsolePlugin#deactivate()
- */
public void deactivate()
{
+ if (this.registration != null) {
+ try {
+ this.registration.unregister();
+ } catch ( final IllegalStateException ignore) {
+ // ignore
+ }
+ this.registration = null;
+ }
if ( helper != null )
{
helper.dispose();
helper = null;
}
-
- super.deactivate();
}
-
- /**
- * @see
org.apache.felix.webconsole.AbstractWebConsolePlugin#renderContent(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse)
- */
- protected void renderContent( HttpServletRequest request,
HttpServletResponse response ) throws IOException
+ @Override
+ public void renderContent( HttpServletRequest request, HttpServletResponse
response ) throws IOException
{
// prepare variables
- DefaultVariableResolver vars = ( ( DefaultVariableResolver )
WebConsoleUtil.getVariableResolver( request ) );
- vars.put( "__data__", getData( request ) ); //$NON-NLS-1$
+ RequestVariableResolver vars = this.getVariableResolver(request);
+ vars.put( "__data__", getData( request ) );
response.getWriter().print( TEMPLATE );
}
- /**
- * @see
javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse)
- */
+ @Override
protected void doPost( HttpServletRequest request, HttpServletResponse
response ) throws ServletException,
IOException
{
@@ -135,7 +151,7 @@ class WebConsolePlugin extends SimpleWebConsolePlugin
{
try
{
- helper = new FelixBundleRepositoryRenderHelper( this,
getBundleContext() );
+ helper = new FelixBundleRepositoryRenderHelper(
this.bundleContext );
}
catch ( Throwable felixt )
{
@@ -143,7 +159,7 @@ class WebConsolePlugin extends SimpleWebConsolePlugin
try
{
- helper = new OsgiBundleRepositoryRenderHelper( this,
getBundleContext() );
+ helper = new OsgiBundleRepositoryRenderHelper(
this.bundleContext );
}
catch ( Throwable osgit )
{
@@ -238,7 +254,7 @@ class WebConsolePlugin extends SimpleWebConsolePlugin
}
}
- return helper.getData( filter, info.showDetails(),
getBundleContext().getBundles() );
+ return helper.getData( filter, info.showDetails(),
this.bundleContext.getBundles() );
}
@@ -287,7 +303,7 @@ class WebConsolePlugin extends SimpleWebConsolePlugin
{
if ( query == null )
{
- String query = WebConsoleUtil.urlDecode( request.getParameter(
"query" ) ); //$NON-NLS-1$
+ String query = URLDecoder.decode( request.getParameter(
"query" ), StandardCharsets.UTF_8 ); //$NON-NLS-1$
boolean details = false;
if ( query == null && request.getPathInfo().length() > 5 )
{
@@ -318,7 +334,7 @@ class WebConsolePlugin extends SimpleWebConsolePlugin
{
if ( list == null )
{
- list = WebConsoleUtil.urlDecode( request.getParameter( "list"
) ); //$NON-NLS-1$
+ list = URLDecoder.decode( request.getParameter( "list" ),
StandardCharsets.UTF_8 ); //$NON-NLS-1$
if ( list == null &&
!request.getParameterNames().hasMoreElements() && getQuery() == null )
{
list = "a"; //$NON-NLS-1$