FELIX-3283 Use generics
- add animal sniffer plugin to ensure not using non-Java 1.4 API
- Add generics everywhere
- convert traditional collection loops to foreach loops
- Update exported package version to 3.1.4 because of changed code
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1215540 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/webconsole/pom.xml b/webconsole/pom.xml
index 2c51ed9..45708fa 100644
--- a/webconsole/pom.xml
+++ b/webconsole/pom.xml
@@ -81,6 +81,7 @@
</execution>
</executions>
</plugin>
+ <!-- Allow certain Java 5 features, generate Java 1.4 class files -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
@@ -88,6 +89,27 @@
<target>jsr14</target>
</configuration>
</plugin>
+ <!-- Make sure to not use non Java 1.4 API -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>animal-sniffer-maven-plugin</artifactId>
+ <version>1.7</version>
+ <configuration>
+ <signature>
+ <groupId>org.codehaus.mojo.signature</groupId>
+ <artifactId>java14</artifactId>
+ <version>1.0</version>
+ </signature>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java b/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
index 2e998dd..eb4868d 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
@@ -22,6 +22,7 @@
import java.net.URL;
import java.net.URLConnection;
import java.util.*;
+import java.util.Map.Entry;
import javax.servlet.ServletException;
import javax.servlet.http.*;
@@ -172,7 +173,7 @@
* @param request the original request passed from the HTTP server
* @return <code>true</code> if the page should have headers and footers rendered
*/
- protected boolean isHtmlRequest( final HttpServletRequest request )
+ protected boolean isHtmlRequest( @SuppressWarnings("unused") final HttpServletRequest request )
{
return true;
}
@@ -335,7 +336,7 @@
{
try
{
- Class cl = resourceProvider.getClass();
+ Class<?> cl = resourceProvider.getClass();
while ( tmpGetResourceMethod == null && cl != Object.class )
{
Method[] methods = cl.getDeclaredMethods();
@@ -590,15 +591,14 @@
boolean disabled = false;
String appRoot = ( String ) request.getAttribute( WebConsoleConstants.ATTR_APP_ROOT );
- Map labelMap = ( Map ) request.getAttribute( WebConsoleConstants.ATTR_LABEL_MAP );
+ @SuppressWarnings("unchecked")
+ Map<String, String> labelMap = ( Map<String, String> ) request.getAttribute( WebConsoleConstants.ATTR_LABEL_MAP );
if ( labelMap != null )
{
// prepare the navigation
- SortedMap map = new TreeMap( String.CASE_INSENSITIVE_ORDER );
- for ( Iterator ri = labelMap.entrySet().iterator(); ri.hasNext(); )
- {
- Map.Entry labelMapEntry = ( Map.Entry ) ri.next();
+ SortedMap<String, String> map = new TreeMap<String, String>( String.CASE_INSENSITIVE_ORDER );
+ for (Entry<String, String> labelMapEntry : labelMap.entrySet()) {
if ( labelMapEntry.getKey() == null )
{
// ignore renders without a label
@@ -625,7 +625,7 @@
// render the navigation
pw.println("<div id='technav' class='ui-widget ui-widget-header'>"); //$NON-NLS-1$
- for ( Iterator li = map.values().iterator(); li.hasNext(); )
+ for ( Iterator<String> li = map.values().iterator(); li.hasNext(); )
{
pw.print(' ');
pw.println( li.next() );
@@ -635,7 +635,8 @@
}
// render lang-box
- Map langMap = (Map) request.getAttribute(WebConsoleConstants.ATTR_LANG_MAP);
+ @SuppressWarnings("unchecked")
+ Map<String, String> langMap = (Map<String, String>) request.getAttribute(WebConsoleConstants.ATTR_LANG_MAP);
if (null != langMap && !langMap.isEmpty())
{
// determine the currently selected locale from the request and fail-back
@@ -658,7 +659,7 @@
printLocaleElement(pw, appRoot, locale, langMap.get(locale));
pw.println(" </span>"); //$NON-NLS-1$
pw.println(" <span class='flags ui-helper-hidden'>"); //$NON-NLS-1$
- for (Iterator li = langMap.keySet().iterator(); li.hasNext();)
+ for (Iterator<String> li = langMap.keySet().iterator(); li.hasNext();)
{
// <img src="us.gif" alt="en" title="English"/>
final Object l = li.next();
@@ -838,7 +839,7 @@
return readTemplateFile( getClass(), templateFile );
}
- private final String readTemplateFile( final Class clazz, final String templateFile)
+ private final String readTemplateFile( final Class<?> clazz, final String templateFile)
{
InputStream templateStream = clazz.getResourceAsStream( templateFile );
if ( templateStream != null )
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/DefaultVariableResolver.java b/webconsole/src/main/java/org/apache/felix/webconsole/DefaultVariableResolver.java
index baf7f67..3e95e5f 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/DefaultVariableResolver.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/DefaultVariableResolver.java
@@ -31,7 +31,7 @@
* {@link WebConsoleUtil#getVariableResolver(javax.servlet.ServletRequest)}
* as the variable resolver if none has yet been assigned to the request.
*/
-public class DefaultVariableResolver extends HashMap implements VariableResolver
+public class DefaultVariableResolver extends HashMap<String, String> implements VariableResolver
{
private static final long serialVersionUID = 4148807223433047780L;
@@ -48,7 +48,7 @@
/**
* Creates a new variable resolver and initializes both - capacity & load factor
- *
+ *
* @param initialCapacity the initial capacity of the variable container
* @param loadFactor the load factor of the variable container
* @see HashMap#HashMap(int, float)
@@ -61,7 +61,7 @@
/**
* Creates a new variable resolver with specified initial capacity
- *
+ *
* @param initialCapacity the initial capacity of the variable container
* @see HashMap#HashMap(int)
*/
@@ -73,11 +73,11 @@
/**
* Creates a new variable resolver copying the variables from the given map.
- *
+ *
* @param source the map whose variables are to be placed in this resolver.
* @see HashMap#HashMap(Map)
*/
- public DefaultVariableResolver( final Map source )
+ public DefaultVariableResolver( final Map<String, String> source )
{
super( source );
}
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/SimpleWebConsolePlugin.java b/webconsole/src/main/java/org/apache/felix/webconsole/SimpleWebConsolePlugin.java
index 8bb3a60..1d61bd9 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/SimpleWebConsolePlugin.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/SimpleWebConsolePlugin.java
@@ -22,7 +22,6 @@
import java.net.URL;
import java.util.HashMap;
import java.util.Hashtable;
-import java.util.Iterator;
import java.util.Map;
import org.osgi.framework.BundleContext;
@@ -57,7 +56,7 @@
private ServiceRegistration reg;
// used to obtain services. Structure is: service name -> ServiceTracker
- private final Map services = new HashMap();
+ private final Map<String, ServiceTracker> services = new HashMap<String, ServiceTracker>();
/**
@@ -151,7 +150,7 @@
{
activate( bc ); // don't know why this is needed!
- Hashtable props = new Hashtable();
+ Hashtable<String, String> props = new Hashtable<String, String>();
props.put( WebConsoleConstants.PLUGIN_LABEL, label );
props.put( WebConsoleConstants.PLUGIN_TITLE, title );
reg = bc.registerService( "javax.servlet.Servlet", this, props ); //$NON-NLS-1$
@@ -190,7 +189,7 @@
*/
public final Object getService( String serviceName )
{
- ServiceTracker serviceTracker = ( ServiceTracker ) services.get( serviceName );
+ ServiceTracker serviceTracker = services.get( serviceName );
if ( serviceTracker == null )
{
serviceTracker = new ServiceTracker( getBundleContext(), serviceName, null );
@@ -212,12 +211,11 @@
*/
public void deactivate()
{
- for ( Iterator ti = services.values().iterator(); ti.hasNext(); )
+ for ( ServiceTracker tracker : services.values() )
{
- ServiceTracker tracker = ( ServiceTracker ) ti.next();
tracker.close();
- ti.remove();
}
+ services.clear();
super.deactivate();
}
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java b/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java
index 6fb96d1..d97678d 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java
@@ -23,7 +23,6 @@
import java.lang.reflect.Array;
import java.net.URLDecoder;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -84,8 +83,8 @@
final DefaultVariableResolver resolver = new DefaultVariableResolver();
// FIXME: don't we need a constant for the values below?
- resolver.put( "appRoot", request.getAttribute( WebConsoleConstants.ATTR_APP_ROOT ) ); //$NON-NLS-1$
- resolver.put( "pluginRoot", request.getAttribute( WebConsoleConstants.ATTR_PLUGIN_ROOT ) ); //$NON-NLS-1$
+ resolver.put( "appRoot", (String) request.getAttribute( WebConsoleConstants.ATTR_APP_ROOT ) ); //$NON-NLS-1$
+ resolver.put( "pluginRoot", (String) request.getAttribute( WebConsoleConstants.ATTR_PLUGIN_ROOT ) ); //$NON-NLS-1$
setVariableResolver( request, resolver );
return resolver;
}
@@ -131,7 +130,8 @@
}
// check, whether we already have the parameters
- Map params = ( Map ) request.getAttribute( AbstractWebConsolePlugin.ATTR_FILEUPLOAD );
+ @SuppressWarnings("unchecked")
+ Map<String, FileItem[]> params = ( Map<String, FileItem[]> ) request.getAttribute( AbstractWebConsolePlugin.ATTR_FILEUPLOAD );
if ( params == null )
{
// parameters not read yet, read now
@@ -144,14 +144,13 @@
upload.setSizeMax( -1 );
// Parse the request
- params = new HashMap();
+ params = new HashMap<String, FileItem[]>();
try
{
- List items = upload.parseRequest( request );
- for ( Iterator fiter = items.iterator(); fiter.hasNext(); )
- {
- FileItem fi = ( FileItem ) fiter.next();
- FileItem[] current = ( FileItem[] ) params.get( fi.getFieldName() );
+ @SuppressWarnings("unchecked")
+ List<FileItem> items = upload.parseRequest( request );
+ for (final FileItem fi : items) {
+ FileItem[] current = params.get( fi.getFieldName() );
if ( current == null )
{
current = new FileItem[]
@@ -174,7 +173,7 @@
request.setAttribute( AbstractWebConsolePlugin.ATTR_FILEUPLOAD, params );
}
- FileItem[] param = ( FileItem[] ) params.get( name );
+ FileItem[] param = params.get( name );
if ( param != null )
{
for ( int i = 0; i < param.length; i++ )
@@ -350,6 +349,7 @@
* @param value the value to decode
* @return the decoded string
*/
+ @SuppressWarnings("deprecation")
public static String urlDecode( final String value )
{
// shortcut for empty or missing values
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/Util.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/Util.java
index c90cb63..f897d55 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/Util.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/Util.java
@@ -133,21 +133,21 @@
* @param e the enumeration which to convert
* @return the list containing all enumeration entries.
*/
- public static final ArrayList list( Enumeration e )
+ public static final <T> ArrayList<T> list( Enumeration<T> e )
{
- ArrayList l = new ArrayList();
+ ArrayList<T> l = new ArrayList<T>();
while ( e.hasMoreElements() )
{
l.add( e.nextElement() );
}
return l;
}
-
+
/**
* This method expects a locale string in format language_COUNTRY, or
* language. The method will determine which is the correct form of locale
* string and construct a <code>Locale</code> object.
- *
+ *
* @param locale the locale string, if <code>null</code> - default locale is
* returned
* @return a locale object
@@ -180,7 +180,7 @@
return new Locale(language, country);
}
- private static final class BundleNameComparator implements Comparator
+ private static final class BundleNameComparator implements Comparator<Bundle>
{
private final Locale locale;
@@ -191,12 +191,6 @@
}
- public int compare( Object o1, Object o2 )
- {
- return compare( ( Bundle ) o1, ( Bundle ) o2 );
- }
-
-
public int compare( Bundle b1, Bundle b2 )
{
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/WebConsolePluginAdapter.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/WebConsolePluginAdapter.java
index 2d1c57c..06ba761 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/WebConsolePluginAdapter.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/WebConsolePluginAdapter.java
@@ -248,14 +248,14 @@
}
else if ( value != null )
{
- final Collection cssListColl;
+ final Collection<?> cssListColl;
if ( value.getClass().isArray() )
{
cssListColl = Arrays.asList( ( Object[] ) value );
}
else if ( value instanceof Collection )
{
- cssListColl = ( Collection ) value;
+ cssListColl = ( Collection<?> ) value;
}
else
{
@@ -266,7 +266,7 @@
{
String[] entries = new String[cssListColl.size()];
int i = 0;
- for ( Iterator cli = cssListColl.iterator(); cli.hasNext(); i++ )
+ for ( Iterator<?> cli = cssListColl.iterator(); cli.hasNext(); i++ )
{
entries[i] = String.valueOf( cli.next() );
}
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java
index 8d79780..e887583 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java
@@ -40,6 +40,7 @@
/**
* The <code>ConfigManager</code> TODO
*/
+@SuppressWarnings("serial")
public class ConfigManager extends ConfigManagerBase
{
private static final String LABEL = "configMgr"; // was name
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManagerBase.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManagerBase.java
index 99cbf8e..d6aaac1 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManagerBase.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManagerBase.java
@@ -75,7 +75,7 @@
* @param locale The name of the locale to get the meta data for.
* @return see the method description
*/
- protected Map getPidObjectClasses( final String locale )
+ protected Map<String, ObjectClassDefinition> getPidObjectClasses( final String locale )
{
return getObjectClassDefinitions( PID_GETTER, locale );
}
@@ -90,7 +90,7 @@
* @param locale The name of the locale to get the meta data for.
* @return see the method description
*/
- protected Map getFactoryPidObjectClasses( final String locale )
+ protected Map<String, ObjectClassDefinition> getFactoryPidObjectClasses( final String locale )
{
return getObjectClassDefinitions( FACTORY_PID_GETTER, locale );
}
@@ -109,9 +109,9 @@
* @return Map of <code>ObjectClassDefinition</code> objects indexed by the
* PID (or factory PID) to which they pertain
*/
- private Map getObjectClassDefinitions( final IdGetter idGetter, final String locale )
+ private Map<String, ObjectClassDefinition> getObjectClassDefinitions( final IdGetter idGetter, final String locale )
{
- final Map objectClassesDefinitions = new HashMap();
+ final Map<String, ObjectClassDefinition> objectClassesDefinitions = new HashMap<String, ObjectClassDefinition>();
final MetaTypeService mts = this.getMetaTypeService();
if ( mts != null )
{
@@ -242,9 +242,9 @@
}
- protected Map getAttributeDefinitionMap( Configuration config, String locale )
+ protected Map<String, AttributeDefinition> getAttributeDefinitionMap( Configuration config, String locale )
{
- Map adMap = new HashMap();
+ Map<String, AttributeDefinition> adMap = new HashMap<String, AttributeDefinition>();
ObjectClassDefinition ocd = this.getObjectClassDefinition( config, locale );
if ( ocd != null )
{
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigurationAdminConfigurationPrinter.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigurationAdminConfigurationPrinter.java
index 05acf2e..d14eabe 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigurationAdminConfigurationPrinter.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigurationAdminConfigurationPrinter.java
@@ -71,15 +71,15 @@
Configuration[] configs = ca.listConfigurations( null );
if ( configs != null && configs.length > 0 )
{
- SortedMap sm = new TreeMap();
+ SortedMap<String, Configuration> sm = new TreeMap<String, Configuration>();
for ( int i = 0; i < configs.length; i++ )
{
sm.put( configs[i].getPid(), configs[i] );
}
- for ( Iterator mi = sm.values().iterator(); mi.hasNext(); )
+ for ( Iterator<Configuration> mi = sm.values().iterator(); mi.hasNext(); )
{
- this.printConfiguration( pw, ( Configuration ) mi.next() );
+ this.printConfiguration( pw, mi.next() );
}
}
else
@@ -111,18 +111,18 @@
String loc = ( config.getBundleLocation() != null ) ? config.getBundleLocation() : "Unbound";
ConfigurationRender.infoLine( pw, " ", "BundleLocation", loc );
- Dictionary props = config.getProperties();
+ @SuppressWarnings("unchecked")
+ Dictionary<String, ?> props = config.getProperties();
if ( props != null )
{
- SortedSet keys = new TreeSet();
- for ( Enumeration ke = props.keys(); ke.hasMoreElements(); )
+ SortedSet<String> keys = new TreeSet<String>();
+ for ( Enumeration<String> ke = props.keys(); ke.hasMoreElements(); )
{
keys.add( ke.nextElement() );
}
- for ( Iterator ki = keys.iterator(); ki.hasNext(); )
+ for ( String key : keys )
{
- String key = ( String ) ki.next();
ConfigurationRender.infoLine( pw, " ", key, props.get( key ) );
}
}
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/LogServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/LogServlet.java
index c57a2c8..06dc5ff 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/LogServlet.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/LogServlet.java
@@ -39,6 +39,7 @@
/**
* LogServlet provides support for reading the log messages.
*/
+@SuppressWarnings("serial")
public class LogServlet extends SimpleWebConsolePlugin implements OsgiManagerPlugin
{
private static final String LABEL = "logs";
@@ -63,7 +64,7 @@
/**
* @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
- protected void doPost( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException
+ protected void doPost( HttpServletRequest req, HttpServletResponse resp ) throws IOException
{
final int minLevel = WebConsoleUtil.getParameterInt( req, "minLevel", LogService.LOG_DEBUG );
@@ -94,7 +95,7 @@
if ( logReaderService != null )
{
int index = 0;
- for ( Enumeration logEntries = logReaderService.getLog(); logEntries.hasMoreElements()
+ for ( Enumeration<?> logEntries = logReaderService.getLog(); logEntries.hasMoreElements()
&& index < MAX_LOGS; )
{
LogEntry nextLog = ( LogEntry ) logEntries.nextElement();
@@ -142,8 +143,7 @@
/**
* @see org.apache.felix.webconsole.AbstractWebConsolePlugin#renderContent(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
- protected void renderContent( HttpServletRequest request, HttpServletResponse response ) throws ServletException,
- IOException
+ protected void renderContent( HttpServletRequest request, HttpServletResponse response ) throws IOException
{
response.getWriter().print(TEMPLATE);
}
@@ -173,9 +173,10 @@
private static final String serviceDescription( ServiceReference serviceReference )
{
if ( serviceReference == null )
+ {
return "";
- else
- return serviceReference.toString();
+ }
+ return serviceReference.toString();
}
@@ -199,9 +200,10 @@
private static final String exceptionMessage( Throwable e )
{
if ( e == null )
+ {
return "";
- else
- return e.getClass().getName()+": "+e.getMessage();
+ }
+ return e.getClass().getName() + ": " + e.getMessage();
}
}
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/WireAdminConfigurationPrinter.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/WireAdminConfigurationPrinter.java
index acf26d5..8a5fd2b 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/WireAdminConfigurationPrinter.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/WireAdminConfigurationPrinter.java
@@ -170,7 +170,7 @@
}
}
- Class[] flavors = wire.getFlavors();
+ Class<?>[] flavors = wire.getFlavors();
if (flavors == null)
{
pw.println(" Flavors: none");
@@ -187,7 +187,7 @@
pw.println();
}
- Dictionary props = wire.getProperties();
+ Dictionary<?, ?> props = wire.getProperties();
if (props == null)
{
pw.println(" Properties: none");
@@ -195,7 +195,7 @@
else
{
pw.println(" Properties: ");
- for (Enumeration e = props.keys(); e.hasMoreElements();)
+ for (Enumeration<?> e = props.keys(); e.hasMoreElements();)
{
final Object key = e.nextElement();
pw.print(" "); //$NON-NLS-1$
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesConfigurationPrinter.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesConfigurationPrinter.java
index d1abb70..2c5f135 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesConfigurationPrinter.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesConfigurationPrinter.java
@@ -20,7 +20,6 @@
import java.io.PrintWriter;
import java.text.MessageFormat;
import java.util.*;
-
import org.apache.felix.webconsole.internal.AbstractConfigurationPrinter;
import org.osgi.framework.*;
import org.osgi.service.packageadmin.PackageAdmin;
@@ -103,7 +102,7 @@
{
final Bundle[] bundles = this.getBundleContext().getBundles();
// create a map for sorting first
- final TreeMap bundlesMap = new TreeMap();
+ final TreeMap<String, String> bundlesMap = new TreeMap<String, String>();
int active = 0, installed = 0, resolved = 0, fragments = 0;
for( int i =0; i<bundles.length; i++)
{
@@ -176,12 +175,9 @@
}
pw.println(buffer.toString());
pw.println("-----------------------------------------------------------------------------");
- final Iterator i = bundlesMap.entrySet().iterator();
- while ( i.hasNext() )
+ for ( final String bundle : bundlesMap.values() )
{
- final Map.Entry entry = (Map.Entry)i.next();
- pw.println(entry.getValue());
-
+ pw.println( bundle );
}
}
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
index 8ac69d0..a13698d 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
@@ -49,6 +49,7 @@
* the list of bundles, installed on the framework. It also adds ability to control
* the lifecycle of the bundles, like start, stop, uninstall, install.
*/
+@SuppressWarnings("serial")
public class BundlesServlet extends SimpleWebConsolePlugin implements OsgiManagerPlugin, ConfigurationPrinter
{
@@ -118,7 +119,7 @@
bootPkgs[i] = bootDelegation;
}
- Hashtable props = new Hashtable();
+ Hashtable<String, Object> props = new Hashtable<String, Object>();
props.put( WebConsoleConstants.CONFIG_PRINTER_MODES, new String[] { ConfigurationPrinter.MODE_TXT,
ConfigurationPrinter.MODE_ZIP } );
configurationPrinter = bundleContext.registerService( ConfigurationPrinter.SERVICE, this, props );
@@ -455,7 +456,7 @@
/**
* @see org.apache.felix.webconsole.AbstractWebConsolePlugin#renderContent(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
- protected void renderContent( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException
+ protected void renderContent( HttpServletRequest request, HttpServletResponse response ) throws IOException
{
// get request info from request attribute
final RequestInfo reqInfo = getRequestInfo(request);
@@ -465,7 +466,7 @@
// prepare variables
DefaultVariableResolver vars = ( ( DefaultVariableResolver ) WebConsoleUtil.getVariableResolver( request ) );
vars.put( "startLevel", String.valueOf(startLevel));
- vars.put( "drawDetails", reqInfo.bundleRequested ? Boolean.TRUE : Boolean.FALSE );
+ vars.put( "drawDetails", String.valueOf(reqInfo.bundleRequested));
vars.put( "currentBundle", (reqInfo.bundleRequested && reqInfo.bundle != null ? String.valueOf(reqInfo.bundle.getBundleId()) : "null"));
final String pluginRoot = ( String ) request.getAttribute( WebConsoleConstants.ATTR_PLUGIN_ROOT );
@@ -518,7 +519,7 @@
else if (filter != null)
{
Filter f = getBundleContext().createFilter(filter);
- ArrayList list = new ArrayList(allBundles.length);
+ ArrayList<Bundle> list = new ArrayList<Bundle>(allBundles.length);
final String localeString = locale.toString();
for (int i = 0, size = allBundles.length; i < size; i++)
{
@@ -718,7 +719,8 @@
private final void bundleDetails( JSONWriter jw, Bundle bundle, final String pluginRoot, final String servicesRoot, final Locale locale)
throws JSONException
{
- Dictionary headers = bundle.getHeaders( locale == null ? null : locale.toString() );
+ @SuppressWarnings("unchecked")
+ Dictionary<String, String> headers = bundle.getHeaders( locale == null ? null : locale.toString() );
jw.key( "props" );
jw.array();
@@ -727,7 +729,7 @@
WebConsoleUtil.keyVal( jw, "Bundle Location", bundle.getLocation() );
WebConsoleUtil.keyVal( jw, "Last Modification", new Date( bundle.getLastModified() ) );
- String docUrl = ( String ) headers.get( Constants.BUNDLE_DOCURL );
+ String docUrl = headers.get( Constants.BUNDLE_DOCURL );
if ( docUrl != null )
{
WebConsoleUtil.keyVal( jw, "Bundle Documentation", docUrl );
@@ -787,24 +789,18 @@
return;
}
- Map usingBundles = new TreeMap();
+ Map<String, Bundle> usingBundles = new TreeMap<String, Bundle>();
ExportedPackage[] exports = packageAdmin.getExportedPackages( bundle );
if ( exports != null && exports.length > 0 )
{
// do alphabetical sort
- Arrays.sort( exports, new Comparator()
+ Arrays.sort( exports, new Comparator<ExportedPackage>()
{
public int compare( ExportedPackage p1, ExportedPackage p2 )
{
return p1.getName().compareTo( p2.getName() );
}
-
-
- public int compare( Object o1, Object o2 )
- {
- return compare( ( ExportedPackage ) o1, ( ExportedPackage ) o2 );
- }
} );
JSONArray val = new JSONArray();
@@ -835,7 +831,7 @@
if ( exports != null && exports.length > 0 )
{
// collect import packages first
- final List imports = new ArrayList();
+ final List<ExportedPackage> imports = new ArrayList<ExportedPackage>();
for ( int i = 0; i < exports.length; i++ )
{
final ExportedPackage ep = exports[i];
@@ -854,20 +850,14 @@
JSONArray val = new JSONArray();
if ( imports.size() > 0 )
{
- final ExportedPackage[] packages = ( ExportedPackage[] ) imports.toArray( new ExportedPackage[imports
+ final ExportedPackage[] packages = imports.toArray( new ExportedPackage[imports
.size()] );
- Arrays.sort( packages, new Comparator()
+ Arrays.sort( packages, new Comparator<ExportedPackage>()
{
public int compare( ExportedPackage p1, ExportedPackage p2 )
{
return p1.getName().compareTo( p2.getName() );
}
-
-
- public int compare( Object o1, Object o2 )
- {
- return compare( ( ExportedPackage ) o1, ( ExportedPackage ) o2 );
- }
} );
// and finally print out
for ( int i = 0; i < packages.length; i++ )
@@ -888,9 +878,8 @@
if ( !usingBundles.isEmpty() )
{
JSONArray val = new JSONArray();
- for ( Iterator ui = usingBundles.values().iterator(); ui.hasNext(); )
+ for ( final Bundle usingBundle : usingBundles.values() )
{
- Bundle usingBundle = ( Bundle ) ui.next();
val.put( getBundleDescriptor( usingBundle, pluginRoot ) );
}
WebConsoleUtil.keyVal( jw, "Importing Bundles", val );
@@ -900,27 +889,22 @@
private void listImportExportsUnresolved( JSONWriter jw, Bundle bundle, final String pluginRoot ) throws JSONException
{
- Dictionary dict = bundle.getHeaders();
+ @SuppressWarnings("unchecked")
+ Dictionary<String, String> dict = bundle.getHeaders();
- String target = ( String ) dict.get( Constants.EXPORT_PACKAGE );
+ String target = dict.get( Constants.EXPORT_PACKAGE );
if ( target != null )
{
Clause[] pkgs = Parser.parseHeader( target );
if ( pkgs != null && pkgs.length > 0 )
{
// do alphabetical sort
- Arrays.sort( pkgs, new Comparator()
+ Arrays.sort( pkgs, new Comparator<Clause>()
{
public int compare( Clause p1, Clause p2 )
{
return p1.getName().compareTo( p2.getName() );
}
-
-
- public int compare( Object o1, Object o2 )
- {
- return compare( ( Clause) o1, ( Clause ) o2 );
- }
} );
JSONArray val = new JSONArray();
@@ -937,13 +921,13 @@
}
}
- target = ( String ) dict.get( Constants.IMPORT_PACKAGE );
+ target = dict.get( Constants.IMPORT_PACKAGE );
if ( target != null )
{
Clause[] pkgs = Parser.parseHeader( target );
if ( pkgs != null && pkgs.length > 0 )
{
- Map imports = new TreeMap();
+ Map<String, Clause> imports = new TreeMap<String, Clause>();
for ( int i = 0; i < pkgs.length; i++ )
{
Clause pkg = pkgs[i];
@@ -951,7 +935,7 @@
}
// collect import packages first
- final Map candidates = new HashMap();
+ final Map<String, ExportedPackage> candidates = new HashMap<String, ExportedPackage>();
PackageAdmin packageAdmin = getPackageAdmin();
if ( packageAdmin != null )
{
@@ -963,7 +947,7 @@
{
final ExportedPackage ep = exports[i];
- Clause imp = ( Clause ) imports.get( ep.getName() );
+ Clause imp = imports.get( ep.getName() );
if ( imp != null && isSatisfied( imp, ep ) )
{
candidates.put( ep.getName(), ep );
@@ -976,10 +960,8 @@
JSONArray val = new JSONArray();
if ( imports.size() > 0 )
{
- for ( Iterator ii = imports.values().iterator(); ii.hasNext(); )
- {
- Clause r4Import = ( Clause ) ii.next();
- ExportedPackage ep = ( ExportedPackage ) candidates.get( r4Import.getName() );
+ for (final Clause r4Import : imports.values()) {
+ ExportedPackage ep = candidates.get( r4Import.getName() );
// if there is no matching export, check whether this
// bundle has the package, ignore the entry in this case
@@ -1017,9 +999,9 @@
val.append( id );
val.append( "</a>" );
return val.toString();
- } else {
- return id;
}
+
+ return id;
}
@@ -1058,8 +1040,9 @@
{
JSONArray val = new JSONArray();
- Dictionary headers = bundle.getHeaders(""); // don't localize at all - raw headers
- Enumeration he = headers.keys();
+ @SuppressWarnings("unchecked")
+ Dictionary<String, String> headers = bundle.getHeaders(""); // don't localize at all - raw headers
+ Enumeration<String> he = headers.keys();
while ( he.hasMoreElements() )
{
Object header = he.nextElement();
@@ -1413,7 +1396,9 @@
{
// get the uploaded data
- final Map params = ( Map ) request.getAttribute( AbstractWebConsolePlugin.ATTR_FILEUPLOAD );
+ @SuppressWarnings("unchecked")
+ final Map<String, FileItem[]> params = ( Map<String, FileItem[]> ) request
+ .getAttribute( AbstractWebConsolePlugin.ATTR_FILEUPLOAD );
if ( params == null )
{
return;
@@ -1486,9 +1471,9 @@
}
- private FileItem getParameter( Map params, String name )
+ private FileItem getParameter( Map<String, FileItem[]> params, String name )
{
- FileItem[] items = ( FileItem[] ) params.get( name );
+ FileItem[] items = params.get( name );
if ( items != null )
{
for ( int i = 0; i < items.length; i++ )
@@ -1505,10 +1490,10 @@
}
- private FileItem[] getFileItems( Map params, String name )
+ private FileItem[] getFileItems( Map<String, FileItem[]> params, String name )
{
- final List files = new ArrayList();
- FileItem[] items = ( FileItem[] ) params.get( name );
+ final List<FileItem> files = new ArrayList<FileItem>();
+ FileItem[] items = params.get( name );
if ( items != null )
{
for ( int i = 0; i < items.length; i++ )
@@ -1520,7 +1505,7 @@
}
}
- return ( FileItem[] ) files.toArray( new FileItem[files.size()] );
+ return files.toArray( new FileItem[files.size()] );
}
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/PermissionsConfigurationPrinter.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/PermissionsConfigurationPrinter.java
index 2e6f240..83b282d 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/PermissionsConfigurationPrinter.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/PermissionsConfigurationPrinter.java
@@ -20,6 +20,7 @@
import java.io.PrintWriter;
import java.lang.reflect.Method;
+import java.util.Enumeration;
import org.apache.felix.webconsole.internal.AbstractConfigurationPrinter;
import org.osgi.framework.BundleContext;
@@ -100,8 +101,8 @@
Method getAccessDecision = null;
try
{
- getAccessDecision = ConditionalPermissionInfo.class.getMethod(
- "getAccessDecision", null);
+ getAccessDecision = ConditionalPermissionInfo.class.getMethod( "getAccessDecision",
+ ( Class<?>[] ) null );
}
catch (Throwable t)
{
@@ -111,7 +112,7 @@
boolean hasPermissions = false;
//final java.util.List list = cpa.newConditionalPermissionUpdate().getConditionalPermissionInfos();
//for (int i = 0; list != null && i < list.size(); i++)
- for (java.util.Enumeration e = cpa.getConditionalPermissionInfos(); e.hasMoreElements();)
+ for (Enumeration<?> e = cpa.getConditionalPermissionInfos(); e.hasMoreElements();)
{
hasPermissions = true;
//final ConditionalPermissionInfo info = (ConditionalPermissionInfo) list.get(i);
@@ -123,7 +124,7 @@
{
try
{
- final Object ad = getAccessDecision.invoke(info, null);
+ final Object ad = getAccessDecision.invoke( info, ( Object[] ) null );
pw.print(" ("); //$NON-NLS-1$
pw.print(ad);
pw.print(")"); //$NON-NLS-1$
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java
index 47cfbd0..bde64de 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java
@@ -46,6 +46,7 @@
/**
* ServicesServlet provides a plugin for inspecting the registered services.
*/
+@SuppressWarnings("serial")
public class ServicesServlet extends SimpleWebConsolePlugin implements OsgiManagerPlugin
{
// don't create empty reference array all the time, create it only once - it is immutable
@@ -379,7 +380,7 @@
// prepare variables
DefaultVariableResolver vars = ( ( DefaultVariableResolver ) WebConsoleUtil.getVariableResolver( request ) );
vars.put( "bundlePath", appRoot + "/" + BundlesServlet.NAME + "/" );
- vars.put( "drawDetails", reqInfo.serviceRequested ? Boolean.TRUE : Boolean.FALSE );
+ vars.put( "drawDetails", String.valueOf(reqInfo.serviceRequested));
vars.put( "__data__", w.toString() );
response.getWriter().print( TEMPLATE );
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/CombinedEnumeration.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/CombinedEnumeration.java
index 5d0441b..9fee9c2 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/CombinedEnumeration.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/CombinedEnumeration.java
@@ -32,28 +32,28 @@
* So if both enumerations would produce the same result, say "123", only the
* first would be returned.
*/
-class CombinedEnumeration implements Enumeration
+class CombinedEnumeration<E> implements Enumeration<E>
{
// the first enumeration to iterate
- private final Enumeration first;
+ private final Enumeration<E> first;
// the second enumeration to iterate once the first is exhausted
- private final Enumeration second;
+ private final Enumeration<E> second;
// the set of values already returned to prevent duplicate entries
- private final Set seenKeys;
+ private final Set<E> seenKeys;
// preview to the next return value for nextElement(), null at the end
- private Object nextKey;
+ private E nextKey;
- CombinedEnumeration( final Enumeration first, final Enumeration second )
+ CombinedEnumeration( final Enumeration<E> first, final Enumeration<E> second )
{
this.first = first;
this.second = second;
- this.seenKeys = new HashSet();
+ this.seenKeys = new HashSet<E>();
this.nextKey = seek();
}
@@ -64,14 +64,14 @@
}
- public Object nextElement()
+ public E nextElement()
{
if ( !hasMoreElements() )
{
throw new NoSuchElementException();
}
- Object result = nextKey;
+ E result = nextKey;
nextKey = seek();
return result;
}
@@ -82,11 +82,11 @@
* (unique) element is available, null is returned. The element returned
* is also added to the set of seen elements to prevent duplicate provision
*/
- private Object seek()
+ private E seek()
{
while ( first.hasMoreElements() )
{
- final Object next = first.nextElement();
+ final E next = first.nextElement();
if ( !seenKeys.contains( next ) )
{
seenKeys.add( next );
@@ -95,7 +95,7 @@
}
while ( second.hasMoreElements() )
{
- final Object next = second.nextElement();
+ final E next = second.nextElement();
if ( !seenKeys.contains( next ) )
{
seenKeys.add( next );
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/CombinedResourceBundle.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/CombinedResourceBundle.java
index eafc68e..a28ec5c 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/CombinedResourceBundle.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/CombinedResourceBundle.java
@@ -48,9 +48,9 @@
}
- public Enumeration getKeys()
+ public Enumeration<String> getKeys()
{
- return new CombinedEnumeration( resourceBundle.getKeys(), defaultResourceBundle.getKeys() );
+ return new CombinedEnumeration<String>( resourceBundle.getKeys(), defaultResourceBundle.getKeys() );
}
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ConsolePropertyResourceBundle.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ConsolePropertyResourceBundle.java
index f70b07e..f31f18d 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ConsolePropertyResourceBundle.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ConsolePropertyResourceBundle.java
@@ -22,7 +22,10 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
+import java.util.Dictionary;
import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Map.Entry;
import java.util.Properties;
import java.util.ResourceBundle;
@@ -32,14 +35,14 @@
class ConsolePropertyResourceBundle extends ResourceBundle
{
- private final Properties props;
+ private final Dictionary<String, String> props;
ConsolePropertyResourceBundle( final ResourceBundle parent, final URL source )
{
setParent( parent );
- props = new Properties();
+ Properties props = new Properties();
if ( source != null )
{
InputStream ins = null;
@@ -55,14 +58,19 @@
{
IOUtils.closeQuietly( ins );
}
+ }
+ this.props = new Hashtable<String, String>();
+ for ( Entry<?, ?> entry : props.entrySet() )
+ {
+ this.props.put( ( String ) entry.getKey(), ( String ) entry.getValue() );
}
}
- public Enumeration getKeys()
+ public Enumeration<String> getKeys()
{
- return new CombinedEnumeration( props.keys(), parent.getKeys() );
+ return new CombinedEnumeration<String>( props.keys(), parent.getKeys() );
}
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ResourceBundleCache.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ResourceBundleCache.java
index bf3514e..eb84ead 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ResourceBundleCache.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ResourceBundleCache.java
@@ -46,15 +46,15 @@
private final Bundle bundle;
- private final Map resourceBundles;
+ private final Map<Locale, ResourceBundle> resourceBundles;
- private Map resourceBundleEntries;
+ private Map<String, URL> resourceBundleEntries;
ResourceBundleCache( final Bundle bundle )
{
this.bundle = bundle;
- this.resourceBundles = new HashMap();
+ this.resourceBundles = new HashMap<Locale, ResourceBundle>();
}
@@ -78,7 +78,7 @@
synchronized ( resourceBundles )
{
- ResourceBundle bundle = ( ResourceBundle ) resourceBundles.get( locale );
+ ResourceBundle bundle = resourceBundles.get( locale );
if ( bundle != null )
{
return bundle;
@@ -99,12 +99,12 @@
private ResourceBundle loadResourceBundle( final ResourceBundle parent, final Locale locale )
{
final String path = "_" + locale.toString(); //$NON-NLS-1$
- final URL source = ( URL ) getResourceBundleEntries().get( path );
+ final URL source = getResourceBundleEntries().get( path );
return new ConsolePropertyResourceBundle( parent, source );
}
- private synchronized Map getResourceBundleEntries()
+ private synchronized Map<String, URL> getResourceBundleEntries()
{
if ( this.resourceBundleEntries == null )
{
@@ -125,14 +125,15 @@
String fileName = file.substring( slash + 1 );
String path = ( slash <= 0 ) ? "/" : file.substring( 0, slash ); //$NON-NLS-1$
- HashMap resourceBundleEntries = new HashMap();
+ HashMap<String, URL> resourceBundleEntries = new HashMap<String, URL>();
- Enumeration locales = bundle.findEntries( path, fileName + "*.properties", false ); //$NON-NLS-1$
+ @SuppressWarnings("unchecked")
+ Enumeration<URL> locales = bundle.findEntries( path, fileName + "*.properties", false ); //$NON-NLS-1$
if ( locales != null )
{
while ( locales.hasMoreElements() )
{
- URL entry = ( URL ) locales.nextElement();
+ URL entry = locales.nextElement();
// calculate the key
String entryPath = entry.getPath();
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ResourceBundleManager.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ResourceBundleManager.java
index 03c9e70..c5b29cf 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ResourceBundleManager.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/i18n/ResourceBundleManager.java
@@ -42,7 +42,7 @@
private final ResourceBundleCache consoleResourceBundleCache;
- private final Map resourceBundleCaches;
+ private final Map<Long, ResourceBundleCache> resourceBundleCaches;
/**
@@ -54,7 +54,7 @@
{
this.bundleContext = bundleContext;
this.consoleResourceBundleCache = new ResourceBundleCache( bundleContext.getBundle() );
- this.resourceBundleCaches = new HashMap();
+ this.resourceBundleCaches = new HashMap<Long, ResourceBundleCache>();
bundleContext.addBundleListener( this );
}
@@ -75,7 +75,7 @@
*
* @param provider the bundle, provider of the resources
* @param locale the requested locale.
- * @return the resource bundle - if not bundle with the requested locale exists,
+ * @return the resource bundle - if not bundle with the requested locale exists,
* the default locale is used.
*/
public ResourceBundle getResourceBundle( final Bundle provider, final Locale locale )
@@ -92,7 +92,7 @@
synchronized ( resourceBundleCaches )
{
Long key = new Long( provider.getBundleId() );
- cache = ( ResourceBundleCache ) resourceBundleCaches.get( key );
+ cache = resourceBundleCaches.get( key );
if ( cache == null )
{
cache = new ResourceBundleCache( provider );
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ConfigurationPrinterAdapter.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ConfigurationPrinterAdapter.java
index fecafe0..99f1aef 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ConfigurationPrinterAdapter.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ConfigurationPrinterAdapter.java
@@ -41,7 +41,7 @@
private Method attachmentMethod;
private boolean checkedAttachmentMethod = false;
- private static final List CUSTOM_MODES = new ArrayList();
+ private static final List<String> CUSTOM_MODES = new ArrayList<String>();
static
{
CUSTOM_MODES.add( ConfigurationPrinter.MODE_TXT );
@@ -49,6 +49,7 @@
CUSTOM_MODES.add( ConfigurationPrinter.MODE_ZIP );
}
+ @SuppressWarnings("deprecation")
public static ConfigurationPrinterAdapter createAdapter(
final Object service,
final ServiceReference ref)
@@ -258,7 +259,7 @@
/**
* Search a method with the given name and signature
*/
- private static Method searchMethod(final Object obj, final String mName, final Class[] params)
+ private static Method searchMethod(final Object obj, final String mName, final Class<?>[] params)
{
try
{
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ConfigurationRender.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ConfigurationRender.java
index e000fac..3c21d35 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ConfigurationRender.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ConfigurationRender.java
@@ -42,6 +42,7 @@
* representation of the current framework status. The content itself is
* internally generated by the {@link ConfigurationPrinter} plugins.
*/
+@SuppressWarnings("serial")
public class ConfigurationRender extends SimpleWebConsolePlugin implements OsgiManagerPlugin
{
@@ -68,7 +69,7 @@
private int cfgPrinterTrackerCount;
- private ArrayList configurationPrinters;
+ private ArrayList<ConfigurationPrinterAdapter> configurationPrinters;
/** Default constructor */
public ConfigurationRender( final ResourceBundleManager resourceBundleManager )
@@ -156,12 +157,12 @@
pw.println ( "<html xmlns=\"http://www.w3.org/1999/xhtml\">" );
pw.println ( "<head><title>dummy</title></head><body><div>" );
- Collection printers = getPrintersForLabel(name);
+ Collection<ConfigurationPrinterAdapter> printers = getPrintersForLabel(name);
if ( printers != null )
{
- for (Iterator i = printers.iterator(); i.hasNext();)
+ for (Iterator<ConfigurationPrinterAdapter> i = printers.iterator(); i.hasNext();)
{
- final ConfigurationPrinterAdapter desc = (ConfigurationPrinterAdapter) i.next();
+ final ConfigurationPrinterAdapter desc = i.next();
pw.enableFilter( desc.escapeHtml() );
printConfigurationPrinter( pw, desc, ConfigurationPrinter.MODE_WEB );
pw.enableFilter( false );
@@ -211,15 +212,14 @@
// print headers only
final String pluginRoot = request.getAttribute( WebConsoleConstants.ATTR_PLUGIN_ROOT ) + "/";
- Collection printers = getConfigurationPrinters();
- for (Iterator i = printers.iterator(); i.hasNext();)
+ for ( final ConfigurationPrinterAdapter desc : getConfigurationPrinters() )
{
- final ConfigurationPrinterAdapter desc = (ConfigurationPrinterAdapter) i.next();
if ( desc.match( ConfigurationPrinter.MODE_WEB ) )
{
final String label = desc.label;
final String title = desc.title;
- pw.print("<li><a href='" + pluginRoot + URLEncoder.encode(label) + ".nfo'>" + title + "</a></li>" );
+ pw.print( "<li><a href='" + pluginRoot + URLEncoder.encode( label, "utf-8" ) + ".nfo'>" + title
+ + "</a></li>" );
}
}
pw.println("</ul> <!-- end tabs on top -->");
@@ -232,17 +232,17 @@
pw.flush();
}
- private List getPrintersForLabel(final String label)
+ private List<ConfigurationPrinterAdapter> getPrintersForLabel(final String label)
{
- List list = null;
- for ( Iterator cpi = getConfigurationPrinters().iterator(); cpi.hasNext(); )
+ List<ConfigurationPrinterAdapter> list = null;
+ for ( Iterator<ConfigurationPrinterAdapter> cpi = getConfigurationPrinters().iterator(); cpi.hasNext(); )
{
- final ConfigurationPrinterAdapter desc = (ConfigurationPrinterAdapter) cpi.next();
+ final ConfigurationPrinterAdapter desc = cpi.next();
if (desc.label.equals( label ) )
{
if ( list == null )
{
- list = new ArrayList();
+ list = new ArrayList<ConfigurationPrinterAdapter>();
list.add(desc);
}
}
@@ -253,16 +253,16 @@
private void printConfigurationStatus( ConfigurationWriter pw, final String mode, final String optionalLabel )
{
// check if we have printers for that label
- Collection printers = getPrintersForLabel(optionalLabel);
+ Collection<ConfigurationPrinterAdapter> printers = getPrintersForLabel(optionalLabel);
if ( printers == null )
{
// if not use all
printers = getConfigurationPrinters();
}
- for ( Iterator cpi = printers.iterator(); cpi.hasNext(); )
+ for ( Iterator<ConfigurationPrinterAdapter> cpi = printers.iterator(); cpi.hasNext(); )
{
- final ConfigurationPrinterAdapter desc = (ConfigurationPrinterAdapter) cpi.next();
+ final ConfigurationPrinterAdapter desc = cpi.next();
if ( desc.match(mode) )
{
printConfigurationPrinter( pw, desc, mode );
@@ -270,7 +270,7 @@
}
}
- private final synchronized List getConfigurationPrinters()
+ private final synchronized List<ConfigurationPrinterAdapter> getConfigurationPrinters()
{
if ( cfgPrinterTracker == null )
{
@@ -293,7 +293,7 @@
if ( cfgPrinterTrackerCount != cfgPrinterTracker.getTrackingCount() )
{
- SortedMap cp = new TreeMap();
+ SortedMap<String, ConfigurationPrinterAdapter> cp = new TreeMap<String, ConfigurationPrinterAdapter>();
ServiceReference[] refs = cfgPrinterTracker.getServiceReferences();
if ( refs != null )
{
@@ -311,7 +311,7 @@
}
}
}
- configurationPrinters = new ArrayList(cp.values());
+ configurationPrinters = new ArrayList<ConfigurationPrinterAdapter>(cp.values());
cfgPrinterTrackerCount = cfgPrinterTracker.getTrackingCount();
}
@@ -319,7 +319,7 @@
}
- private final void addConfigurationPrinter( final SortedMap printers,
+ private final void addConfigurationPrinter( final SortedMap<String, ConfigurationPrinterAdapter> printers,
final ConfigurationPrinterAdapter desc,
final Bundle provider)
{
@@ -455,6 +455,7 @@
abstract void end();
+ @SuppressWarnings("unused")
public void handleAttachments( final String title, final URL[] urls ) throws IOException
{
throw new UnsupportedOperationException( "handleAttachments not supported by this configuration writer: "
@@ -556,20 +557,17 @@
private void addAttachments( final ConfigurationWriter cf, final String mode )
throws IOException
{
- for ( Iterator cpi = getConfigurationPrinters().iterator(); cpi.hasNext(); )
+ for ( final ConfigurationPrinterAdapter desc : getConfigurationPrinters() )
{
- // check if printer supports zip mode
- final ConfigurationPrinterAdapter desc = (ConfigurationPrinterAdapter) cpi.next();
- if ( desc.match(mode) )
+ if ( desc.match( mode ) )
{
- final URL[] attachments = desc.getAttachments(mode);
+ final URL[] attachments = desc.getAttachments( mode );
if ( attachments != null )
{
cf.handleAttachments( desc.title, attachments );
}
}
}
-
}
private static class PlainTextConfigurationWriter extends ConfigurationWriter
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/LicenseServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/LicenseServlet.java
index 4b1ee96..e9f1aca 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/LicenseServlet.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/LicenseServlet.java
@@ -51,6 +51,7 @@
*
* TODO: add support for 'Bundle-License' manifest header
*/
+@SuppressWarnings("serial")
public final class LicenseServlet extends SimpleWebConsolePlugin implements OsgiManagerPlugin
{
// common names (without extension) of the license files.
@@ -191,12 +192,13 @@
for ( int i = 0; i < patterns.length; i++ )
{
- Enumeration entries = bundle.findEntries( "/", patterns[i] + "*", true );
+ @SuppressWarnings("unchecked")
+ Enumeration<URL> entries = bundle.findEntries( "/", patterns[i] + "*", true );
if ( entries != null )
{
while ( entries.hasMoreElements() )
{
- URL url = ( URL ) entries.nextElement();
+ URL url = entries.nextElement();
JSONObject entry = new JSONObject();
entry.put( "path", url.getPath() );
entry.put( "url", getName( url.getPath() ) );
@@ -205,12 +207,13 @@
}
}
- Enumeration entries = bundle.findEntries( "/", "*.jar", true );
+ @SuppressWarnings("unchecked")
+ Enumeration<URL> entries = bundle.findEntries( "/", "*.jar", true );
if ( entries != null )
{
while ( entries.hasMoreElements() )
{
- URL url = ( URL ) entries.nextElement();
+ URL url = entries.nextElement();
final String resName = getName( url.getPath() );
InputStream ins = null;
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/SystemPropertiesPrinter.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/SystemPropertiesPrinter.java
index dbd71c6..09afb0c 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/SystemPropertiesPrinter.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/SystemPropertiesPrinter.java
@@ -33,6 +33,7 @@
private static final String TITLE = "System Properties";
+ @SuppressWarnings("unused")
private static final String LABEL = "_systemproperties";
@@ -45,13 +46,12 @@
public void printConfiguration( PrintWriter printWriter )
{
Properties props = System.getProperties();
- SortedSet keys = new TreeSet( props.keySet() );
- for ( Iterator ki = keys.iterator(); ki.hasNext(); )
+ SortedSet<Object> keys = new TreeSet<Object>( props.keySet() );
+ for ( Iterator<Object> ki = keys.iterator(); ki.hasNext(); )
{
Object key = ki.next();
ConfigurationRender.infoLine( printWriter, null, ( String ) key, props.get( key ) );
}
-
}
}
\ No newline at end of file
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ThreadPrinter.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ThreadPrinter.java
index 2ea8f35..116e1e3 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ThreadPrinter.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ThreadPrinter.java
@@ -29,6 +29,7 @@
private static final String TITLE = "Threads";
+ @SuppressWarnings("unused")
private static final String LABEL = "_threads";
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/Base64.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/Base64.java
index 7c44402..16670b3 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/Base64.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/Base64.java
@@ -1072,7 +1072,7 @@
try {
return new String(bytes, "UTF-8");
} catch (UnsupportedEncodingException e) {
- throw new IllegalStateException("UTF-8", e);
+ throw new IllegalStateException("UTF-8");
}
}
@@ -1083,7 +1083,7 @@
try {
return string.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
- throw new IllegalStateException("UTF-8", e);
+ throw new IllegalStateException("UTF-8");
}
}
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationListener.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationListener.java
index 87592b2..35f114b 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationListener.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationListener.java
@@ -44,7 +44,7 @@
{
final OsgiManager osgiManager = listener.osgiManager;
- Dictionary props = new Hashtable();
+ Dictionary<String, String> props = new Hashtable<String, String>();
props.put( Constants.SERVICE_VENDOR, "The Apache Software Foundation" );
props.put( Constants.SERVICE_DESCRIPTION, "OSGi Management Console Configuration Receiver" );
props.put( Constants.SERVICE_PID, osgiManager.getConfigurationPid() );
@@ -61,7 +61,8 @@
//---------- ManagedService
- public void updated( Dictionary config )
+ @SuppressWarnings("unchecked")
+ public void updated( @SuppressWarnings("rawtypes") Dictionary config )
{
osgiManager.updateConfiguration( config );
}
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationListener2.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationListener2.java
index efcef71..07dbb7f 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationListener2.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationListener2.java
@@ -42,7 +42,7 @@
private String ocdLocale;
private ObjectClassDefinition ocd;
private final OsgiManager osgiManager;
-
+
private static final String[] CONF_PROPS = new String[] {
OsgiManager.PROP_MANAGER_ROOT, OsgiManager.DEFAULT_MANAGER_ROOT, //
OsgiManager.PROP_HTTP_SERVICE_SELECTOR, OsgiManager.DEFAULT_HTTP_SERVICE_SELECTOR, //
@@ -79,7 +79,7 @@
// there is no locale support here
return null;
}
-
+
static final String getString(ResourceBundle rb, String key, String def)
{
try
@@ -100,7 +100,7 @@
}
if (locale == null) locale = Locale.ENGLISH.getLanguage();
-
+
// check if OCD is already initialized and it's locale is the same as the requested one
synchronized (ocdLock)
{
@@ -115,7 +115,7 @@
final ResourceBundle rb = osgiManager.resourceBundleManager.getResourceBundle(osgiManager.getBundleContext().getBundle(), localeObj);
// simple configuration properties
- final ArrayList adList = new ArrayList();
+ final ArrayList<AttributeDefinition> adList = new ArrayList<AttributeDefinition>();
for (int i = 0; i < CONF_PROPS.length; i++)
{
final String key = CONF_PROPS[i++];
@@ -124,15 +124,15 @@
final String descr = getString(rb, "metadata." + key + ".description", key); //$NON-NLS-1$ //$NON-NLS-2$
adList.add( new AttributeDefinitionImpl(key, name, descr, defaultValue) );
}
-
+
// log level is select - so no simple default value; requires localized option labels
- adList.add( new AttributeDefinitionImpl( OsgiManager.PROP_LOG_LEVEL,
+ adList.add( new AttributeDefinitionImpl( OsgiManager.PROP_LOG_LEVEL,
getString(rb, "metadata.loglevel.name", OsgiManager.PROP_LOG_LEVEL), //$NON-NLS-1$
getString(rb, "metadata.loglevel.description", OsgiManager.PROP_LOG_LEVEL), //$NON-NLS-1$
- AttributeDefinition.INTEGER, // type
- new String[] { String.valueOf( OsgiManager.DEFAULT_LOG_LEVEL ) }, // default values
- 0, // cardinality
- new String[] { // option labels
+ AttributeDefinition.INTEGER, // type
+ new String[] { String.valueOf( OsgiManager.DEFAULT_LOG_LEVEL ) }, // default values
+ 0, // cardinality
+ new String[] { // option labels
getString(rb, "log.level.debug", "Debug"), //$NON-NLS-1$ //$NON-NLS-2$
getString(rb, "log.level.info", "Information"), //$NON-NLS-1$ //$NON-NLS-2$
getString(rb, "log.level.warn", "Warn"), //$NON-NLS-1$ //$NON-NLS-2$
@@ -141,7 +141,7 @@
new String[] { "4", "3", "2", "1" } ) ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
// list plugins - requires localized plugin titles
- final TreeMap namesByClassName = new TreeMap();
+ final TreeMap<String, String> namesByClassName = new TreeMap<String, String>();
final String[] defaultPluginsClasses = OsgiManager.PLUGIN_MAP;
for ( int i = 0; i < defaultPluginsClasses.length; i++ )
{
@@ -150,11 +150,11 @@
final String name = getString(rb, label + ".pluginTitle", label); //$NON-NLS-1$
namesByClassName.put(clazz, name);
}
- final String[] classes = ( String[] ) namesByClassName.keySet().toArray(
+ final String[] classes = namesByClassName.keySet().toArray(
new String[namesByClassName.size()] );
- final String[] names = ( String[] ) namesByClassName.values().toArray( new String[namesByClassName.size()] );
+ final String[] names = namesByClassName.values().toArray( new String[namesByClassName.size()] );
- adList.add( new AttributeDefinitionImpl( OsgiManager.PROP_ENABLED_PLUGINS,
+ adList.add( new AttributeDefinitionImpl( OsgiManager.PROP_ENABLED_PLUGINS,
getString(rb, "metadata.plugins.name", OsgiManager.PROP_ENABLED_PLUGINS), //$NON-NLS-1$
getString(rb, "metadata.plugins.description", OsgiManager.PROP_ENABLED_PLUGINS), //$NON-NLS-1$
AttributeDefinition.STRING, classes, Integer.MIN_VALUE, names, classes ) );
@@ -162,7 +162,7 @@
xocd = new ObjectClassDefinition()
{
- private final AttributeDefinition[] attrs = ( AttributeDefinition[] ) adList
+ private final AttributeDefinition[] attrs = adList
.toArray( new AttributeDefinition[adList.size()] );
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationUtil.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationUtil.java
index f2e556b..7d743ff 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationUtil.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/ConfigurationUtil.java
@@ -42,7 +42,7 @@
* @return The value of the named property as a string or <code>def</code>
* if the property does not exist
*/
- public static final String getProperty(Dictionary config, String name, String def)
+ public static final String getProperty(Dictionary<String, ?> config, String name, String def)
{
Object value = config.get(name);
if (value instanceof String)
@@ -68,7 +68,7 @@
* @return The value of the named property as a string or <code>def</code>
* if the property does not exist
*/
- public static final int getProperty(Dictionary config, String name, int def)
+ public static final int getProperty(Dictionary<String, ?> config, String name, int def)
{
Object value = config.get(name);
if (value instanceof Number)
@@ -95,12 +95,12 @@
/**
* Gets a property as String[]
- *
+ *
* @param config The properties from which to returned the named one
* @param name The name of the property to return
* @return the property value as string array - no matter if originally it was other kind of array, collection or comma-separated string. Returns <code>null</code> if the property is not set.
*/
- public static final String[] getStringArrayProperty(Dictionary config, String name)
+ public static final String[] getStringArrayProperty(Dictionary<String, ?> config, String name)
{
Object value = config.get(name);
if (value == null)
@@ -120,10 +120,10 @@
}
else if (value instanceof Collection)
{
- Collection collection = (Collection) value;
+ Collection<?> collection = (Collection<?>) value;
ret = new String[collection.size()];
int i = 0;
- for (Iterator iter = collection.iterator(); iter.hasNext();)
+ for (Iterator<?> iter = collection.iterator(); iter.hasNext();)
{
ret[i] = String.valueOf(iter.next());
i++;
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 d9bd052..b778a72 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
@@ -180,7 +180,7 @@
// list of OsgiManagerPlugin instances activated during init. All these
// instances will have to be deactivated during destroy
- private List osgiManagerPlugins = new ArrayList();
+ private List<OsgiManagerPlugin> osgiManagerPlugins = new ArrayList<OsgiManagerPlugin>();
private String webManagerRoot;
@@ -190,12 +190,12 @@
// true if the resources have been registered with the HttpService
private boolean httpResourcesRegistered;
- private Dictionary configuration;
+ private Dictionary<String, ?> configuration;
// See https://issues.apache.org/jira/browse/FELIX-2267
private Locale configuredLocale;
- private Set enabledPlugins;
+ private Set<String> enabledPlugins;
ResourceBundleManager resourceBundleManager;
@@ -222,13 +222,13 @@
try
{
- Class pluginClass = classLoader.loadClass(pluginClassName);
+ Class<?> pluginClass = classLoader.loadClass(pluginClassName);
Object plugin = pluginClass.newInstance();
if (plugin instanceof OsgiManagerPlugin)
{
((OsgiManagerPlugin) plugin).activate(bundleContext);
- osgiManagerPlugins.add(plugin);
+ osgiManagerPlugins.add((OsgiManagerPlugin) plugin);
}
if (plugin instanceof BrandingPlugin)
{
@@ -321,10 +321,9 @@
}
// deactivate any remaining plugins
- for (Iterator pi = osgiManagerPlugins.iterator(); pi.hasNext();)
+ for ( Iterator<OsgiManagerPlugin> pi = osgiManagerPlugins.iterator(); pi.hasNext(); )
{
- Object plugin = pi.next();
- ((OsgiManagerPlugin) plugin).deactivate();
+ pi.next().deactivate();
}
// simply remove all operations, we should not be used anymore
@@ -410,8 +409,7 @@
AbstractWebConsolePlugin plugin = getConsolePlugin(label);
if (plugin != null)
{
- final Map labelMap = holder.getLocalizedLabelMap(resourceBundleManager,
- locale);
+ final Map<String, String> labelMap = holder.getLocalizedLabelMap( resourceBundleManager, locale );
// the official request attributes
request.setAttribute(WebConsoleConstants.ATTR_LANG_MAP, getLangMap());
@@ -667,12 +665,9 @@
private static class BrandingServiceTracker extends ServiceTracker
{
- private final OsgiManager osgiManager; // FIXME: never read locally
-
BrandingServiceTracker(OsgiManager osgiManager)
{
super(osgiManager.getBundleContext(), BrandingPlugin.class.getName(), null);
- this.osgiManager = osgiManager;
}
public Object addingService(ServiceReference reference)
@@ -706,7 +701,7 @@
return;
}
- Dictionary config = getConfiguration();
+ Dictionary<String, ?> config = getConfiguration();
// get authentication details
String realm = ConfigurationUtil.getProperty(config, PROP_REALM, DEFAULT_REALM);
@@ -719,7 +714,7 @@
HttpContext httpContext = new OsgiManagerHttpContext(httpService,
securityProviderTracker, userId, password, realm);
- Dictionary servletConfig = toStringConfig(config);
+ Dictionary<String, String> servletConfig = toStringConfig(config);
// register this servlet and take note of this
httpService.registerServlet(this.webManagerRoot, this, servletConfig,
@@ -781,16 +776,16 @@
}
}
- private Dictionary getConfiguration()
+ private Dictionary<String, ?> getConfiguration()
{
return configuration;
}
- synchronized void updateConfiguration(Dictionary config)
+ synchronized void updateConfiguration(Dictionary<String, ?> config)
{
if (config == null)
{
- config = new Hashtable();
+ config = new Hashtable<String, Object>();
}
configuration = config;
@@ -825,7 +820,7 @@
// get enabled plugins
String[] plugins = ConfigurationUtil.getStringArrayProperty(config, PROP_ENABLED_PLUGINS);
- enabledPlugins = null == plugins ? null : new HashSet(Arrays.asList(plugins));
+ enabledPlugins = null == plugins ? null : new HashSet<String>(Arrays.asList(plugins));
initInternalPlugins();
// might update HTTP service registration
@@ -891,36 +886,41 @@
return enabledPlugins != null && !enabledPlugins.contains(pluginClass);
}
- private Dictionary toStringConfig(Dictionary config)
+ private Dictionary<String, String> toStringConfig(Dictionary<String, ?> config)
{
- Dictionary stringConfig = new Hashtable();
- for (Enumeration ke = config.keys(); ke.hasMoreElements();)
+ Dictionary<String, String> stringConfig = new Hashtable<String, String>();
+ for (Enumeration<String> ke = config.keys(); ke.hasMoreElements();)
{
- Object key = ke.nextElement();
- stringConfig.put(key.toString(), String.valueOf(config.get(key)));
+ String key = ke.nextElement();
+ stringConfig.put(key, String.valueOf(config.get(key)));
}
return stringConfig;
}
- private Map langMap;
+ private Map<String, String> langMap;
- private final Map getLangMap()
+
+ private final Map<String, String> getLangMap()
{
- if (null != langMap)
- return langMap;
- final Map map = new HashMap();
- final Bundle bundle = bundleContext.getBundle();
- final Enumeration e = bundle.findEntries("res/flags", null, false); //$NON-NLS-1$
- while (e != null && e.hasMoreElements())
+ if ( null != langMap )
{
- final URL img = (URL) e.nextElement();
- final String name = FilenameUtils.getBaseName(img.getFile());
+ return langMap;
+ }
+
+ final Map<String, String> map = new HashMap<String, String>();
+ final Bundle bundle = bundleContext.getBundle();
+ @SuppressWarnings("unchecked")
+ final Enumeration<URL> e = bundle.findEntries( "res/flags", null, false ); //$NON-NLS-1$
+ while ( e != null && e.hasMoreElements() )
+ {
+ final URL img = e.nextElement();
+ final String name = FilenameUtils.getBaseName( img.getFile() );
try
{
- final String locale = new Locale(name, "").getDisplayLanguage(); //$NON-NLS-1$
- map.put(name, null != locale ? locale : name);
+ final String locale = new Locale( name, "" ).getDisplayLanguage(); //$NON-NLS-1$
+ map.put( name, null != locale ? locale : name );
}
- catch (Throwable t)
+ catch ( Throwable t )
{
t.printStackTrace();
/* ignore invalid locale? */
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 95a9770..04a3879 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
@@ -57,7 +57,7 @@
private final BundleContext bundleContext;
// registered plugins (Map<String label, Plugin plugin>)
- private final Map plugins;
+ private final Map<String, Plugin> plugins;
// The servlet context used to initialize plugin services
private ServletContext servletContext;
@@ -69,7 +69,7 @@
PluginHolder( final BundleContext context )
{
this.bundleContext = context;
- this.plugins = new HashMap();
+ this.plugins = new HashMap<String, Plugin>();
}
@@ -197,7 +197,7 @@
final Plugin plugin;
synchronized ( plugins )
{
- plugin = ( Plugin ) plugins.get( label );
+ plugin = plugins.get( label );
}
if ( plugin != null )
@@ -232,9 +232,9 @@
*
* @return The localized map of labels to titles
*/
- Map getLocalizedLabelMap( final ResourceBundleManager resourceBundleManager, final Locale locale )
+ Map<String, String> getLocalizedLabelMap( final ResourceBundleManager resourceBundleManager, final Locale locale )
{
- final Map map = new HashMap();
+ final Map<String, String> map = new HashMap<String, String>();
Plugin[] plugins = getPlugins();
for ( int i = 0; i < plugins.length; i++ )
{
@@ -386,7 +386,7 @@
final Plugin oldPlugin;
synchronized ( plugins )
{
- oldPlugin = ( Plugin ) plugins.remove( label );
+ oldPlugin = plugins.remove( label );
}
if ( oldPlugin != null )
@@ -400,7 +400,7 @@
{
synchronized ( plugins )
{
- return ( Plugin[] ) plugins.values().toArray( new Plugin[plugins.size()] );
+ return plugins.values().toArray( new Plugin[plugins.size()] );
}
}
@@ -562,7 +562,7 @@
}
- protected void doUngetConsolePlugin( AbstractWebConsolePlugin consolePlugin )
+ protected void doUngetConsolePlugin( @SuppressWarnings("unused") AbstractWebConsolePlugin consolePlugin )
{
}
@@ -575,9 +575,9 @@
}
- public Enumeration getInitParameterNames()
+ public Enumeration<String> getInitParameterNames()
{
- return new Enumeration()
+ return new Enumeration<String>()
{
public boolean hasMoreElements()
{
@@ -585,7 +585,7 @@
}
- public Object nextElement()
+ public String nextElement()
{
throw new NoSuchElementException();
}
@@ -643,22 +643,6 @@
return super.doGetTitle();
}
- /**
- * If the plugin is registered as a regular OSGi service, this method
- * behaves the same as {@link #dispose()}. If the plugin is built
- * into the web console, this method does nothing.
- * <p>
- * After this method is called, the plugin may still be used because
- * the {@link #getConsolePlugin()} method will re-acquire the service
- * again on-demand.
- */
- final void ungetService()
- {
- // FIXME: this method is used by nobody!?!?
- dispose();
- }
-
-
protected AbstractWebConsolePlugin doGetConsolePlugin()
{
Object service = getHolder().getBundleContext().getService( serviceReference );
@@ -698,10 +682,10 @@
}
- public Enumeration getInitParameterNames()
+ public Enumeration<String> getInitParameterNames()
{
final String[] keys = serviceReference.getPropertyKeys();
- return new Enumeration()
+ return new Enumeration<String>()
{
int idx = 0;
@@ -712,7 +696,7 @@
}
- public Object nextElement()
+ public String nextElement()
{
if ( hasMoreElements() )
{
@@ -760,7 +744,7 @@
try
{
- Class pluginClass = getClass().getClassLoader().loadClass(pluginClassName);
+ Class<?> pluginClass = getClass().getClassLoader().loadClass(pluginClassName);
plugin = (AbstractWebConsolePlugin) pluginClass.newInstance();
if (plugin instanceof OsgiManagerPlugin)
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/VMStatPlugin.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/VMStatPlugin.java
index 556b8bd..ad8da4b 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/VMStatPlugin.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/system/VMStatPlugin.java
@@ -43,6 +43,7 @@
* VMStatPlugin provides the System Information tab. This particular plugin uses
* more than one templates.
*/
+@SuppressWarnings("serial")
public class VMStatPlugin extends SimpleWebConsolePlugin implements OsgiManagerPlugin
{
@@ -166,8 +167,7 @@
/**
* @see org.apache.felix.webconsole.AbstractWebConsolePlugin#renderContent(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
- protected void renderContent( HttpServletRequest request, HttpServletResponse response ) throws ServletException,
- IOException
+ protected void renderContent( HttpServletRequest request, HttpServletResponse response ) throws IOException
{
String body;
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/package-info.java b/webconsole/src/main/java/org/apache/felix/webconsole/package-info.java
index 3f43587..43d3c28 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/package-info.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/package-info.java
@@ -30,7 +30,7 @@
* <dd>Service API to provide custom authentication and access control.</dd>
* </dl>
*/
-@Version("3.1.2")
+@Version("3.1.4")
@Export(optional = "provide:=true")
package org.apache.felix.webconsole;
diff --git a/webconsole/src/test/java/org/apache/felix/webconsole/AbstractWebConsolePluginTest.java b/webconsole/src/test/java/org/apache/felix/webconsole/AbstractWebConsolePluginTest.java
index b5db480..4052081 100644
--- a/webconsole/src/test/java/org/apache/felix/webconsole/AbstractWebConsolePluginTest.java
+++ b/webconsole/src/test/java/org/apache/felix/webconsole/AbstractWebConsolePluginTest.java
@@ -28,6 +28,7 @@
import junit.framework.TestCase;
+@SuppressWarnings("serial")
public class AbstractWebConsolePluginTest extends TestCase
{
@@ -38,7 +39,8 @@
{
super.setUp();
- getGetResourceMethod = AbstractWebConsolePlugin.class.getDeclaredMethod( "getGetResourceMethod", null );
+ getGetResourceMethod = AbstractWebConsolePlugin.class.getDeclaredMethod( "getGetResourceMethod",
+ ( Class<?>[] ) null );
getGetResourceMethod.setAccessible( true );
}
@@ -55,12 +57,12 @@
}
};
assertNull( test.getResourceProvider() );
- assertNull( getGetResourceMethod.invoke( test, null ) );
+ assertNull( getGetResourceMethod.invoke( test, (Object[]) null ) );
// test with default resource provider but no method
final TestPlugin test2 = new TestPlugin();
assertEquals( test2, test2.getResourceProvider() );
- assertNull( getGetResourceMethod.invoke( test2, null ) );
+ assertNull( getGetResourceMethod.invoke( test2, (Object[]) null ) );
}
@@ -69,22 +71,22 @@
// test with default resource provider, public method
final TestPlugin testPublic = new PublicTestPlugin();
assertEquals( testPublic, testPublic.getResourceProvider() );
- assertNotNull( getGetResourceMethod.invoke( testPublic, null ) );
+ assertNotNull( getGetResourceMethod.invoke( testPublic, (Object[]) null ) );
// test with default resource provider, package private method
final TestPlugin testDefault = new PackageTestPlugin();
assertEquals( testDefault, testDefault.getResourceProvider() );
- assertNull( getGetResourceMethod.invoke( testDefault, null ) );
+ assertNull( getGetResourceMethod.invoke( testDefault, (Object[]) null ) );
// test with default resource provider, protected method
final TestPlugin testProtected = new ProtectedTestPlugin();
assertEquals( testProtected, testProtected.getResourceProvider() );
- assertNotNull( getGetResourceMethod.invoke( testProtected, null ) );
+ assertNotNull( getGetResourceMethod.invoke( testProtected, (Object[]) null ) );
// test with default resource provider, private method
final TestPlugin testPrivate = new PrivateTestPlugin();
assertEquals( testPrivate, testPrivate.getResourceProvider() );
- assertNotNull( getGetResourceMethod.invoke( testPrivate, null ) );
+ assertNotNull( getGetResourceMethod.invoke( testPrivate, (Object[]) null ) );
}
@@ -95,32 +97,33 @@
{
};
assertEquals( testPublic, testPublic.getResourceProvider() );
- assertNotNull( getGetResourceMethod.invoke( testPublic, null ) );
+ assertNotNull( getGetResourceMethod.invoke( testPublic, (Object[]) null ) );
// test with default resource provider, package private method
final TestPlugin testDefault = new PackageTestPlugin()
{
};
assertEquals( testDefault, testDefault.getResourceProvider() );
- assertNull( getGetResourceMethod.invoke( testDefault, null ) );
+ assertNull( getGetResourceMethod.invoke( testDefault, (Object[]) null ) );
// test with default resource provider, protected method
final TestPlugin testProtected = new ProtectedTestPlugin()
{
};
assertEquals( testProtected, testProtected.getResourceProvider() );
- assertNotNull( getGetResourceMethod.invoke( testProtected, null ) );
+ assertNotNull( getGetResourceMethod.invoke( testProtected, (Object[]) null ) );
// test with default resource provider, private method
final TestPlugin testPrivate = new PrivateTestPlugin()
{
};
assertEquals( testPrivate, testPrivate.getResourceProvider() );
- assertNull( getGetResourceMethod.invoke( testPrivate, null ) );
+ assertNull( getGetResourceMethod.invoke( testPrivate, (Object[]) null ) );
}
private static class PrivateTestPlugin extends TestPlugin
{
+ @SuppressWarnings("unused")
private URL getResource( String name )
{
return null;
@@ -129,6 +132,7 @@
private static class ProtectedTestPlugin extends TestPlugin
{
+ @SuppressWarnings("unused")
protected URL getResource( String name )
{
return null;
@@ -137,6 +141,7 @@
private static class PackageTestPlugin extends TestPlugin
{
+ @SuppressWarnings("unused")
URL getResource( String name )
{
return null;
@@ -145,6 +150,7 @@
private static class PublicTestPlugin extends TestPlugin
{
+ @SuppressWarnings("unused")
public URL getResource( String name )
{
return null;