FELIX-2509 Add more component information

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@981450 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ComponentsServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ComponentsServlet.java
index db1f244..38b728f 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ComponentsServlet.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ComponentsServlet.java
@@ -20,7 +20,6 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
-import java.util.Arrays;
 import java.util.Dictionary;
 import java.util.Iterator;
 import java.util.TreeMap;
@@ -251,7 +250,7 @@
         jw.value( ComponentConfigurationPrinter.toStateString( state ) );
         jw.key( "stateRaw" );
         jw.value( state );
-        
+
         final Dictionary props = component.getProperties();
 
         final String pid = (String) (props != null ?  props.get( Constants.SERVICE_PID ) : null);
@@ -259,7 +258,7 @@
         {
             jw.key("pid");
             jw.value(pid);
-            if ( isConfigurable( component.getBundle(), pid ) ) 
+            if ( isConfigurable( component.getBundle(), pid ) )
             {
                 jw.key("configurable");
                 jw.value(pid);
@@ -283,9 +282,20 @@
 
         keyVal( jw, "Bundle", component.getBundle().getSymbolicName() + " (" + component.getBundle().getBundleId()
             + ")" );
+        keyVal( jw, "Implementation Class", component.getClassName() );
+        if (component.getFactory() != null) {
+            keyVal( jw, "Component Factory Name", component.getFactory() );
+        }
         keyVal( jw, "Default State", component.isDefaultEnabled() ? "enabled" : "disabled" );
         keyVal( jw, "Activation", component.isImmediate() ? "immediate" : "delayed" );
 
+        try {
+            keyVal( jw, "Configuration Policy", component.getConfigurationPolicy() );
+        } catch (Throwable t) {
+            // missing implementation of said method in the actually bound API
+            // ignore this and just don't display the information
+        }
+
         listServices( jw, component );
         listReferences( jw, component );
         listProperties( jw, component );