http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/prefs/SaveSettingsEvent.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/log4j/chainsaw/prefs/SaveSettingsEvent.java 
b/src/main/java/org/apache/log4j/chainsaw/prefs/SaveSettingsEvent.java
index 0ea7d46..4535370 100644
--- a/src/main/java/org/apache/log4j/chainsaw/prefs/SaveSettingsEvent.java
+++ b/src/main/java/org/apache/log4j/chainsaw/prefs/SaveSettingsEvent.java
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -21,43 +21,42 @@ import java.util.Properties;
 
 /**
  * @author Paul Smith <psm...@apache.org>
- *
  */
 public class SaveSettingsEvent extends AbstractSettingsEvent {
 
-  
-  SaveSettingsEvent(Object source, File settingsLocation) {
-       super(source, settingsLocation);
-       }
-       
-       public void saveSetting(String key, int value) {
-               saveSetting(key, "" + value);
-       }
-
-       public void saveSetting(String key, double value) {
-               saveSetting(key, "" + value);
-       }
-
-       public void saveSetting(String key, Object value) {
-               saveSetting(key, value.toString());
-       }
-
-       public void saveSetting(String key, String value) {
-               properties.put(key, value);
-       }
-       
-       Properties getProperties() {
-               return properties;
-       }
-  
-  private Properties properties = new Properties();
-  /**
-   * @param string
-   * @param b
-   */
-  public void saveSetting(String string, boolean b)
-  {
-    properties.put(string, b?Boolean.TRUE.toString():Boolean.FALSE.toString());
-    
-  }
+
+    SaveSettingsEvent(Object source, File settingsLocation) {
+        super(source, settingsLocation);
+    }
+
+    public void saveSetting(String key, int value) {
+        saveSetting(key, "" + value);
+    }
+
+    public void saveSetting(String key, double value) {
+        saveSetting(key, "" + value);
+    }
+
+    public void saveSetting(String key, Object value) {
+        saveSetting(key, value.toString());
+    }
+
+    public void saveSetting(String key, String value) {
+        properties.put(key, value);
+    }
+
+    Properties getProperties() {
+        return properties;
+    }
+
+    private Properties properties = new Properties();
+
+    /**
+     * @param string
+     * @param b
+     */
+    public void saveSetting(String string, boolean b) {
+        properties.put(string, b ? Boolean.TRUE.toString() : 
Boolean.FALSE.toString());
+
+    }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsEvent.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsEvent.java 
b/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsEvent.java
index 341ce97..50f9097 100644
--- a/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsEvent.java
+++ b/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsEvent.java
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,11 +20,10 @@ import java.util.EventObject;
 
 /**
  * @author Paul Smith <psm...@apache.org>
- *
  */
 public abstract class SettingsEvent extends EventObject {
 
-       SettingsEvent(Object source) {
-               super(source);
-       }
+    SettingsEvent(Object source) {
+        super(source);
+    }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsListener.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsListener.java 
b/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsListener.java
index c4c78dc..f94bfa9 100644
--- a/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsListener.java
+++ b/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsListener.java
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -19,37 +19,35 @@ package org.apache.log4j.chainsaw.prefs;
 import java.util.EventListener;
 
 /**
- * 
  * Components, or objects, that are interested in being notified when
  * Settings are loaded or being saved, can implement this interface.
- * 
+ * <p>
  * 'Settings' are Chainsaw wide preferences, and are not specific to a 
particular
  * tab identifer etc. See the correspoing ProfileListener and related classes
  * for a discussion on profile specific events etc.
- * 
+ * <p>
  * The implementing class can use this event notification opportunity
- * to load setting information stored previously, or to 
+ * to load setting information stored previously, or to
  * request that setting information be stored.
- * 
+ * <p>
  * NOTE: This contract does <b>_*NOT*_</b> dictate that the Thread invoking 
these
  * methods will be the Swing's Event dispatching event, it could
  * be any arbitary thread.  Having said that, it COULD be the Swing's Event
  * dispatching event, but this contract makes no guarantee.
- * 
- * @author Paul Smith &lt;psm...@apache.org&gt;
  *
+ * @author Paul Smith &lt;psm...@apache.org&gt;
  */
 public interface SettingsListener extends EventListener {
-       
-       /**
-        * When a request to load Settings has been requested, this method
-        * will be invoked by the SettingsManager.  The implementing
-        * component can query the event for settings, and modify
-        * it's internal state based on these settings.
-        * 
-        * @param event
-        */
+
+    /**
+     * When a request to load Settings has been requested, this method
+     * will be invoked by the SettingsManager.  The implementing
+     * component can query the event for settings, and modify
+     * it's internal state based on these settings.
+     *
+     * @param event
+     */
     void loadSettings(LoadSettingsEvent event);
-  
-       void saveSettings(SaveSettingsEvent event);
+
+    void saveSettings(SaveSettingsEvent event);
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsManager.java 
b/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsManager.java
index 5bebe59..efbb373 100644
--- a/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsManager.java
+++ b/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsManager.java
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,20 +16,12 @@
  */
 package org.apache.log4j.chainsaw.prefs;
 
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
+import javax.swing.event.EventListenerList;
+import java.io.*;
 import java.net.URLEncoder;
 import java.util.EventListener;
 import java.util.Properties;
 
-import javax.swing.event.EventListenerList;
-
 
 /**
  * SettingManager allows components to register interest in Saving/Loading
@@ -37,7 +29,6 @@ import javax.swing.event.EventListenerList;
  *
  * @author Paul Smith &lt;psm...@apache.org&gt;
  * @author Scott Deboy &lt;sde...@apache.org&gt;
- *
  */
 public final class SettingsManager {
     private static final SettingsManager instance = new SettingsManager();
@@ -49,7 +40,6 @@ public final class SettingsManager {
     /**
      * Initialises the SettingsManager by loading the default Properties from
      * a resource
-     *
      */
     private SettingsManager() {
         //     load the default properties as a Resource
@@ -57,8 +47,8 @@ public final class SettingsManager {
 
         try {
             is = this.getClass().getClassLoader()
-                     
.getResource("org/apache/log4j/chainsaw/prefs/default.properties")
-                     .openStream();
+                
.getResource("org/apache/log4j/chainsaw/prefs/default.properties")
+                .openStream();
             defaultProperties.load(is);
 
             //      defaultProperties.list(System.out);
@@ -77,6 +67,7 @@ public final class SettingsManager {
 
     /**
      * Returns the singleton instance of the SettingsManager
+     *
      * @return settings manager
      */
     public static SettingsManager getInstance() {
@@ -85,6 +76,7 @@ public final class SettingsManager {
 
     /**
      * Registers the listener with the manager
+     *
      * @param listener
      */
     public void addSettingsListener(SettingsListener listener) {
@@ -95,7 +87,6 @@ public final class SettingsManager {
      * Requests that the settings be loaded, all listeners will be notified of
      * this call, and configure themselves according to the values found in the
      * loaded settings
-     *
      */
     public void loadSettings() {
         /*
@@ -137,7 +128,7 @@ public final class SettingsManager {
         Properties loadedProperties = new Properties();
         loadedProperties.putAll(getDefaultSettings());
         loadedProperties.putAll(loadProperties(p));
-        
+
 
         LoadSettingsEvent event = new LoadSettingsEvent(this, 
loadedProperties);
 
@@ -153,11 +144,11 @@ public final class SettingsManager {
         InputStream is = null;
 
         File f = new File(getSettingsDirectory(),
-                       URLEncoder.encode(p.getNamespace() + ".properties"));
-        
+            URLEncoder.encode(p.getNamespace() + ".properties"));
+
         if (!f.exists()) {
-               f = new File(getSettingsDirectory(),
-                       p.getNamespace() + ".properties");              
+            f = new File(getSettingsDirectory(),
+                p.getNamespace() + ".properties");
         }
 
         if (f.exists()) {
@@ -204,7 +195,6 @@ public final class SettingsManager {
     /**
      * Creates a SaveSettingsEvent and calls all the SettingsListeners
      * to populate the properties with configuration information
-     *
      */
     public void saveSettings() {
         /*
@@ -225,6 +215,7 @@ public final class SettingsManager {
      * Looks up all the Profileable's that have been registered
      * and creates a new event for each of them, and ensures that they
      * are saved within a separate external store
+     *
      * @param settingsDir
      */
     private void saveProfileableSetting(File settingsDir) {
@@ -244,8 +235,8 @@ public final class SettingsManager {
 
                 try {
                     os = new BufferedOutputStream(new FileOutputStream(
-                            new File(settingsDir,
-                                    
URLEncoder.encode(profileable.getNamespace()) + ".properties")));
+                        new File(settingsDir,
+                            URLEncoder.encode(profileable.getNamespace()) + 
".properties")));
                     event.getProperties().store(os, HEADER);
                 } catch (Exception e) {
                     e.printStackTrace();
@@ -282,7 +273,7 @@ public final class SettingsManager {
 
         try {
             os = new BufferedOutputStream(new FileOutputStream(
-                        new File(settingsDir, GLOBAL_SETTINGS_FILE_NAME)));
+                new File(settingsDir, GLOBAL_SETTINGS_FILE_NAME)));
             event.getProperties().store(os, HEADER);
         } catch (Exception e) {
             e.printStackTrace();
@@ -307,7 +298,7 @@ public final class SettingsManager {
         } else {
             Properties loadedProperties = loadGlobalProperties();
             LoadSettingsEvent event = new LoadSettingsEvent(this,
-                    loadedProperties);
+                loadedProperties);
             listener.loadSettings(event);
         }
     }
@@ -350,6 +341,7 @@ public final class SettingsManager {
     /**
      * Returns the loaded default settings, which can be used by
      * other classes within this package.
+     *
      * @return Properties defaults
      */
     public Properties getDefaultSettings() {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java 
b/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
index 4992843..f6cccae 100644
--- 
a/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
+++ 
b/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,20 +17,6 @@
 
 package org.apache.log4j.chainsaw.receivers;
 
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.event.ActionListener;
-import java.io.IOException;
-import java.net.URL;
-
-import javax.swing.JDialog;
-import javax.swing.JEditorPane;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JSplitPane;
-import javax.swing.UIManager;
-
 import org.apache.log4j.LogManager;
 import org.apache.log4j.chainsaw.help.HelpManager;
 import org.apache.log4j.chainsaw.helper.OkCancelPanel;
@@ -39,13 +25,18 @@ import org.apache.log4j.net.SocketHubReceiver;
 import org.apache.log4j.plugins.Plugin;
 import org.apache.log4j.plugins.Receiver;
 
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionListener;
+import java.io.IOException;
+import java.net.URL;
+
 
 /**
  * A panel that allows a user to configure a new Plugin, and
  * view that plugins javadoc at the same time
  *
  * @author Paul Smith &lt;psm...@apache.org&gt;
- *
  */
 public class NewReceiverDialogPanel extends JPanel {
 
@@ -71,20 +62,20 @@ public class NewReceiverDialogPanel extends JPanel {
          * url to be the Help resource for that class
          */
         pluginEditorPanel.addPropertyChangeListener("plugin",
-                evt -> {
+            evt -> {
 
-                    Plugin plugin = (Plugin) evt.getNewValue();
-                    URL url = HelpManager.getInstance().getHelpForClass(
-                            plugin.getClass());
+                Plugin plugin = (Plugin) evt.getNewValue();
+                URL url = HelpManager.getInstance().getHelpForClass(
+                    plugin.getClass());
 
-                    try {
-                        javaDocPane.setPage(url);
-                    } catch (IOException e) {
-                        MessageCenter.getInstance().getLogger().error(
-                            "Failed to load the Help resource for " +
+                try {
+                    javaDocPane.setPage(url);
+                } catch (IOException e) {
+                    MessageCenter.getInstance().getLogger().error(
+                        "Failed to load the Help resource for " +
                             plugin.getClass(), e);
-                    }
-                });
+                }
+            });
     }
 
     /**
@@ -125,6 +116,7 @@ public class NewReceiverDialogPanel extends JPanel {
      * Creates a new panel, with the contents configured to allow the editing
      * of a NEW instance of the specified class (which must implement the 
Receiver
      * interface)
+     *
      * @param receiverClass
      * @return NewReceiverDialogPanel
      * @throws IllegalArgumentException if the specified class is not a 
Receiver
@@ -142,7 +134,7 @@ public class NewReceiverDialogPanel extends JPanel {
             receiverInstance = (Receiver) receiverClass.newInstance();
 
         } catch (Exception e) {
-               LogManager.getLogger(NewReceiverDialogPanel.class).error(
+            LogManager.getLogger(NewReceiverDialogPanel.class).error(
                 "Failed to create a new Receiver instance, this exception is 
unexpected",
                 e);
         }
@@ -159,7 +151,7 @@ public class NewReceiverDialogPanel extends JPanel {
         UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
 
         NewReceiverDialogPanel panel = NewReceiverDialogPanel.create(
-                SocketHubReceiver.class);
+            SocketHubReceiver.class);
 
         JDialog dialog = new JDialog((JFrame) null, true);
         dialog.getContentPane().add(panel);

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
 
b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
index 95979c7..01c41dc 100644
--- 
a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
+++ 
b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,32 +16,6 @@
  */
 package org.apache.log4j.chainsaw.receivers;
 
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.swing.AbstractCellEditor;
-import javax.swing.DefaultCellEditor;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTable;
-import javax.swing.JTextField;
-import javax.swing.table.AbstractTableModel;
-import javax.swing.table.DefaultTableModel;
-import javax.swing.table.TableCellEditor;
-import javax.swing.table.TableModel;
-
 import org.apache.log4j.Level;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
@@ -51,10 +25,26 @@ import 
org.apache.log4j.chainsaw.helper.TableCellEditorFactory;
 import org.apache.log4j.net.SocketHubReceiver;
 import org.apache.log4j.plugins.Plugin;
 
+import javax.swing.*;
+import javax.swing.table.AbstractTableModel;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableModel;
+import java.awt.*;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.util.*;
+import java.util.List;
+
 
 /**
  * A panel that allows the user to edit a particular Plugin, by using 
introspection
  * this class discovers the modifiable properties of the Plugin
+ *
  * @author Paul Smith &lt;psm...@apache.org&gt;
  */
 public class PluginPropertyEditorPanel extends JPanel {
@@ -64,9 +54,10 @@ public class PluginPropertyEditorPanel extends JPanel {
 
     private Plugin plugin;
     private TableModel defaultModel = new DefaultTableModel(
-            new String[] { "Property", "Value" }, 1);
+        new String[]{"Property", "Value"}, 1);
 
     private static final Logger logger = 
LogManager.getLogger(PluginPropertyEditorPanel.class);
+
     /**
      *
      */
@@ -88,7 +79,7 @@ public class PluginPropertyEditorPanel extends JPanel {
 
         propertyTable.setModel(
             defaultModel = new DefaultTableModel(
-                    new String[] { "Property", "Value" }, 1));
+                new String[]{"Property", "Value"}, 1));
 
     }
 
@@ -108,7 +99,7 @@ public class PluginPropertyEditorPanel extends JPanel {
                         new PluginPropertyTableModel(p);
                     propertyTable.setModel(model);
                     propertyTable.getColumnModel().getColumn(1)
-                    .setCellEditor(new PluginTableCellEditor());
+                        .setCellEditor(new PluginTableCellEditor());
                     propertyTable.setEnabled(true);
                 } catch (Throwable e) {
                     logger.error("Failed to introspect the Plugin", e);
@@ -125,10 +116,10 @@ public class PluginPropertyEditorPanel extends JPanel {
 
         JFrame frame = new JFrame("Property Editor Test bed");
         frame.addWindowListener(new WindowAdapter() {
-                public void windowClosed(WindowEvent e) {
-                    System.exit(1);
-                }
-            });
+            public void windowClosed(WindowEvent e) {
+                System.exit(1);
+            }
+        });
 
         PluginPropertyEditorPanel panel = new PluginPropertyEditorPanel();
 
@@ -173,14 +164,13 @@ public class PluginPropertyEditorPanel extends JPanel {
 
     /**
      * @author psmith
-     *
      */
     private class PluginTableCellEditor extends AbstractCellEditor
         implements TableCellEditor {
 
         private Map editorMap = new HashMap();
         private DefaultCellEditor defaultEditor = new DefaultCellEditor(
-                new JTextField());
+            new JTextField());
         private DefaultCellEditor currentEditor = defaultEditor;
 
         private PluginTableCellEditor() {
@@ -197,12 +187,12 @@ public class PluginPropertyEditorPanel extends JPanel {
          * @see 
javax.swing.table.TableCellEditor#getTableCellEditorComponent(javax.swing.JTable,
 java.lang.Object, boolean, int, int)
          */
         public Component getTableCellEditorComponent(JTable table, Object 
value,
-            boolean isSelected, int row, int column) {
+                                                     boolean isSelected, int 
row, int column) {
+
+            PluginPropertyTableModel model = (PluginPropertyTableModel) 
table.getModel();
+            PropertyDescriptor descriptor = model.getDescriptors()[row];
+            Class valueClass = descriptor.getPropertyType();
 
-           PluginPropertyTableModel model = (PluginPropertyTableModel) 
table.getModel();
-           PropertyDescriptor descriptor =  model.getDescriptors()[row];
-           Class valueClass = descriptor.getPropertyType();
-           
             if (editorMap.containsKey(valueClass)) {
 
                 DefaultCellEditor editor =
@@ -244,7 +234,7 @@ public class PluginPropertyEditorPanel extends JPanel {
             BeanInfo beanInfo = Introspector.getBeanInfo(p.getClass());
 
             List list = new ArrayList(Arrays.asList(
-                        beanInfo.getPropertyDescriptors()));
+                beanInfo.getPropertyDescriptors()));
 
             list.sort((o1, o2) -> {
 
@@ -252,11 +242,11 @@ public class PluginPropertyEditorPanel extends JPanel {
                 PropertyDescriptor d2 = (PropertyDescriptor) o2;
 
                 return d1.getDisplayName().compareToIgnoreCase(
-                        d2.getDisplayName());
+                    d2.getDisplayName());
             });
             this.plugin = p;
             this.descriptors = (PropertyDescriptor[]) list.toArray(
-                    new PropertyDescriptor[0]);
+                new PropertyDescriptor[0]);
         }
 
         /* (non-Javadoc)
@@ -268,25 +258,25 @@ public class PluginPropertyEditorPanel extends JPanel {
 
             switch (col) {
 
-            case 1:
+                case 1:
 
-                try {
+                    try {
 
-                    Object object = d.getReadMethod().invoke(plugin);
+                        Object object = d.getReadMethod().invoke(plugin);
 
-                    if (object != null) {
+                        if (object != null) {
 
-                        return object;
+                            return object;
+                        }
+                    } catch (Exception e) {
+                        logger.error(
+                            "Error reading value for PropertyDescriptor " + d);
                     }
-                } catch (Exception e) {
-                    logger.error(
-                        "Error reading value for PropertyDescriptor " + d);
-                }
 
-                return "";
+                    return "";
 
-            case 0:
-                return d.getName();
+                case 0:
+                    return d.getName();
             }
 
             return null;
@@ -341,11 +331,11 @@ public class PluginPropertyEditorPanel extends JPanel {
                 aValue = translateValueIfNeeded(rowIndex, aValue);
                 logger.debug(
                     "setValueAt, " + rowIndex + ", " + columnIndex +
-                    ", value=" + aValue + ", valueClass" + aValue.getClass());
+                        ", value=" + aValue + ", valueClass" + 
aValue.getClass());
 
                 try {
                     descriptors[rowIndex].getWriteMethod().invoke(plugin,
-                            aValue);
+                        aValue);
                     fireTableCellUpdated(rowIndex, columnIndex);
                 } catch (IllegalArgumentException e) {
                     // ignore
@@ -367,7 +357,7 @@ public class PluginPropertyEditorPanel extends JPanel {
         private Object translateValueIfNeeded(int row, Object value) {
 
             if ((descriptors[row].getPropertyType() == int.class) ||
-                    (descriptors[row].getPropertyType() == Integer.class)) {
+                (descriptors[row].getPropertyType() == Integer.class)) {
 
                 try {
 
@@ -379,11 +369,12 @@ public class PluginPropertyEditorPanel extends JPanel {
 
             return value;
         }
+
         /**
          * @return Returns the descriptors.
          */
         public final PropertyDescriptor[] getDescriptors() {
-          return descriptors;
+            return descriptors;
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiverTreeCellRenderer.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiverTreeCellRenderer.java
 
b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiverTreeCellRenderer.java
index 8e4645a..9cc1191 100644
--- 
a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiverTreeCellRenderer.java
+++ 
b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiverTreeCellRenderer.java
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,18 +17,17 @@
 
 package org.apache.log4j.chainsaw.receivers;
 
-import java.awt.*;
-
-import javax.swing.*;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeCellRenderer;
-
 import org.apache.log4j.chainsaw.Generator;
 import org.apache.log4j.chainsaw.icons.ChainsawIcons;
 import org.apache.log4j.chainsaw.icons.LevelIconFactory;
 import org.apache.log4j.plugins.Plugin;
 import org.apache.log4j.spi.Thresholdable;
 
+import javax.swing.*;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import java.awt.*;
+
 
 /**
  * A TreeCellRenderer that can format the information of Receivers
@@ -37,75 +36,74 @@ import org.apache.log4j.spi.Thresholdable;
  * @author Paul Smith &lt;psm...@apache.org&gt;
  */
 public class ReceiverTreeCellRenderer extends DefaultTreeCellRenderer {
-  private Icon rootIcon = new ImageIcon(ChainsawIcons.ANIM_NET_CONNECT);
-  private JPanel panel = new JPanel();
-  private JLabel levelLabel = new JLabel();
-
-  public ReceiverTreeCellRenderer() {
-    super();
-    BoxLayout layout = new BoxLayout(panel, BoxLayout.X_AXIS);
-    panel.setLayout(layout);
-    panel.setOpaque(false);
-    panel.add(levelLabel);
-    //set preferredsize to something wide
-    setPreferredSize(new Dimension(200, 19));
-    panel.add(this);
-  }
-
-  public Component getTreeCellRendererComponent(
-    JTree tree, Object value, boolean sel, boolean expanded, boolean leaf,
-    int row, boolean focus) {
-    super.getTreeCellRendererComponent(
-      tree, value, sel, expanded, leaf, row, focus);
-
-    DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
-    Object o = node.getUserObject();
-    setText(o.toString());
-
-    String tooltip = "";
-
-    setIcon(null);
-    if (
-      o == ((ReceiversTreeModel) 
tree.getModel()).getRootNode().getUserObject()) {
-      setText(o.toString());
-    } else if (o instanceof String) {
-      setText(o.toString());
-      setIcon(null);
-     }else if(o instanceof Plugin){
-       setText(((Plugin)o).getName());
-     }else if(o instanceof Generator){
-       Generator generator = (Generator) o;
-       setText(generator.getName());
-       setIcon(ChainsawIcons.ICON_HELP);
-    } 
-    else {
-      setText("(Unknown Type) :: " + o);
+    private Icon rootIcon = new ImageIcon(ChainsawIcons.ANIM_NET_CONNECT);
+    private JPanel panel = new JPanel();
+    private JLabel levelLabel = new JLabel();
+
+    public ReceiverTreeCellRenderer() {
+        super();
+        BoxLayout layout = new BoxLayout(panel, BoxLayout.X_AXIS);
+        panel.setLayout(layout);
+        panel.setOpaque(false);
+        panel.add(levelLabel);
+        //set preferredsize to something wide
+        setPreferredSize(new Dimension(200, 19));
+        panel.add(this);
     }
 
-    if (
-      o == ((ReceiversTreeModel) 
tree.getModel()).getRootNode().getUserObject()) {
-      setIcon(rootIcon);
-    }
+    public Component getTreeCellRendererComponent(
+        JTree tree, Object value, boolean sel, boolean expanded, boolean leaf,
+        int row, boolean focus) {
+        super.getTreeCellRendererComponent(
+            tree, value, sel, expanded, leaf, row, focus);
+
+        DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
+        Object o = node.getUserObject();
+        setText(o.toString());
+
+        String tooltip = "";
+
+        setIcon(null);
+        if (
+            o == ((ReceiversTreeModel) 
tree.getModel()).getRootNode().getUserObject()) {
+            setText(o.toString());
+        } else if (o instanceof String) {
+            setText(o.toString());
+            setIcon(null);
+        } else if (o instanceof Plugin) {
+            setText(((Plugin) o).getName());
+        } else if (o instanceof Generator) {
+            Generator generator = (Generator) o;
+            setText(generator.getName());
+            setIcon(ChainsawIcons.ICON_HELP);
+        } else {
+            setText("(Unknown Type) :: " + o);
+        }
 
-    levelLabel.setText(null);
-    levelLabel.setIcon(null);
+        if (
+            o == ((ReceiversTreeModel) 
tree.getModel()).getRootNode().getUserObject()) {
+            setIcon(rootIcon);
+        }
+
+        levelLabel.setText(null);
+        levelLabel.setIcon(null);
 
-    if (o instanceof Thresholdable) {
-      Thresholdable t = (Thresholdable) o;
+        if (o instanceof Thresholdable) {
+            Thresholdable t = (Thresholdable) o;
 
-      if (t.getThreshold() != null) {
-        levelLabel.setIcon(
-                LevelIconFactory.getInstance().getLevelToIconMap().get(
-                  t.getThreshold().toString()));
+            if (t.getThreshold() != null) {
+                levelLabel.setIcon(
+                    LevelIconFactory.getInstance().getLevelToIconMap().get(
+                        t.getThreshold().toString()));
 
-        if (levelLabel.getIcon() == null) {
-          levelLabel.setText(t.getThreshold().toString());
+                if (levelLabel.getIcon() == null) {
+                    levelLabel.setText(t.getThreshold().toString());
+                }
+            }
         }
-      }
-    }
 
-    setToolTipText(tooltip);
+        setToolTipText(tooltip);
 
-    return panel;
-  }
+        return panel;
+    }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversHelper.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversHelper.java 
b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversHelper.java
index 18ac3a6..ec27de3 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversHelper.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversHelper.java
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,28 +17,6 @@
 package org.apache.log4j.chainsaw.receivers;
 
 
-import java.beans.BeanInfo;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.apache.log4j.chainsaw.plugins.PluginClassLoaderFactory;
@@ -50,15 +28,31 @@ import org.apache.log4j.spi.LoggerRepositoryEx;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import java.beans.BeanInfo;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.io.*;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
 
 /**
  * Helper class to assisit with all the known Receivers.
- * 
+ * <p>
  * A local resource 'known.receivers' is read in on initialization
  * with each line representing the FQN of the Class that is a recognised 
Receiver.
- * 
- * @author Paul Smith &lt;psm...@apache.org&gt;
  *
+ * @author Paul Smith &lt;psm...@apache.org&gt;
  */
 public class ReceiversHelper {
 
@@ -66,13 +60,14 @@ public class ReceiversHelper {
 
     private final Logger logger = LogManager.getLogger(ReceiversHelper.class);
     private List<Class> receiverClassList = new ArrayList<>();
+
     /**
      *
      */
     private ReceiversHelper() {
 
         URL url = this.getClass().getClassLoader().getResource(
-            this.getClass().getPackage().getName().replace('.','/') + 
"/known.receivers");
+            this.getClass().getPackage().getName().replace('.', '/') + 
"/known.receivers");
         if (url == null) {
             logger.warn("Failed to locate known.receivers file");
             return;
@@ -87,20 +82,19 @@ public class ReceiversHelper {
             ClassLoader classLoader = 
PluginClassLoaderFactory.getInstance().getClassLoader();
 
             while ((line = stream.readLine()) != null) {
-               
-               try {
-                       if (line.startsWith("#") || (line.length() == 0)) {
-                               continue;
-                       }
-                       Class receiverClass = classLoader.loadClass(line);
-                       receiverClassList.add(receiverClass);
-                       logger.debug("Located known Receiver class " + 
receiverClass.getName());
-               } catch (ClassNotFoundException e) {
-                       logger.warn("Failed to locate Receiver class:" + line);
-               }
-               catch (NoClassDefFoundError e) {
-                       logger.error("Failed to locate Receiver class:" + line 
+ ", looks like a dependent class is missing from the classpath", e);
-               }
+
+                try {
+                    if (line.startsWith("#") || (line.length() == 0)) {
+                        continue;
+                    }
+                    Class receiverClass = classLoader.loadClass(line);
+                    receiverClassList.add(receiverClass);
+                    logger.debug("Located known Receiver class " + 
receiverClass.getName());
+                } catch (ClassNotFoundException e) {
+                    logger.warn("Failed to locate Receiver class:" + line);
+                } catch (NoClassDefFoundError e) {
+                    logger.error("Failed to locate Receiver class:" + line + 
", looks like a dependent class is missing from the classpath", e);
+                }
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -124,86 +118,87 @@ public class ReceiversHelper {
     /**
      * Returns an unmodifiable list of Class objects which represent all the 
'known'
      * Receiver classes.
+     *
      * @return known receiver classes
      */
     public List getKnownReceiverClasses() {
-      return Collections.unmodifiableList(receiverClassList);
+        return Collections.unmodifiableList(receiverClassList);
     }
 
 
-  public void saveReceiverConfiguration(File file) {
-    LoggerRepository repo = LogManager.getLoggerRepository();
-    PluginRegistry pluginRegistry = ((LoggerRepositoryEx) 
repo).getPluginRegistry();
-    List<Plugin> fullPluginList = pluginRegistry.getPlugins();
-    List<Plugin> pluginList = new ArrayList<>();
-      for (Object aFullPluginList : fullPluginList) {
-          Plugin thisPlugin = (Plugin) aFullPluginList;
-          if (thisPlugin instanceof Receiver) {
-              pluginList.add(thisPlugin);
-          }
-      }
-    //remove everything that isn't a receiver..otherwise, we'd create an empty 
config file
-    try {
-        if (pluginList.size() > 0) {
-            //we programmatically register the ZeroConf plugin in the plugin 
registry
-            DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
-            factory.setNamespaceAware(true);
-            DocumentBuilder builder = factory.newDocumentBuilder();
-            Document document = builder.newDocument();
-            Element rootElement = 
document.createElementNS("http://jakarta.apache.org/log4j/";, "configuration");
-            rootElement.setPrefix("log4j");
-            rootElement.setAttribute("xmlns:log4j", 
"http://jakarta.apache.org/log4j/";);
-            rootElement.setAttribute("debug", "true");
-
-            for (Object aPluginList : pluginList) {
-                Receiver receiver;
-
-                if (aPluginList instanceof Receiver) {
-                    receiver = (Receiver) aPluginList;
-                } else {
-                    continue;
-                }
-
-                Element pluginElement = document.createElement("plugin");
-                pluginElement.setAttribute("name", receiver.getName());
-                pluginElement.setAttribute("class", 
receiver.getClass().getName());
-
-                BeanInfo beanInfo = 
Introspector.getBeanInfo(receiver.getClass());
-                List<PropertyDescriptor> list = new 
ArrayList<>(Arrays.asList(beanInfo.getPropertyDescriptors()));
-
-                for (Object aList : list) {
-                    PropertyDescriptor d = (PropertyDescriptor) aList;
-                    //don't serialize the loggerRepository property for 
subclasses of componentbase..
-                    //easier to change this than tweak componentbase right 
now..
-                    if 
(d.getReadMethod().getName().equals("getLoggerRepository")) {
+    public void saveReceiverConfiguration(File file) {
+        LoggerRepository repo = LogManager.getLoggerRepository();
+        PluginRegistry pluginRegistry = ((LoggerRepositoryEx) 
repo).getPluginRegistry();
+        List<Plugin> fullPluginList = pluginRegistry.getPlugins();
+        List<Plugin> pluginList = new ArrayList<>();
+        for (Object aFullPluginList : fullPluginList) {
+            Plugin thisPlugin = (Plugin) aFullPluginList;
+            if (thisPlugin instanceof Receiver) {
+                pluginList.add(thisPlugin);
+            }
+        }
+        //remove everything that isn't a receiver..otherwise, we'd create an 
empty config file
+        try {
+            if (pluginList.size() > 0) {
+                //we programmatically register the ZeroConf plugin in the 
plugin registry
+                DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
+                factory.setNamespaceAware(true);
+                DocumentBuilder builder = factory.newDocumentBuilder();
+                Document document = builder.newDocument();
+                Element rootElement = 
document.createElementNS("http://jakarta.apache.org/log4j/";, "configuration");
+                rootElement.setPrefix("log4j");
+                rootElement.setAttribute("xmlns:log4j", 
"http://jakarta.apache.org/log4j/";);
+                rootElement.setAttribute("debug", "true");
+
+                for (Object aPluginList : pluginList) {
+                    Receiver receiver;
+
+                    if (aPluginList instanceof Receiver) {
+                        receiver = (Receiver) aPluginList;
+                    } else {
                         continue;
                     }
-                    Object o = d.getReadMethod().invoke(receiver);
-                    if (o != null) {
-                        Element paramElement = document.createElement("param");
-                        paramElement.setAttribute("name", d.getName());
-                        paramElement.setAttribute("value", o.toString());
-                        pluginElement.appendChild(paramElement);
+
+                    Element pluginElement = document.createElement("plugin");
+                    pluginElement.setAttribute("name", receiver.getName());
+                    pluginElement.setAttribute("class", 
receiver.getClass().getName());
+
+                    BeanInfo beanInfo = 
Introspector.getBeanInfo(receiver.getClass());
+                    List<PropertyDescriptor> list = new 
ArrayList<>(Arrays.asList(beanInfo.getPropertyDescriptors()));
+
+                    for (Object aList : list) {
+                        PropertyDescriptor d = (PropertyDescriptor) aList;
+                        //don't serialize the loggerRepository property for 
subclasses of componentbase..
+                        //easier to change this than tweak componentbase right 
now..
+                        if 
(d.getReadMethod().getName().equals("getLoggerRepository")) {
+                            continue;
+                        }
+                        Object o = d.getReadMethod().invoke(receiver);
+                        if (o != null) {
+                            Element paramElement = 
document.createElement("param");
+                            paramElement.setAttribute("name", d.getName());
+                            paramElement.setAttribute("value", o.toString());
+                            pluginElement.appendChild(paramElement);
+                        }
                     }
-                }
 
-                rootElement.appendChild(pluginElement);
+                    rootElement.appendChild(pluginElement);
+
+                }
 
+                TransformerFactory transformerFactory = 
TransformerFactory.newInstance();
+                Transformer transformer = transformerFactory.newTransformer();
+                transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+                
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount";, "4");
+                DOMSource source = new DOMSource(rootElement);
+                FileOutputStream stream = new FileOutputStream(file);
+                StreamResult result = new StreamResult(stream);
+                transformer.transform(source, result);
+                stream.close();
             }
 
-            TransformerFactory transformerFactory = 
TransformerFactory.newInstance();
-            Transformer transformer = transformerFactory.newTransformer();
-            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-            
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount";, "4");
-            DOMSource source = new DOMSource(rootElement);
-            FileOutputStream stream = new FileOutputStream(file);
-            StreamResult result = new StreamResult(stream);
-            transformer.transform(source, result);
-            stream.close();
+        } catch (Exception e) {
+            e.printStackTrace();
         }
-
-    } catch (Exception e) {
-        e.printStackTrace();
     }
-  }
 }

Reply via email to